00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef __OPERATEHANDLECONTROLLER_H__
00031 #define __OPERATEHANDLECONTROLLER_H__
00032
00033 #include <std_srvs/Empty.h>
00034 #include <tf/transform_listener.h>
00035 #include <geometry_msgs/PoseStamped.h>
00036 #include <sensor_msgs/PointCloud2.h>
00037
00038
00039 class RobotArm;
00040 class Pressure;
00041
00042 class OperateHandleController {
00043
00044 public:
00045
00046 static tf::Stamped<tf::Pose> getCopPose(const char name[], const char frame[]);
00047 static tf::Stamped<tf::Pose> getBowlPose();
00048 static btVector3 getPlatePose();
00049 static btVector3 getTabletPose();
00050
00051
00052 static int operateHandle(int arm, tf::Stamped<tf::Pose> aM, int numretry = 0);
00053
00054 static int graspHandle(int arm_, tf::Stamped<tf::Pose> aM);
00055
00056
00057 static tf::Stamped<tf::Pose> getHandlePoseFromMarker(int arm_, int pos);
00058
00059
00060 static void close(int side_c, int handle_);
00061
00062 static void pickPlate(btVector3 plate, double width = 0.34);
00063
00064 static void getPlate(int object, double zHint = 0);
00065
00066 static void singleSidedPick(int side,tf::Stamped<tf::Pose> start, tf::Stamped<tf::Pose> end);
00067
00068 static int maxHandle;
00069
00070 static std::vector<std::vector<tf::Stamped<tf::Pose> *> > openingTraj;
00071
00072
00073 static void spinnerL(double x, double y, double z);
00074
00075 static void openGrippers(bool wait = true);
00076 static void closeGrippers(bool wait = true);
00077
00078 static void plateCarryPose();
00079
00080 static void plateTuckPose();
00081 static void plateTuckPoseLeft();
00082 static void plateTuckPoseRight();
00083
00084 static void plateAttackPose();
00085 static void plateAttackPoseLeft();
00086 static void plateAttackPoseRight();
00087
00088 };
00089
00090
00091
00092
00093 #endif