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