ArtVehicle.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/ArtVehicle.msg */
00002 #ifndef ART_MSGS_MESSAGE_ARTVEHICLE_H
00003 #define ART_MSGS_MESSAGE_ARTVEHICLE_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 
00018 namespace art_msgs
00019 {
00020 template <class ContainerAllocator>
00021 struct ArtVehicle_ {
00022   typedef ArtVehicle_<ContainerAllocator> Type;
00023 
00024   ArtVehicle_()
00025   {
00026   }
00027 
00028   ArtVehicle_(const ContainerAllocator& _alloc)
00029   {
00030   }
00031 
00032   static const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  frame_id;
00033   static const float length;
00034   static const float width;
00035   static const float height;
00036   static const float halflength;
00037   static const float halfwidth;
00038   static const float halfheight;
00039   static const float wheelbase;
00040   static const float front_bumper_px;
00041   static const float rear_bumper_px;
00042   static const float front_left_wheel_px;
00043   static const float front_left_wheel_py;
00044   static const float front_right_wheel_px;
00045   static const float front_right_wheel_py;
00046   static const float rear_left_wheel_px;
00047   static const float rear_left_wheel_py;
00048   static const float rear_right_wheel_px;
00049   static const float rear_right_wheel_py;
00050   static const float geom_px;
00051   static const float geom_py;
00052   static const float geom_pa;
00053   static const float velodyne_px;
00054   static const float velodyne_py;
00055   static const float velodyne_pz;
00056   static const float velodyne_yaw;
00057   static const float velodyne_pitch;
00058   static const float velodyne_roll;
00059   static const float front_SICK_px;
00060   static const float front_SICK_py;
00061   static const float front_SICK_pz;
00062   static const float front_SICK_roll;
00063   static const float front_SICK_pitch;
00064   static const float front_SICK_yaw;
00065   static const float rear_SICK_px;
00066   static const float rear_SICK_py;
00067   static const float rear_SICK_pz;
00068   static const float rear_SICK_roll;
00069   static const float rear_SICK_pitch;
00070   static const float rear_SICK_yaw;
00071   static const float center_front_camera_px;
00072   static const float center_front_camera_py;
00073   static const float center_front_camera_pz;
00074   static const float center_front_camera_yaw;
00075   static const float center_front_camera_pitch;
00076   static const float center_front_camera_roll;
00077   static const float right_front_camera_px;
00078   static const float right_front_camera_py;
00079   static const float right_front_camera_pz;
00080   static const float right_front_camera_yaw;
00081   static const float right_front_camera_pitch;
00082   static const float right_front_camera_roll;
00083   static const float left_front_camera_px;
00084   static const float left_front_camera_py;
00085   static const float left_front_camera_pz;
00086   static const float left_front_camera_yaw;
00087   static const float left_front_camera_pitch;
00088   static const float left_front_camera_roll;
00089   static const float max_steer_degrees;
00090   static const float max_steer_radians;
00091   static const float turn_radius;
00092   static const float front_outer_wheel_turn_radius;
00093   static const float front_inner_wheel_turn_radius;
00094   static const float rear_outer_wheel_turn_radius;
00095   static const float rear_inner_wheel_turn_radius;
00096 
00097   typedef boost::shared_ptr< ::art_msgs::ArtVehicle_<ContainerAllocator> > Ptr;
00098   typedef boost::shared_ptr< ::art_msgs::ArtVehicle_<ContainerAllocator>  const> ConstPtr;
00099   boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00100 }; // struct ArtVehicle
00101 typedef  ::art_msgs::ArtVehicle_<std::allocator<void> > ArtVehicle;
00102 
00103 typedef boost::shared_ptr< ::art_msgs::ArtVehicle> ArtVehiclePtr;
00104 typedef boost::shared_ptr< ::art_msgs::ArtVehicle const> ArtVehicleConstPtr;
00105 
00106 template<typename ContainerAllocator> const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other >  ArtVehicle_<ContainerAllocator>::frame_id = "\"vehicle\"";
00107 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::length = 4.8;
00108 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::width = 2.12;
00109 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::height = 1.5;
00110 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::halflength = 2.4;
00111 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::halfwidth = 1.06;
00112 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::halfheight = 0.75;
00113 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::wheelbase = 2.33918;
00114 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_bumper_px = 3.5;
00115 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_bumper_px = -1.3;
00116 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_left_wheel_px = 2.33918;
00117 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_left_wheel_py = 2.4;
00118 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_right_wheel_px = 2.33918;
00119 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_right_wheel_py = -1.06;
00120 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_left_wheel_px = 0.0;
00121 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_left_wheel_py = 1.06;
00122 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_right_wheel_px = 0.0;
00123 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_right_wheel_py = -1.06;
00124 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::geom_px = 1.1;
00125 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::geom_py = 0.0;
00126 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::geom_pa = 0.0;
00127 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::velodyne_px = 0.393;
00128 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::velodyne_py = 0.278;
00129 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::velodyne_pz = 2.4;
00130 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::velodyne_yaw = -0.02155;
00131 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::velodyne_pitch = 0.0163537350912;
00132 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::velodyne_roll = 0.0062133721371;
00133 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_SICK_px = 3.178;
00134 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_SICK_py = 0.0;
00135 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_SICK_pz = 0.7;
00136 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_SICK_roll = 0.0;
00137 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_SICK_pitch = 0.0;
00138 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_SICK_yaw = 0.027;
00139 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_SICK_px = -1.14;
00140 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_SICK_py = 0.0;
00141 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_SICK_pz = 0.7;
00142 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_SICK_roll = 0.0;
00143 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_SICK_pitch = 0.0;
00144 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_SICK_yaw = 3.14159265359;
00145 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::center_front_camera_px = 0.548;
00146 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::center_front_camera_py = 0.278;
00147 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::center_front_camera_pz = 2.184;
00148 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::center_front_camera_yaw = -0.052;
00149 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::center_front_camera_pitch = 0.025;
00150 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::center_front_camera_roll = 0.0;
00151 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::right_front_camera_px = 0.471;
00152 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::right_front_camera_py = 0.144;
00153 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::right_front_camera_pz = 2.184;
00154 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::right_front_camera_yaw = -1.035;
00155 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::right_front_camera_pitch = 0.022;
00156 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::right_front_camera_roll = 0.0;
00157 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::left_front_camera_px = 0.471;
00158 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::left_front_camera_py = 0.412;
00159 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::left_front_camera_pz = 2.184;
00160 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::left_front_camera_yaw = 0.97;
00161 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::left_front_camera_pitch = -0.017;
00162 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::left_front_camera_roll = 0.0;
00163 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::max_steer_degrees = 29.0;
00164 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::max_steer_radians = 0.5061455;
00165 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::turn_radius = 4.21999225977;
00166 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_outer_wheel_turn_radius = 5.7749529293;
00167 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_inner_wheel_turn_radius = 3.93157909169;
00168 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_outer_wheel_turn_radius = 5.27999225977;
00169 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_inner_wheel_turn_radius = 3.15999225977;
00170 
00171 template<typename ContainerAllocator>
00172 std::ostream& operator<<(std::ostream& s, const  ::art_msgs::ArtVehicle_<ContainerAllocator> & v)
00173 {
00174   ros::message_operations::Printer< ::art_msgs::ArtVehicle_<ContainerAllocator> >::stream(s, "", v);
00175   return s;}
00176 
00177 } // namespace art_msgs
00178 
00179 namespace ros
00180 {
00181 namespace message_traits
00182 {
00183 template<class ContainerAllocator> struct IsMessage< ::art_msgs::ArtVehicle_<ContainerAllocator> > : public TrueType {};
00184 template<class ContainerAllocator> struct IsMessage< ::art_msgs::ArtVehicle_<ContainerAllocator>  const> : public TrueType {};
00185 template<class ContainerAllocator>
00186 struct MD5Sum< ::art_msgs::ArtVehicle_<ContainerAllocator> > {
00187   static const char* value() 
00188   {
00189     return "b2e608cff82a26a9766518ef8fbfabf9";
00190   }
00191 
00192   static const char* value(const  ::art_msgs::ArtVehicle_<ContainerAllocator> &) { return value(); } 
00193   static const uint64_t static_value1 = 0xb2e608cff82a26a9ULL;
00194   static const uint64_t static_value2 = 0x766518ef8fbfabf9ULL;
00195 };
00196 
00197 template<class ContainerAllocator>
00198 struct DataType< ::art_msgs::ArtVehicle_<ContainerAllocator> > {
00199   static const char* value() 
00200   {
00201     return "art_msgs/ArtVehicle";
00202   }
00203 
00204   static const char* value(const  ::art_msgs::ArtVehicle_<ContainerAllocator> &) { return value(); } 
00205 };
00206 
00207 template<class ContainerAllocator>
00208 struct Definition< ::art_msgs::ArtVehicle_<ContainerAllocator> > {
00209   static const char* value() 
00210   {
00211     return "#  ART vehicle dimensions.\n\
00212 #  $Id: ArtVehicle.msg 1832 2011-10-31 22:16:19Z austinrobot $\n\
00213 \n\
00214 #  This class encapsulates constants for the dimensions of the ART\n\
00215 #  autonomous vehicle.  All units are meters or radians, except where\n\
00216 #  noted.  This is not a published message, it defines multi-language\n\
00217 #  constants.\n\
00218 \n\
00219 # ROS frame ID\n\
00220 string frame_id = \"vehicle\"\n\
00221 \n\
00222 float32 length = 4.8                    # overall length\n\
00223 float32 width = 2.12                    # overall width\n\
00224 float32 height = 1.5                    # overall height (TBD)\n\
00225 float32 halflength = 2.4                # length / 2\n\
00226 float32 halfwidth = 1.06                # width / 2\n\
00227 float32 halfheight = 0.75               # height / 2\n\
00228 float32 wheelbase = 2.33918             # wheelbase\n\
00229 \n\
00230 # egocentric coordinates relative to vehicle origin at center of\n\
00231 # rear axle\n\
00232 float32 front_bumper_px = 3.5           # (approximately)\n\
00233 float32 rear_bumper_px = -1.3           # front_bumper_px - length\n\
00234 float32 front_left_wheel_px = 2.33918   # wheelbase\n\
00235 float32 front_left_wheel_py = 2.4       # halfwidth\n\
00236 float32 front_right_wheel_px = 2.33918  # wheelbase\n\
00237 float32 front_right_wheel_py = -1.06    #-halfwidth\n\
00238 float32 rear_left_wheel_px = 0.0\n\
00239 float32 rear_left_wheel_py = 1.06       # halfwidth\n\
00240 float32 rear_right_wheel_px = 0.0\n\
00241 float32 rear_right_wheel_py = -1.06     #-halfwidth\n\
00242 \n\
00243 # Player geometry, egocentric pose of robot base (the px really\n\
00244 # does need to be positive for some reason)\n\
00245 float32 geom_px = 1.1                   # front_bumper_px - halflength\n\
00246 float32 geom_py = 0.0\n\
00247 float32 geom_pa = 0.0\n\
00248 \n\
00249 float32 velodyne_px = 0.393             # (approximately)\n\
00250 float32 velodyne_py = 0.278             # (approximately)\n\
00251 float32 velodyne_pz = 2.4               # (calibrated)\n\
00252 #float32 velodyne_yaw=-0.0343           # (before remounting)\n\
00253 float32 velodyne_yaw=-0.02155           # (approximately)\n\
00254 float32 velodyne_pitch=0.016353735091186868 # (calculated)\n\
00255 float32 velodyne_roll=0.0062133721370998124 # (calculated)\n\
00256 \n\
00257 float32 front_SICK_px = 3.178\n\
00258 float32 front_SICK_py= 0.0              # (approximately)\n\
00259 float32 front_SICK_pz = 0.7\n\
00260 float32 front_SICK_roll = 0.0           # (approximately)\n\
00261 float32 front_SICK_pitch = 0.0          # (approximately)\n\
00262 float32 front_SICK_yaw = 0.027          # (approximately)\n\
00263 \n\
00264 float32 rear_SICK_px = -1.140\n\
00265 float32 rear_SICK_py = 0.0              # (approximately)\n\
00266 float32 rear_SICK_pz = 0.7\n\
00267 float32 rear_SICK_roll = 0.0            # (approximately)\n\
00268 float32 rear_SICK_pitch = 0.0           # (approximately)\n\
00269 float32 rear_SICK_yaw = 3.1415926535897931160  # (approximately PI)\n\
00270 \n\
00271 float32 center_front_camera_px = 0.548     # velodyne_px + 0.155 (approx)\n\
00272 float32 center_front_camera_py = 0.278    # velodyne_py (approx)\n\
00273 float32 center_front_camera_pz = 2.184    # velodyne_pz-0.216 (approx)\n\
00274 float32 center_front_camera_yaw = -0.052  # (measured)\n\
00275 float32 center_front_camera_pitch = 0.025   # (measured)\n\
00276 float32 center_front_camera_roll = 0.0    # (assumed)\n\
00277 \n\
00278 float32 right_front_camera_px = 0.471    # velodyne_px + 0.078 (= 0.155 * cos 60 deg) (approx)\n\
00279 float32 right_front_camera_py = 0.144   # velodyne_py - 0.1342 (= 0.155 + sin 60 deg) (approx)\n\
00280 float32 right_front_camera_pz = 2.184   # velodyne_pz-0.216 (approx)\n\
00281 #float32 right_front_camera_yaw = -0.4974 # (approx -28.5 deg)\n\
00282 float32 right_front_camera_yaw = -1.035 # (measured)\n\
00283 float32 right_front_camera_pitch = 0.022  # (measured)\n\
00284 float32 right_front_camera_roll = 0.0   # (assumed)\n\
00285 \n\
00286 float32 left_front_camera_px = 0.471     # velodyne_px + 0.078 (= 0.155 * cos 60 deg) (approx)\n\
00287 float32 left_front_camera_py = 0.412    # velodyne_py + 0.1342 (= 0.155 * sin 60 deg) (approx)\n\
00288 float32 left_front_camera_pz = 2.184    # velodyne_pz-0.216 (approx)\n\
00289 #float32 left_front_camera_yaw = 0.4974  # (approx +28.5 deg)\n\
00290 float32 left_front_camera_yaw = 0.97  # (measured)\n\
00291 float32 left_front_camera_pitch = -0.017   # (measured)\n\
00292 float32 left_front_camera_roll = 0.0    # (assumed)\n\
00293 \n\
00294 # Compute vehicle turning radius.  This is the distance from the\n\
00295 # center of curvature to the vehicle origin in the middle of the\n\
00296 # rear axle.  The <art/steering.h> comments describe the steering\n\
00297 # geometry model.  Since max_steer_degrees is considerably less\n\
00298 # than 90 degrees, there is no problem taking its tangent.\n\
00299 \n\
00300 float32 max_steer_degrees = 29.0        # maximum steering angle (degrees)\n\
00301 float32 max_steer_radians = 0.5061455   # maximum steering angle (radians)\n\
00302 \n\
00303 # Due to limitations of the ROS message definition format, these\n\
00304 # values needed to be calculated by hand...\n\
00305 \n\
00306 # ArtVehicle.wheelbase / math.tan(ArtVehicle.max_steer_radians)\n\
00307 float32 turn_radius = 4.2199922597674142\n\
00308 \n\
00309 # math.sqrt(math.pow(ArtVehicle.wheelbase,2)\n\
00310 #           + math.pow(ArtVehicle.turn_radius + ArtVehicle.halfwidth,2))\n\
00311 float32 front_outer_wheel_turn_radius = 5.774952929297676\n\
00312 \n\
00313 # math.sqrt(math.pow(ArtVehicle.wheelbase,2)\n\
00314 #           + math.pow(ArtVehicle.turn_radius - ArtVehicle.halfwidth,2))\n\
00315 float32 front_inner_wheel_turn_radius = 3.9315790916869484\n\
00316 \n\
00317 # ArtVehicle.turn_radius + ArtVehicle.halfwidth\n\
00318 float32 rear_outer_wheel_turn_radius = 5.2799922597674147\n\
00319 \n\
00320 # ArtVehicle.turn_radius - ArtVehicle.halfwidth\n\
00321 float32 rear_inner_wheel_turn_radius = 3.1599922597674142\n\
00322 \n\
00323 # float32 front_outer_bumper_turn_radius = sqrtf(powf(front_bumper_px,2)+powf(turn_radius+halfwidth,2))\n\
00324 #  \n\
00325 # float32 front_inner_bumper_turn_radius = sqrtf(powf(front_bumper_px,2)+ powf(turn_radius-halfwidth,2))\n\
00326 #\n\
00327 # float32 rear_outer_bumper_turn_radius = sqrtf(powf(rear_bumper_px,2)+ powf(turn_radius+halfwidth,2))\n\
00328 #\n\
00329 # float32 rear_inner_bumper_turn_radius = sqrtf(powf(rear_bumper_px,2)+ powf(turn_radius-halfwidth,2))\n\
00330 \n\
00331 ";
00332   }
00333 
00334   static const char* value(const  ::art_msgs::ArtVehicle_<ContainerAllocator> &) { return value(); } 
00335 };
00336 
00337 template<class ContainerAllocator> struct IsFixedSize< ::art_msgs::ArtVehicle_<ContainerAllocator> > : public TrueType {};
00338 } // namespace message_traits
00339 } // namespace ros
00340 
00341 namespace ros
00342 {
00343 namespace serialization
00344 {
00345 
00346 template<class ContainerAllocator> struct Serializer< ::art_msgs::ArtVehicle_<ContainerAllocator> >
00347 {
00348   template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00349   {
00350   }
00351 
00352   ROS_DECLARE_ALLINONE_SERIALIZER;
00353 }; // struct ArtVehicle_
00354 } // namespace serialization
00355 } // namespace ros
00356 
00357 namespace ros
00358 {
00359 namespace message_operations
00360 {
00361 
00362 template<class ContainerAllocator>
00363 struct Printer< ::art_msgs::ArtVehicle_<ContainerAllocator> >
00364 {
00365   template<typename Stream> static void stream(Stream& s, const std::string& indent, const  ::art_msgs::ArtVehicle_<ContainerAllocator> & v) 
00366   {
00367   }
00368 };
00369 
00370 
00371 } // namespace message_operations
00372 } // namespace ros
00373 
00374 #endif // ART_MSGS_MESSAGE_ARTVEHICLE_H
00375 


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