Go to the documentation of this file.00001
00002 #ifndef ETHZASL_ICP_MAPPER_SERVICE_CORRECTPOSE_H
00003 #define ETHZASL_ICP_MAPPER_SERVICE_CORRECTPOSE_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 "nav_msgs/Odometry.h"
00020
00021
00022
00023 namespace ethzasl_icp_mapper
00024 {
00025 template <class ContainerAllocator>
00026 struct CorrectPoseRequest_ {
00027 typedef CorrectPoseRequest_<ContainerAllocator> Type;
00028
00029 CorrectPoseRequest_()
00030 : odom()
00031 {
00032 }
00033
00034 CorrectPoseRequest_(const ContainerAllocator& _alloc)
00035 : odom(_alloc)
00036 {
00037 }
00038
00039 typedef ::nav_msgs::Odometry_<ContainerAllocator> _odom_type;
00040 ::nav_msgs::Odometry_<ContainerAllocator> odom;
00041
00042
00043 typedef boost::shared_ptr< ::ethzasl_icp_mapper::CorrectPoseRequest_<ContainerAllocator> > Ptr;
00044 typedef boost::shared_ptr< ::ethzasl_icp_mapper::CorrectPoseRequest_<ContainerAllocator> const> ConstPtr;
00045 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00046 };
00047 typedef ::ethzasl_icp_mapper::CorrectPoseRequest_<std::allocator<void> > CorrectPoseRequest;
00048
00049 typedef boost::shared_ptr< ::ethzasl_icp_mapper::CorrectPoseRequest> CorrectPoseRequestPtr;
00050 typedef boost::shared_ptr< ::ethzasl_icp_mapper::CorrectPoseRequest const> CorrectPoseRequestConstPtr;
00051
00052
00053 template <class ContainerAllocator>
00054 struct CorrectPoseResponse_ {
00055 typedef CorrectPoseResponse_<ContainerAllocator> Type;
00056
00057 CorrectPoseResponse_()
00058 {
00059 }
00060
00061 CorrectPoseResponse_(const ContainerAllocator& _alloc)
00062 {
00063 }
00064
00065
00066 typedef boost::shared_ptr< ::ethzasl_icp_mapper::CorrectPoseResponse_<ContainerAllocator> > Ptr;
00067 typedef boost::shared_ptr< ::ethzasl_icp_mapper::CorrectPoseResponse_<ContainerAllocator> const> ConstPtr;
00068 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00069 };
00070 typedef ::ethzasl_icp_mapper::CorrectPoseResponse_<std::allocator<void> > CorrectPoseResponse;
00071
00072 typedef boost::shared_ptr< ::ethzasl_icp_mapper::CorrectPoseResponse> CorrectPoseResponsePtr;
00073 typedef boost::shared_ptr< ::ethzasl_icp_mapper::CorrectPoseResponse const> CorrectPoseResponseConstPtr;
00074
00075 struct CorrectPose
00076 {
00077
00078 typedef CorrectPoseRequest Request;
00079 typedef CorrectPoseResponse Response;
00080 Request request;
00081 Response response;
00082
00083 typedef Request RequestType;
00084 typedef Response ResponseType;
00085 };
00086 }
00087
00088 namespace ros
00089 {
00090 namespace message_traits
00091 {
00092 template<class ContainerAllocator> struct IsMessage< ::ethzasl_icp_mapper::CorrectPoseRequest_<ContainerAllocator> > : public TrueType {};
00093 template<class ContainerAllocator> struct IsMessage< ::ethzasl_icp_mapper::CorrectPoseRequest_<ContainerAllocator> const> : public TrueType {};
00094 template<class ContainerAllocator>
00095 struct MD5Sum< ::ethzasl_icp_mapper::CorrectPoseRequest_<ContainerAllocator> > {
00096 static const char* value()
00097 {
00098 return "75d9701e058ed9a7608ba3dbc16b5b7e";
00099 }
00100
00101 static const char* value(const ::ethzasl_icp_mapper::CorrectPoseRequest_<ContainerAllocator> &) { return value(); }
00102 static const uint64_t static_value1 = 0x75d9701e058ed9a7ULL;
00103 static const uint64_t static_value2 = 0x608ba3dbc16b5b7eULL;
00104 };
00105
00106 template<class ContainerAllocator>
00107 struct DataType< ::ethzasl_icp_mapper::CorrectPoseRequest_<ContainerAllocator> > {
00108 static const char* value()
00109 {
00110 return "ethzasl_icp_mapper/CorrectPoseRequest";
00111 }
00112
00113 static const char* value(const ::ethzasl_icp_mapper::CorrectPoseRequest_<ContainerAllocator> &) { return value(); }
00114 };
00115
00116 template<class ContainerAllocator>
00117 struct Definition< ::ethzasl_icp_mapper::CorrectPoseRequest_<ContainerAllocator> > {
00118 static const char* value()
00119 {
00120 return "nav_msgs/Odometry odom\n\
00121 \n\
00122 ================================================================================\n\
00123 MSG: nav_msgs/Odometry\n\
00124 # This represents an estimate of a position and velocity in free space. \n\
00125 # The pose in this message should be specified in the coordinate frame given by header.frame_id.\n\
00126 # The twist in this message should be specified in the coordinate frame given by the child_frame_id\n\
00127 Header header\n\
00128 string child_frame_id\n\
00129 geometry_msgs/PoseWithCovariance pose\n\
00130 geometry_msgs/TwistWithCovariance twist\n\
00131 \n\
00132 ================================================================================\n\
00133 MSG: std_msgs/Header\n\
00134 # Standard metadata for higher-level stamped data types.\n\
00135 # This is generally used to communicate timestamped data \n\
00136 # in a particular coordinate frame.\n\
00137 # \n\
00138 # sequence ID: consecutively increasing ID \n\
00139 uint32 seq\n\
00140 #Two-integer timestamp that is expressed as:\n\
00141 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00142 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00143 # time-handling sugar is provided by the client library\n\
00144 time stamp\n\
00145 #Frame this data is associated with\n\
00146 # 0: no frame\n\
00147 # 1: global frame\n\
00148 string frame_id\n\
00149 \n\
00150 ================================================================================\n\
00151 MSG: geometry_msgs/PoseWithCovariance\n\
00152 # This represents a pose in free space with uncertainty.\n\
00153 \n\
00154 Pose pose\n\
00155 \n\
00156 # Row-major representation of the 6x6 covariance matrix\n\
00157 # The orientation parameters use a fixed-axis representation.\n\
00158 # In order, the parameters are:\n\
00159 # (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)\n\
00160 float64[36] covariance\n\
00161 \n\
00162 ================================================================================\n\
00163 MSG: geometry_msgs/Pose\n\
00164 # A representation of pose in free space, composed of postion and orientation. \n\
00165 Point position\n\
00166 Quaternion orientation\n\
00167 \n\
00168 ================================================================================\n\
00169 MSG: geometry_msgs/Point\n\
00170 # This contains the position of a point in free space\n\
00171 float64 x\n\
00172 float64 y\n\
00173 float64 z\n\
00174 \n\
00175 ================================================================================\n\
00176 MSG: geometry_msgs/Quaternion\n\
00177 # This represents an orientation in free space in quaternion form.\n\
00178 \n\
00179 float64 x\n\
00180 float64 y\n\
00181 float64 z\n\
00182 float64 w\n\
00183 \n\
00184 ================================================================================\n\
00185 MSG: geometry_msgs/TwistWithCovariance\n\
00186 # This expresses velocity in free space with uncertianty.\n\
00187 \n\
00188 Twist twist\n\
00189 \n\
00190 # Row-major representation of the 6x6 covariance matrix\n\
00191 # The orientation parameters use a fixed-axis representation.\n\
00192 # In order, the parameters are:\n\
00193 # (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)\n\
00194 float64[36] covariance\n\
00195 \n\
00196 ================================================================================\n\
00197 MSG: geometry_msgs/Twist\n\
00198 # This expresses velocity in free space broken into it's linear and angular parts. \n\
00199 Vector3 linear\n\
00200 Vector3 angular\n\
00201 \n\
00202 ================================================================================\n\
00203 MSG: geometry_msgs/Vector3\n\
00204 # This represents a vector in free space. \n\
00205 \n\
00206 float64 x\n\
00207 float64 y\n\
00208 float64 z\n\
00209 ";
00210 }
00211
00212 static const char* value(const ::ethzasl_icp_mapper::CorrectPoseRequest_<ContainerAllocator> &) { return value(); }
00213 };
00214
00215 }
00216 }
00217
00218
00219 namespace ros
00220 {
00221 namespace message_traits
00222 {
00223 template<class ContainerAllocator> struct IsMessage< ::ethzasl_icp_mapper::CorrectPoseResponse_<ContainerAllocator> > : public TrueType {};
00224 template<class ContainerAllocator> struct IsMessage< ::ethzasl_icp_mapper::CorrectPoseResponse_<ContainerAllocator> const> : public TrueType {};
00225 template<class ContainerAllocator>
00226 struct MD5Sum< ::ethzasl_icp_mapper::CorrectPoseResponse_<ContainerAllocator> > {
00227 static const char* value()
00228 {
00229 return "d41d8cd98f00b204e9800998ecf8427e";
00230 }
00231
00232 static const char* value(const ::ethzasl_icp_mapper::CorrectPoseResponse_<ContainerAllocator> &) { return value(); }
00233 static const uint64_t static_value1 = 0xd41d8cd98f00b204ULL;
00234 static const uint64_t static_value2 = 0xe9800998ecf8427eULL;
00235 };
00236
00237 template<class ContainerAllocator>
00238 struct DataType< ::ethzasl_icp_mapper::CorrectPoseResponse_<ContainerAllocator> > {
00239 static const char* value()
00240 {
00241 return "ethzasl_icp_mapper/CorrectPoseResponse";
00242 }
00243
00244 static const char* value(const ::ethzasl_icp_mapper::CorrectPoseResponse_<ContainerAllocator> &) { return value(); }
00245 };
00246
00247 template<class ContainerAllocator>
00248 struct Definition< ::ethzasl_icp_mapper::CorrectPoseResponse_<ContainerAllocator> > {
00249 static const char* value()
00250 {
00251 return "\n\
00252 \n\
00253 \n\
00254 ";
00255 }
00256
00257 static const char* value(const ::ethzasl_icp_mapper::CorrectPoseResponse_<ContainerAllocator> &) { return value(); }
00258 };
00259
00260 template<class ContainerAllocator> struct IsFixedSize< ::ethzasl_icp_mapper::CorrectPoseResponse_<ContainerAllocator> > : public TrueType {};
00261 }
00262 }
00263
00264 namespace ros
00265 {
00266 namespace serialization
00267 {
00268
00269 template<class ContainerAllocator> struct Serializer< ::ethzasl_icp_mapper::CorrectPoseRequest_<ContainerAllocator> >
00270 {
00271 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00272 {
00273 stream.next(m.odom);
00274 }
00275
00276 ROS_DECLARE_ALLINONE_SERIALIZER;
00277 };
00278 }
00279 }
00280
00281
00282 namespace ros
00283 {
00284 namespace serialization
00285 {
00286
00287 template<class ContainerAllocator> struct Serializer< ::ethzasl_icp_mapper::CorrectPoseResponse_<ContainerAllocator> >
00288 {
00289 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00290 {
00291 }
00292
00293 ROS_DECLARE_ALLINONE_SERIALIZER;
00294 };
00295 }
00296 }
00297
00298 namespace ros
00299 {
00300 namespace service_traits
00301 {
00302 template<>
00303 struct MD5Sum<ethzasl_icp_mapper::CorrectPose> {
00304 static const char* value()
00305 {
00306 return "75d9701e058ed9a7608ba3dbc16b5b7e";
00307 }
00308
00309 static const char* value(const ethzasl_icp_mapper::CorrectPose&) { return value(); }
00310 };
00311
00312 template<>
00313 struct DataType<ethzasl_icp_mapper::CorrectPose> {
00314 static const char* value()
00315 {
00316 return "ethzasl_icp_mapper/CorrectPose";
00317 }
00318
00319 static const char* value(const ethzasl_icp_mapper::CorrectPose&) { return value(); }
00320 };
00321
00322 template<class ContainerAllocator>
00323 struct MD5Sum<ethzasl_icp_mapper::CorrectPoseRequest_<ContainerAllocator> > {
00324 static const char* value()
00325 {
00326 return "75d9701e058ed9a7608ba3dbc16b5b7e";
00327 }
00328
00329 static const char* value(const ethzasl_icp_mapper::CorrectPoseRequest_<ContainerAllocator> &) { return value(); }
00330 };
00331
00332 template<class ContainerAllocator>
00333 struct DataType<ethzasl_icp_mapper::CorrectPoseRequest_<ContainerAllocator> > {
00334 static const char* value()
00335 {
00336 return "ethzasl_icp_mapper/CorrectPose";
00337 }
00338
00339 static const char* value(const ethzasl_icp_mapper::CorrectPoseRequest_<ContainerAllocator> &) { return value(); }
00340 };
00341
00342 template<class ContainerAllocator>
00343 struct MD5Sum<ethzasl_icp_mapper::CorrectPoseResponse_<ContainerAllocator> > {
00344 static const char* value()
00345 {
00346 return "75d9701e058ed9a7608ba3dbc16b5b7e";
00347 }
00348
00349 static const char* value(const ethzasl_icp_mapper::CorrectPoseResponse_<ContainerAllocator> &) { return value(); }
00350 };
00351
00352 template<class ContainerAllocator>
00353 struct DataType<ethzasl_icp_mapper::CorrectPoseResponse_<ContainerAllocator> > {
00354 static const char* value()
00355 {
00356 return "ethzasl_icp_mapper/CorrectPose";
00357 }
00358
00359 static const char* value(const ethzasl_icp_mapper::CorrectPoseResponse_<ContainerAllocator> &) { return value(); }
00360 };
00361
00362 }
00363 }
00364
00365 #endif // ETHZASL_ICP_MAPPER_SERVICE_CORRECTPOSE_H
00366