Go to the documentation of this file.00001
00002 #ifndef OBJECT_MANIPULATION_MSGS_SERVICE_GRASPSTATUS_H
00003 #define OBJECT_MANIPULATION_MSGS_SERVICE_GRASPSTATUS_H
00004 #include <string>
00005 #include <vector>
00006 #include <map>
00007 #include <ostream>
00008 #include "ros/serialization.h"
00009 #include "ros/builtin_message_traits.h"
00010 #include "ros/message_operations.h"
00011 #include "ros/time.h"
00012
00013 #include "ros/macros.h"
00014
00015 #include "ros/assert.h"
00016
00017 #include "ros/service_traits.h"
00018
00019 #include "manipulation_msgs/Grasp.h"
00020
00021
00022
00023 namespace object_manipulation_msgs
00024 {
00025 template <class ContainerAllocator>
00026 struct GraspStatusRequest_ {
00027 typedef GraspStatusRequest_<ContainerAllocator> Type;
00028
00029 GraspStatusRequest_()
00030 : grasp()
00031 {
00032 }
00033
00034 GraspStatusRequest_(const ContainerAllocator& _alloc)
00035 : grasp(_alloc)
00036 {
00037 }
00038
00039 typedef ::manipulation_msgs::Grasp_<ContainerAllocator> _grasp_type;
00040 ::manipulation_msgs::Grasp_<ContainerAllocator> grasp;
00041
00042
00043 typedef boost::shared_ptr< ::object_manipulation_msgs::GraspStatusRequest_<ContainerAllocator> > Ptr;
00044 typedef boost::shared_ptr< ::object_manipulation_msgs::GraspStatusRequest_<ContainerAllocator> const> ConstPtr;
00045 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00046 };
00047 typedef ::object_manipulation_msgs::GraspStatusRequest_<std::allocator<void> > GraspStatusRequest;
00048
00049 typedef boost::shared_ptr< ::object_manipulation_msgs::GraspStatusRequest> GraspStatusRequestPtr;
00050 typedef boost::shared_ptr< ::object_manipulation_msgs::GraspStatusRequest const> GraspStatusRequestConstPtr;
00051
00052
00053
00054 template <class ContainerAllocator>
00055 struct GraspStatusResponse_ {
00056 typedef GraspStatusResponse_<ContainerAllocator> Type;
00057
00058 GraspStatusResponse_()
00059 : is_hand_occupied(false)
00060 {
00061 }
00062
00063 GraspStatusResponse_(const ContainerAllocator& _alloc)
00064 : is_hand_occupied(false)
00065 {
00066 }
00067
00068 typedef uint8_t _is_hand_occupied_type;
00069 uint8_t is_hand_occupied;
00070
00071
00072 typedef boost::shared_ptr< ::object_manipulation_msgs::GraspStatusResponse_<ContainerAllocator> > Ptr;
00073 typedef boost::shared_ptr< ::object_manipulation_msgs::GraspStatusResponse_<ContainerAllocator> const> ConstPtr;
00074 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00075 };
00076 typedef ::object_manipulation_msgs::GraspStatusResponse_<std::allocator<void> > GraspStatusResponse;
00077
00078 typedef boost::shared_ptr< ::object_manipulation_msgs::GraspStatusResponse> GraspStatusResponsePtr;
00079 typedef boost::shared_ptr< ::object_manipulation_msgs::GraspStatusResponse const> GraspStatusResponseConstPtr;
00080
00081
00082 struct GraspStatus
00083 {
00084
00085 typedef GraspStatusRequest Request;
00086 typedef GraspStatusResponse Response;
00087 Request request;
00088 Response response;
00089
00090 typedef Request RequestType;
00091 typedef Response ResponseType;
00092 };
00093 }
00094
00095 namespace ros
00096 {
00097 namespace message_traits
00098 {
00099 template<class ContainerAllocator> struct IsMessage< ::object_manipulation_msgs::GraspStatusRequest_<ContainerAllocator> > : public TrueType {};
00100 template<class ContainerAllocator> struct IsMessage< ::object_manipulation_msgs::GraspStatusRequest_<ContainerAllocator> const> : public TrueType {};
00101 template<class ContainerAllocator>
00102 struct MD5Sum< ::object_manipulation_msgs::GraspStatusRequest_<ContainerAllocator> > {
00103 static const char* value()
00104 {
00105 return "f314600c2017321af8942b1fa93ec508";
00106 }
00107
00108 static const char* value(const ::object_manipulation_msgs::GraspStatusRequest_<ContainerAllocator> &) { return value(); }
00109 static const uint64_t static_value1 = 0xf314600c2017321aULL;
00110 static const uint64_t static_value2 = 0xf8942b1fa93ec508ULL;
00111 };
00112
00113 template<class ContainerAllocator>
00114 struct DataType< ::object_manipulation_msgs::GraspStatusRequest_<ContainerAllocator> > {
00115 static const char* value()
00116 {
00117 return "object_manipulation_msgs/GraspStatusRequest";
00118 }
00119
00120 static const char* value(const ::object_manipulation_msgs::GraspStatusRequest_<ContainerAllocator> &) { return value(); }
00121 };
00122
00123 template<class ContainerAllocator>
00124 struct Definition< ::object_manipulation_msgs::GraspStatusRequest_<ContainerAllocator> > {
00125 static const char* value()
00126 {
00127 return "\n\
00128 \n\
00129 \n\
00130 \n\
00131 \n\
00132 \n\
00133 \n\
00134 \n\
00135 manipulation_msgs/Grasp grasp\n\
00136 \n\
00137 \n\
00138 ================================================================================\n\
00139 MSG: manipulation_msgs/Grasp\n\
00140 # A name for this grasp\n\
00141 string id\n\
00142 \n\
00143 # The internal posture of the hand for the pre-grasp\n\
00144 # only positions are used\n\
00145 sensor_msgs/JointState pre_grasp_posture\n\
00146 \n\
00147 # The internal posture of the hand for the grasp\n\
00148 # positions and efforts are used\n\
00149 sensor_msgs/JointState grasp_posture\n\
00150 \n\
00151 # The position of the end-effector for the grasp relative to a reference frame \n\
00152 # (that is always specified elsewhere, not in this message)\n\
00153 geometry_msgs/PoseStamped grasp_pose\n\
00154 \n\
00155 # The estimated probability of success for this grasp, or some other\n\
00156 # measure of how \"good\" it is.\n\
00157 float64 grasp_quality\n\
00158 \n\
00159 # The approach motion\n\
00160 GripperTranslation approach\n\
00161 \n\
00162 # The retreat motion\n\
00163 GripperTranslation retreat\n\
00164 \n\
00165 # the maximum contact force to use while grasping (<=0 to disable)\n\
00166 float32 max_contact_force\n\
00167 \n\
00168 # an optional list of obstacles that we have semantic information about\n\
00169 # and that can be touched/pushed/moved in the course of grasping\n\
00170 string[] allowed_touch_objects\n\
00171 \n\
00172 ================================================================================\n\
00173 MSG: sensor_msgs/JointState\n\
00174 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\
00175 #\n\
00176 # The state of each joint (revolute or prismatic) is defined by:\n\
00177 # * the position of the joint (rad or m),\n\
00178 # * the velocity of the joint (rad/s or m/s) and \n\
00179 # * the effort that is applied in the joint (Nm or N).\n\
00180 #\n\
00181 # Each joint is uniquely identified by its name\n\
00182 # The header specifies the time at which the joint states were recorded. All the joint states\n\
00183 # in one message have to be recorded at the same time.\n\
00184 #\n\
00185 # This message consists of a multiple arrays, one for each part of the joint state. \n\
00186 # The goal is to make each of the fields optional. When e.g. your joints have no\n\
00187 # effort associated with them, you can leave the effort array empty. \n\
00188 #\n\
00189 # All arrays in this message should have the same size, or be empty.\n\
00190 # This is the only way to uniquely associate the joint name with the correct\n\
00191 # states.\n\
00192 \n\
00193 \n\
00194 Header header\n\
00195 \n\
00196 string[] name\n\
00197 float64[] position\n\
00198 float64[] velocity\n\
00199 float64[] effort\n\
00200 \n\
00201 ================================================================================\n\
00202 MSG: std_msgs/Header\n\
00203 # Standard metadata for higher-level stamped data types.\n\
00204 # This is generally used to communicate timestamped data \n\
00205 # in a particular coordinate frame.\n\
00206 # \n\
00207 # sequence ID: consecutively increasing ID \n\
00208 uint32 seq\n\
00209 #Two-integer timestamp that is expressed as:\n\
00210 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00211 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00212 # time-handling sugar is provided by the client library\n\
00213 time stamp\n\
00214 #Frame this data is associated with\n\
00215 # 0: no frame\n\
00216 # 1: global frame\n\
00217 string frame_id\n\
00218 \n\
00219 ================================================================================\n\
00220 MSG: geometry_msgs/PoseStamped\n\
00221 # A Pose with reference coordinate frame and timestamp\n\
00222 Header header\n\
00223 Pose pose\n\
00224 \n\
00225 ================================================================================\n\
00226 MSG: geometry_msgs/Pose\n\
00227 # A representation of pose in free space, composed of postion and orientation. \n\
00228 Point position\n\
00229 Quaternion orientation\n\
00230 \n\
00231 ================================================================================\n\
00232 MSG: geometry_msgs/Point\n\
00233 # This contains the position of a point in free space\n\
00234 float64 x\n\
00235 float64 y\n\
00236 float64 z\n\
00237 \n\
00238 ================================================================================\n\
00239 MSG: geometry_msgs/Quaternion\n\
00240 # This represents an orientation in free space in quaternion form.\n\
00241 \n\
00242 float64 x\n\
00243 float64 y\n\
00244 float64 z\n\
00245 float64 w\n\
00246 \n\
00247 ================================================================================\n\
00248 MSG: manipulation_msgs/GripperTranslation\n\
00249 # defines a translation for the gripper, used in pickup or place tasks\n\
00250 # for example for lifting an object off a table or approaching the table for placing\n\
00251 \n\
00252 # the direction of the translation\n\
00253 geometry_msgs/Vector3Stamped direction\n\
00254 \n\
00255 # the desired translation distance\n\
00256 float32 desired_distance\n\
00257 \n\
00258 # the min distance that must be considered feasible before the\n\
00259 # grasp is even attempted\n\
00260 float32 min_distance\n\
00261 \n\
00262 ================================================================================\n\
00263 MSG: geometry_msgs/Vector3Stamped\n\
00264 # This represents a Vector3 with reference coordinate frame and timestamp\n\
00265 Header header\n\
00266 Vector3 vector\n\
00267 \n\
00268 ================================================================================\n\
00269 MSG: geometry_msgs/Vector3\n\
00270 # This represents a vector in free space. \n\
00271 \n\
00272 float64 x\n\
00273 float64 y\n\
00274 float64 z\n\
00275 ";
00276 }
00277
00278 static const char* value(const ::object_manipulation_msgs::GraspStatusRequest_<ContainerAllocator> &) { return value(); }
00279 };
00280
00281 }
00282 }
00283
00284
00285 namespace ros
00286 {
00287 namespace message_traits
00288 {
00289 template<class ContainerAllocator> struct IsMessage< ::object_manipulation_msgs::GraspStatusResponse_<ContainerAllocator> > : public TrueType {};
00290 template<class ContainerAllocator> struct IsMessage< ::object_manipulation_msgs::GraspStatusResponse_<ContainerAllocator> const> : public TrueType {};
00291 template<class ContainerAllocator>
00292 struct MD5Sum< ::object_manipulation_msgs::GraspStatusResponse_<ContainerAllocator> > {
00293 static const char* value()
00294 {
00295 return "d58cf7836f039d8e002583af45001d6d";
00296 }
00297
00298 static const char* value(const ::object_manipulation_msgs::GraspStatusResponse_<ContainerAllocator> &) { return value(); }
00299 static const uint64_t static_value1 = 0xd58cf7836f039d8eULL;
00300 static const uint64_t static_value2 = 0x002583af45001d6dULL;
00301 };
00302
00303 template<class ContainerAllocator>
00304 struct DataType< ::object_manipulation_msgs::GraspStatusResponse_<ContainerAllocator> > {
00305 static const char* value()
00306 {
00307 return "object_manipulation_msgs/GraspStatusResponse";
00308 }
00309
00310 static const char* value(const ::object_manipulation_msgs::GraspStatusResponse_<ContainerAllocator> &) { return value(); }
00311 };
00312
00313 template<class ContainerAllocator>
00314 struct Definition< ::object_manipulation_msgs::GraspStatusResponse_<ContainerAllocator> > {
00315 static const char* value()
00316 {
00317 return "\n\
00318 bool is_hand_occupied\n\
00319 \n\
00320 \n\
00321 ";
00322 }
00323
00324 static const char* value(const ::object_manipulation_msgs::GraspStatusResponse_<ContainerAllocator> &) { return value(); }
00325 };
00326
00327 template<class ContainerAllocator> struct IsFixedSize< ::object_manipulation_msgs::GraspStatusResponse_<ContainerAllocator> > : public TrueType {};
00328 }
00329 }
00330
00331 namespace ros
00332 {
00333 namespace serialization
00334 {
00335
00336 template<class ContainerAllocator> struct Serializer< ::object_manipulation_msgs::GraspStatusRequest_<ContainerAllocator> >
00337 {
00338 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00339 {
00340 stream.next(m.grasp);
00341 }
00342
00343 ROS_DECLARE_ALLINONE_SERIALIZER;
00344 };
00345 }
00346 }
00347
00348
00349 namespace ros
00350 {
00351 namespace serialization
00352 {
00353
00354 template<class ContainerAllocator> struct Serializer< ::object_manipulation_msgs::GraspStatusResponse_<ContainerAllocator> >
00355 {
00356 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00357 {
00358 stream.next(m.is_hand_occupied);
00359 }
00360
00361 ROS_DECLARE_ALLINONE_SERIALIZER;
00362 };
00363 }
00364 }
00365
00366 namespace ros
00367 {
00368 namespace service_traits
00369 {
00370 template<>
00371 struct MD5Sum<object_manipulation_msgs::GraspStatus> {
00372 static const char* value()
00373 {
00374 return "a1d64d6ffb0a9974f11521917c6feaa9";
00375 }
00376
00377 static const char* value(const object_manipulation_msgs::GraspStatus&) { return value(); }
00378 };
00379
00380 template<>
00381 struct DataType<object_manipulation_msgs::GraspStatus> {
00382 static const char* value()
00383 {
00384 return "object_manipulation_msgs/GraspStatus";
00385 }
00386
00387 static const char* value(const object_manipulation_msgs::GraspStatus&) { return value(); }
00388 };
00389
00390 template<class ContainerAllocator>
00391 struct MD5Sum<object_manipulation_msgs::GraspStatusRequest_<ContainerAllocator> > {
00392 static const char* value()
00393 {
00394 return "a1d64d6ffb0a9974f11521917c6feaa9";
00395 }
00396
00397 static const char* value(const object_manipulation_msgs::GraspStatusRequest_<ContainerAllocator> &) { return value(); }
00398 };
00399
00400 template<class ContainerAllocator>
00401 struct DataType<object_manipulation_msgs::GraspStatusRequest_<ContainerAllocator> > {
00402 static const char* value()
00403 {
00404 return "object_manipulation_msgs/GraspStatus";
00405 }
00406
00407 static const char* value(const object_manipulation_msgs::GraspStatusRequest_<ContainerAllocator> &) { return value(); }
00408 };
00409
00410 template<class ContainerAllocator>
00411 struct MD5Sum<object_manipulation_msgs::GraspStatusResponse_<ContainerAllocator> > {
00412 static const char* value()
00413 {
00414 return "a1d64d6ffb0a9974f11521917c6feaa9";
00415 }
00416
00417 static const char* value(const object_manipulation_msgs::GraspStatusResponse_<ContainerAllocator> &) { return value(); }
00418 };
00419
00420 template<class ContainerAllocator>
00421 struct DataType<object_manipulation_msgs::GraspStatusResponse_<ContainerAllocator> > {
00422 static const char* value()
00423 {
00424 return "object_manipulation_msgs/GraspStatus";
00425 }
00426
00427 static const char* value(const object_manipulation_msgs::GraspStatusResponse_<ContainerAllocator> &) { return value(); }
00428 };
00429
00430 }
00431 }
00432
00433 #endif // OBJECT_MANIPULATION_MSGS_SERVICE_GRASPSTATUS_H
00434