@@ -2,6 +2,7 @@ syntax = "proto2";
22
33option optimize_for = SPEED ;
44
5+ import "osi_version.proto" ;
56import "osi_common.proto" ;
67import "osi_object.proto" ;
78
@@ -32,47 +33,75 @@ message HostVehicleData
3233 // \note Note that dimension and base_polygon need not be set.
3334 //
3435 optional BaseMoving location_rmse = 2 ;
36+
37+ // The interface version used by the sender (i.e. the simulation
38+ // environment).
39+ //
40+ optional InterfaceVersion version = 3 ;
41+
42+ // The data timestamp of the simulation environment. The zero time point is
43+ // arbitrary but must be identical for all messages.
44+ // Recommendation: Zero time point for start point of the simulation.
45+ //
46+ // \note Zero time point does not need to coincide with the UNIX epoch.
47+ //
48+ // \note For ground truth data this timestamp coincides both with the
49+ // notional simulation time the data applies to and the time it was sent
50+ // (there is no inherent latency for ground truth data, as opposed to
51+ // sensor data).
52+ //
53+ optional Timestamp timestamp = 4 ;
3554
3655 // Contains all the perceivable information.
3756 //
38- optional MovingObject moving_object = 3 ;
57+ optional MovingObject moving_object = 5 ;
3958
40- // Contains all the non-perceivable information.
59+ // Contains all the non-perceivable information, that is measured or
60+ // calculated and transported by the board net.
4161 //
42- optional HostVehicleDataClass host_vehicle_data = 4 ;
62+ optional HostVehicleDataClass host_vehicle_data = 6 ;
4363}
4464
4565//
46- // \brief The vehicle-class is a deeper description of a vehicle about the non-perceivable information.
66+ // \brief The vehicle-class is about the non-perceivable information, that is measured or
67+ // calculated and transported by the board net.
4768// It consists of different messages categorizing the vehicle in:
4869// Vehicle-Basics, Vehicle-Powermanagement, Vehicle-Powertrain, Vehicle-SteeringWheel, Vehicle-Wheels, Vehicle-Localization.
4970// As it is an description of the whole vehicle (focus on cars) it can be used as interface for various reasons.
5071//
5172message HostVehicleDataClass
5273{
74+ // The ID of the object.
75+ //
76+ // \rules
77+ // is_globally_unique
78+ // \endrules
79+ //
80+ optional Identifier id = 1 ;
81+
5382 // The basic parameters of the vehicle.
5483 //
55- optional VehicleBasics vehicle_basics = 1 ;
84+ optional VehicleBasics vehicle_basics = 2 ;
5685
5786 // Interface regarding the powermanagement.
5887 //
59- optional VehiclePowermanagement vehicle_powermanagement = 2 ;
88+ optional VehiclePowermanagement vehicle_powermanagement = 3 ;
6089
6190 // Interface regarding the powertrain.
6291 //
63- optional VehiclePowertrain vehicle_powertrain = 3 ;
92+ optional VehiclePowertrain vehicle_powertrain = 4 ;
6493
6594 // Interface regarding the steering wheel.
6695 //
67- optional VehicleSteeringWheel vehicle_steering_wheel = 4 ;
96+ optional VehicleSteeringWheel vehicle_steering_wheel = 5 ;
6897
6998 // Interface regarding the wheels.
7099 //
71- optional VehicleWheels vehicle_wheels = 5 ;
100+ optional VehicleWheels vehicle_wheels = 6 ;
72101
73102 // Interface regarding the navigation.
74103 //
75- optional VehicleLocalization vehicle_localization = 6 ;
104+ optional VehicleLocalization vehicle_localization = 7 ;
76105
77106 //
78107 // \brief The absolute base parameters of the vehicle.
@@ -107,22 +136,10 @@ message HostVehicleDataClass
107136 //
108137 optional Pedalry pedalry = 1 ;
109138
110- // Rounds per minute of the engine. RPM can be from E-Motor/ Engine.
111- //
112- // Unit: 1/min
113- //
114- optional double motor_rpm = 2 ;
115-
116- // Torque in Nm. It can either be from Engine/E-Motor or combined Torque values.
117- //
118- // Unit: N*m
119- //
120- optional double motor_torque = 3 ;
121-
122139 // The actual gear of the gear lever.
123140 // May come up later. For now just to be mentioned.
124141 //
125- // optional GearLeverState gear_lever_state = 4 ;
142+ // optional GearLeverState gear_lever_state = 2 ;
126143
127144 // The actual gear of the transmission.
128145 // E.g. gear_lever can be in "D" and transmission in "4", but not the
@@ -134,7 +151,11 @@ message HostVehicleDataClass
134151 // - negative: reverse mode (generally -1, but few vehicles have several
135152 // reverse mode gears)
136153 //
137- optional int32 gear_transmission = 5 ;
154+ optional int32 gear_transmission = 3 ;
155+
156+ // Information about the motor(s).
157+ //
158+ repeated Motor motor = 4 ;
138159
139160 //
140161 // \brief A description for the positions of the pedals.
@@ -156,6 +177,52 @@ message HostVehicleDataClass
156177 //
157178 optional double pedal_position_clutch = 3 ;
158179 }
180+
181+ //
182+ // \brief A description for the positions of the pedals.
183+ //
184+ message Motor
185+ {
186+ // The type of the motor.
187+ //
188+ optional Type type = 1 ;
189+
190+ // Rounds per minute of the engine. RPM can be from E-Motor/ Engine.
191+ //
192+ // Unit: 1/min
193+ //
194+ optional double rpm = 2 ;
195+
196+ // Torque in Nm. It can either be from Engine/E-Motor or combined Torque values.
197+ //
198+ // Unit: N*m
199+ //
200+ optional double torque = 3 ;
201+
202+ // Definition which type of motor is used.
203+ //
204+ enum Type
205+ {
206+ // The powertrain mode is unknown.
207+ //
208+ TYPE_UNKNOWN = 0 ;
209+
210+ // It is another powertrain mode.
211+ //
212+ TYPE_OTHER = 1 ;
213+
214+ // A motor working after the principle of Nicolaus Otto.
215+ //
216+ TYPE_OTTO = 2 ;
217+
218+ // A motor working after the principle of Rudolf Diesel.
219+ //
220+ TYPE_DIESEL = 3 ;
221+
222+ // A motor working electric.
223+ //
224+ TYPE_ELEKTRIC = 4 ;
225+ }
159226 }
160227
161228 //
@@ -200,9 +267,19 @@ message HostVehicleDataClass
200267 //
201268 message Wheel
202269 {
203- // Information about how the wheel is arranged.
270+ // The axle which contains this wheel. A value of 0 represents the
271+ // front-most axle of the vehicle with higher numbers incrementing
272+ // towards the rear-most axle.
273+ //
274+ optional uint32 axle = 1 ;
275+
276+ // The index of the wheel on the axle, counting in the direction
277+ // of positive-y, i.e. right-to-left.
278+ //
279+ // For example, on a standard 2-axle, 4-wheel car, the rear-right
280+ // wheel would be (axle=1, index=0).
204281 //
205- optional Arrangement arrangement = 1 ;
282+ optional uint32 index = 2 ;
206283
207284 // Dry friction is a force that opposes the relative lateral motion of two solid surfaces
208285 // in contact. It is subdivided into static friction between non-moving surfaces and kinetic
@@ -215,72 +292,28 @@ message HostVehicleDataClass
215292 // \par References:
216293 // - http://adaptivemap.ma.psu.edu/websites/6_friction/dry_friction/dryfriction.html
217294 //
218- optional double kinetic_friction_coefficient = 2 ;
295+ optional double kinetic_friction_coefficient = 3 ;
219296
220297 // Contact point of the mid of the tire tread with the world.
221298 // Absolute coordinates (x, y, z).
222299 //
223300 // Unit: m
224301 //
225- optional Vector3d contact_point = 3 ;
302+ optional Vector3d contact_point = 4 ;
226303
227304 // Contains the rotational speed of each wheel per second.
228305 //
229306 // Unit: rad/s
230307 //
231- optional double rotational_speed = 4 ;
232-
233- // Contains the steering angle of each wheel.
234- // Right < 0; 0 = straight; 0 < left.
235- //
236- // Unit: rad
237- //
238- optional double steering_angle = 5 ;
239-
240- // Contains the relativ position of the center of the wheel to the center of the bounding-box.
241- // Possibility to get the spring deflection and the camber (https://en.wikipedia.org/wiki/Camber_angle).
242- //
243- // Unit: m
244- //
245- optional MountingPosition position = 6 ;
308+ optional double rotational_speed = 5 ;
246309
247310 // Contains the longitudinal slip of the tire.
248311 // \par References:
249312 // - https://www.kfz-tech.de/Biblio/Formelsammlung/Schlupf.htm
250313 //
251314 // Unit: %
252315 //
253- optional double slip = 7 ;
254-
255- // Information about how the wheel is arranged.
256- //
257- enum Arrangement
258- {
259- // The description is about a wheel that has an unknown arrangement.
260- //
261- ARRANGEMENT_UNKNOWN = 0 ;
262-
263- // The description is about a wheel that has another arrangement (e.g. more than four wheels).
264- //
265- ARRANGEMENT_OTHER = 1 ;
266-
267- // Arragement of the wheels in counter clock-wise direction starting from front-left wheel.
268- // The description is about the front-left wheel.
269- //
270- ARRANGEMENT_FRONT_LEFT = 2 ;
271-
272- // The description is about the rear-left wheel.
273- //
274- ARRANGEMENT_REAR_LEFT = 3 ;
275-
276- // The description is about the rear-right wheel.
277- //
278- ARRANGEMENT_FRONT_RIGHT = 4 ;
279-
280- // The description is about the front-right wheel.
281- //
282- ARRANGEMENT_REAR_RIGHT = 5 ;
283- }
316+ optional double slip = 6 ;
284317 }
285318 }
286319
@@ -292,16 +325,17 @@ message HostVehicleDataClass
292325 //
293326 // \brief This message contains information about the vehicle's knowledge about its own cartesian position.
294327 //
295- message CartesianPosition
328+ message CartesianInformation
296329 {
297330 // To be discussed.
298- //
331+ // xyz, pitch,roll,yaw., velocities, accelerations, one level higher
332+ optional BaseMoving cartesian_data
299333 }
300334
301335 //
302336 // \brief This message contains information about the vehicle's georeferenced positioning solution component.
303337 //
304- message GeoreferencedPosition
338+ message GeoreferencedInformation
305339 {
306340 // Longitude in decimal degrees regarding WGS84.
307341 //
@@ -321,7 +355,7 @@ message HostVehicleDataClass
321355 //
322356 optional double altitude = 3 ;
323357
324- // To be discussed:
358+ // To be discussed as it is in CartesianInformation.
325359 // Heading in decimal degrees.
326360 //
327361 // Unit: Degree
0 commit comments