Go to the documentation of this file.00001
00002 #ifndef TABLETOP_OBJECT_DETECTOR_SERVICE_SEGMENTOBJECTINHAND_H
00003 #define TABLETOP_OBJECT_DETECTOR_SERVICE_SEGMENTOBJECTINHAND_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 "sensor_msgs/PointCloud2.h"
00022
00023 namespace tabletop_object_detector
00024 {
00025 template <class ContainerAllocator>
00026 struct SegmentObjectInHandRequest_ {
00027 typedef SegmentObjectInHandRequest_<ContainerAllocator> Type;
00028
00029 SegmentObjectInHandRequest_()
00030 : wrist_frame()
00031 {
00032 }
00033
00034 SegmentObjectInHandRequest_(const ContainerAllocator& _alloc)
00035 : wrist_frame(_alloc)
00036 {
00037 }
00038
00039 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _wrist_frame_type;
00040 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > wrist_frame;
00041
00042
00043 typedef boost::shared_ptr< ::tabletop_object_detector::SegmentObjectInHandRequest_<ContainerAllocator> > Ptr;
00044 typedef boost::shared_ptr< ::tabletop_object_detector::SegmentObjectInHandRequest_<ContainerAllocator> const> ConstPtr;
00045 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00046 };
00047 typedef ::tabletop_object_detector::SegmentObjectInHandRequest_<std::allocator<void> > SegmentObjectInHandRequest;
00048
00049 typedef boost::shared_ptr< ::tabletop_object_detector::SegmentObjectInHandRequest> SegmentObjectInHandRequestPtr;
00050 typedef boost::shared_ptr< ::tabletop_object_detector::SegmentObjectInHandRequest const> SegmentObjectInHandRequestConstPtr;
00051
00052
00053
00054 template <class ContainerAllocator>
00055 struct SegmentObjectInHandResponse_ {
00056 typedef SegmentObjectInHandResponse_<ContainerAllocator> Type;
00057
00058 SegmentObjectInHandResponse_()
00059 : cluster()
00060 , result(0)
00061 {
00062 }
00063
00064 SegmentObjectInHandResponse_(const ContainerAllocator& _alloc)
00065 : cluster(_alloc)
00066 , result(0)
00067 {
00068 }
00069
00070 typedef ::sensor_msgs::PointCloud2_<ContainerAllocator> _cluster_type;
00071 ::sensor_msgs::PointCloud2_<ContainerAllocator> cluster;
00072
00073 typedef int32_t _result_type;
00074 int32_t result;
00075
00076 enum { SUCCESS = 0 };
00077 enum { NO_CLOUD_RECEIVED = 1 };
00078 enum { TF_ERROR = 2 };
00079 enum { OTHER_ERROR = 3 };
00080
00081 typedef boost::shared_ptr< ::tabletop_object_detector::SegmentObjectInHandResponse_<ContainerAllocator> > Ptr;
00082 typedef boost::shared_ptr< ::tabletop_object_detector::SegmentObjectInHandResponse_<ContainerAllocator> const> ConstPtr;
00083 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00084 };
00085 typedef ::tabletop_object_detector::SegmentObjectInHandResponse_<std::allocator<void> > SegmentObjectInHandResponse;
00086
00087 typedef boost::shared_ptr< ::tabletop_object_detector::SegmentObjectInHandResponse> SegmentObjectInHandResponsePtr;
00088 typedef boost::shared_ptr< ::tabletop_object_detector::SegmentObjectInHandResponse const> SegmentObjectInHandResponseConstPtr;
00089
00090
00091 struct SegmentObjectInHand
00092 {
00093
00094 typedef SegmentObjectInHandRequest Request;
00095 typedef SegmentObjectInHandResponse Response;
00096 Request request;
00097 Response response;
00098
00099 typedef Request RequestType;
00100 typedef Response ResponseType;
00101 };
00102 }
00103
00104 namespace ros
00105 {
00106 namespace message_traits
00107 {
00108 template<class ContainerAllocator> struct IsMessage< ::tabletop_object_detector::SegmentObjectInHandRequest_<ContainerAllocator> > : public TrueType {};
00109 template<class ContainerAllocator> struct IsMessage< ::tabletop_object_detector::SegmentObjectInHandRequest_<ContainerAllocator> const> : public TrueType {};
00110 template<class ContainerAllocator>
00111 struct MD5Sum< ::tabletop_object_detector::SegmentObjectInHandRequest_<ContainerAllocator> > {
00112 static const char* value()
00113 {
00114 return "5653c37b6f08aa700c4b89db4ec53db6";
00115 }
00116
00117 static const char* value(const ::tabletop_object_detector::SegmentObjectInHandRequest_<ContainerAllocator> &) { return value(); }
00118 static const uint64_t static_value1 = 0x5653c37b6f08aa70ULL;
00119 static const uint64_t static_value2 = 0x0c4b89db4ec53db6ULL;
00120 };
00121
00122 template<class ContainerAllocator>
00123 struct DataType< ::tabletop_object_detector::SegmentObjectInHandRequest_<ContainerAllocator> > {
00124 static const char* value()
00125 {
00126 return "tabletop_object_detector/SegmentObjectInHandRequest";
00127 }
00128
00129 static const char* value(const ::tabletop_object_detector::SegmentObjectInHandRequest_<ContainerAllocator> &) { return value(); }
00130 };
00131
00132 template<class ContainerAllocator>
00133 struct Definition< ::tabletop_object_detector::SegmentObjectInHandRequest_<ContainerAllocator> > {
00134 static const char* value()
00135 {
00136 return "\n\
00137 string wrist_frame\n\
00138 \n\
00139 \n\
00140 ";
00141 }
00142
00143 static const char* value(const ::tabletop_object_detector::SegmentObjectInHandRequest_<ContainerAllocator> &) { return value(); }
00144 };
00145
00146 }
00147 }
00148
00149
00150 namespace ros
00151 {
00152 namespace message_traits
00153 {
00154 template<class ContainerAllocator> struct IsMessage< ::tabletop_object_detector::SegmentObjectInHandResponse_<ContainerAllocator> > : public TrueType {};
00155 template<class ContainerAllocator> struct IsMessage< ::tabletop_object_detector::SegmentObjectInHandResponse_<ContainerAllocator> const> : public TrueType {};
00156 template<class ContainerAllocator>
00157 struct MD5Sum< ::tabletop_object_detector::SegmentObjectInHandResponse_<ContainerAllocator> > {
00158 static const char* value()
00159 {
00160 return "9503d54a94abc90c0593a7f7530fb70e";
00161 }
00162
00163 static const char* value(const ::tabletop_object_detector::SegmentObjectInHandResponse_<ContainerAllocator> &) { return value(); }
00164 static const uint64_t static_value1 = 0x9503d54a94abc90cULL;
00165 static const uint64_t static_value2 = 0x0593a7f7530fb70eULL;
00166 };
00167
00168 template<class ContainerAllocator>
00169 struct DataType< ::tabletop_object_detector::SegmentObjectInHandResponse_<ContainerAllocator> > {
00170 static const char* value()
00171 {
00172 return "tabletop_object_detector/SegmentObjectInHandResponse";
00173 }
00174
00175 static const char* value(const ::tabletop_object_detector::SegmentObjectInHandResponse_<ContainerAllocator> &) { return value(); }
00176 };
00177
00178 template<class ContainerAllocator>
00179 struct Definition< ::tabletop_object_detector::SegmentObjectInHandResponse_<ContainerAllocator> > {
00180 static const char* value()
00181 {
00182 return "\n\
00183 \n\
00184 sensor_msgs/PointCloud2 cluster\n\
00185 \n\
00186 \n\
00187 int32 SUCCESS = 0\n\
00188 int32 NO_CLOUD_RECEIVED = 1\n\
00189 int32 TF_ERROR = 2\n\
00190 int32 OTHER_ERROR = 3\n\
00191 int32 result\n\
00192 \n\
00193 \n\
00194 ================================================================================\n\
00195 MSG: sensor_msgs/PointCloud2\n\
00196 # This message holds a collection of N-dimensional points, which may\n\
00197 # contain additional information such as normals, intensity, etc. The\n\
00198 # point data is stored as a binary blob, its layout described by the\n\
00199 # contents of the \"fields\" array.\n\
00200 \n\
00201 # The point cloud data may be organized 2d (image-like) or 1d\n\
00202 # (unordered). Point clouds organized as 2d images may be produced by\n\
00203 # camera depth sensors such as stereo or time-of-flight.\n\
00204 \n\
00205 # Time of sensor data acquisition, and the coordinate frame ID (for 3d\n\
00206 # points).\n\
00207 Header header\n\
00208 \n\
00209 # 2D structure of the point cloud. If the cloud is unordered, height is\n\
00210 # 1 and width is the length of the point cloud.\n\
00211 uint32 height\n\
00212 uint32 width\n\
00213 \n\
00214 # Describes the channels and their layout in the binary data blob.\n\
00215 PointField[] fields\n\
00216 \n\
00217 bool is_bigendian # Is this data bigendian?\n\
00218 uint32 point_step # Length of a point in bytes\n\
00219 uint32 row_step # Length of a row in bytes\n\
00220 uint8[] data # Actual point data, size is (row_step*height)\n\
00221 \n\
00222 bool is_dense # True if there are no invalid points\n\
00223 \n\
00224 ================================================================================\n\
00225 MSG: std_msgs/Header\n\
00226 # Standard metadata for higher-level stamped data types.\n\
00227 # This is generally used to communicate timestamped data \n\
00228 # in a particular coordinate frame.\n\
00229 # \n\
00230 # sequence ID: consecutively increasing ID \n\
00231 uint32 seq\n\
00232 #Two-integer timestamp that is expressed as:\n\
00233 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00234 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00235 # time-handling sugar is provided by the client library\n\
00236 time stamp\n\
00237 #Frame this data is associated with\n\
00238 # 0: no frame\n\
00239 # 1: global frame\n\
00240 string frame_id\n\
00241 \n\
00242 ================================================================================\n\
00243 MSG: sensor_msgs/PointField\n\
00244 # This message holds the description of one point entry in the\n\
00245 # PointCloud2 message format.\n\
00246 uint8 INT8 = 1\n\
00247 uint8 UINT8 = 2\n\
00248 uint8 INT16 = 3\n\
00249 uint8 UINT16 = 4\n\
00250 uint8 INT32 = 5\n\
00251 uint8 UINT32 = 6\n\
00252 uint8 FLOAT32 = 7\n\
00253 uint8 FLOAT64 = 8\n\
00254 \n\
00255 string name # Name of field\n\
00256 uint32 offset # Offset from start of point struct\n\
00257 uint8 datatype # Datatype enumeration, see above\n\
00258 uint32 count # How many elements in the field\n\
00259 \n\
00260 ";
00261 }
00262
00263 static const char* value(const ::tabletop_object_detector::SegmentObjectInHandResponse_<ContainerAllocator> &) { return value(); }
00264 };
00265
00266 }
00267 }
00268
00269 namespace ros
00270 {
00271 namespace serialization
00272 {
00273
00274 template<class ContainerAllocator> struct Serializer< ::tabletop_object_detector::SegmentObjectInHandRequest_<ContainerAllocator> >
00275 {
00276 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00277 {
00278 stream.next(m.wrist_frame);
00279 }
00280
00281 ROS_DECLARE_ALLINONE_SERIALIZER;
00282 };
00283 }
00284 }
00285
00286
00287 namespace ros
00288 {
00289 namespace serialization
00290 {
00291
00292 template<class ContainerAllocator> struct Serializer< ::tabletop_object_detector::SegmentObjectInHandResponse_<ContainerAllocator> >
00293 {
00294 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00295 {
00296 stream.next(m.cluster);
00297 stream.next(m.result);
00298 }
00299
00300 ROS_DECLARE_ALLINONE_SERIALIZER;
00301 };
00302 }
00303 }
00304
00305 namespace ros
00306 {
00307 namespace service_traits
00308 {
00309 template<>
00310 struct MD5Sum<tabletop_object_detector::SegmentObjectInHand> {
00311 static const char* value()
00312 {
00313 return "3ce40b2b26a5a7d08d4f8e1e350c63f7";
00314 }
00315
00316 static const char* value(const tabletop_object_detector::SegmentObjectInHand&) { return value(); }
00317 };
00318
00319 template<>
00320 struct DataType<tabletop_object_detector::SegmentObjectInHand> {
00321 static const char* value()
00322 {
00323 return "tabletop_object_detector/SegmentObjectInHand";
00324 }
00325
00326 static const char* value(const tabletop_object_detector::SegmentObjectInHand&) { return value(); }
00327 };
00328
00329 template<class ContainerAllocator>
00330 struct MD5Sum<tabletop_object_detector::SegmentObjectInHandRequest_<ContainerAllocator> > {
00331 static const char* value()
00332 {
00333 return "3ce40b2b26a5a7d08d4f8e1e350c63f7";
00334 }
00335
00336 static const char* value(const tabletop_object_detector::SegmentObjectInHandRequest_<ContainerAllocator> &) { return value(); }
00337 };
00338
00339 template<class ContainerAllocator>
00340 struct DataType<tabletop_object_detector::SegmentObjectInHandRequest_<ContainerAllocator> > {
00341 static const char* value()
00342 {
00343 return "tabletop_object_detector/SegmentObjectInHand";
00344 }
00345
00346 static const char* value(const tabletop_object_detector::SegmentObjectInHandRequest_<ContainerAllocator> &) { return value(); }
00347 };
00348
00349 template<class ContainerAllocator>
00350 struct MD5Sum<tabletop_object_detector::SegmentObjectInHandResponse_<ContainerAllocator> > {
00351 static const char* value()
00352 {
00353 return "3ce40b2b26a5a7d08d4f8e1e350c63f7";
00354 }
00355
00356 static const char* value(const tabletop_object_detector::SegmentObjectInHandResponse_<ContainerAllocator> &) { return value(); }
00357 };
00358
00359 template<class ContainerAllocator>
00360 struct DataType<tabletop_object_detector::SegmentObjectInHandResponse_<ContainerAllocator> > {
00361 static const char* value()
00362 {
00363 return "tabletop_object_detector/SegmentObjectInHand";
00364 }
00365
00366 static const char* value(const tabletop_object_detector::SegmentObjectInHandResponse_<ContainerAllocator> &) { return value(); }
00367 };
00368
00369 }
00370 }
00371
00372 #endif // TABLETOP_OBJECT_DETECTOR_SERVICE_SEGMENTOBJECTINHAND_H
00373