00001 00013 #ifndef RAIL_PICK_AND_PLACE_METRIC_TRAINER_H_ 00014 #define RAIL_PICK_AND_PLACE_METRIC_TRAINER_H_ 00015 00016 // ROS 00017 #include <actionlib/client/simple_action_client.h> 00018 #include <actionlib/server/simple_action_server.h> 00019 #include <graspdb/graspdb.h> 00020 #include <rail_pick_and_place_msgs/GetYesNoFeedbackAction.h> 00021 #include <rail_pick_and_place_msgs/TrainMetricsAction.h> 00022 #include <ros/ros.h> 00023 00024 namespace rail 00025 { 00026 namespace pick_and_place 00027 { 00028 00036 class MetricTrainer 00037 { 00038 public: 00044 MetricTrainer(); 00045 00051 virtual ~MetricTrainer(); 00052 00060 bool okay() const; 00061 00062 private: 00072 void trainMetricsCallback(const rail_pick_and_place_msgs::TrainMetricsGoalConstPtr &goal); 00073 00075 bool okay_; 00077 graspdb::Client *graspdb_; 00078 00080 ros::NodeHandle node_, private_node_; 00082 ros::Publisher base_pc_pub_, aligned_pc_pub_; 00084 actionlib::SimpleActionServer<rail_pick_and_place_msgs::TrainMetricsAction> as_; 00086 actionlib::SimpleActionClient<rail_pick_and_place_msgs::GetYesNoFeedbackAction> get_yes_and_no_feedback_ac_; 00087 }; 00088 00089 } 00090 } 00091 00092 #endif