00001 00002 00018 #ifndef GRASP_CHAIR_H 00019 #define GRASP_CHAIR_H 00020 00021 #include <ros/ros.h> 00022 #include <tf/tf.h> 00023 #include <geometry_msgs/PointStamped.h> 00024 #include <simple_robot_control/robot_control.h> 00025 #include "gripper.h" 00026 #include <std_srvs/Empty.h> 00027 00028 00029 class GraspChair{ 00030 public: 00031 GraspChair(simple_robot_control::Robot* robot, Gripper* gripper); 00032 00034 bool grasp(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response); 00035 00037 bool release(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response); 00038 00040 void correction(simple_robot_control::Arm& arm, char lr, tf::StampedTransform corrGrasp, tf::StampedTransform preGrasp, tf::StampedTransform goalGrasp); 00041 00043 void setGraspPositions_cb(const PointCloud::ConstPtr& msg); 00044 00045 private: 00046 Gripper* gripper; 00047 simple_robot_control::Robot* robot; 00048 geometry_msgs::PointStamped right_Gripper; 00049 geometry_msgs::PointStamped left_Gripper; 00050 bool position_set; 00051 00052 00053 }; 00054 #endif