00001 /***************************************************************************/ 00008 #ifndef JOINTCONTROLACTUALFSMSERIESELASTIC_H_ 00009 #define JOINTCONTROLACTUALFSMSERIESELASTIC_H_ 00010 00011 #include "robodyn_mechanisms/JointControlActualInterface.h" 00012 #include "robot_instance/NodeRegisterManager.h" 00013 00014 class JointControlActualSeriesElastic : public JointControlActualInterface 00015 { 00016 public: 00017 JointControlActualSeriesElastic(const std::string&, IoFunctions, NodeRegisterManagerPtr); 00018 virtual ~JointControlActualSeriesElastic(); 00019 00020 void getStates(r2_msgs::JointControlData& actualStates); 00021 void updateControlModeState(void); 00022 void updateCommandModeState(void); 00023 void updateCalibrationModeState(void); 00024 void updateClearFaultModeState(void); 00025 void updateCoeffState(void); 00026 void getFaults(diagnostic_msgs::DiagnosticStatus& faultStatus); 00027 00028 protected: 00029 void setParameters(); 00030 NodeRegisterManagerPtr nodeRegisterManager; 00031 const std::string logCategory; 00032 00033 private: 00034 // Status bit names 00035 std::string ProcAliveStatusName; 00036 std::string CommAliveStatusName; 00037 std::string JointFaultStatusName; 00038 std::string CoeffsLoadedStatusName; 00039 std::string MotorEnableStatusName; 00040 std::string BrakeReleaseStatusName; 00041 std::string BridgeEnableStatusName; 00042 std::string MotComSourceStatusName; 00043 std::string PosComVelocityStatusName; 00044 std::string ControlModeStatusName; 00045 std::string CalibrationModeStatusName; 00046 std::string ClearFaultStatusName; 00047 std::string NotInBootloaderStatusName; 00048 std::string BridgeFaultStatusName; 00049 std::string BusVoltageFaultStatusName; 00050 std::string ApsFaultStatusName; 00051 std::string Aps1TolFaultStatusName; 00052 std::string Aps2TolFaultStatusName; 00053 std::string EncDriftFaultStatusName; 00054 std::string VelocityFaultStatusName; 00055 std::string LimitFaultStatusName; 00056 std::string CurrentFaultStatusName; 00057 }; 00058 00059 #endif