00001 00012 #ifndef RAIL_PICK_AND_PLACE_OBJECT_RECOGNIZER_H_ 00013 #define RAIL_PICK_AND_PLACE_OBJECT_RECOGNIZER_H_ 00014 00015 // ROS 00016 #include <actionlib/server/simple_action_server.h> 00017 #include <graspdb/graspdb.h> 00018 #include <rail_manipulation_msgs/RecognizeObjectAction.h> 00019 #include <ros/ros.h> 00020 00021 namespace rail 00022 { 00023 namespace pick_and_place 00024 { 00025 00032 class ObjectRecognizer 00033 { 00034 public: 00040 ObjectRecognizer(); 00041 00047 virtual ~ObjectRecognizer(); 00048 00056 bool okay() const; 00057 00058 private: 00066 void recognizeObjectCallback(const rail_manipulation_msgs::RecognizeObjectGoalConstPtr &goal); 00067 00069 bool okay_; 00071 graspdb::Client *graspdb_; 00072 00074 ros::NodeHandle node_, private_node_; 00076 actionlib::SimpleActionServer<rail_manipulation_msgs::RecognizeObjectAction> as_; 00077 }; 00078 00079 } 00080 } 00081 00082 #endif