Skip to content

Commit 17325be

Browse files
ThomasNaderBMWNader Thomas
authored andcommitted
Update osi_hostvehicledata.proto
Some improvements regarding architectural issues and out of definition reasons. Signed-off-by: Nader Thomas <a442105@europe.bmw.corp>
1 parent dc9a377 commit 17325be

File tree

1 file changed

+112
-78
lines changed

1 file changed

+112
-78
lines changed

osi_hostvehicledata.proto

Lines changed: 112 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ syntax = "proto2";
22

33
option optimize_for = SPEED;
44

5+
import "osi_version.proto";
56
import "osi_common.proto";
67
import "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
//
5172
message 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

Comments
 (0)