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 00031 private: 00032 ros::NodeHandle nh; 00033 JointPubMap joint_pub; 00034 boost::shared_ptr<JTAS> action_server; 00035 00036 void execute_trajectory(const control_msgs::FollowJointTrajectoryGoalConstPtr& goal); 00037 }; 00038 } 00039 00040 /* For the emacs weenies in the crowd. 00041 Local Variables: 00042 c-basic-offset: 2 00043 End: 00044 */ 00045 00046 #endif