Go to the documentation of this file.00001
00002 #ifndef SRS_LEG_DETECTOR_SERVICE_DETECTLEGS_H
00003 #define SRS_LEG_DETECTOR_SERVICE_DETECTLEGS_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/PointCloud.h"
00022
00023 namespace srs_leg_detector
00024 {
00025 template <class ContainerAllocator>
00026 struct DetectLegsRequest_ {
00027 typedef DetectLegsRequest_<ContainerAllocator> Type;
00028
00029 DetectLegsRequest_()
00030 {
00031 }
00032
00033 DetectLegsRequest_(const ContainerAllocator& _alloc)
00034 {
00035 }
00036
00037
00038 typedef boost::shared_ptr< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> > Ptr;
00039 typedef boost::shared_ptr< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> const> ConstPtr;
00040 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00041 };
00042 typedef ::srs_leg_detector::DetectLegsRequest_<std::allocator<void> > DetectLegsRequest;
00043
00044 typedef boost::shared_ptr< ::srs_leg_detector::DetectLegsRequest> DetectLegsRequestPtr;
00045 typedef boost::shared_ptr< ::srs_leg_detector::DetectLegsRequest const> DetectLegsRequestConstPtr;
00046
00047
00048
00049 template <class ContainerAllocator>
00050 struct DetectLegsResponse_ {
00051 typedef DetectLegsResponse_<ContainerAllocator> Type;
00052
00053 DetectLegsResponse_()
00054 : leg_list()
00055 {
00056 }
00057
00058 DetectLegsResponse_(const ContainerAllocator& _alloc)
00059 : leg_list(_alloc)
00060 {
00061 }
00062
00063 typedef ::sensor_msgs::PointCloud_<ContainerAllocator> _leg_list_type;
00064 ::sensor_msgs::PointCloud_<ContainerAllocator> leg_list;
00065
00066
00067 typedef boost::shared_ptr< ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> > Ptr;
00068 typedef boost::shared_ptr< ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> const> ConstPtr;
00069 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00070 };
00071 typedef ::srs_leg_detector::DetectLegsResponse_<std::allocator<void> > DetectLegsResponse;
00072
00073 typedef boost::shared_ptr< ::srs_leg_detector::DetectLegsResponse> DetectLegsResponsePtr;
00074 typedef boost::shared_ptr< ::srs_leg_detector::DetectLegsResponse const> DetectLegsResponseConstPtr;
00075
00076
00077 struct DetectLegs
00078 {
00079
00080 typedef DetectLegsRequest Request;
00081 typedef DetectLegsResponse Response;
00082 Request request;
00083 Response response;
00084
00085 typedef Request RequestType;
00086 typedef Response ResponseType;
00087 };
00088 }
00089
00090 namespace ros
00091 {
00092 namespace message_traits
00093 {
00094 template<class ContainerAllocator> struct IsMessage< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> > : public TrueType {};
00095 template<class ContainerAllocator> struct IsMessage< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> const> : public TrueType {};
00096 template<class ContainerAllocator>
00097 struct MD5Sum< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> > {
00098 static const char* value()
00099 {
00100 return "d41d8cd98f00b204e9800998ecf8427e";
00101 }
00102
00103 static const char* value(const ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> &) { return value(); }
00104 static const uint64_t static_value1 = 0xd41d8cd98f00b204ULL;
00105 static const uint64_t static_value2 = 0xe9800998ecf8427eULL;
00106 };
00107
00108 template<class ContainerAllocator>
00109 struct DataType< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> > {
00110 static const char* value()
00111 {
00112 return "srs_leg_detector/DetectLegsRequest";
00113 }
00114
00115 static const char* value(const ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> &) { return value(); }
00116 };
00117
00118 template<class ContainerAllocator>
00119 struct Definition< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> > {
00120 static const char* value()
00121 {
00122 return "\n\
00123 \n\
00124 ";
00125 }
00126
00127 static const char* value(const ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> &) { return value(); }
00128 };
00129
00130 template<class ContainerAllocator> struct IsFixedSize< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> > : public TrueType {};
00131 }
00132 }
00133
00134
00135 namespace ros
00136 {
00137 namespace message_traits
00138 {
00139 template<class ContainerAllocator> struct IsMessage< ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> > : public TrueType {};
00140 template<class ContainerAllocator> struct IsMessage< ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> const> : public TrueType {};
00141 template<class ContainerAllocator>
00142 struct MD5Sum< ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> > {
00143 static const char* value()
00144 {
00145 return "941854f3e81fd64b94eaa0d5b1ad95e1";
00146 }
00147
00148 static const char* value(const ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> &) { return value(); }
00149 static const uint64_t static_value1 = 0x941854f3e81fd64bULL;
00150 static const uint64_t static_value2 = 0x94eaa0d5b1ad95e1ULL;
00151 };
00152
00153 template<class ContainerAllocator>
00154 struct DataType< ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> > {
00155 static const char* value()
00156 {
00157 return "srs_leg_detector/DetectLegsResponse";
00158 }
00159
00160 static const char* value(const ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> &) { return value(); }
00161 };
00162
00163 template<class ContainerAllocator>
00164 struct Definition< ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> > {
00165 static const char* value()
00166 {
00167 return "\n\
00168 sensor_msgs/PointCloud leg_list\n\
00169 \n\
00170 \n\
00171 ================================================================================\n\
00172 MSG: sensor_msgs/PointCloud\n\
00173 # This message holds a collection of 3d points, plus optional additional\n\
00174 # information about each point.\n\
00175 \n\
00176 # Time of sensor data acquisition, coordinate frame ID.\n\
00177 Header header\n\
00178 \n\
00179 # Array of 3d points. Each Point32 should be interpreted as a 3d point\n\
00180 # in the frame given in the header.\n\
00181 geometry_msgs/Point32[] points\n\
00182 \n\
00183 # Each channel should have the same number of elements as points array,\n\
00184 # and the data in each channel should correspond 1:1 with each point.\n\
00185 # Channel names in common practice are listed in ChannelFloat32.msg.\n\
00186 ChannelFloat32[] channels\n\
00187 \n\
00188 ================================================================================\n\
00189 MSG: std_msgs/Header\n\
00190 # Standard metadata for higher-level stamped data types.\n\
00191 # This is generally used to communicate timestamped data \n\
00192 # in a particular coordinate frame.\n\
00193 # \n\
00194 # sequence ID: consecutively increasing ID \n\
00195 uint32 seq\n\
00196 #Two-integer timestamp that is expressed as:\n\
00197 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00198 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00199 # time-handling sugar is provided by the client library\n\
00200 time stamp\n\
00201 #Frame this data is associated with\n\
00202 # 0: no frame\n\
00203 # 1: global frame\n\
00204 string frame_id\n\
00205 \n\
00206 ================================================================================\n\
00207 MSG: geometry_msgs/Point32\n\
00208 # This contains the position of a point in free space(with 32 bits of precision).\n\
00209 # It is recommeded to use Point wherever possible instead of Point32. \n\
00210 # \n\
00211 # This recommendation is to promote interoperability. \n\
00212 #\n\
00213 # This message is designed to take up less space when sending\n\
00214 # lots of points at once, as in the case of a PointCloud. \n\
00215 \n\
00216 float32 x\n\
00217 float32 y\n\
00218 float32 z\n\
00219 ================================================================================\n\
00220 MSG: sensor_msgs/ChannelFloat32\n\
00221 # This message is used by the PointCloud message to hold optional data\n\
00222 # associated with each point in the cloud. The length of the values\n\
00223 # array should be the same as the length of the points array in the\n\
00224 # PointCloud, and each value should be associated with the corresponding\n\
00225 # point.\n\
00226 \n\
00227 # Channel names in existing practice include:\n\
00228 # \"u\", \"v\" - row and column (respectively) in the left stereo image.\n\
00229 # This is opposite to usual conventions but remains for\n\
00230 # historical reasons. The newer PointCloud2 message has no\n\
00231 # such problem.\n\
00232 # \"rgb\" - For point clouds produced by color stereo cameras. uint8\n\
00233 # (R,G,B) values packed into the least significant 24 bits,\n\
00234 # in order.\n\
00235 # \"intensity\" - laser or pixel intensity.\n\
00236 # \"distance\"\n\
00237 \n\
00238 # The channel name should give semantics of the channel (e.g.\n\
00239 # \"intensity\" instead of \"value\").\n\
00240 string name\n\
00241 \n\
00242 # The values array should be 1-1 with the elements of the associated\n\
00243 # PointCloud.\n\
00244 float32[] values\n\
00245 \n\
00246 ";
00247 }
00248
00249 static const char* value(const ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> &) { return value(); }
00250 };
00251
00252 }
00253 }
00254
00255 namespace ros
00256 {
00257 namespace serialization
00258 {
00259
00260 template<class ContainerAllocator> struct Serializer< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> >
00261 {
00262 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00263 {
00264 }
00265
00266 ROS_DECLARE_ALLINONE_SERIALIZER;
00267 };
00268 }
00269 }
00270
00271
00272 namespace ros
00273 {
00274 namespace serialization
00275 {
00276
00277 template<class ContainerAllocator> struct Serializer< ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> >
00278 {
00279 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00280 {
00281 stream.next(m.leg_list);
00282 }
00283
00284 ROS_DECLARE_ALLINONE_SERIALIZER;
00285 };
00286 }
00287 }
00288
00289 namespace ros
00290 {
00291 namespace service_traits
00292 {
00293 template<>
00294 struct MD5Sum<srs_leg_detector::DetectLegs> {
00295 static const char* value()
00296 {
00297 return "941854f3e81fd64b94eaa0d5b1ad95e1";
00298 }
00299
00300 static const char* value(const srs_leg_detector::DetectLegs&) { return value(); }
00301 };
00302
00303 template<>
00304 struct DataType<srs_leg_detector::DetectLegs> {
00305 static const char* value()
00306 {
00307 return "srs_leg_detector/DetectLegs";
00308 }
00309
00310 static const char* value(const srs_leg_detector::DetectLegs&) { return value(); }
00311 };
00312
00313 template<class ContainerAllocator>
00314 struct MD5Sum<srs_leg_detector::DetectLegsRequest_<ContainerAllocator> > {
00315 static const char* value()
00316 {
00317 return "941854f3e81fd64b94eaa0d5b1ad95e1";
00318 }
00319
00320 static const char* value(const srs_leg_detector::DetectLegsRequest_<ContainerAllocator> &) { return value(); }
00321 };
00322
00323 template<class ContainerAllocator>
00324 struct DataType<srs_leg_detector::DetectLegsRequest_<ContainerAllocator> > {
00325 static const char* value()
00326 {
00327 return "srs_leg_detector/DetectLegs";
00328 }
00329
00330 static const char* value(const srs_leg_detector::DetectLegsRequest_<ContainerAllocator> &) { return value(); }
00331 };
00332
00333 template<class ContainerAllocator>
00334 struct MD5Sum<srs_leg_detector::DetectLegsResponse_<ContainerAllocator> > {
00335 static const char* value()
00336 {
00337 return "941854f3e81fd64b94eaa0d5b1ad95e1";
00338 }
00339
00340 static const char* value(const srs_leg_detector::DetectLegsResponse_<ContainerAllocator> &) { return value(); }
00341 };
00342
00343 template<class ContainerAllocator>
00344 struct DataType<srs_leg_detector::DetectLegsResponse_<ContainerAllocator> > {
00345 static const char* value()
00346 {
00347 return "srs_leg_detector/DetectLegs";
00348 }
00349
00350 static const char* value(const srs_leg_detector::DetectLegsResponse_<ContainerAllocator> &) { return value(); }
00351 };
00352
00353 }
00354 }
00355
00356 #endif // SRS_LEG_DETECTOR_SERVICE_DETECTLEGS_H
00357