17 #ifndef __sot_torque_control_control_manager_H__ 18 #define __sot_torque_control_control_manager_H__ 25 # if defined (__sot_torque_control_control_manager_H__) 26 # define TALOS_CONTROL_MANAGER_EXPORT __declspec(dllexport) 28 # define TALOS_CONTROL_MANAGER_EXPORT __declspec(dllimport) 31 # define TALOS_CONTROL_MANAGER_EXPORT 39 #include <dynamic-graph/signal-helper.h> 40 #include <sot/core/matrix-geometry.hh> 41 #include <sot/core/robot-utils.hh> 43 #include "boost/assign.hpp" 47 namespace talos_balance {
54 #define CTRL_MODE_TRANSITION_TIME_STEP 1000.0 74 :public::dynamicgraph::Entity
78 DYNAMIC_GRAPH_ENTITY_DECL();
87 void init(
const double & dt,
88 const std::string & robotRef);
102 void addCtrlMode(
const std::string& name);
104 void getCtrlMode(
const std::string& jointName);
105 void setCtrlMode(
const std::string& jointName,
const std::string& ctrlMode);
106 void setCtrlMode(
const int jid,
const CtrlMode& cm);
108 void resetProfiler();
119 void setSleepTime(
const double &seconds);
120 void addEmergencyStopSIN(
const std::string& name);
123 virtual void display( std::ostream& os )
const;
140 bool convertStringToCtrlMode(
const std::string& name,
CtrlMode& cm);
141 bool convertJointNameToJointId(
const std::string& name,
unsigned int&
id);
143 void updateJointCtrlModesOutputSignal();
153 #endif // #ifndef __sot_torque_control_control_manager_H__ CtrlMode(int id, const std::string &name)
std::vector< CtrlMode > m_jointCtrlModes_current
existing control modes
#define TALOS_CONTROL_MANAGER_EXPORT
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > Vector
AdmittanceControllerEndEffector EntityClassName
std::vector< CtrlMode > m_jointCtrlModes_previous
control mode of the joints
std::vector< int > m_jointCtrlModesCountDown
previous control mode of the joints
std::vector< dynamicgraph::SignalPtr< bool, int > *> m_emergencyStopVector
int m_iter
true at the first iteration, false otherwise
double m_dt
true if the entity has been successfully initialized
std::vector< dynamicgraph::Signal< dynamicgraph::Vector, int > * > m_jointsCtrlModesSOUT
emergency stop inputs. If one is true, control is set to zero forever
bool m_is_first_iter
true if an emergency condition as been triggered either by an other entity, or by control limit viola...
std::vector< std::string > m_ctrlModes
time to sleep at every iteration (to slow down simulation)
bool m_emergency_stop_triggered
control loop time period
std::ostream & operator<<(std::ostream &os, const CtrlMode &s)
std::vector< dynamicgraph::SignalPtr< dynamicgraph::Vector, int > * > m_ctrlInputsSIN
RobotUtilShrPtr m_robot_util