00001 /***************************************************************************/ 00008 #ifndef JOINTCONTROLCOMMANDFSMSERIESELASTIC_H_ 00009 #define JOINTCONTROLCOMMANDFSMSERIESELASTIC_H_ 00010 00011 #include "robot_instance/NodeRegisterManager.h" 00012 #include "robodyn_mechanisms/JointControlCommandInterface.h" 00013 00014 class JointControlCommandSeriesElastic : public JointControlCommandInterface 00015 { 00016 public: 00017 JointControlCommandSeriesElastic(const std::string&, IoFunctions, NodeRegisterManagerPtr); 00018 virtual ~JointControlCommandSeriesElastic(); 00019 00020 void getStates(r2_msgs::JointControlData& commandStates); 00021 00022 // controlMode functions 00023 void bootLoader(void); 00024 void off(void); 00025 void park(void); 00026 void neutral(void); 00027 void drive(void); 00028 00029 // commandMode functions 00030 void motCom(void); 00031 void stallMode(void); 00032 void multiLoopStep(void); 00033 void multiLoopSmooth(void); 00034 void actuator(void); 00035 00036 // calibrationMode functions 00037 void disableCalibrationMode(void); 00038 void enableCalibrationMode(void); 00039 void resetCalibrationMode(void); 00040 00041 // clearFaultMode functions 00042 void enableClearFaultMode(void); 00043 void disableClearFaultMode(void); 00044 00045 protected: 00046 void setParameters(); 00047 void updateParameters(); 00048 NodeRegisterManagerPtr nodeRegisterManager; 00049 const std::string logCategory; 00050 00051 private: 00052 // Control bit names 00053 std::string BootEnableControlName; 00054 std::string BridgeEnableControlName; 00055 std::string BrakeReleaseControlName; 00056 std::string MotorEnableControlName; 00057 std::string MotComSourceControlName; 00058 std::string ControlModeControlName; 00059 std::string PosComVelocityControlName; 00060 std::string CalibrationModeControlName; 00061 std::string ClearFaultControlName; 00062 std::string InitAPS2toAPS1ControlName; 00063 std::string HeadLightControlName; 00064 std::string LaserEnableControlName; 00065 std::string AwareControlName; 00066 00067 std::string HeadLightName; 00068 std::string LaserEnableName; 00069 00070 int headLight; 00071 int laserEnable; 00072 }; 00073 00074 #endif