$search
00001 /* Auto-generated by genmsg_cpp for file /home/rosbuild/hudson/workspace/doc-electric-art_vehicle/doc_stacks/2013-03-01_14-08-11.497537/art_vehicle/art_msgs/msg/CarDrive.msg */ 00002 #ifndef ART_MSGS_MESSAGE_CARDRIVE_H 00003 #define ART_MSGS_MESSAGE_CARDRIVE_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 "art_msgs/Gear.h" 00018 #include "art_msgs/PilotBehavior.h" 00019 00020 namespace art_msgs 00021 { 00022 template <class ContainerAllocator> 00023 struct CarDrive_ { 00024 typedef CarDrive_<ContainerAllocator> Type; 00025 00026 CarDrive_() 00027 : speed(0.0) 00028 , acceleration(0.0) 00029 , jerk(0.0) 00030 , steering_angle(0.0) 00031 , gear() 00032 , behavior() 00033 { 00034 } 00035 00036 CarDrive_(const ContainerAllocator& _alloc) 00037 : speed(0.0) 00038 , acceleration(0.0) 00039 , jerk(0.0) 00040 , steering_angle(0.0) 00041 , gear(_alloc) 00042 , behavior(_alloc) 00043 { 00044 } 00045 00046 typedef float _speed_type; 00047 float speed; 00048 00049 typedef float _acceleration_type; 00050 float acceleration; 00051 00052 typedef float _jerk_type; 00053 float jerk; 00054 00055 typedef float _steering_angle_type; 00056 float steering_angle; 00057 00058 typedef ::art_msgs::Gear_<ContainerAllocator> _gear_type; 00059 ::art_msgs::Gear_<ContainerAllocator> gear; 00060 00061 typedef ::art_msgs::PilotBehavior_<ContainerAllocator> _behavior_type; 00062 ::art_msgs::PilotBehavior_<ContainerAllocator> behavior; 00063 00064 00065 private: 00066 static const char* __s_getDataType_() { return "art_msgs/CarDrive"; } 00067 public: 00068 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); } 00069 00070 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); } 00071 00072 private: 00073 static const char* __s_getMD5Sum_() { return "977b12f7daeec4c2a2276732baf95662"; } 00074 public: 00075 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); } 00076 00077 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); } 00078 00079 private: 00080 static const char* __s_getMessageDefinition_() { return "# Driving command for a car-like vehicle using Ackermann steering.\n\ 00081 # $Id: CarDrive.msg 1539 2011-05-09 04:09:20Z jack.oquin $\n\ 00082 \n\ 00083 # Drive at requested speed, acceleration and jerk (the 1st, 2nd and\n\ 00084 # 3rd derivatives of position). All are non-negative scalars. \n\ 00085 #\n\ 00086 # Speed is defined as the scalar magnitude of the velocity\n\ 00087 # vector. Direction (forwards or backwards) is determined by the gear.\n\ 00088 #\n\ 00089 # Zero acceleration means change speed as quickly as\n\ 00090 # possible. Positive acceleration may include deceleration as needed\n\ 00091 # to match the desired speed. It represents a desired rate and also a\n\ 00092 # limit not to exceed.\n\ 00093 #\n\ 00094 # Zero jerk means change acceleration as quickly as possible. Positive\n\ 00095 # jerk describes the desired rate of acceleration change in both\n\ 00096 # directions (positive and negative).\n\ 00097 #\n\ 00098 float32 speed # magnitude of velocity vector (m/s)\n\ 00099 float32 acceleration # desired acceleration (m/s^2)\n\ 00100 float32 jerk # desired jerk (m/s^3)\n\ 00101 \n\ 00102 # Assumes Ackermann (front-wheel) steering. This angle is the average\n\ 00103 # yaw of the two front wheels in the vehicle frame of reference\n\ 00104 # (positive left), ignoring their slightly differing angles as if it\n\ 00105 # were a tricycle. This is *not* the angle of the steering wheel\n\ 00106 # inside the passenger compartment.\n\ 00107 #\n\ 00108 float32 steering_angle # steering angle (radians)\n\ 00109 \n\ 00110 Gear gear # requested gear (no change if Naught)\n\ 00111 PilotBehavior behavior # requested pilot behavior\n\ 00112 \n\ 00113 ================================================================================\n\ 00114 MSG: art_msgs/Gear\n\ 00115 # ART vehicle transmission gear numbers\n\ 00116 #\n\ 00117 # Used by several different messages.\n\ 00118 \n\ 00119 # $Id: Gear.msg 1539 2011-05-09 04:09:20Z jack.oquin $\n\ 00120 \n\ 00121 # Gear numbers. \n\ 00122 #\n\ 00123 # Naught means: reset all Shifter relays; no change of CarDrive gear.\n\ 00124 uint8 Naught = 0\n\ 00125 uint8 Park = 1\n\ 00126 uint8 Reverse = 2\n\ 00127 uint8 Neutral = 3\n\ 00128 uint8 Drive = 4\n\ 00129 uint8 N_gears = 5\n\ 00130 \n\ 00131 uint8 value # requested or reported gear number\n\ 00132 \n\ 00133 ================================================================================\n\ 00134 MSG: art_msgs/PilotBehavior\n\ 00135 # ART autonomous vehicle pilot node behaviors.\n\ 00136 #\n\ 00137 # Normally, the pilot node does Run, continually sending commands to\n\ 00138 # the servo device actuators and monitoring their state. With Pause,\n\ 00139 # the pilot becomes passive, allowing a learning algorithm or human\n\ 00140 # controller direct access to those devices. In the Off state,\n\ 00141 # various devices are shut down: the transmission in Park, the brake\n\ 00142 # released, the throttle at idle. The engine is not turned off, but\n\ 00143 # it could be.\n\ 00144 \n\ 00145 # $Id: PilotBehavior.msg 1539 2011-05-09 04:09:20Z jack.oquin $\n\ 00146 \n\ 00147 # Behavior value\n\ 00148 uint8 value\n\ 00149 \n\ 00150 # Behavior numbers:\n\ 00151 uint8 Run = 0 # normal driving\n\ 00152 uint8 Pause = 1 # stop issuing servo commands\n\ 00153 uint8 Off = 2 # turn off devices\n\ 00154 uint8 N_behaviors = 3\n\ 00155 \n\ 00156 "; } 00157 public: 00158 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); } 00159 00160 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); } 00161 00162 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const 00163 { 00164 ros::serialization::OStream stream(write_ptr, 1000000000); 00165 ros::serialization::serialize(stream, speed); 00166 ros::serialization::serialize(stream, acceleration); 00167 ros::serialization::serialize(stream, jerk); 00168 ros::serialization::serialize(stream, steering_angle); 00169 ros::serialization::serialize(stream, gear); 00170 ros::serialization::serialize(stream, behavior); 00171 return stream.getData(); 00172 } 00173 00174 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr) 00175 { 00176 ros::serialization::IStream stream(read_ptr, 1000000000); 00177 ros::serialization::deserialize(stream, speed); 00178 ros::serialization::deserialize(stream, acceleration); 00179 ros::serialization::deserialize(stream, jerk); 00180 ros::serialization::deserialize(stream, steering_angle); 00181 ros::serialization::deserialize(stream, gear); 00182 ros::serialization::deserialize(stream, behavior); 00183 return stream.getData(); 00184 } 00185 00186 ROS_DEPRECATED virtual uint32_t serializationLength() const 00187 { 00188 uint32_t size = 0; 00189 size += ros::serialization::serializationLength(speed); 00190 size += ros::serialization::serializationLength(acceleration); 00191 size += ros::serialization::serializationLength(jerk); 00192 size += ros::serialization::serializationLength(steering_angle); 00193 size += ros::serialization::serializationLength(gear); 00194 size += ros::serialization::serializationLength(behavior); 00195 return size; 00196 } 00197 00198 typedef boost::shared_ptr< ::art_msgs::CarDrive_<ContainerAllocator> > Ptr; 00199 typedef boost::shared_ptr< ::art_msgs::CarDrive_<ContainerAllocator> const> ConstPtr; 00200 boost::shared_ptr<std::map<std::string, std::string> > __connection_header; 00201 }; // struct CarDrive 00202 typedef ::art_msgs::CarDrive_<std::allocator<void> > CarDrive; 00203 00204 typedef boost::shared_ptr< ::art_msgs::CarDrive> CarDrivePtr; 00205 typedef boost::shared_ptr< ::art_msgs::CarDrive const> CarDriveConstPtr; 00206 00207 00208 template<typename ContainerAllocator> 00209 std::ostream& operator<<(std::ostream& s, const ::art_msgs::CarDrive_<ContainerAllocator> & v) 00210 { 00211 ros::message_operations::Printer< ::art_msgs::CarDrive_<ContainerAllocator> >::stream(s, "", v); 00212 return s;} 00213 00214 } // namespace art_msgs 00215 00216 namespace ros 00217 { 00218 namespace message_traits 00219 { 00220 template<class ContainerAllocator> struct IsMessage< ::art_msgs::CarDrive_<ContainerAllocator> > : public TrueType {}; 00221 template<class ContainerAllocator> struct IsMessage< ::art_msgs::CarDrive_<ContainerAllocator> const> : public TrueType {}; 00222 template<class ContainerAllocator> 00223 struct MD5Sum< ::art_msgs::CarDrive_<ContainerAllocator> > { 00224 static const char* value() 00225 { 00226 return "977b12f7daeec4c2a2276732baf95662"; 00227 } 00228 00229 static const char* value(const ::art_msgs::CarDrive_<ContainerAllocator> &) { return value(); } 00230 static const uint64_t static_value1 = 0x977b12f7daeec4c2ULL; 00231 static const uint64_t static_value2 = 0xa2276732baf95662ULL; 00232 }; 00233 00234 template<class ContainerAllocator> 00235 struct DataType< ::art_msgs::CarDrive_<ContainerAllocator> > { 00236 static const char* value() 00237 { 00238 return "art_msgs/CarDrive"; 00239 } 00240 00241 static const char* value(const ::art_msgs::CarDrive_<ContainerAllocator> &) { return value(); } 00242 }; 00243 00244 template<class ContainerAllocator> 00245 struct Definition< ::art_msgs::CarDrive_<ContainerAllocator> > { 00246 static const char* value() 00247 { 00248 return "# Driving command for a car-like vehicle using Ackermann steering.\n\ 00249 # $Id: CarDrive.msg 1539 2011-05-09 04:09:20Z jack.oquin $\n\ 00250 \n\ 00251 # Drive at requested speed, acceleration and jerk (the 1st, 2nd and\n\ 00252 # 3rd derivatives of position). All are non-negative scalars. \n\ 00253 #\n\ 00254 # Speed is defined as the scalar magnitude of the velocity\n\ 00255 # vector. Direction (forwards or backwards) is determined by the gear.\n\ 00256 #\n\ 00257 # Zero acceleration means change speed as quickly as\n\ 00258 # possible. Positive acceleration may include deceleration as needed\n\ 00259 # to match the desired speed. It represents a desired rate and also a\n\ 00260 # limit not to exceed.\n\ 00261 #\n\ 00262 # Zero jerk means change acceleration as quickly as possible. Positive\n\ 00263 # jerk describes the desired rate of acceleration change in both\n\ 00264 # directions (positive and negative).\n\ 00265 #\n\ 00266 float32 speed # magnitude of velocity vector (m/s)\n\ 00267 float32 acceleration # desired acceleration (m/s^2)\n\ 00268 float32 jerk # desired jerk (m/s^3)\n\ 00269 \n\ 00270 # Assumes Ackermann (front-wheel) steering. This angle is the average\n\ 00271 # yaw of the two front wheels in the vehicle frame of reference\n\ 00272 # (positive left), ignoring their slightly differing angles as if it\n\ 00273 # were a tricycle. This is *not* the angle of the steering wheel\n\ 00274 # inside the passenger compartment.\n\ 00275 #\n\ 00276 float32 steering_angle # steering angle (radians)\n\ 00277 \n\ 00278 Gear gear # requested gear (no change if Naught)\n\ 00279 PilotBehavior behavior # requested pilot behavior\n\ 00280 \n\ 00281 ================================================================================\n\ 00282 MSG: art_msgs/Gear\n\ 00283 # ART vehicle transmission gear numbers\n\ 00284 #\n\ 00285 # Used by several different messages.\n\ 00286 \n\ 00287 # $Id: Gear.msg 1539 2011-05-09 04:09:20Z jack.oquin $\n\ 00288 \n\ 00289 # Gear numbers. \n\ 00290 #\n\ 00291 # Naught means: reset all Shifter relays; no change of CarDrive gear.\n\ 00292 uint8 Naught = 0\n\ 00293 uint8 Park = 1\n\ 00294 uint8 Reverse = 2\n\ 00295 uint8 Neutral = 3\n\ 00296 uint8 Drive = 4\n\ 00297 uint8 N_gears = 5\n\ 00298 \n\ 00299 uint8 value # requested or reported gear number\n\ 00300 \n\ 00301 ================================================================================\n\ 00302 MSG: art_msgs/PilotBehavior\n\ 00303 # ART autonomous vehicle pilot node behaviors.\n\ 00304 #\n\ 00305 # Normally, the pilot node does Run, continually sending commands to\n\ 00306 # the servo device actuators and monitoring their state. With Pause,\n\ 00307 # the pilot becomes passive, allowing a learning algorithm or human\n\ 00308 # controller direct access to those devices. In the Off state,\n\ 00309 # various devices are shut down: the transmission in Park, the brake\n\ 00310 # released, the throttle at idle. The engine is not turned off, but\n\ 00311 # it could be.\n\ 00312 \n\ 00313 # $Id: PilotBehavior.msg 1539 2011-05-09 04:09:20Z jack.oquin $\n\ 00314 \n\ 00315 # Behavior value\n\ 00316 uint8 value\n\ 00317 \n\ 00318 # Behavior numbers:\n\ 00319 uint8 Run = 0 # normal driving\n\ 00320 uint8 Pause = 1 # stop issuing servo commands\n\ 00321 uint8 Off = 2 # turn off devices\n\ 00322 uint8 N_behaviors = 3\n\ 00323 \n\ 00324 "; 00325 } 00326 00327 static const char* value(const ::art_msgs::CarDrive_<ContainerAllocator> &) { return value(); } 00328 }; 00329 00330 template<class ContainerAllocator> struct IsFixedSize< ::art_msgs::CarDrive_<ContainerAllocator> > : public TrueType {}; 00331 } // namespace message_traits 00332 } // namespace ros 00333 00334 namespace ros 00335 { 00336 namespace serialization 00337 { 00338 00339 template<class ContainerAllocator> struct Serializer< ::art_msgs::CarDrive_<ContainerAllocator> > 00340 { 00341 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m) 00342 { 00343 stream.next(m.speed); 00344 stream.next(m.acceleration); 00345 stream.next(m.jerk); 00346 stream.next(m.steering_angle); 00347 stream.next(m.gear); 00348 stream.next(m.behavior); 00349 } 00350 00351 ROS_DECLARE_ALLINONE_SERIALIZER; 00352 }; // struct CarDrive_ 00353 } // namespace serialization 00354 } // namespace ros 00355 00356 namespace ros 00357 { 00358 namespace message_operations 00359 { 00360 00361 template<class ContainerAllocator> 00362 struct Printer< ::art_msgs::CarDrive_<ContainerAllocator> > 00363 { 00364 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::art_msgs::CarDrive_<ContainerAllocator> & v) 00365 { 00366 s << indent << "speed: "; 00367 Printer<float>::stream(s, indent + " ", v.speed); 00368 s << indent << "acceleration: "; 00369 Printer<float>::stream(s, indent + " ", v.acceleration); 00370 s << indent << "jerk: "; 00371 Printer<float>::stream(s, indent + " ", v.jerk); 00372 s << indent << "steering_angle: "; 00373 Printer<float>::stream(s, indent + " ", v.steering_angle); 00374 s << indent << "gear: "; 00375 s << std::endl; 00376 Printer< ::art_msgs::Gear_<ContainerAllocator> >::stream(s, indent + " ", v.gear); 00377 s << indent << "behavior: "; 00378 s << std::endl; 00379 Printer< ::art_msgs::PilotBehavior_<ContainerAllocator> >::stream(s, indent + " ", v.behavior); 00380 } 00381 }; 00382 00383 00384 } // namespace message_operations 00385 } // namespace ros 00386 00387 #endif // ART_MSGS_MESSAGE_CARDRIVE_H 00388