00001
00002 #ifndef ART_MSGS_MESSAGE_ORDER_H
00003 #define ART_MSGS_MESSAGE_ORDER_H
00004 #include <string>
00005 #include <vector>
00006 #include <ostream>
00007 #include "ros/serialization.h"
00008 #include "ros/builtin_message_traits.h"
00009 #include "ros/message_operations.h"
00010 #include "ros/message.h"
00011 #include "ros/time.h"
00012
00013 #include "art_msgs/Behavior.h"
00014 #include "art_msgs/WayPoint.h"
00015 #include "art_msgs/WayPoint.h"
00016
00017 namespace art_msgs
00018 {
00019 template <class ContainerAllocator>
00020 struct Order_ : public ros::Message
00021 {
00022 typedef Order_<ContainerAllocator> Type;
00023
00024 Order_()
00025 : behavior()
00026 , waypt()
00027 , chkpt()
00028 , min_speed(0.0)
00029 , max_speed(0.0)
00030 , replan_num(0)
00031 , next_uturn(0)
00032 {
00033 }
00034
00035 Order_(const ContainerAllocator& _alloc)
00036 : behavior(_alloc)
00037 , waypt()
00038 , chkpt()
00039 , min_speed(0.0)
00040 , max_speed(0.0)
00041 , replan_num(0)
00042 , next_uturn(0)
00043 {
00044 waypt.assign( ::art_msgs::WayPoint_<ContainerAllocator> (_alloc));
00045 chkpt.assign( ::art_msgs::WayPoint_<ContainerAllocator> (_alloc));
00046 }
00047
00048 typedef ::art_msgs::Behavior_<ContainerAllocator> _behavior_type;
00049 ::art_msgs::Behavior_<ContainerAllocator> behavior;
00050
00051 typedef boost::array< ::art_msgs::WayPoint_<ContainerAllocator> , 5> _waypt_type;
00052 boost::array< ::art_msgs::WayPoint_<ContainerAllocator> , 5> waypt;
00053
00054 typedef boost::array< ::art_msgs::WayPoint_<ContainerAllocator> , 2> _chkpt_type;
00055 boost::array< ::art_msgs::WayPoint_<ContainerAllocator> , 2> chkpt;
00056
00057 typedef float _min_speed_type;
00058 float min_speed;
00059
00060 typedef float _max_speed_type;
00061 float max_speed;
00062
00063 typedef int32_t _replan_num_type;
00064 int32_t replan_num;
00065
00066 typedef int32_t _next_uturn_type;
00067 int32_t next_uturn;
00068
00069 enum { N_WAYPTS = 5 };
00070 enum { N_CHKPTS = 2 };
00071
00072 ROS_DEPRECATED uint32_t get_waypt_size() const { return (uint32_t)waypt.size(); }
00073 ROS_DEPRECATED uint32_t get_chkpt_size() const { return (uint32_t)chkpt.size(); }
00074 private:
00075 static const char* __s_getDataType_() { return "art_msgs/Order"; }
00076 public:
00077 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00078
00079 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00080
00081 private:
00082 static const char* __s_getMD5Sum_() { return "f43d538cba2d46c585cc23d97b9223b2"; }
00083 public:
00084 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00085
00086 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00087
00088 private:
00089 static const char* __s_getMessageDefinition_() { return "# commander order for the navigator\n\
00090 # $Id: Order.msg 615 2010-09-24 16:07:50Z jack.oquin $\n\
00091 \n\
00092 uint32 N_WAYPTS = 5 # number of way-points in order\n\
00093 uint32 N_CHKPTS = 2 # number of checkpoints in order\n\
00094 \n\
00095 Behavior behavior # requested behavior\n\
00096 art_msgs/WayPoint[5] waypt # way-point array\n\
00097 art_msgs/WayPoint[2] chkpt # next two goal checkpoints\n\
00098 float32 min_speed # in meters/sec\n\
00099 float32 max_speed\n\
00100 int32 replan_num\n\
00101 int32 next_uturn # Uturn between [1] and [2]\n\
00102 \n\
00103 ================================================================================\n\
00104 MSG: art_msgs/Behavior\n\
00105 # ART Navigator behaviors (lower numbers have higher priority)\n\
00106 # $Id: Behavior.msg 996 2011-02-27 16:07:34Z jack.oquin $\n\
00107 \n\
00108 # enumerated behavior values\n\
00109 int16 Abort = 0\n\
00110 int16 Quit = 1\n\
00111 int16 Pause = 2\n\
00112 int16 Run = 3\n\
00113 int16 Suspend = 4\n\
00114 int16 Initialize = 5\n\
00115 int16 Go = 6\n\
00116 int16 NONE = 7\n\
00117 int16 N_behaviors = 8\n\
00118 \n\
00119 int16 value\n\
00120 \n\
00121 ================================================================================\n\
00122 MSG: art_msgs/WayPoint\n\
00123 # Way-point attributes\n\
00124 # $Id: WayPoint.msg 614 2010-09-24 15:08:46Z jack.oquin $\n\
00125 \n\
00126 float64 latitude # latitude in degrees\n\
00127 float64 longitude # longitude in degrees\n\
00128 geometry_msgs/Point32 mapxy # MapXY position\n\
00129 MapID id # way-point ID\n\
00130 uint16 index # parser index of waypoint\n\
00131 \n\
00132 # way-point flags\n\
00133 bool is_entry # lane or zone exit point\n\
00134 bool is_exit # lane or zone entry point\n\
00135 bool is_goal # this is a goal checkpoint\n\
00136 bool is_lane_change # change lanes after here\n\
00137 bool is_spot # parking spot\n\
00138 bool is_stop # stop line here\n\
00139 bool is_perimeter # zone perimeter point\n\
00140 int32 checkpoint_id # checkpoint ID or zero\n\
00141 float32 lane_width\n\
00142 \n\
00143 ================================================================================\n\
00144 MSG: geometry_msgs/Point32\n\
00145 # This contains the position of a point in free space(with 32 bits of precision).\n\
00146 # It is recommeded to use Point wherever possible instead of Point32. \n\
00147 # \n\
00148 # This recommendation is to promote interoperability. \n\
00149 #\n\
00150 # This message is designed to take up less space when sending\n\
00151 # lots of points at once, as in the case of a PointCloud. \n\
00152 \n\
00153 float32 x\n\
00154 float32 y\n\
00155 float32 z\n\
00156 ================================================================================\n\
00157 MSG: art_msgs/MapID\n\
00158 # Road map identifier for segments, lanes and way-points.\n\
00159 # $Id: MapID.msg 614 2010-09-24 15:08:46Z jack.oquin $\n\
00160 \n\
00161 uint16 NULL_ID = 65535\n\
00162 \n\
00163 uint16 seg # segment ID\n\
00164 uint16 lane # lane ID\n\
00165 uint16 pt # way-point ID\n\
00166 \n\
00167 "; }
00168 public:
00169 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00170
00171 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00172
00173 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00174 {
00175 ros::serialization::OStream stream(write_ptr, 1000000000);
00176 ros::serialization::serialize(stream, behavior);
00177 ros::serialization::serialize(stream, waypt);
00178 ros::serialization::serialize(stream, chkpt);
00179 ros::serialization::serialize(stream, min_speed);
00180 ros::serialization::serialize(stream, max_speed);
00181 ros::serialization::serialize(stream, replan_num);
00182 ros::serialization::serialize(stream, next_uturn);
00183 return stream.getData();
00184 }
00185
00186 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00187 {
00188 ros::serialization::IStream stream(read_ptr, 1000000000);
00189 ros::serialization::deserialize(stream, behavior);
00190 ros::serialization::deserialize(stream, waypt);
00191 ros::serialization::deserialize(stream, chkpt);
00192 ros::serialization::deserialize(stream, min_speed);
00193 ros::serialization::deserialize(stream, max_speed);
00194 ros::serialization::deserialize(stream, replan_num);
00195 ros::serialization::deserialize(stream, next_uturn);
00196 return stream.getData();
00197 }
00198
00199 ROS_DEPRECATED virtual uint32_t serializationLength() const
00200 {
00201 uint32_t size = 0;
00202 size += ros::serialization::serializationLength(behavior);
00203 size += ros::serialization::serializationLength(waypt);
00204 size += ros::serialization::serializationLength(chkpt);
00205 size += ros::serialization::serializationLength(min_speed);
00206 size += ros::serialization::serializationLength(max_speed);
00207 size += ros::serialization::serializationLength(replan_num);
00208 size += ros::serialization::serializationLength(next_uturn);
00209 return size;
00210 }
00211
00212 typedef boost::shared_ptr< ::art_msgs::Order_<ContainerAllocator> > Ptr;
00213 typedef boost::shared_ptr< ::art_msgs::Order_<ContainerAllocator> const> ConstPtr;
00214 };
00215 typedef ::art_msgs::Order_<std::allocator<void> > Order;
00216
00217 typedef boost::shared_ptr< ::art_msgs::Order> OrderPtr;
00218 typedef boost::shared_ptr< ::art_msgs::Order const> OrderConstPtr;
00219
00220
00221 template<typename ContainerAllocator>
00222 std::ostream& operator<<(std::ostream& s, const ::art_msgs::Order_<ContainerAllocator> & v)
00223 {
00224 ros::message_operations::Printer< ::art_msgs::Order_<ContainerAllocator> >::stream(s, "", v);
00225 return s;}
00226
00227 }
00228
00229 namespace ros
00230 {
00231 namespace message_traits
00232 {
00233 template<class ContainerAllocator>
00234 struct MD5Sum< ::art_msgs::Order_<ContainerAllocator> > {
00235 static const char* value()
00236 {
00237 return "f43d538cba2d46c585cc23d97b9223b2";
00238 }
00239
00240 static const char* value(const ::art_msgs::Order_<ContainerAllocator> &) { return value(); }
00241 static const uint64_t static_value1 = 0xf43d538cba2d46c5ULL;
00242 static const uint64_t static_value2 = 0x85cc23d97b9223b2ULL;
00243 };
00244
00245 template<class ContainerAllocator>
00246 struct DataType< ::art_msgs::Order_<ContainerAllocator> > {
00247 static const char* value()
00248 {
00249 return "art_msgs/Order";
00250 }
00251
00252 static const char* value(const ::art_msgs::Order_<ContainerAllocator> &) { return value(); }
00253 };
00254
00255 template<class ContainerAllocator>
00256 struct Definition< ::art_msgs::Order_<ContainerAllocator> > {
00257 static const char* value()
00258 {
00259 return "# commander order for the navigator\n\
00260 # $Id: Order.msg 615 2010-09-24 16:07:50Z jack.oquin $\n\
00261 \n\
00262 uint32 N_WAYPTS = 5 # number of way-points in order\n\
00263 uint32 N_CHKPTS = 2 # number of checkpoints in order\n\
00264 \n\
00265 Behavior behavior # requested behavior\n\
00266 art_msgs/WayPoint[5] waypt # way-point array\n\
00267 art_msgs/WayPoint[2] chkpt # next two goal checkpoints\n\
00268 float32 min_speed # in meters/sec\n\
00269 float32 max_speed\n\
00270 int32 replan_num\n\
00271 int32 next_uturn # Uturn between [1] and [2]\n\
00272 \n\
00273 ================================================================================\n\
00274 MSG: art_msgs/Behavior\n\
00275 # ART Navigator behaviors (lower numbers have higher priority)\n\
00276 # $Id: Behavior.msg 996 2011-02-27 16:07:34Z jack.oquin $\n\
00277 \n\
00278 # enumerated behavior values\n\
00279 int16 Abort = 0\n\
00280 int16 Quit = 1\n\
00281 int16 Pause = 2\n\
00282 int16 Run = 3\n\
00283 int16 Suspend = 4\n\
00284 int16 Initialize = 5\n\
00285 int16 Go = 6\n\
00286 int16 NONE = 7\n\
00287 int16 N_behaviors = 8\n\
00288 \n\
00289 int16 value\n\
00290 \n\
00291 ================================================================================\n\
00292 MSG: art_msgs/WayPoint\n\
00293 # Way-point attributes\n\
00294 # $Id: WayPoint.msg 614 2010-09-24 15:08:46Z jack.oquin $\n\
00295 \n\
00296 float64 latitude # latitude in degrees\n\
00297 float64 longitude # longitude in degrees\n\
00298 geometry_msgs/Point32 mapxy # MapXY position\n\
00299 MapID id # way-point ID\n\
00300 uint16 index # parser index of waypoint\n\
00301 \n\
00302 # way-point flags\n\
00303 bool is_entry # lane or zone exit point\n\
00304 bool is_exit # lane or zone entry point\n\
00305 bool is_goal # this is a goal checkpoint\n\
00306 bool is_lane_change # change lanes after here\n\
00307 bool is_spot # parking spot\n\
00308 bool is_stop # stop line here\n\
00309 bool is_perimeter # zone perimeter point\n\
00310 int32 checkpoint_id # checkpoint ID or zero\n\
00311 float32 lane_width\n\
00312 \n\
00313 ================================================================================\n\
00314 MSG: geometry_msgs/Point32\n\
00315 # This contains the position of a point in free space(with 32 bits of precision).\n\
00316 # It is recommeded to use Point wherever possible instead of Point32. \n\
00317 # \n\
00318 # This recommendation is to promote interoperability. \n\
00319 #\n\
00320 # This message is designed to take up less space when sending\n\
00321 # lots of points at once, as in the case of a PointCloud. \n\
00322 \n\
00323 float32 x\n\
00324 float32 y\n\
00325 float32 z\n\
00326 ================================================================================\n\
00327 MSG: art_msgs/MapID\n\
00328 # Road map identifier for segments, lanes and way-points.\n\
00329 # $Id: MapID.msg 614 2010-09-24 15:08:46Z jack.oquin $\n\
00330 \n\
00331 uint16 NULL_ID = 65535\n\
00332 \n\
00333 uint16 seg # segment ID\n\
00334 uint16 lane # lane ID\n\
00335 uint16 pt # way-point ID\n\
00336 \n\
00337 ";
00338 }
00339
00340 static const char* value(const ::art_msgs::Order_<ContainerAllocator> &) { return value(); }
00341 };
00342
00343 template<class ContainerAllocator> struct IsFixedSize< ::art_msgs::Order_<ContainerAllocator> > : public TrueType {};
00344 }
00345 }
00346
00347 namespace ros
00348 {
00349 namespace serialization
00350 {
00351
00352 template<class ContainerAllocator> struct Serializer< ::art_msgs::Order_<ContainerAllocator> >
00353 {
00354 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00355 {
00356 stream.next(m.behavior);
00357 stream.next(m.waypt);
00358 stream.next(m.chkpt);
00359 stream.next(m.min_speed);
00360 stream.next(m.max_speed);
00361 stream.next(m.replan_num);
00362 stream.next(m.next_uturn);
00363 }
00364
00365 ROS_DECLARE_ALLINONE_SERIALIZER;
00366 };
00367 }
00368 }
00369
00370 namespace ros
00371 {
00372 namespace message_operations
00373 {
00374
00375 template<class ContainerAllocator>
00376 struct Printer< ::art_msgs::Order_<ContainerAllocator> >
00377 {
00378 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::art_msgs::Order_<ContainerAllocator> & v)
00379 {
00380 s << indent << "behavior: ";
00381 s << std::endl;
00382 Printer< ::art_msgs::Behavior_<ContainerAllocator> >::stream(s, indent + " ", v.behavior);
00383 s << indent << "waypt[]" << std::endl;
00384 for (size_t i = 0; i < v.waypt.size(); ++i)
00385 {
00386 s << indent << " waypt[" << i << "]: ";
00387 s << std::endl;
00388 s << indent;
00389 Printer< ::art_msgs::WayPoint_<ContainerAllocator> >::stream(s, indent + " ", v.waypt[i]);
00390 }
00391 s << indent << "chkpt[]" << std::endl;
00392 for (size_t i = 0; i < v.chkpt.size(); ++i)
00393 {
00394 s << indent << " chkpt[" << i << "]: ";
00395 s << std::endl;
00396 s << indent;
00397 Printer< ::art_msgs::WayPoint_<ContainerAllocator> >::stream(s, indent + " ", v.chkpt[i]);
00398 }
00399 s << indent << "min_speed: ";
00400 Printer<float>::stream(s, indent + " ", v.min_speed);
00401 s << indent << "max_speed: ";
00402 Printer<float>::stream(s, indent + " ", v.max_speed);
00403 s << indent << "replan_num: ";
00404 Printer<int32_t>::stream(s, indent + " ", v.replan_num);
00405 s << indent << "next_uturn: ";
00406 Printer<int32_t>::stream(s, indent + " ", v.next_uturn);
00407 }
00408 };
00409
00410
00411 }
00412 }
00413
00414 #endif // ART_MSGS_MESSAGE_ORDER_H
00415