00001 00013 #ifndef RAIL_PICK_AND_PLACE_GRASP_RETRIEVER_H_ 00014 #define RAIL_PICK_AND_PLACE_GRASP_RETRIEVER_H_ 00015 00016 // ROS 00017 #include <actionlib/server/simple_action_server.h> 00018 #include <graspdb/graspdb.h> 00019 #include <rail_pick_and_place_msgs/RetrieveGraspDemonstrationAction.h> 00020 #include <ros/ros.h> 00021 00022 namespace rail 00023 { 00024 namespace pick_and_place 00025 { 00026 00034 class GraspRetriever 00035 { 00036 public: 00042 GraspRetriever(); 00043 00049 virtual ~GraspRetriever(); 00050 00058 bool okay() const; 00059 00060 private: 00068 void retrieveGrasp(const rail_pick_and_place_msgs::RetrieveGraspDemonstrationGoalConstPtr &goal); 00069 00071 bool okay_; 00073 graspdb::Client *graspdb_; 00074 00076 ros::NodeHandle node_, private_node_; 00078 actionlib::SimpleActionServer<rail_pick_and_place_msgs::RetrieveGraspDemonstrationAction> as_; 00080 ros::Publisher point_cloud_pub_, pose_pub_; 00081 }; 00082 00083 } 00084 } 00085 00086 #endif