Libbarrett
1.2.4
|
00001 /* 00002 * dynamics.h 00003 * 00004 * Created on: Nov 9, 2011 00005 * Author: dc 00006 */ 00007 00008 #ifndef BARRETT_MATH_DYNAMICS_H_ 00009 #define BARRETT_MATH_DYNAMICS_H_ 00010 00011 00012 #include <libconfig.h++> 00013 #include <boost/tuple/tuple.hpp> 00014 00015 #include <barrett/detail/ca_macro.h> 00016 #include <barrett/units.h> 00017 #include <barrett/math/kinematics.h> 00018 00019 00020 // forward declaration from <barrett/cdlbt/dynamics.h> 00021 struct bt_dynamics; 00022 00023 00024 namespace barrett { 00025 namespace math { 00026 00027 00028 template<size_t DOF> 00029 class Dynamics { 00030 BARRETT_UNITS_TEMPLATE_TYPEDEFS(DOF); 00031 00032 public: 00033 Dynamics(const libconfig::Setting& setting); 00034 ~Dynamics(); 00035 00036 const jt_type& evalInverse(const Kinematics<DOF>& kin, const jv_type& jv, const ja_type& ja); 00037 00038 // typedef const jt_type& result_type; ///< For use with boost::bind(). 00039 // result_type operator() (const boost::tuple<jv_type, ja_type>& jointState); 00040 00041 protected: 00042 struct bt_dynamics* impl; 00043 jt_type jt; 00044 00045 private: 00046 DISALLOW_COPY_AND_ASSIGN(Dynamics); 00047 }; 00048 00049 00050 } 00051 } 00052 00053 00054 // include template definitions 00055 #include <barrett/math/detail/dynamics-inl.h> 00056 00057 00058 #endif /* BARRETT_MATH_DYNAMICS_H_ */