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