00001 #ifndef INTERACTIVE_WORLD_RECOGNIZED_OBJECTS_LISTENER_H_ 00002 #define INTERACTIVE_WORLD_RECOGNIZED_OBJECTS_LISTENER_H_ 00003 00004 #include <ros/ros.h> 00005 #include <rail_manipulation_msgs/SegmentedObjectList.h> 00006 #include <tf2_ros/transform_listener.h> 00007 00008 namespace rail 00009 { 00010 namespace interactive_world 00011 { 00012 00013 class RecognizedObjectsListener 00014 { 00015 public: 00016 RecognizedObjectsListener(); 00017 00018 private: 00020 ros::NodeHandle node_; 00022 ros::Subscriber recognized_objects_sub_; 00024 ros::ServiceClient store_observation_srv_, find_surface_srv_, transform_to_surface_frame_srv_, 00025 find_observations_srv_, set_observations_removed_srv_; 00026 00027 bool incoming_cleared_objects_; 00028 00029 void recognizedObjectsCallback(const rail_manipulation_msgs::SegmentedObjectList &objects); 00030 }; 00031 00032 } 00033 } 00034 00035 #endif