00001 00013 #ifndef _SR_JOINT_TRAJECTORY_ACTION_CONTROLLER_H_ 00014 #define _SR_JOINT_TRAJECTORY_ACTION_CONTROLLER_H_ 00015 00016 #include <ros/ros.h> 00017 00018 #include <actionlib/server/simple_action_server.h> 00019 #include <control_msgs/FollowJointTrajectoryAction.h> 00020 00021 namespace shadowrobot 00022 { 00023 class JointTrajectoryActionController 00024 { 00025 typedef actionlib::SimpleActionServer<control_msgs::FollowJointTrajectoryAction> JTAS; 00026 typedef std::vector<trajectory_msgs::JointTrajectoryPoint> JointTrajectoryPointVec; 00027 typedef std::map<std::string, ros::Publisher> JointPubMap; 00028 public: 00029 JointTrajectoryActionController(); 00030 ~JointTrajectoryActionController(); 00031 00032 private: 00033 ros::NodeHandle nh; 00034 JointPubMap joint_pub; 00035 boost::shared_ptr<JTAS> action_server; 00036 00037 void execute_trajectory(const control_msgs::FollowJointTrajectoryGoalConstPtr& goal); 00038 }; 00039 } 00040 00041 /* For the emacs weenies in the crowd. 00042 Local Variables: 00043 c-basic-offset: 2 00044 End: 00045 */ 00046 00047 #endif