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