CarDrive.h
Go to the documentation of this file.
00001 /* Auto-generated by genmsg_cpp for file /home/rosbuild/hudson/workspace/doc-fuerte-art_vehicle/doc_stacks/2014-01-03_11-05-32.392273/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   typedef boost::shared_ptr< ::art_msgs::CarDrive_<ContainerAllocator> > Ptr;
00066   typedef boost::shared_ptr< ::art_msgs::CarDrive_<ContainerAllocator>  const> ConstPtr;
00067   boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00068 }; // struct CarDrive
00069 typedef  ::art_msgs::CarDrive_<std::allocator<void> > CarDrive;
00070 
00071 typedef boost::shared_ptr< ::art_msgs::CarDrive> CarDrivePtr;
00072 typedef boost::shared_ptr< ::art_msgs::CarDrive const> CarDriveConstPtr;
00073 
00074 
00075 template<typename ContainerAllocator>
00076 std::ostream& operator<<(std::ostream& s, const  ::art_msgs::CarDrive_<ContainerAllocator> & v)
00077 {
00078   ros::message_operations::Printer< ::art_msgs::CarDrive_<ContainerAllocator> >::stream(s, "", v);
00079   return s;}
00080 
00081 } // namespace art_msgs
00082 
00083 namespace ros
00084 {
00085 namespace message_traits
00086 {
00087 template<class ContainerAllocator> struct IsMessage< ::art_msgs::CarDrive_<ContainerAllocator> > : public TrueType {};
00088 template<class ContainerAllocator> struct IsMessage< ::art_msgs::CarDrive_<ContainerAllocator>  const> : public TrueType {};
00089 template<class ContainerAllocator>
00090 struct MD5Sum< ::art_msgs::CarDrive_<ContainerAllocator> > {
00091   static const char* value() 
00092   {
00093     return "977b12f7daeec4c2a2276732baf95662";
00094   }
00095 
00096   static const char* value(const  ::art_msgs::CarDrive_<ContainerAllocator> &) { return value(); } 
00097   static const uint64_t static_value1 = 0x977b12f7daeec4c2ULL;
00098   static const uint64_t static_value2 = 0xa2276732baf95662ULL;
00099 };
00100 
00101 template<class ContainerAllocator>
00102 struct DataType< ::art_msgs::CarDrive_<ContainerAllocator> > {
00103   static const char* value() 
00104   {
00105     return "art_msgs/CarDrive";
00106   }
00107 
00108   static const char* value(const  ::art_msgs::CarDrive_<ContainerAllocator> &) { return value(); } 
00109 };
00110 
00111 template<class ContainerAllocator>
00112 struct Definition< ::art_msgs::CarDrive_<ContainerAllocator> > {
00113   static const char* value() 
00114   {
00115     return "# Driving command for a car-like vehicle using Ackermann steering.\n\
00116 # $Id: CarDrive.msg 1539 2011-05-09 04:09:20Z jack.oquin $\n\
00117 \n\
00118 # Drive at requested speed, acceleration and jerk (the 1st, 2nd and\n\
00119 # 3rd derivatives of position). All are non-negative scalars. \n\
00120 #\n\
00121 # Speed is defined as the scalar magnitude of the velocity\n\
00122 # vector. Direction (forwards or backwards) is determined by the gear.\n\
00123 #\n\
00124 # Zero acceleration means change speed as quickly as\n\
00125 # possible. Positive acceleration may include deceleration as needed\n\
00126 # to match the desired speed. It represents a desired rate and also a\n\
00127 # limit not to exceed.\n\
00128 #\n\
00129 # Zero jerk means change acceleration as quickly as possible. Positive\n\
00130 # jerk describes the desired rate of acceleration change in both\n\
00131 # directions (positive and negative).\n\
00132 #\n\
00133 float32 speed                   # magnitude of velocity vector (m/s)\n\
00134 float32 acceleration            # desired acceleration (m/s^2)\n\
00135 float32 jerk                    # desired jerk (m/s^3)\n\
00136 \n\
00137 # Assumes Ackermann (front-wheel) steering. This angle is the average\n\
00138 # yaw of the two front wheels in the vehicle frame of reference\n\
00139 # (positive left), ignoring their slightly differing angles as if it\n\
00140 # were a tricycle. This is *not* the angle of the steering wheel\n\
00141 # inside the passenger compartment.\n\
00142 #\n\
00143 float32 steering_angle          # steering angle (radians)\n\
00144 \n\
00145 Gear gear                       # requested gear (no change if Naught)\n\
00146 PilotBehavior behavior          # requested pilot behavior\n\
00147 \n\
00148 ================================================================================\n\
00149 MSG: art_msgs/Gear\n\
00150 # ART vehicle transmission gear numbers\n\
00151 #\n\
00152 # Used by several different messages.\n\
00153 \n\
00154 # $Id: Gear.msg 1539 2011-05-09 04:09:20Z jack.oquin $\n\
00155 \n\
00156 # Gear numbers. \n\
00157 #\n\
00158 # Naught means: reset all Shifter relays; no change of CarDrive gear.\n\
00159 uint8 Naught = 0\n\
00160 uint8 Park = 1\n\
00161 uint8 Reverse = 2\n\
00162 uint8 Neutral = 3\n\
00163 uint8 Drive = 4\n\
00164 uint8 N_gears = 5\n\
00165 \n\
00166 uint8 value             # requested or reported gear number\n\
00167 \n\
00168 ================================================================================\n\
00169 MSG: art_msgs/PilotBehavior\n\
00170 # ART autonomous vehicle pilot node behaviors.\n\
00171 #\n\
00172 # Normally, the pilot node does Run, continually sending commands to\n\
00173 # the servo device actuators and monitoring their state.  With Pause,\n\
00174 # the pilot becomes passive, allowing a learning algorithm or human\n\
00175 # controller direct access to those devices.  In the Off state,\n\
00176 # various devices are shut down: the transmission in Park, the brake\n\
00177 # released, the throttle at idle.  The engine is not turned off, but\n\
00178 # it could be.\n\
00179 \n\
00180 # $Id: PilotBehavior.msg 1539 2011-05-09 04:09:20Z jack.oquin $\n\
00181 \n\
00182 # Behavior value\n\
00183 uint8 value\n\
00184 \n\
00185 # Behavior numbers:\n\
00186 uint8 Run = 0                   # normal driving\n\
00187 uint8 Pause = 1                 # stop issuing servo commands\n\
00188 uint8 Off = 2                   # turn off devices\n\
00189 uint8 N_behaviors = 3\n\
00190 \n\
00191 ";
00192   }
00193 
00194   static const char* value(const  ::art_msgs::CarDrive_<ContainerAllocator> &) { return value(); } 
00195 };
00196 
00197 template<class ContainerAllocator> struct IsFixedSize< ::art_msgs::CarDrive_<ContainerAllocator> > : public TrueType {};
00198 } // namespace message_traits
00199 } // namespace ros
00200 
00201 namespace ros
00202 {
00203 namespace serialization
00204 {
00205 
00206 template<class ContainerAllocator> struct Serializer< ::art_msgs::CarDrive_<ContainerAllocator> >
00207 {
00208   template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00209   {
00210     stream.next(m.speed);
00211     stream.next(m.acceleration);
00212     stream.next(m.jerk);
00213     stream.next(m.steering_angle);
00214     stream.next(m.gear);
00215     stream.next(m.behavior);
00216   }
00217 
00218   ROS_DECLARE_ALLINONE_SERIALIZER;
00219 }; // struct CarDrive_
00220 } // namespace serialization
00221 } // namespace ros
00222 
00223 namespace ros
00224 {
00225 namespace message_operations
00226 {
00227 
00228 template<class ContainerAllocator>
00229 struct Printer< ::art_msgs::CarDrive_<ContainerAllocator> >
00230 {
00231   template<typename Stream> static void stream(Stream& s, const std::string& indent, const  ::art_msgs::CarDrive_<ContainerAllocator> & v) 
00232   {
00233     s << indent << "speed: ";
00234     Printer<float>::stream(s, indent + "  ", v.speed);
00235     s << indent << "acceleration: ";
00236     Printer<float>::stream(s, indent + "  ", v.acceleration);
00237     s << indent << "jerk: ";
00238     Printer<float>::stream(s, indent + "  ", v.jerk);
00239     s << indent << "steering_angle: ";
00240     Printer<float>::stream(s, indent + "  ", v.steering_angle);
00241     s << indent << "gear: ";
00242 s << std::endl;
00243     Printer< ::art_msgs::Gear_<ContainerAllocator> >::stream(s, indent + "  ", v.gear);
00244     s << indent << "behavior: ";
00245 s << std::endl;
00246     Printer< ::art_msgs::PilotBehavior_<ContainerAllocator> >::stream(s, indent + "  ", v.behavior);
00247   }
00248 };
00249 
00250 
00251 } // namespace message_operations
00252 } // namespace ros
00253 
00254 #endif // ART_MSGS_MESSAGE_CARDRIVE_H
00255 


art_msgs
Author(s): Jack O'Quin
autogenerated on Fri Jan 3 2014 11:08:05