Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef DCM_HPP
00019 #define DCM_HPP
00020
00021
00022 #include <qi/session.hpp>
00023
00027 class DCM
00028 {
00029 public:
00030 DCM(const qi::SessionPtr& session,
00031 const double &controller_freq);
00032
00034 bool init(const std::vector <std::string> &joints);
00035
00037 void writeJoints(const std::vector <double> &joint_commands);
00038
00040 bool setStiffness(const float &stiffness);
00041
00043 int getTime(const int &offset);
00044
00045 private:
00047 void createPositionActuatorCommand(const std::vector <std::string> &joints);
00048
00050 bool createPositionActuatorAlias(const std::vector <std::string> &joints);
00051
00053 bool createHardnessActuatorAlias(const std::vector <std::string> &joints);
00054
00056 bool DCMAliasTimedCommand(const std::string& alias,
00057 const float& values,
00058 const int& timeOffset,
00059 const std::string& type_update="Merge");
00060
00062 qi::AnyObject dcm_proxy_;
00063
00065 std::vector <qi::AnyValue> commands_;
00066
00068 std::vector <std::vector <std::vector <qi::AnyValue> > > commands_values_;
00069
00071 double controller_freq_;
00072 };
00073 #endif // DCM_HPP