00001 """autogenerated by genmsg_py from ArtVehicle.msg. Do not edit."""
00002 import roslib.message
00003 import struct
00004
00005
00006 class ArtVehicle(roslib.message.Message):
00007 _md5sum = "eea8ee7315c68813f9778b7908a2a725"
00008 _type = "art_msgs/ArtVehicle"
00009 _has_header = False
00010 _full_text = """# ART vehicle dimensions.
00011 # $Id: ArtVehicle.msg 1161 2011-03-26 02:10:49Z jack.oquin $
00012
00013 # This class encapsulates constants for the dimensions of the ART
00014 # autonomous vehicle. All units are meters or radians, except where
00015 # noted. This is not a published message, it defines multi-language
00016 # constants.
00017
00018 # ROS frame ID
00019 string frame_id = "vehicle"
00020
00021 float32 length = 4.8 # overall length
00022 float32 width = 2.12 # overall width
00023 float32 height = 1.5 # overall height (TBD)
00024 float32 halflength = 2.4 # length / 2
00025 float32 halfwidth = 1.06 # width / 2
00026 float32 halfheight = 0.75 # height / 2
00027 float32 wheelbase = 2.33918 # wheelbase
00028
00029 # egocentric coordinates relative to vehicle origin at center of
00030 # rear axle
00031 float32 front_bumper_px = 3.5 # (approximately)
00032 float32 rear_bumper_px = -1.3 # front_bumper_px - length
00033 float32 front_left_wheel_px = 2.33918 # wheelbase
00034 float32 front_left_wheel_py = 2.4 # halfwidth
00035 float32 front_right_wheel_px = 2.33918 # wheelbase
00036 float32 front_right_wheel_py = -1.06 #-halfwidth
00037 float32 rear_left_wheel_px = 0.0
00038 float32 rear_left_wheel_py = 1.06 # halfwidth
00039 float32 rear_right_wheel_px = 0.0
00040 float32 rear_right_wheel_py = -1.06 #-halfwidth
00041
00042 # Player geometry, egocentric pose of robot base (the px really
00043 # does need to be positive for some reason)
00044 float32 geom_px = 1.1 # front_bumper_px - halflength
00045 float32 geom_py = 0.0
00046 float32 geom_pa = 0.0
00047
00048 float32 velodyne_px = 0.393 # (approximately)
00049 float32 velodyne_py = 0.278 # (approximately)
00050 float32 velodyne_pz = 2.4 # (calibrated)
00051 #float32 velodyne_yaw=-0.0343 # (before remounting)
00052 float32 velodyne_yaw=-0.02155 # (approximately)
00053 float32 velodyne_pitch=0.016353735091186868 # (calculated)
00054 float32 velodyne_roll=0.0062133721370998124 # (calculated)
00055
00056 float32 front_SICK_px = 3.178
00057 float32 front_SICK_py= 0.0 # (approximately)
00058 float32 front_SICK_pz = 0.941
00059 float32 front_SICK_roll = 0.0 # (approximately)
00060 float32 front_SICK_pitch = 0.0 # (approximately)
00061 float32 front_SICK_yaw = 0.027 # (approximately)
00062
00063 float32 rear_SICK_px = -1.140
00064 float32 rear_SICK_py = 0.0 # (approximately)
00065 float32 rear_SICK_pz = 0.943
00066 float32 rear_SICK_roll = 0.0 # (approximately)
00067 float32 rear_SICK_pitch = 0.0 # (approximately)
00068 float32 rear_SICK_yaw = 3.1415926535897931160 # (approximately PI)
00069
00070 float32 right_front_camera_px = 0.52 # velodyne_px+0.127 (approx)
00071 float32 right_front_camera_py = 0.189 # velodyne_py-0.089 (approx)
00072 float32 right_front_camera_pz = 2.184 # velodyne_pz-0.216 (approx)
00073 float32 right_front_camera_yaw = -0.4974 # (approx -28.5 deg)
00074 float32 right_front_camera_pitch = 0.0 # (assumed)
00075 float32 right_front_camera_roll = 0.0 # (assumed)
00076
00077 float32 left_front_camera_px = 0.52 # velodyne_px+0.127 (approx)
00078 float32 left_front_camera_py = 0.367 # velodyne_py+0.089 (approx)
00079 float32 left_front_camera_pz = 2.184 # velodyne_pz-0.216 (approx)
00080 float32 left_front_camera_yaw = 0.4974 # (approx +28.5 deg)
00081 float32 left_front_camera_pitch = 0.0 # (assumed)
00082 float32 left_front_camera_roll = 0.0 # (assumed)
00083
00084 # Compute vehicle turning radius. This is the distance from the
00085 # center of curvature to the vehicle origin in the middle of the
00086 # rear axle. The <art/steering.h> comments describe the steering
00087 # geometry model. Since max_steer_degrees is considerably less
00088 # than 90 degrees, there is no problem taking its tangent.
00089
00090 float32 max_steer_degrees = 29.0 # maximum steering angle (degrees)
00091 float32 max_steer_radians = 0.5061455 # maximum steering angle (radians)
00092
00093 # Due to limitations of the ROS message definition format, these
00094 # values needed to be calculated by hand...
00095
00096 # ArtVehicle.wheelbase / math.tan(ArtVehicle.max_steer_radians)
00097 float32 turn_radius = 4.2199922597674142
00098
00099 # math.sqrt(math.pow(ArtVehicle.wheelbase,2)
00100 # + math.pow(ArtVehicle.turn_radius + ArtVehicle.halfwidth,2))
00101 float32 front_outer_wheel_turn_radius = 5.774952929297676
00102
00103 # math.sqrt(math.pow(ArtVehicle.wheelbase,2)
00104 # + math.pow(ArtVehicle.turn_radius - ArtVehicle.halfwidth,2))
00105 float32 front_inner_wheel_turn_radius = 3.9315790916869484
00106
00107 # ArtVehicle.turn_radius + ArtVehicle.halfwidth
00108 float32 rear_outer_wheel_turn_radius = 5.2799922597674147
00109
00110 # ArtVehicle.turn_radius - ArtVehicle.halfwidth
00111 float32 rear_inner_wheel_turn_radius = 3.1599922597674142
00112
00113 # float32 front_outer_bumper_turn_radius = sqrtf(powf(front_bumper_px,2)+powf(turn_radius+halfwidth,2))
00114 #
00115 # float32 front_inner_bumper_turn_radius = sqrtf(powf(front_bumper_px,2)+ powf(turn_radius-halfwidth,2))
00116 #
00117 # float32 rear_outer_bumper_turn_radius = sqrtf(powf(rear_bumper_px,2)+ powf(turn_radius+halfwidth,2))
00118 #
00119 # float32 rear_inner_bumper_turn_radius = sqrtf(powf(rear_bumper_px,2)+ powf(turn_radius-halfwidth,2))
00120
00121 """
00122
00123 frame_id = r'"vehicle"'
00124 length = 4.8
00125 width = 2.12
00126 height = 1.5
00127 halflength = 2.4
00128 halfwidth = 1.06
00129 halfheight = 0.75
00130 wheelbase = 2.33918
00131 front_bumper_px = 3.5
00132 rear_bumper_px = -1.3
00133 front_left_wheel_px = 2.33918
00134 front_left_wheel_py = 2.4
00135 front_right_wheel_px = 2.33918
00136 front_right_wheel_py = -1.06
00137 rear_left_wheel_px = 0.0
00138 rear_left_wheel_py = 1.06
00139 rear_right_wheel_px = 0.0
00140 rear_right_wheel_py = -1.06
00141 geom_px = 1.1
00142 geom_py = 0.0
00143 geom_pa = 0.0
00144 velodyne_px = 0.393
00145 velodyne_py = 0.278
00146 velodyne_pz = 2.4
00147 velodyne_yaw = -0.02155
00148 velodyne_pitch = 0.0163537350912
00149 velodyne_roll = 0.0062133721371
00150 front_SICK_px = 3.178
00151 front_SICK_py = 0.0
00152 front_SICK_pz = 0.941
00153 front_SICK_roll = 0.0
00154 front_SICK_pitch = 0.0
00155 front_SICK_yaw = 0.027
00156 rear_SICK_px = -1.14
00157 rear_SICK_py = 0.0
00158 rear_SICK_pz = 0.943
00159 rear_SICK_roll = 0.0
00160 rear_SICK_pitch = 0.0
00161 rear_SICK_yaw = 3.14159265359
00162 right_front_camera_px = 0.52
00163 right_front_camera_py = 0.189
00164 right_front_camera_pz = 2.184
00165 right_front_camera_yaw = -0.4974
00166 right_front_camera_pitch = 0.0
00167 right_front_camera_roll = 0.0
00168 left_front_camera_px = 0.52
00169 left_front_camera_py = 0.367
00170 left_front_camera_pz = 2.184
00171 left_front_camera_yaw = 0.4974
00172 left_front_camera_pitch = 0.0
00173 left_front_camera_roll = 0.0
00174 max_steer_degrees = 29.0
00175 max_steer_radians = 0.5061455
00176 turn_radius = 4.21999225977
00177 front_outer_wheel_turn_radius = 5.7749529293
00178 front_inner_wheel_turn_radius = 3.93157909169
00179 rear_outer_wheel_turn_radius = 5.27999225977
00180 rear_inner_wheel_turn_radius = 3.15999225977
00181
00182 __slots__ = []
00183 _slot_types = []
00184
00185 def __init__(self, *args, **kwds):
00186 """
00187 Constructor. Any message fields that are implicitly/explicitly
00188 set to None will be assigned a default value. The recommend
00189 use is keyword arguments as this is more robust to future message
00190 changes. You cannot mix in-order arguments and keyword arguments.
00191
00192 The available fields are:
00193
00194
00195 @param args: complete set of field values, in .msg order
00196 @param kwds: use keyword arguments corresponding to message field names
00197 to set specific fields.
00198 """
00199 if args or kwds:
00200 super(ArtVehicle, self).__init__(*args, **kwds)
00201
00202 def _get_types(self):
00203 """
00204 internal API method
00205 """
00206 return self._slot_types
00207
00208 def serialize(self, buff):
00209 """
00210 serialize message into buffer
00211 @param buff: buffer
00212 @type buff: StringIO
00213 """
00214 try:
00215 pass
00216 except struct.error, se: self._check_types(se)
00217 except TypeError, te: self._check_types(te)
00218
00219 def deserialize(self, str):
00220 """
00221 unpack serialized message in str into this message instance
00222 @param str: byte array of serialized message
00223 @type str: str
00224 """
00225 try:
00226 end = 0
00227 return self
00228 except struct.error, e:
00229 raise roslib.message.DeserializationError(e)
00230
00231
00232 def serialize_numpy(self, buff, numpy):
00233 """
00234 serialize message with numpy array types into buffer
00235 @param buff: buffer
00236 @type buff: StringIO
00237 @param numpy: numpy python module
00238 @type numpy module
00239 """
00240 try:
00241 pass
00242 except struct.error, se: self._check_types(se)
00243 except TypeError, te: self._check_types(te)
00244
00245 def deserialize_numpy(self, str, numpy):
00246 """
00247 unpack serialized message in str into this message instance using numpy for array types
00248 @param str: byte array of serialized message
00249 @type str: str
00250 @param numpy: numpy python module
00251 @type numpy: module
00252 """
00253 try:
00254 end = 0
00255 return self
00256 except struct.error, e:
00257 raise roslib.message.DeserializationError(e)
00258
00259 _struct_I = roslib.message.struct_I