00001
00002 #ifndef ART_MSGS_MESSAGE_ARTVEHICLE_H
00003 #define ART_MSGS_MESSAGE_ARTVEHICLE_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
00014 namespace art_msgs
00015 {
00016 template <class ContainerAllocator>
00017 struct ArtVehicle_ : public ros::Message
00018 {
00019 typedef ArtVehicle_<ContainerAllocator> Type;
00020
00021 ArtVehicle_()
00022 {
00023 }
00024
00025 ArtVehicle_(const ContainerAllocator& _alloc)
00026 {
00027 }
00028
00029 static const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > frame_id;
00030 static const float length;
00031 static const float width;
00032 static const float height;
00033 static const float halflength;
00034 static const float halfwidth;
00035 static const float halfheight;
00036 static const float wheelbase;
00037 static const float front_bumper_px;
00038 static const float rear_bumper_px;
00039 static const float front_left_wheel_px;
00040 static const float front_left_wheel_py;
00041 static const float front_right_wheel_px;
00042 static const float front_right_wheel_py;
00043 static const float rear_left_wheel_px;
00044 static const float rear_left_wheel_py;
00045 static const float rear_right_wheel_px;
00046 static const float rear_right_wheel_py;
00047 static const float geom_px;
00048 static const float geom_py;
00049 static const float geom_pa;
00050 static const float velodyne_px;
00051 static const float velodyne_py;
00052 static const float velodyne_pz;
00053 static const float velodyne_yaw;
00054 static const float velodyne_pitch;
00055 static const float velodyne_roll;
00056 static const float front_SICK_px;
00057 static const float front_SICK_py;
00058 static const float front_SICK_pz;
00059 static const float front_SICK_roll;
00060 static const float front_SICK_pitch;
00061 static const float front_SICK_yaw;
00062 static const float rear_SICK_px;
00063 static const float rear_SICK_py;
00064 static const float rear_SICK_pz;
00065 static const float rear_SICK_roll;
00066 static const float rear_SICK_pitch;
00067 static const float rear_SICK_yaw;
00068 static const float right_front_camera_px;
00069 static const float right_front_camera_py;
00070 static const float right_front_camera_pz;
00071 static const float right_front_camera_yaw;
00072 static const float right_front_camera_pitch;
00073 static const float right_front_camera_roll;
00074 static const float left_front_camera_px;
00075 static const float left_front_camera_py;
00076 static const float left_front_camera_pz;
00077 static const float left_front_camera_yaw;
00078 static const float left_front_camera_pitch;
00079 static const float left_front_camera_roll;
00080 static const float max_steer_degrees;
00081 static const float max_steer_radians;
00082 static const float turn_radius;
00083 static const float front_outer_wheel_turn_radius;
00084 static const float front_inner_wheel_turn_radius;
00085 static const float rear_outer_wheel_turn_radius;
00086 static const float rear_inner_wheel_turn_radius;
00087
00088 private:
00089 static const char* __s_getDataType_() { return "art_msgs/ArtVehicle"; }
00090 public:
00091 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00092
00093 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00094
00095 private:
00096 static const char* __s_getMD5Sum_() { return "eea8ee7315c68813f9778b7908a2a725"; }
00097 public:
00098 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00099
00100 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00101
00102 private:
00103 static const char* __s_getMessageDefinition_() { return "# ART vehicle dimensions.\n\
00104 # $Id: ArtVehicle.msg 1161 2011-03-26 02:10:49Z jack.oquin $\n\
00105 \n\
00106 # This class encapsulates constants for the dimensions of the ART\n\
00107 # autonomous vehicle. All units are meters or radians, except where\n\
00108 # noted. This is not a published message, it defines multi-language\n\
00109 # constants.\n\
00110 \n\
00111 # ROS frame ID\n\
00112 string frame_id = \"vehicle\"\n\
00113 \n\
00114 float32 length = 4.8 # overall length\n\
00115 float32 width = 2.12 # overall width\n\
00116 float32 height = 1.5 # overall height (TBD)\n\
00117 float32 halflength = 2.4 # length / 2\n\
00118 float32 halfwidth = 1.06 # width / 2\n\
00119 float32 halfheight = 0.75 # height / 2\n\
00120 float32 wheelbase = 2.33918 # wheelbase\n\
00121 \n\
00122 # egocentric coordinates relative to vehicle origin at center of\n\
00123 # rear axle\n\
00124 float32 front_bumper_px = 3.5 # (approximately)\n\
00125 float32 rear_bumper_px = -1.3 # front_bumper_px - length\n\
00126 float32 front_left_wheel_px = 2.33918 # wheelbase\n\
00127 float32 front_left_wheel_py = 2.4 # halfwidth\n\
00128 float32 front_right_wheel_px = 2.33918 # wheelbase\n\
00129 float32 front_right_wheel_py = -1.06 #-halfwidth\n\
00130 float32 rear_left_wheel_px = 0.0\n\
00131 float32 rear_left_wheel_py = 1.06 # halfwidth\n\
00132 float32 rear_right_wheel_px = 0.0\n\
00133 float32 rear_right_wheel_py = -1.06 #-halfwidth\n\
00134 \n\
00135 # Player geometry, egocentric pose of robot base (the px really\n\
00136 # does need to be positive for some reason)\n\
00137 float32 geom_px = 1.1 # front_bumper_px - halflength\n\
00138 float32 geom_py = 0.0\n\
00139 float32 geom_pa = 0.0\n\
00140 \n\
00141 float32 velodyne_px = 0.393 # (approximately)\n\
00142 float32 velodyne_py = 0.278 # (approximately)\n\
00143 float32 velodyne_pz = 2.4 # (calibrated)\n\
00144 #float32 velodyne_yaw=-0.0343 # (before remounting)\n\
00145 float32 velodyne_yaw=-0.02155 # (approximately)\n\
00146 float32 velodyne_pitch=0.016353735091186868 # (calculated)\n\
00147 float32 velodyne_roll=0.0062133721370998124 # (calculated)\n\
00148 \n\
00149 float32 front_SICK_px = 3.178\n\
00150 float32 front_SICK_py= 0.0 # (approximately)\n\
00151 float32 front_SICK_pz = 0.941\n\
00152 float32 front_SICK_roll = 0.0 # (approximately)\n\
00153 float32 front_SICK_pitch = 0.0 # (approximately)\n\
00154 float32 front_SICK_yaw = 0.027 # (approximately)\n\
00155 \n\
00156 float32 rear_SICK_px = -1.140\n\
00157 float32 rear_SICK_py = 0.0 # (approximately)\n\
00158 float32 rear_SICK_pz = 0.943\n\
00159 float32 rear_SICK_roll = 0.0 # (approximately)\n\
00160 float32 rear_SICK_pitch = 0.0 # (approximately)\n\
00161 float32 rear_SICK_yaw = 3.1415926535897931160 # (approximately PI)\n\
00162 \n\
00163 float32 right_front_camera_px = 0.52 # velodyne_px+0.127 (approx)\n\
00164 float32 right_front_camera_py = 0.189 # velodyne_py-0.089 (approx)\n\
00165 float32 right_front_camera_pz = 2.184 # velodyne_pz-0.216 (approx)\n\
00166 float32 right_front_camera_yaw = -0.4974 # (approx -28.5 deg)\n\
00167 float32 right_front_camera_pitch = 0.0 # (assumed)\n\
00168 float32 right_front_camera_roll = 0.0 # (assumed)\n\
00169 \n\
00170 float32 left_front_camera_px = 0.52 # velodyne_px+0.127 (approx)\n\
00171 float32 left_front_camera_py = 0.367 # velodyne_py+0.089 (approx)\n\
00172 float32 left_front_camera_pz = 2.184 # velodyne_pz-0.216 (approx)\n\
00173 float32 left_front_camera_yaw = 0.4974 # (approx +28.5 deg)\n\
00174 float32 left_front_camera_pitch = 0.0 # (assumed)\n\
00175 float32 left_front_camera_roll = 0.0 # (assumed)\n\
00176 \n\
00177 # Compute vehicle turning radius. This is the distance from the\n\
00178 # center of curvature to the vehicle origin in the middle of the\n\
00179 # rear axle. The <art/steering.h> comments describe the steering\n\
00180 # geometry model. Since max_steer_degrees is considerably less\n\
00181 # than 90 degrees, there is no problem taking its tangent.\n\
00182 \n\
00183 float32 max_steer_degrees = 29.0 # maximum steering angle (degrees)\n\
00184 float32 max_steer_radians = 0.5061455 # maximum steering angle (radians)\n\
00185 \n\
00186 # Due to limitations of the ROS message definition format, these\n\
00187 # values needed to be calculated by hand...\n\
00188 \n\
00189 # ArtVehicle.wheelbase / math.tan(ArtVehicle.max_steer_radians)\n\
00190 float32 turn_radius = 4.2199922597674142\n\
00191 \n\
00192 # math.sqrt(math.pow(ArtVehicle.wheelbase,2)\n\
00193 # + math.pow(ArtVehicle.turn_radius + ArtVehicle.halfwidth,2))\n\
00194 float32 front_outer_wheel_turn_radius = 5.774952929297676\n\
00195 \n\
00196 # math.sqrt(math.pow(ArtVehicle.wheelbase,2)\n\
00197 # + math.pow(ArtVehicle.turn_radius - ArtVehicle.halfwidth,2))\n\
00198 float32 front_inner_wheel_turn_radius = 3.9315790916869484\n\
00199 \n\
00200 # ArtVehicle.turn_radius + ArtVehicle.halfwidth\n\
00201 float32 rear_outer_wheel_turn_radius = 5.2799922597674147\n\
00202 \n\
00203 # ArtVehicle.turn_radius - ArtVehicle.halfwidth\n\
00204 float32 rear_inner_wheel_turn_radius = 3.1599922597674142\n\
00205 \n\
00206 # float32 front_outer_bumper_turn_radius = sqrtf(powf(front_bumper_px,2)+powf(turn_radius+halfwidth,2))\n\
00207 # \n\
00208 # float32 front_inner_bumper_turn_radius = sqrtf(powf(front_bumper_px,2)+ powf(turn_radius-halfwidth,2))\n\
00209 #\n\
00210 # float32 rear_outer_bumper_turn_radius = sqrtf(powf(rear_bumper_px,2)+ powf(turn_radius+halfwidth,2))\n\
00211 #\n\
00212 # float32 rear_inner_bumper_turn_radius = sqrtf(powf(rear_bumper_px,2)+ powf(turn_radius-halfwidth,2))\n\
00213 \n\
00214 "; }
00215 public:
00216 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00217
00218 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00219
00220 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00221 {
00222 ros::serialization::OStream stream(write_ptr, 1000000000);
00223 return stream.getData();
00224 }
00225
00226 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00227 {
00228 ros::serialization::IStream stream(read_ptr, 1000000000);
00229 return stream.getData();
00230 }
00231
00232 ROS_DEPRECATED virtual uint32_t serializationLength() const
00233 {
00234 uint32_t size = 0;
00235 return size;
00236 }
00237
00238 typedef boost::shared_ptr< ::art_msgs::ArtVehicle_<ContainerAllocator> > Ptr;
00239 typedef boost::shared_ptr< ::art_msgs::ArtVehicle_<ContainerAllocator> const> ConstPtr;
00240 };
00241 typedef ::art_msgs::ArtVehicle_<std::allocator<void> > ArtVehicle;
00242
00243 typedef boost::shared_ptr< ::art_msgs::ArtVehicle> ArtVehiclePtr;
00244 typedef boost::shared_ptr< ::art_msgs::ArtVehicle const> ArtVehicleConstPtr;
00245
00246 template<typename ContainerAllocator> const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > ArtVehicle_<ContainerAllocator>::frame_id = "\"vehicle\"";
00247 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::length = 4.8;
00248 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::width = 2.12;
00249 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::height = 1.5;
00250 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::halflength = 2.4;
00251 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::halfwidth = 1.06;
00252 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::halfheight = 0.75;
00253 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::wheelbase = 2.33918;
00254 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_bumper_px = 3.5;
00255 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_bumper_px = -1.3;
00256 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_left_wheel_px = 2.33918;
00257 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_left_wheel_py = 2.4;
00258 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_right_wheel_px = 2.33918;
00259 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_right_wheel_py = -1.06;
00260 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_left_wheel_px = 0.0;
00261 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_left_wheel_py = 1.06;
00262 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_right_wheel_px = 0.0;
00263 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_right_wheel_py = -1.06;
00264 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::geom_px = 1.1;
00265 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::geom_py = 0.0;
00266 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::geom_pa = 0.0;
00267 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::velodyne_px = 0.393;
00268 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::velodyne_py = 0.278;
00269 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::velodyne_pz = 2.4;
00270 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::velodyne_yaw = -0.02155;
00271 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::velodyne_pitch = 0.0163537350912;
00272 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::velodyne_roll = 0.0062133721371;
00273 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_SICK_px = 3.178;
00274 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_SICK_py = 0.0;
00275 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_SICK_pz = 0.941;
00276 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_SICK_roll = 0.0;
00277 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_SICK_pitch = 0.0;
00278 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_SICK_yaw = 0.027;
00279 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_SICK_px = -1.14;
00280 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_SICK_py = 0.0;
00281 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_SICK_pz = 0.943;
00282 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_SICK_roll = 0.0;
00283 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_SICK_pitch = 0.0;
00284 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_SICK_yaw = 3.14159265359;
00285 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::right_front_camera_px = 0.52;
00286 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::right_front_camera_py = 0.189;
00287 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::right_front_camera_pz = 2.184;
00288 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::right_front_camera_yaw = -0.4974;
00289 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::right_front_camera_pitch = 0.0;
00290 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::right_front_camera_roll = 0.0;
00291 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::left_front_camera_px = 0.52;
00292 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::left_front_camera_py = 0.367;
00293 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::left_front_camera_pz = 2.184;
00294 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::left_front_camera_yaw = 0.4974;
00295 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::left_front_camera_pitch = 0.0;
00296 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::left_front_camera_roll = 0.0;
00297 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::max_steer_degrees = 29.0;
00298 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::max_steer_radians = 0.5061455;
00299 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::turn_radius = 4.21999225977;
00300 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_outer_wheel_turn_radius = 5.7749529293;
00301 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::front_inner_wheel_turn_radius = 3.93157909169;
00302 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_outer_wheel_turn_radius = 5.27999225977;
00303 template<typename ContainerAllocator> const float ArtVehicle_<ContainerAllocator>::rear_inner_wheel_turn_radius = 3.15999225977;
00304
00305 template<typename ContainerAllocator>
00306 std::ostream& operator<<(std::ostream& s, const ::art_msgs::ArtVehicle_<ContainerAllocator> & v)
00307 {
00308 ros::message_operations::Printer< ::art_msgs::ArtVehicle_<ContainerAllocator> >::stream(s, "", v);
00309 return s;}
00310
00311 }
00312
00313 namespace ros
00314 {
00315 namespace message_traits
00316 {
00317 template<class ContainerAllocator>
00318 struct MD5Sum< ::art_msgs::ArtVehicle_<ContainerAllocator> > {
00319 static const char* value()
00320 {
00321 return "eea8ee7315c68813f9778b7908a2a725";
00322 }
00323
00324 static const char* value(const ::art_msgs::ArtVehicle_<ContainerAllocator> &) { return value(); }
00325 static const uint64_t static_value1 = 0xeea8ee7315c68813ULL;
00326 static const uint64_t static_value2 = 0xf9778b7908a2a725ULL;
00327 };
00328
00329 template<class ContainerAllocator>
00330 struct DataType< ::art_msgs::ArtVehicle_<ContainerAllocator> > {
00331 static const char* value()
00332 {
00333 return "art_msgs/ArtVehicle";
00334 }
00335
00336 static const char* value(const ::art_msgs::ArtVehicle_<ContainerAllocator> &) { return value(); }
00337 };
00338
00339 template<class ContainerAllocator>
00340 struct Definition< ::art_msgs::ArtVehicle_<ContainerAllocator> > {
00341 static const char* value()
00342 {
00343 return "# ART vehicle dimensions.\n\
00344 # $Id: ArtVehicle.msg 1161 2011-03-26 02:10:49Z jack.oquin $\n\
00345 \n\
00346 # This class encapsulates constants for the dimensions of the ART\n\
00347 # autonomous vehicle. All units are meters or radians, except where\n\
00348 # noted. This is not a published message, it defines multi-language\n\
00349 # constants.\n\
00350 \n\
00351 # ROS frame ID\n\
00352 string frame_id = \"vehicle\"\n\
00353 \n\
00354 float32 length = 4.8 # overall length\n\
00355 float32 width = 2.12 # overall width\n\
00356 float32 height = 1.5 # overall height (TBD)\n\
00357 float32 halflength = 2.4 # length / 2\n\
00358 float32 halfwidth = 1.06 # width / 2\n\
00359 float32 halfheight = 0.75 # height / 2\n\
00360 float32 wheelbase = 2.33918 # wheelbase\n\
00361 \n\
00362 # egocentric coordinates relative to vehicle origin at center of\n\
00363 # rear axle\n\
00364 float32 front_bumper_px = 3.5 # (approximately)\n\
00365 float32 rear_bumper_px = -1.3 # front_bumper_px - length\n\
00366 float32 front_left_wheel_px = 2.33918 # wheelbase\n\
00367 float32 front_left_wheel_py = 2.4 # halfwidth\n\
00368 float32 front_right_wheel_px = 2.33918 # wheelbase\n\
00369 float32 front_right_wheel_py = -1.06 #-halfwidth\n\
00370 float32 rear_left_wheel_px = 0.0\n\
00371 float32 rear_left_wheel_py = 1.06 # halfwidth\n\
00372 float32 rear_right_wheel_px = 0.0\n\
00373 float32 rear_right_wheel_py = -1.06 #-halfwidth\n\
00374 \n\
00375 # Player geometry, egocentric pose of robot base (the px really\n\
00376 # does need to be positive for some reason)\n\
00377 float32 geom_px = 1.1 # front_bumper_px - halflength\n\
00378 float32 geom_py = 0.0\n\
00379 float32 geom_pa = 0.0\n\
00380 \n\
00381 float32 velodyne_px = 0.393 # (approximately)\n\
00382 float32 velodyne_py = 0.278 # (approximately)\n\
00383 float32 velodyne_pz = 2.4 # (calibrated)\n\
00384 #float32 velodyne_yaw=-0.0343 # (before remounting)\n\
00385 float32 velodyne_yaw=-0.02155 # (approximately)\n\
00386 float32 velodyne_pitch=0.016353735091186868 # (calculated)\n\
00387 float32 velodyne_roll=0.0062133721370998124 # (calculated)\n\
00388 \n\
00389 float32 front_SICK_px = 3.178\n\
00390 float32 front_SICK_py= 0.0 # (approximately)\n\
00391 float32 front_SICK_pz = 0.941\n\
00392 float32 front_SICK_roll = 0.0 # (approximately)\n\
00393 float32 front_SICK_pitch = 0.0 # (approximately)\n\
00394 float32 front_SICK_yaw = 0.027 # (approximately)\n\
00395 \n\
00396 float32 rear_SICK_px = -1.140\n\
00397 float32 rear_SICK_py = 0.0 # (approximately)\n\
00398 float32 rear_SICK_pz = 0.943\n\
00399 float32 rear_SICK_roll = 0.0 # (approximately)\n\
00400 float32 rear_SICK_pitch = 0.0 # (approximately)\n\
00401 float32 rear_SICK_yaw = 3.1415926535897931160 # (approximately PI)\n\
00402 \n\
00403 float32 right_front_camera_px = 0.52 # velodyne_px+0.127 (approx)\n\
00404 float32 right_front_camera_py = 0.189 # velodyne_py-0.089 (approx)\n\
00405 float32 right_front_camera_pz = 2.184 # velodyne_pz-0.216 (approx)\n\
00406 float32 right_front_camera_yaw = -0.4974 # (approx -28.5 deg)\n\
00407 float32 right_front_camera_pitch = 0.0 # (assumed)\n\
00408 float32 right_front_camera_roll = 0.0 # (assumed)\n\
00409 \n\
00410 float32 left_front_camera_px = 0.52 # velodyne_px+0.127 (approx)\n\
00411 float32 left_front_camera_py = 0.367 # velodyne_py+0.089 (approx)\n\
00412 float32 left_front_camera_pz = 2.184 # velodyne_pz-0.216 (approx)\n\
00413 float32 left_front_camera_yaw = 0.4974 # (approx +28.5 deg)\n\
00414 float32 left_front_camera_pitch = 0.0 # (assumed)\n\
00415 float32 left_front_camera_roll = 0.0 # (assumed)\n\
00416 \n\
00417 # Compute vehicle turning radius. This is the distance from the\n\
00418 # center of curvature to the vehicle origin in the middle of the\n\
00419 # rear axle. The <art/steering.h> comments describe the steering\n\
00420 # geometry model. Since max_steer_degrees is considerably less\n\
00421 # than 90 degrees, there is no problem taking its tangent.\n\
00422 \n\
00423 float32 max_steer_degrees = 29.0 # maximum steering angle (degrees)\n\
00424 float32 max_steer_radians = 0.5061455 # maximum steering angle (radians)\n\
00425 \n\
00426 # Due to limitations of the ROS message definition format, these\n\
00427 # values needed to be calculated by hand...\n\
00428 \n\
00429 # ArtVehicle.wheelbase / math.tan(ArtVehicle.max_steer_radians)\n\
00430 float32 turn_radius = 4.2199922597674142\n\
00431 \n\
00432 # math.sqrt(math.pow(ArtVehicle.wheelbase,2)\n\
00433 # + math.pow(ArtVehicle.turn_radius + ArtVehicle.halfwidth,2))\n\
00434 float32 front_outer_wheel_turn_radius = 5.774952929297676\n\
00435 \n\
00436 # math.sqrt(math.pow(ArtVehicle.wheelbase,2)\n\
00437 # + math.pow(ArtVehicle.turn_radius - ArtVehicle.halfwidth,2))\n\
00438 float32 front_inner_wheel_turn_radius = 3.9315790916869484\n\
00439 \n\
00440 # ArtVehicle.turn_radius + ArtVehicle.halfwidth\n\
00441 float32 rear_outer_wheel_turn_radius = 5.2799922597674147\n\
00442 \n\
00443 # ArtVehicle.turn_radius - ArtVehicle.halfwidth\n\
00444 float32 rear_inner_wheel_turn_radius = 3.1599922597674142\n\
00445 \n\
00446 # float32 front_outer_bumper_turn_radius = sqrtf(powf(front_bumper_px,2)+powf(turn_radius+halfwidth,2))\n\
00447 # \n\
00448 # float32 front_inner_bumper_turn_radius = sqrtf(powf(front_bumper_px,2)+ powf(turn_radius-halfwidth,2))\n\
00449 #\n\
00450 # float32 rear_outer_bumper_turn_radius = sqrtf(powf(rear_bumper_px,2)+ powf(turn_radius+halfwidth,2))\n\
00451 #\n\
00452 # float32 rear_inner_bumper_turn_radius = sqrtf(powf(rear_bumper_px,2)+ powf(turn_radius-halfwidth,2))\n\
00453 \n\
00454 ";
00455 }
00456
00457 static const char* value(const ::art_msgs::ArtVehicle_<ContainerAllocator> &) { return value(); }
00458 };
00459
00460 template<class ContainerAllocator> struct IsFixedSize< ::art_msgs::ArtVehicle_<ContainerAllocator> > : public TrueType {};
00461 }
00462 }
00463
00464 namespace ros
00465 {
00466 namespace serialization
00467 {
00468
00469 template<class ContainerAllocator> struct Serializer< ::art_msgs::ArtVehicle_<ContainerAllocator> >
00470 {
00471 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00472 {
00473 }
00474
00475 ROS_DECLARE_ALLINONE_SERIALIZER;
00476 };
00477 }
00478 }
00479
00480 namespace ros
00481 {
00482 namespace message_operations
00483 {
00484
00485 template<class ContainerAllocator>
00486 struct Printer< ::art_msgs::ArtVehicle_<ContainerAllocator> >
00487 {
00488 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::art_msgs::ArtVehicle_<ContainerAllocator> & v)
00489 {
00490 }
00491 };
00492
00493
00494 }
00495 }
00496
00497 #endif // ART_MSGS_MESSAGE_ARTVEHICLE_H
00498