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