00001 00028 #ifndef _JOINT_0_TRANSMISSION_FOR_MUSCLE_HPP_ 00029 #define _JOINT_0_TRANSMISSION_FOR_MUSCLE_HPP_ 00030 00031 #include <tinyxml.h> 00032 #include "pr2_mechanism_model/transmission.h" 00033 #include "pr2_mechanism_model/joint.h" 00034 #include "pr2_hardware_interface/hardware_interface.h" 00035 #include "pr2_mechanism_model/joint_calibration_simulator.h" 00036 00037 namespace sr_mechanism_model 00038 { 00039 class J0TransmissionForMuscle : public pr2_mechanism_model::Transmission 00040 { 00041 public: 00042 J0TransmissionForMuscle() {} 00043 ~J0TransmissionForMuscle() {} 00044 00045 bool initXml(TiXmlElement *config, pr2_mechanism_model::Robot *robot); 00046 bool initXml(TiXmlElement *config); 00047 00048 double mechanical_reduction_; 00049 00050 void propagatePosition(std::vector<pr2_hardware_interface::Actuator*>&, 00051 std::vector<pr2_mechanism_model::JointState*>&); 00052 void propagatePositionBackwards(std::vector<pr2_mechanism_model::JointState*>&, 00053 std::vector<pr2_hardware_interface::Actuator*>&); 00054 void propagateEffort(std::vector<pr2_mechanism_model::JointState*>&, 00055 std::vector<pr2_hardware_interface::Actuator*>&); 00056 void propagateEffortBackwards(std::vector<pr2_hardware_interface::Actuator*>&, 00057 std::vector<pr2_mechanism_model::JointState*>&); 00058 00059 private: 00060 int simulated_actuator_timestamp_initialized_; 00061 ros::Time simulated_actuator_start_time_; 00062 00063 pr2_mechanism_model::JointCalibrationSimulator joint_calibration_simulator_; 00064 00065 bool init_joint(TiXmlElement *jel, pr2_mechanism_model::Robot *robot); 00066 }; 00067 00068 } //end namespace sr_mechanism_model 00069 00070 /* For the emacs weenies in the crowd. 00071 Local Variables: 00072 c-basic-offset: 2 00073 End: 00074 */ 00075 00076 #endif