$search
00001 /* Auto-generated by genmsg_cpp for file /home/rosbuild/hudson/workspace/doc-electric-pr2_object_manipulation/doc_stacks/2013-03-05_12-10-38.333207/pr2_object_manipulation/perception/tabletop_object_detector/srv/TabletopDetection.srv */ 00002 #ifndef TABLETOP_OBJECT_DETECTOR_SERVICE_TABLETOPDETECTION_H 00003 #define TABLETOP_OBJECT_DETECTOR_SERVICE_TABLETOPDETECTION_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 00020 00021 #include "tabletop_object_detector/TabletopDetectionResult.h" 00022 00023 namespace tabletop_object_detector 00024 { 00025 template <class ContainerAllocator> 00026 struct TabletopDetectionRequest_ { 00027 typedef TabletopDetectionRequest_<ContainerAllocator> Type; 00028 00029 TabletopDetectionRequest_() 00030 : return_clusters(false) 00031 , return_models(false) 00032 , num_models(0) 00033 { 00034 } 00035 00036 TabletopDetectionRequest_(const ContainerAllocator& _alloc) 00037 : return_clusters(false) 00038 , return_models(false) 00039 , num_models(0) 00040 { 00041 } 00042 00043 typedef uint8_t _return_clusters_type; 00044 uint8_t return_clusters; 00045 00046 typedef uint8_t _return_models_type; 00047 uint8_t return_models; 00048 00049 typedef int32_t _num_models_type; 00050 int32_t num_models; 00051 00052 00053 private: 00054 static const char* __s_getDataType_() { return "tabletop_object_detector/TabletopDetectionRequest"; } 00055 public: 00056 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); } 00057 00058 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); } 00059 00060 private: 00061 static const char* __s_getMD5Sum_() { return "f42d30308c026708dba683b43ccd22b8"; } 00062 public: 00063 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); } 00064 00065 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); } 00066 00067 private: 00068 static const char* __s_getServerMD5Sum_() { return "2c2af970832ab0ca635bc95df7de690a"; } 00069 public: 00070 ROS_DEPRECATED static const std::string __s_getServerMD5Sum() { return __s_getServerMD5Sum_(); } 00071 00072 ROS_DEPRECATED const std::string __getServerMD5Sum() const { return __s_getServerMD5Sum_(); } 00073 00074 private: 00075 static const char* __s_getMessageDefinition_() { return "\n\ 00076 \n\ 00077 \n\ 00078 \n\ 00079 \n\ 00080 bool return_clusters\n\ 00081 \n\ 00082 \n\ 00083 \n\ 00084 bool return_models\n\ 00085 \n\ 00086 \n\ 00087 int32 num_models\n\ 00088 \n\ 00089 "; } 00090 public: 00091 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); } 00092 00093 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); } 00094 00095 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const 00096 { 00097 ros::serialization::OStream stream(write_ptr, 1000000000); 00098 ros::serialization::serialize(stream, return_clusters); 00099 ros::serialization::serialize(stream, return_models); 00100 ros::serialization::serialize(stream, num_models); 00101 return stream.getData(); 00102 } 00103 00104 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr) 00105 { 00106 ros::serialization::IStream stream(read_ptr, 1000000000); 00107 ros::serialization::deserialize(stream, return_clusters); 00108 ros::serialization::deserialize(stream, return_models); 00109 ros::serialization::deserialize(stream, num_models); 00110 return stream.getData(); 00111 } 00112 00113 ROS_DEPRECATED virtual uint32_t serializationLength() const 00114 { 00115 uint32_t size = 0; 00116 size += ros::serialization::serializationLength(return_clusters); 00117 size += ros::serialization::serializationLength(return_models); 00118 size += ros::serialization::serializationLength(num_models); 00119 return size; 00120 } 00121 00122 typedef boost::shared_ptr< ::tabletop_object_detector::TabletopDetectionRequest_<ContainerAllocator> > Ptr; 00123 typedef boost::shared_ptr< ::tabletop_object_detector::TabletopDetectionRequest_<ContainerAllocator> const> ConstPtr; 00124 boost::shared_ptr<std::map<std::string, std::string> > __connection_header; 00125 }; // struct TabletopDetectionRequest 00126 typedef ::tabletop_object_detector::TabletopDetectionRequest_<std::allocator<void> > TabletopDetectionRequest; 00127 00128 typedef boost::shared_ptr< ::tabletop_object_detector::TabletopDetectionRequest> TabletopDetectionRequestPtr; 00129 typedef boost::shared_ptr< ::tabletop_object_detector::TabletopDetectionRequest const> TabletopDetectionRequestConstPtr; 00130 00131 00132 template <class ContainerAllocator> 00133 struct TabletopDetectionResponse_ { 00134 typedef TabletopDetectionResponse_<ContainerAllocator> Type; 00135 00136 TabletopDetectionResponse_() 00137 : detection() 00138 { 00139 } 00140 00141 TabletopDetectionResponse_(const ContainerAllocator& _alloc) 00142 : detection(_alloc) 00143 { 00144 } 00145 00146 typedef ::tabletop_object_detector::TabletopDetectionResult_<ContainerAllocator> _detection_type; 00147 ::tabletop_object_detector::TabletopDetectionResult_<ContainerAllocator> detection; 00148 00149 00150 private: 00151 static const char* __s_getDataType_() { return "tabletop_object_detector/TabletopDetectionResponse"; } 00152 public: 00153 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); } 00154 00155 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); } 00156 00157 private: 00158 static const char* __s_getMD5Sum_() { return "1887016fd77eb33b9e6335b14d02b156"; } 00159 public: 00160 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); } 00161 00162 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); } 00163 00164 private: 00165 static const char* __s_getServerMD5Sum_() { return "2c2af970832ab0ca635bc95df7de690a"; } 00166 public: 00167 ROS_DEPRECATED static const std::string __s_getServerMD5Sum() { return __s_getServerMD5Sum_(); } 00168 00169 ROS_DEPRECATED const std::string __getServerMD5Sum() const { return __s_getServerMD5Sum_(); } 00170 00171 private: 00172 static const char* __s_getMessageDefinition_() { return "\n\ 00173 TabletopDetectionResult detection\n\ 00174 \n\ 00175 \n\ 00176 ================================================================================\n\ 00177 MSG: tabletop_object_detector/TabletopDetectionResult\n\ 00178 # Contains all the information from one run of the tabletop detection node\n\ 00179 \n\ 00180 # The information for the plane that has been detected\n\ 00181 Table table\n\ 00182 \n\ 00183 # The raw clusters detected in the scan \n\ 00184 sensor_msgs/PointCloud[] clusters\n\ 00185 \n\ 00186 # The list of potential models that have been detected for each cluster\n\ 00187 # An empty list will be returned for a cluster that has no recognition results at all\n\ 00188 household_objects_database_msgs/DatabaseModelPoseList[] models\n\ 00189 \n\ 00190 # For each cluster, the index of the list of models that was fit to that cluster\n\ 00191 # keep in mind that multiple raw clusters can correspond to a single fit\n\ 00192 int32[] cluster_model_indices\n\ 00193 \n\ 00194 # Whether the detection has succeeded or failed\n\ 00195 int32 NO_CLOUD_RECEIVED = 1\n\ 00196 int32 NO_TABLE = 2\n\ 00197 int32 OTHER_ERROR = 3\n\ 00198 int32 SUCCESS = 4\n\ 00199 int32 result\n\ 00200 \n\ 00201 ================================================================================\n\ 00202 MSG: tabletop_object_detector/Table\n\ 00203 # Informs that a planar table has been detected at a given location\n\ 00204 \n\ 00205 # The pose gives you the transform that take you to the coordinate system\n\ 00206 # of the table, with the origin somewhere in the table plane and the \n\ 00207 # z axis normal to the plane\n\ 00208 geometry_msgs/PoseStamped pose\n\ 00209 \n\ 00210 # These values give you the observed extents of the table, along x and y,\n\ 00211 # in the table's own coordinate system (above)\n\ 00212 # there is no guarantee that the origin of the table coordinate system is\n\ 00213 # inside the boundary defined by these values. \n\ 00214 float32 x_min\n\ 00215 float32 x_max\n\ 00216 float32 y_min\n\ 00217 float32 y_max\n\ 00218 \n\ 00219 # There is no guarantee that the table does NOT extend further than these \n\ 00220 # values; this is just as far as we've observed it.\n\ 00221 \n\ 00222 \n\ 00223 # Newer table definition as triangle mesh of convex hull (relative to pose)\n\ 00224 arm_navigation_msgs/Shape convex_hull\n\ 00225 \n\ 00226 ================================================================================\n\ 00227 MSG: geometry_msgs/PoseStamped\n\ 00228 # A Pose with reference coordinate frame and timestamp\n\ 00229 Header header\n\ 00230 Pose pose\n\ 00231 \n\ 00232 ================================================================================\n\ 00233 MSG: std_msgs/Header\n\ 00234 # Standard metadata for higher-level stamped data types.\n\ 00235 # This is generally used to communicate timestamped data \n\ 00236 # in a particular coordinate frame.\n\ 00237 # \n\ 00238 # sequence ID: consecutively increasing ID \n\ 00239 uint32 seq\n\ 00240 #Two-integer timestamp that is expressed as:\n\ 00241 # * stamp.secs: seconds (stamp_secs) since epoch\n\ 00242 # * stamp.nsecs: nanoseconds since stamp_secs\n\ 00243 # time-handling sugar is provided by the client library\n\ 00244 time stamp\n\ 00245 #Frame this data is associated with\n\ 00246 # 0: no frame\n\ 00247 # 1: global frame\n\ 00248 string frame_id\n\ 00249 \n\ 00250 ================================================================================\n\ 00251 MSG: geometry_msgs/Pose\n\ 00252 # A representation of pose in free space, composed of postion and orientation. \n\ 00253 Point position\n\ 00254 Quaternion orientation\n\ 00255 \n\ 00256 ================================================================================\n\ 00257 MSG: geometry_msgs/Point\n\ 00258 # This contains the position of a point in free space\n\ 00259 float64 x\n\ 00260 float64 y\n\ 00261 float64 z\n\ 00262 \n\ 00263 ================================================================================\n\ 00264 MSG: geometry_msgs/Quaternion\n\ 00265 # This represents an orientation in free space in quaternion form.\n\ 00266 \n\ 00267 float64 x\n\ 00268 float64 y\n\ 00269 float64 z\n\ 00270 float64 w\n\ 00271 \n\ 00272 ================================================================================\n\ 00273 MSG: arm_navigation_msgs/Shape\n\ 00274 byte SPHERE=0\n\ 00275 byte BOX=1\n\ 00276 byte CYLINDER=2\n\ 00277 byte MESH=3\n\ 00278 \n\ 00279 byte type\n\ 00280 \n\ 00281 \n\ 00282 #### define sphere, box, cylinder ####\n\ 00283 # the origin of each shape is considered at the shape's center\n\ 00284 \n\ 00285 # for sphere\n\ 00286 # radius := dimensions[0]\n\ 00287 \n\ 00288 # for cylinder\n\ 00289 # radius := dimensions[0]\n\ 00290 # length := dimensions[1]\n\ 00291 # the length is along the Z axis\n\ 00292 \n\ 00293 # for box\n\ 00294 # size_x := dimensions[0]\n\ 00295 # size_y := dimensions[1]\n\ 00296 # size_z := dimensions[2]\n\ 00297 float64[] dimensions\n\ 00298 \n\ 00299 \n\ 00300 #### define mesh ####\n\ 00301 \n\ 00302 # list of triangles; triangle k is defined by tre vertices located\n\ 00303 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]\n\ 00304 int32[] triangles\n\ 00305 geometry_msgs/Point[] vertices\n\ 00306 \n\ 00307 ================================================================================\n\ 00308 MSG: sensor_msgs/PointCloud\n\ 00309 # This message holds a collection of 3d points, plus optional additional\n\ 00310 # information about each point.\n\ 00311 \n\ 00312 # Time of sensor data acquisition, coordinate frame ID.\n\ 00313 Header header\n\ 00314 \n\ 00315 # Array of 3d points. Each Point32 should be interpreted as a 3d point\n\ 00316 # in the frame given in the header.\n\ 00317 geometry_msgs/Point32[] points\n\ 00318 \n\ 00319 # Each channel should have the same number of elements as points array,\n\ 00320 # and the data in each channel should correspond 1:1 with each point.\n\ 00321 # Channel names in common practice are listed in ChannelFloat32.msg.\n\ 00322 ChannelFloat32[] channels\n\ 00323 \n\ 00324 ================================================================================\n\ 00325 MSG: geometry_msgs/Point32\n\ 00326 # This contains the position of a point in free space(with 32 bits of precision).\n\ 00327 # It is recommeded to use Point wherever possible instead of Point32. \n\ 00328 # \n\ 00329 # This recommendation is to promote interoperability. \n\ 00330 #\n\ 00331 # This message is designed to take up less space when sending\n\ 00332 # lots of points at once, as in the case of a PointCloud. \n\ 00333 \n\ 00334 float32 x\n\ 00335 float32 y\n\ 00336 float32 z\n\ 00337 ================================================================================\n\ 00338 MSG: sensor_msgs/ChannelFloat32\n\ 00339 # This message is used by the PointCloud message to hold optional data\n\ 00340 # associated with each point in the cloud. The length of the values\n\ 00341 # array should be the same as the length of the points array in the\n\ 00342 # PointCloud, and each value should be associated with the corresponding\n\ 00343 # point.\n\ 00344 \n\ 00345 # Channel names in existing practice include:\n\ 00346 # \"u\", \"v\" - row and column (respectively) in the left stereo image.\n\ 00347 # This is opposite to usual conventions but remains for\n\ 00348 # historical reasons. The newer PointCloud2 message has no\n\ 00349 # such problem.\n\ 00350 # \"rgb\" - For point clouds produced by color stereo cameras. uint8\n\ 00351 # (R,G,B) values packed into the least significant 24 bits,\n\ 00352 # in order.\n\ 00353 # \"intensity\" - laser or pixel intensity.\n\ 00354 # \"distance\"\n\ 00355 \n\ 00356 # The channel name should give semantics of the channel (e.g.\n\ 00357 # \"intensity\" instead of \"value\").\n\ 00358 string name\n\ 00359 \n\ 00360 # The values array should be 1-1 with the elements of the associated\n\ 00361 # PointCloud.\n\ 00362 float32[] values\n\ 00363 \n\ 00364 ================================================================================\n\ 00365 MSG: household_objects_database_msgs/DatabaseModelPoseList\n\ 00366 # stores a list of possible database models recognition results\n\ 00367 DatabaseModelPose[] model_list\n\ 00368 ================================================================================\n\ 00369 MSG: household_objects_database_msgs/DatabaseModelPose\n\ 00370 # Informs that a specific model from the Model Database has been \n\ 00371 # identified at a certain location\n\ 00372 \n\ 00373 # the database id of the model\n\ 00374 int32 model_id\n\ 00375 \n\ 00376 # the pose that it can be found in\n\ 00377 geometry_msgs/PoseStamped pose\n\ 00378 \n\ 00379 # a measure of the confidence level in this detection result\n\ 00380 float32 confidence\n\ 00381 \n\ 00382 # the name of the object detector that generated this detection result\n\ 00383 string detector_name\n\ 00384 \n\ 00385 "; } 00386 public: 00387 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); } 00388 00389 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); } 00390 00391 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const 00392 { 00393 ros::serialization::OStream stream(write_ptr, 1000000000); 00394 ros::serialization::serialize(stream, detection); 00395 return stream.getData(); 00396 } 00397 00398 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr) 00399 { 00400 ros::serialization::IStream stream(read_ptr, 1000000000); 00401 ros::serialization::deserialize(stream, detection); 00402 return stream.getData(); 00403 } 00404 00405 ROS_DEPRECATED virtual uint32_t serializationLength() const 00406 { 00407 uint32_t size = 0; 00408 size += ros::serialization::serializationLength(detection); 00409 return size; 00410 } 00411 00412 typedef boost::shared_ptr< ::tabletop_object_detector::TabletopDetectionResponse_<ContainerAllocator> > Ptr; 00413 typedef boost::shared_ptr< ::tabletop_object_detector::TabletopDetectionResponse_<ContainerAllocator> const> ConstPtr; 00414 boost::shared_ptr<std::map<std::string, std::string> > __connection_header; 00415 }; // struct TabletopDetectionResponse 00416 typedef ::tabletop_object_detector::TabletopDetectionResponse_<std::allocator<void> > TabletopDetectionResponse; 00417 00418 typedef boost::shared_ptr< ::tabletop_object_detector::TabletopDetectionResponse> TabletopDetectionResponsePtr; 00419 typedef boost::shared_ptr< ::tabletop_object_detector::TabletopDetectionResponse const> TabletopDetectionResponseConstPtr; 00420 00421 struct TabletopDetection 00422 { 00423 00424 typedef TabletopDetectionRequest Request; 00425 typedef TabletopDetectionResponse Response; 00426 Request request; 00427 Response response; 00428 00429 typedef Request RequestType; 00430 typedef Response ResponseType; 00431 }; // struct TabletopDetection 00432 } // namespace tabletop_object_detector 00433 00434 namespace ros 00435 { 00436 namespace message_traits 00437 { 00438 template<class ContainerAllocator> struct IsMessage< ::tabletop_object_detector::TabletopDetectionRequest_<ContainerAllocator> > : public TrueType {}; 00439 template<class ContainerAllocator> struct IsMessage< ::tabletop_object_detector::TabletopDetectionRequest_<ContainerAllocator> const> : public TrueType {}; 00440 template<class ContainerAllocator> 00441 struct MD5Sum< ::tabletop_object_detector::TabletopDetectionRequest_<ContainerAllocator> > { 00442 static const char* value() 00443 { 00444 return "f42d30308c026708dba683b43ccd22b8"; 00445 } 00446 00447 static const char* value(const ::tabletop_object_detector::TabletopDetectionRequest_<ContainerAllocator> &) { return value(); } 00448 static const uint64_t static_value1 = 0xf42d30308c026708ULL; 00449 static const uint64_t static_value2 = 0xdba683b43ccd22b8ULL; 00450 }; 00451 00452 template<class ContainerAllocator> 00453 struct DataType< ::tabletop_object_detector::TabletopDetectionRequest_<ContainerAllocator> > { 00454 static const char* value() 00455 { 00456 return "tabletop_object_detector/TabletopDetectionRequest"; 00457 } 00458 00459 static const char* value(const ::tabletop_object_detector::TabletopDetectionRequest_<ContainerAllocator> &) { return value(); } 00460 }; 00461 00462 template<class ContainerAllocator> 00463 struct Definition< ::tabletop_object_detector::TabletopDetectionRequest_<ContainerAllocator> > { 00464 static const char* value() 00465 { 00466 return "\n\ 00467 \n\ 00468 \n\ 00469 \n\ 00470 \n\ 00471 bool return_clusters\n\ 00472 \n\ 00473 \n\ 00474 \n\ 00475 bool return_models\n\ 00476 \n\ 00477 \n\ 00478 int32 num_models\n\ 00479 \n\ 00480 "; 00481 } 00482 00483 static const char* value(const ::tabletop_object_detector::TabletopDetectionRequest_<ContainerAllocator> &) { return value(); } 00484 }; 00485 00486 template<class ContainerAllocator> struct IsFixedSize< ::tabletop_object_detector::TabletopDetectionRequest_<ContainerAllocator> > : public TrueType {}; 00487 } // namespace message_traits 00488 } // namespace ros 00489 00490 00491 namespace ros 00492 { 00493 namespace message_traits 00494 { 00495 template<class ContainerAllocator> struct IsMessage< ::tabletop_object_detector::TabletopDetectionResponse_<ContainerAllocator> > : public TrueType {}; 00496 template<class ContainerAllocator> struct IsMessage< ::tabletop_object_detector::TabletopDetectionResponse_<ContainerAllocator> const> : public TrueType {}; 00497 template<class ContainerAllocator> 00498 struct MD5Sum< ::tabletop_object_detector::TabletopDetectionResponse_<ContainerAllocator> > { 00499 static const char* value() 00500 { 00501 return "1887016fd77eb33b9e6335b14d02b156"; 00502 } 00503 00504 static const char* value(const ::tabletop_object_detector::TabletopDetectionResponse_<ContainerAllocator> &) { return value(); } 00505 static const uint64_t static_value1 = 0x1887016fd77eb33bULL; 00506 static const uint64_t static_value2 = 0x9e6335b14d02b156ULL; 00507 }; 00508 00509 template<class ContainerAllocator> 00510 struct DataType< ::tabletop_object_detector::TabletopDetectionResponse_<ContainerAllocator> > { 00511 static const char* value() 00512 { 00513 return "tabletop_object_detector/TabletopDetectionResponse"; 00514 } 00515 00516 static const char* value(const ::tabletop_object_detector::TabletopDetectionResponse_<ContainerAllocator> &) { return value(); } 00517 }; 00518 00519 template<class ContainerAllocator> 00520 struct Definition< ::tabletop_object_detector::TabletopDetectionResponse_<ContainerAllocator> > { 00521 static const char* value() 00522 { 00523 return "\n\ 00524 TabletopDetectionResult detection\n\ 00525 \n\ 00526 \n\ 00527 ================================================================================\n\ 00528 MSG: tabletop_object_detector/TabletopDetectionResult\n\ 00529 # Contains all the information from one run of the tabletop detection node\n\ 00530 \n\ 00531 # The information for the plane that has been detected\n\ 00532 Table table\n\ 00533 \n\ 00534 # The raw clusters detected in the scan \n\ 00535 sensor_msgs/PointCloud[] clusters\n\ 00536 \n\ 00537 # The list of potential models that have been detected for each cluster\n\ 00538 # An empty list will be returned for a cluster that has no recognition results at all\n\ 00539 household_objects_database_msgs/DatabaseModelPoseList[] models\n\ 00540 \n\ 00541 # For each cluster, the index of the list of models that was fit to that cluster\n\ 00542 # keep in mind that multiple raw clusters can correspond to a single fit\n\ 00543 int32[] cluster_model_indices\n\ 00544 \n\ 00545 # Whether the detection has succeeded or failed\n\ 00546 int32 NO_CLOUD_RECEIVED = 1\n\ 00547 int32 NO_TABLE = 2\n\ 00548 int32 OTHER_ERROR = 3\n\ 00549 int32 SUCCESS = 4\n\ 00550 int32 result\n\ 00551 \n\ 00552 ================================================================================\n\ 00553 MSG: tabletop_object_detector/Table\n\ 00554 # Informs that a planar table has been detected at a given location\n\ 00555 \n\ 00556 # The pose gives you the transform that take you to the coordinate system\n\ 00557 # of the table, with the origin somewhere in the table plane and the \n\ 00558 # z axis normal to the plane\n\ 00559 geometry_msgs/PoseStamped pose\n\ 00560 \n\ 00561 # These values give you the observed extents of the table, along x and y,\n\ 00562 # in the table's own coordinate system (above)\n\ 00563 # there is no guarantee that the origin of the table coordinate system is\n\ 00564 # inside the boundary defined by these values. \n\ 00565 float32 x_min\n\ 00566 float32 x_max\n\ 00567 float32 y_min\n\ 00568 float32 y_max\n\ 00569 \n\ 00570 # There is no guarantee that the table does NOT extend further than these \n\ 00571 # values; this is just as far as we've observed it.\n\ 00572 \n\ 00573 \n\ 00574 # Newer table definition as triangle mesh of convex hull (relative to pose)\n\ 00575 arm_navigation_msgs/Shape convex_hull\n\ 00576 \n\ 00577 ================================================================================\n\ 00578 MSG: geometry_msgs/PoseStamped\n\ 00579 # A Pose with reference coordinate frame and timestamp\n\ 00580 Header header\n\ 00581 Pose pose\n\ 00582 \n\ 00583 ================================================================================\n\ 00584 MSG: std_msgs/Header\n\ 00585 # Standard metadata for higher-level stamped data types.\n\ 00586 # This is generally used to communicate timestamped data \n\ 00587 # in a particular coordinate frame.\n\ 00588 # \n\ 00589 # sequence ID: consecutively increasing ID \n\ 00590 uint32 seq\n\ 00591 #Two-integer timestamp that is expressed as:\n\ 00592 # * stamp.secs: seconds (stamp_secs) since epoch\n\ 00593 # * stamp.nsecs: nanoseconds since stamp_secs\n\ 00594 # time-handling sugar is provided by the client library\n\ 00595 time stamp\n\ 00596 #Frame this data is associated with\n\ 00597 # 0: no frame\n\ 00598 # 1: global frame\n\ 00599 string frame_id\n\ 00600 \n\ 00601 ================================================================================\n\ 00602 MSG: geometry_msgs/Pose\n\ 00603 # A representation of pose in free space, composed of postion and orientation. \n\ 00604 Point position\n\ 00605 Quaternion orientation\n\ 00606 \n\ 00607 ================================================================================\n\ 00608 MSG: geometry_msgs/Point\n\ 00609 # This contains the position of a point in free space\n\ 00610 float64 x\n\ 00611 float64 y\n\ 00612 float64 z\n\ 00613 \n\ 00614 ================================================================================\n\ 00615 MSG: geometry_msgs/Quaternion\n\ 00616 # This represents an orientation in free space in quaternion form.\n\ 00617 \n\ 00618 float64 x\n\ 00619 float64 y\n\ 00620 float64 z\n\ 00621 float64 w\n\ 00622 \n\ 00623 ================================================================================\n\ 00624 MSG: arm_navigation_msgs/Shape\n\ 00625 byte SPHERE=0\n\ 00626 byte BOX=1\n\ 00627 byte CYLINDER=2\n\ 00628 byte MESH=3\n\ 00629 \n\ 00630 byte type\n\ 00631 \n\ 00632 \n\ 00633 #### define sphere, box, cylinder ####\n\ 00634 # the origin of each shape is considered at the shape's center\n\ 00635 \n\ 00636 # for sphere\n\ 00637 # radius := dimensions[0]\n\ 00638 \n\ 00639 # for cylinder\n\ 00640 # radius := dimensions[0]\n\ 00641 # length := dimensions[1]\n\ 00642 # the length is along the Z axis\n\ 00643 \n\ 00644 # for box\n\ 00645 # size_x := dimensions[0]\n\ 00646 # size_y := dimensions[1]\n\ 00647 # size_z := dimensions[2]\n\ 00648 float64[] dimensions\n\ 00649 \n\ 00650 \n\ 00651 #### define mesh ####\n\ 00652 \n\ 00653 # list of triangles; triangle k is defined by tre vertices located\n\ 00654 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]\n\ 00655 int32[] triangles\n\ 00656 geometry_msgs/Point[] vertices\n\ 00657 \n\ 00658 ================================================================================\n\ 00659 MSG: sensor_msgs/PointCloud\n\ 00660 # This message holds a collection of 3d points, plus optional additional\n\ 00661 # information about each point.\n\ 00662 \n\ 00663 # Time of sensor data acquisition, coordinate frame ID.\n\ 00664 Header header\n\ 00665 \n\ 00666 # Array of 3d points. Each Point32 should be interpreted as a 3d point\n\ 00667 # in the frame given in the header.\n\ 00668 geometry_msgs/Point32[] points\n\ 00669 \n\ 00670 # Each channel should have the same number of elements as points array,\n\ 00671 # and the data in each channel should correspond 1:1 with each point.\n\ 00672 # Channel names in common practice are listed in ChannelFloat32.msg.\n\ 00673 ChannelFloat32[] channels\n\ 00674 \n\ 00675 ================================================================================\n\ 00676 MSG: geometry_msgs/Point32\n\ 00677 # This contains the position of a point in free space(with 32 bits of precision).\n\ 00678 # It is recommeded to use Point wherever possible instead of Point32. \n\ 00679 # \n\ 00680 # This recommendation is to promote interoperability. \n\ 00681 #\n\ 00682 # This message is designed to take up less space when sending\n\ 00683 # lots of points at once, as in the case of a PointCloud. \n\ 00684 \n\ 00685 float32 x\n\ 00686 float32 y\n\ 00687 float32 z\n\ 00688 ================================================================================\n\ 00689 MSG: sensor_msgs/ChannelFloat32\n\ 00690 # This message is used by the PointCloud message to hold optional data\n\ 00691 # associated with each point in the cloud. The length of the values\n\ 00692 # array should be the same as the length of the points array in the\n\ 00693 # PointCloud, and each value should be associated with the corresponding\n\ 00694 # point.\n\ 00695 \n\ 00696 # Channel names in existing practice include:\n\ 00697 # \"u\", \"v\" - row and column (respectively) in the left stereo image.\n\ 00698 # This is opposite to usual conventions but remains for\n\ 00699 # historical reasons. The newer PointCloud2 message has no\n\ 00700 # such problem.\n\ 00701 # \"rgb\" - For point clouds produced by color stereo cameras. uint8\n\ 00702 # (R,G,B) values packed into the least significant 24 bits,\n\ 00703 # in order.\n\ 00704 # \"intensity\" - laser or pixel intensity.\n\ 00705 # \"distance\"\n\ 00706 \n\ 00707 # The channel name should give semantics of the channel (e.g.\n\ 00708 # \"intensity\" instead of \"value\").\n\ 00709 string name\n\ 00710 \n\ 00711 # The values array should be 1-1 with the elements of the associated\n\ 00712 # PointCloud.\n\ 00713 float32[] values\n\ 00714 \n\ 00715 ================================================================================\n\ 00716 MSG: household_objects_database_msgs/DatabaseModelPoseList\n\ 00717 # stores a list of possible database models recognition results\n\ 00718 DatabaseModelPose[] model_list\n\ 00719 ================================================================================\n\ 00720 MSG: household_objects_database_msgs/DatabaseModelPose\n\ 00721 # Informs that a specific model from the Model Database has been \n\ 00722 # identified at a certain location\n\ 00723 \n\ 00724 # the database id of the model\n\ 00725 int32 model_id\n\ 00726 \n\ 00727 # the pose that it can be found in\n\ 00728 geometry_msgs/PoseStamped pose\n\ 00729 \n\ 00730 # a measure of the confidence level in this detection result\n\ 00731 float32 confidence\n\ 00732 \n\ 00733 # the name of the object detector that generated this detection result\n\ 00734 string detector_name\n\ 00735 \n\ 00736 "; 00737 } 00738 00739 static const char* value(const ::tabletop_object_detector::TabletopDetectionResponse_<ContainerAllocator> &) { return value(); } 00740 }; 00741 00742 } // namespace message_traits 00743 } // namespace ros 00744 00745 namespace ros 00746 { 00747 namespace serialization 00748 { 00749 00750 template<class ContainerAllocator> struct Serializer< ::tabletop_object_detector::TabletopDetectionRequest_<ContainerAllocator> > 00751 { 00752 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m) 00753 { 00754 stream.next(m.return_clusters); 00755 stream.next(m.return_models); 00756 stream.next(m.num_models); 00757 } 00758 00759 ROS_DECLARE_ALLINONE_SERIALIZER; 00760 }; // struct TabletopDetectionRequest_ 00761 } // namespace serialization 00762 } // namespace ros 00763 00764 00765 namespace ros 00766 { 00767 namespace serialization 00768 { 00769 00770 template<class ContainerAllocator> struct Serializer< ::tabletop_object_detector::TabletopDetectionResponse_<ContainerAllocator> > 00771 { 00772 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m) 00773 { 00774 stream.next(m.detection); 00775 } 00776 00777 ROS_DECLARE_ALLINONE_SERIALIZER; 00778 }; // struct TabletopDetectionResponse_ 00779 } // namespace serialization 00780 } // namespace ros 00781 00782 namespace ros 00783 { 00784 namespace service_traits 00785 { 00786 template<> 00787 struct MD5Sum<tabletop_object_detector::TabletopDetection> { 00788 static const char* value() 00789 { 00790 return "2c2af970832ab0ca635bc95df7de690a"; 00791 } 00792 00793 static const char* value(const tabletop_object_detector::TabletopDetection&) { return value(); } 00794 }; 00795 00796 template<> 00797 struct DataType<tabletop_object_detector::TabletopDetection> { 00798 static const char* value() 00799 { 00800 return "tabletop_object_detector/TabletopDetection"; 00801 } 00802 00803 static const char* value(const tabletop_object_detector::TabletopDetection&) { return value(); } 00804 }; 00805 00806 template<class ContainerAllocator> 00807 struct MD5Sum<tabletop_object_detector::TabletopDetectionRequest_<ContainerAllocator> > { 00808 static const char* value() 00809 { 00810 return "2c2af970832ab0ca635bc95df7de690a"; 00811 } 00812 00813 static const char* value(const tabletop_object_detector::TabletopDetectionRequest_<ContainerAllocator> &) { return value(); } 00814 }; 00815 00816 template<class ContainerAllocator> 00817 struct DataType<tabletop_object_detector::TabletopDetectionRequest_<ContainerAllocator> > { 00818 static const char* value() 00819 { 00820 return "tabletop_object_detector/TabletopDetection"; 00821 } 00822 00823 static const char* value(const tabletop_object_detector::TabletopDetectionRequest_<ContainerAllocator> &) { return value(); } 00824 }; 00825 00826 template<class ContainerAllocator> 00827 struct MD5Sum<tabletop_object_detector::TabletopDetectionResponse_<ContainerAllocator> > { 00828 static const char* value() 00829 { 00830 return "2c2af970832ab0ca635bc95df7de690a"; 00831 } 00832 00833 static const char* value(const tabletop_object_detector::TabletopDetectionResponse_<ContainerAllocator> &) { return value(); } 00834 }; 00835 00836 template<class ContainerAllocator> 00837 struct DataType<tabletop_object_detector::TabletopDetectionResponse_<ContainerAllocator> > { 00838 static const char* value() 00839 { 00840 return "tabletop_object_detector/TabletopDetection"; 00841 } 00842 00843 static const char* value(const tabletop_object_detector::TabletopDetectionResponse_<ContainerAllocator> &) { return value(); } 00844 }; 00845 00846 } // namespace service_traits 00847 } // namespace ros 00848 00849 #endif // TABLETOP_OBJECT_DETECTOR_SERVICE_TABLETOPDETECTION_H 00850