Go to the documentation of this file.00001 #ifndef JOINT_DYNAMICS_DATA_H
00002 #define JOINT_DYNAMICS_DATA_H
00003
00004 #include <iostream>
00005 #include <kdl/tree.hpp>
00006 #include <kdl/chainidsolver.hpp>
00007
00008 struct JntDynData
00009 {
00010 double pos;
00011 double vel;
00012 double acc;
00013 };
00014
00015 class JointDynamicsData
00016 {
00017 public:
00018 JointDynamicsData();
00019 ~JointDynamicsData();
00020
00021 int PopulateJointInfo(const KDL::Chain& chain, KDL::JntArray& q, KDL::JntArray& q_dot, KDL::JntArray& q_dotdot);
00022
00023 int PopulateExtForceInfo(const KDL::Chain& chain, KDL::Wrenches& f_ext);
00024
00025 int PopulateExtForceInfo(const std::string& node, KDL::Wrenches& f_ext);
00026
00028 int StoreJointTorqueCommands(const KDL::Chain& chain, const KDL::JntArray& tau);
00029
00030 int StoreJointInertia(const KDL::Chain& chain, const KDL::JntArray& Hv);
00031
00032 int StoreSegmentWrenches(const KDL::Chain& chain, const KDL::Wrenches& f_seg);
00033
00034 void InitializeMaps(const KDL::Tree& tree);
00035
00036 std::map<std::string, JntDynData> jointDataMap;
00037 std::map<std::string, KDL::Wrench> extForceMap, segForceMap;
00038 std::map<std::string, double> jointTorqueCommandMap;
00039 std::map<std::string, double> jointInertiaMap;
00040 };
00041
00042 #endif