00001 00032 #ifndef SHADOWHAND_SUBSCRIBER_H_ 00033 #define SHADOWHAND_SUBSCRIBER_H_ 00034 00035 #include <ros/ros.h> 00036 #include <vector> 00037 #include <string> 00038 #include <map> 00039 00040 #include <boost/smart_ptr.hpp> 00041 00042 //messages 00043 #include <sr_robot_msgs/joints_data.h> 00044 #include <sr_robot_msgs/joint.h> 00045 #include <sr_robot_msgs/contrlr.h> 00046 #include <sr_robot_msgs/sendupdate.h> 00047 #include <sr_robot_msgs/config.h> 00048 #include <sr_robot_msgs/reverseKinematics.h> 00049 00050 #include "sr_hand/hand/sr_articulated_robot.h" 00051 00052 using namespace ros; 00053 using namespace shadowrobot; 00054 00055 namespace shadowrobot 00056 { 00057 00062 class SRSubscriber 00063 { 00064 public: 00070 SRSubscriber( boost::shared_ptr<SRArticulatedRobot> sr_art_robot ); 00071 00073 ~SRSubscriber(); 00074 00075 private: 00077 NodeHandle node, n_tilde; 00078 00080 boost::shared_ptr<SRArticulatedRobot> sr_articulated_robot; 00081 00083 void init(); 00084 00086 // CALLBACKS // 00088 00095 void sendupdateCallback( const sr_robot_msgs::sendupdateConstPtr& msg ); 00097 Subscriber sendupdate_sub; 00098 00104 void contrlrCallback( const sr_robot_msgs::contrlrConstPtr& msg ); 00106 Subscriber contrlr_sub; 00107 00112 void configCallback( const sr_robot_msgs::configConstPtr& msg ); 00114 Subscriber config_sub; 00115 }; // end class ShadowhandSubscriber 00116 00117 } // end namespace 00118 00119 #endif /* !SHADOWHAND_SUBSCRIBER_H_ */