-
Notifications
You must be signed in to change notification settings - Fork 130
Extension of the hostVehicleData #441
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 45 commits
3ad8be3
1739be3
5bb812a
0af1a86
7974066
15fb4e5
71bb84c
c22e072
7bb9950
a0a8519
6e27e30
7219fc2
c7dc1d4
0fca3b0
6805d20
91ec81d
00ed4d0
7892fdc
d6531e5
d80490f
89d3511
00fc1b0
dc9a377
17325be
8fc6c0d
4a4d1d0
551bba4
b525273
833492d
af2dd44
0e00971
cf2f173
e438e8c
9c0331e
8b7d52a
03921f2
8e8324d
45dab98
c3b3286
8c35f1a
f0b626b
7abdbe2
4992e47
c06260d
b56641b
4a2ebf8
abd2e5b
ab69421
b45d3b1
3a78b2b
2b4fda2
3a3177b
9c45564
d77abe6
4d9597a
59ddd4d
66369fd
109128e
c7b7195
3f3044d
fd45d69
9fff53e
d0ae8e4
f679730
d4eaae3
d7fab37
373fc41
97444fa
7097103
a9e6a71
81023c2
d25e1eb
65d8f6e
06d9367
ab851f3
7fdfe13
1658954
358c2c7
fda0425
f343997
d3f4e65
3ce9b2e
d80bb46
ab60959
cae5f41
60f72c9
ae75a40
72a2ba1
ff2ef96
33c4e2b
1cb802f
707d4f8
62365c3
1489f9a
e37a8c5
829c9fc
7cb894b
9b203bb
6db66ba
6b44b2e
373b8af
cb4ba05
cc9e734
13224ce
fbbcc9e
69f1c91
eb1e008
2a3c8de
222b208
66ff072
c674c97
ba1a165
7a10507
67694c3
aeb8541
3430255
a2fe892
2f0fb36
6fd6072
abc6614
d2e10b6
76bb1ac
e7f323f
e2b2aee
3ae6ec8
eb4e2e1
a2d284c
f1911d4
3f28734
6b8d46d
25320e7
c500a7f
ddc725b
53a9f56
bbb3dd7
19968a0
6e94c46
5cc6023
2153d19
7bad2e3
fe5a9c2
715b8dc
50be6e3
2d768ca
99b1774
9ab2e19
7aac1b2
60cf532
881d116
f560908
bcbd224
54b4887
ac38249
c940689
3bd6e4c
f9f0535
807e03c
1637dd7
63ef7a1
42ba6da
832b831
4b31b9d
95ea2b2
f74c2cb
bae3655
b97d5d2
adbd196
d70472e
8758e66
de55aa8
babb7a7
b2ba557
e3e68fb
cae1442
1df1fa6
1cc2182
89cd42d
0e90613
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,31 +2,354 @@ syntax = "proto2"; | |
|
|
||
| option optimize_for = SPEED; | ||
|
|
||
| import "osi_version.proto"; | ||
| import "osi_common.proto"; | ||
|
|
||
| package osi3; | ||
|
|
||
| // \brief Host vehicle data is about the perception of the vehicle about it's own, internal states. | ||
| // It can be understood as an interface container for restbussimulation signals. | ||
| // If there is a duplication with values from the rest of SensorView or SensorData, than these shall be taken. | ||
| // | ||
| // \brief Interface for host vehicle data that is available to sensors and | ||
| // other functions due to host vehicle's internal communication. | ||
| // It consists of different messages categorizing the vehicle in: | ||
| // Vehicle-Basics, Vehicle-Powermanagement, Vehicle-Powertrain, Vehicle-SteeringWheel, Vehicle-Wheels, Vehicle-Localization. | ||
| // | ||
| // \image html OSI_HostVehicle.svg | ||
| // | ||
| // All coordinates and orientations are relative to the global ground truth | ||
| // coordinate system. | ||
| // | ||
| message HostVehicleData | ||
| { | ||
| // The interface version used by the sender. | ||
| // | ||
| optional InterfaceVersion version = 10; | ||
|
|
||
| // The timestamp of the host vehicle data. Zero time is arbitrary but must be | ||
| // identical for all messages. Zero time does not need to coincide with | ||
| // the unix epoch. Recommended is the starting time point of the | ||
| // simulation or measurement. | ||
| // | ||
| // \note This is the point in time that the host vehicle data message becomes | ||
| // available as snapshot from the board net information. | ||
| // | ||
| optional Timestamp timestamp = 11; | ||
|
|
||
| // Deprecated: Will be removed in next major release. Moved to VehiclePositionAndKinematics. | ||
| // Current estimated location based on GPS- and related navigation sensors. | ||
| // | ||
| // \note Note that dimension and base_polygon need not be set. | ||
| // | ||
| optional BaseMoving location = 1; | ||
|
|
||
| // Current estimated location error based on GPS- and related navigation | ||
| // Deprecated: Will be removed in next major release. Moved to VehiclePositionAndKinematics. | ||
| // Current estimated location error based on GPS- and related navigation | ||
| // sensors. | ||
| // | ||
| // \note Note that dimension and base_polygon need not be set. | ||
| // | ||
| optional BaseMoving location_rmse = 2; | ||
|
|
||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We might want to add fields for the current time of day, as known to the vehicle, and a simulation-time current timestamp to indicate for which point in simulation time the fields of this message are considered valid (which indicates the time when the car networks would have transmitted this data, which is different from individual measurement times that went into the calculations for the values). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I also agree that we need an addtional timestamp that excludes the additional latency from the system (this is the time of the actual measurement when it was measured (real data) or generated (simulation)). |
||
| // The basic parameters of the vehicle. | ||
| // | ||
| optional VehicleBasics vehicle_basics = 3; | ||
|
|
||
| // Interface regarding the powermanagement. | ||
| // | ||
| optional VehiclePowermanagement vehicle_powermanagement = 4; | ||
|
|
||
| // Interface regarding the powertrain. | ||
| // | ||
| optional VehiclePowertrain vehicle_powertrain = 5; | ||
|
|
||
| // Interface regarding the steering wheel. | ||
| // | ||
| optional VehicleSteeringWheel vehicle_steering_wheel = 6; | ||
|
|
||
| // Interface regarding the wheels. | ||
| // | ||
| optional VehicleWheels vehicle_wheels = 7; | ||
|
|
||
| // Interface regarding the navigation. | ||
| // | ||
| optional VehiclePositionAndKinematics vehicle_position_and_kinematics = 8; | ||
|
|
||
| // | ||
| // \brief The absolute base parameters of the vehicle. | ||
| // | ||
| message VehicleBasics | ||
| { | ||
| // The total mass of the vehicle (curb weight). | ||
| // | ||
| // Unit: kg | ||
| // | ||
| // \par Reference: | ||
| // Paragraph 42 of the German Road Traffic Admission Regulations (StVZO). | ||
| // | ||
| optional double curb_weight = 1; | ||
| } | ||
|
|
||
| // | ||
| // \brief State description of the powertrain. | ||
| // | ||
| message VehiclePowermanagement | ||
| { | ||
| // To be discussed. | ||
| // | ||
| } | ||
|
|
||
| // | ||
| // \brief State description of the powertrain. | ||
| // | ||
| message VehiclePowertrain | ||
| { | ||
| // The positions of the pedals. | ||
| // | ||
| optional Pedalry pedalry = 1; | ||
|
|
||
| // The actual gear of the gear lever. | ||
| // May come up later. For now just to be mentioned. | ||
| // | ||
| // optional GearLeverState gear_lever_state = 2; | ||
|
|
||
| // The actual gear of the transmission. | ||
| // E.g. gear_lever can be in "D" and transmission in "4", but not the | ||
| // other way around. | ||
| // | ||
| // The sign of this field is linked to the gear's mode as following: | ||
| // - zero: neutral position | ||
| // - positive: driving forward mode | ||
| // - negative: reverse mode (generally -1, but few vehicles have several | ||
| // reverse mode gears) | ||
| // | ||
| optional int32 gear_transmission = 3; | ||
|
|
||
| // Information about the motor(s). | ||
| // | ||
| repeated Motor motor = 4; | ||
|
|
||
| // | ||
| // \brief A description for the positions of the pedals. | ||
| // | ||
| message Pedalry | ||
| { | ||
| // Position of the acceleration-pedal. | ||
| // Range: 0-1 (Unpressed - fully pressed) | ||
| // | ||
| optional double pedal_position_acceleration = 1; | ||
ThomasNaderBMW marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| // Position of the brake-pedal. | ||
| // Range: 0-1 (Unpressed - fully pressed) | ||
| // | ||
| optional double pedal_position_brake = 2; | ||
|
|
||
| // Position of the clutch-pedal. | ||
| // Range: 0-1 (Unpressed - fully pressed) | ||
| // | ||
| optional double pedal_position_clutch = 3; | ||
| } | ||
|
|
||
| // | ||
| // \brief A description for the positions of the pedals. | ||
| // | ||
| message Motor | ||
| { | ||
| // The type of the motor. | ||
| // | ||
| optional Type type = 1; | ||
|
|
||
| // Rounds per minute of the engine. RPM can be from E-Motor/ Engine. | ||
| // | ||
| // Unit: 1/min | ||
| // | ||
| optional double rpm = 2; | ||
|
|
||
| // Torque in Nm. It can either be from Engine/E-Motor or combined Torque values. | ||
| // | ||
| // Unit: N*m | ||
| // | ||
| optional double torque = 3; | ||
|
|
||
| // Definition which type of motor is used. | ||
| // | ||
| enum Type | ||
| { | ||
| // The powertrain mode is unknown. | ||
| // | ||
| TYPE_UNKNOWN = 0; | ||
|
|
||
| // It is another powertrain mode. | ||
| // | ||
| TYPE_OTHER = 1; | ||
|
|
||
| // A motor working after the principle of Nicolaus Otto. | ||
| // | ||
| TYPE_OTTO = 2; | ||
|
|
||
| // A motor working after the principle of Rudolf Diesel. | ||
| // | ||
| TYPE_DIESEL = 3; | ||
|
|
||
| // A motor working electric. | ||
| // | ||
| TYPE_ELECTRIC = 4; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| // | ||
| // \brief Interface to the vehicle-model. | ||
| // The focus here is on the steering wheel. | ||
| // | ||
| message VehicleSteeringWheel | ||
| { | ||
| // Angle of the steering wheel. | ||
| // 0=Central (Straight); Left>0; 0>Right. | ||
| // | ||
| // Unit: rad | ||
| // | ||
| optional double angle = 1; | ||
|
|
||
| // Angle-speed of the steering wheel. | ||
| // 0=Central (Straight); Left>0; 0>Right. | ||
| // | ||
| // Unit: rad/s | ||
| // | ||
| optional double angular_speed = 2; | ||
|
|
||
| // Torque of the steering wheel to the hand. | ||
| // 0=Central (Straight); Left>0; 0>Right. | ||
| // | ||
| // Unit: N*m | ||
| // | ||
| optional double torque = 3; | ||
| } | ||
|
|
||
| // | ||
| // \brief The focus here is on the description of the wheels. | ||
| // | ||
| message VehicleWheels | ||
| { | ||
| // Contains the description of a wheel. | ||
| // | ||
| repeated Wheel wheel = 1; | ||
|
|
||
| // | ||
| // \brief The focus here is on the description of a wheel. | ||
| // | ||
| message Wheel | ||
| { | ||
| // The axle which contains this wheel. A value of 0 represents the | ||
| // front-most axle of the vehicle with higher numbers incrementing | ||
| // towards the rear-most axle. | ||
| // | ||
| optional uint32 axle = 1; | ||
|
|
||
| // The index of the wheel on the axle, counting in the direction | ||
| // of positive-y, i.e. right-to-left. | ||
| // | ||
| // For example, on a standard 2-axle, 4-wheel car, the rear-right | ||
| // wheel would be (axle=1, index=0). | ||
| // | ||
| optional uint32 index = 2; | ||
|
|
||
| // Dry friction is a force that opposes the relative lateral motion of two solid surfaces | ||
| // in contact. It is subdivided into static friction between non-moving surfaces and kinetic | ||
| // friction between moving surfaces. | ||
| // Ued here is the dry friction coefficient of the paired materials (see reference). | ||
| // Dimensionless. | ||
| // | ||
| // Unit: - | ||
| // | ||
| // \par References: | ||
| // - http://adaptivemap.ma.psu.edu/websites/6_friction/dry_friction/dryfriction.html | ||
| // | ||
| //optional double kinetic_friction_coefficient = 3; | ||
|
|
||
| // Contact point of the mid of the tire tread with the world. | ||
| // Absolute coordinates (x, y, z). | ||
| // | ||
| // Unit: m | ||
| // | ||
| //optional Vector3d contact_point = 4; | ||
|
|
||
| // Contains the rotation rate of the wheel per second in radians. | ||
| // Based on the processed output of the hall sensor at the wheel. | ||
| // | ||
| // Unit: rad/s | ||
| // | ||
| optional double rotation_rate = 5; | ||
|
|
||
| // Contains the longitudinal slip of the tire. | ||
| // \par References: | ||
| // - https://www.kfz-tech.de/Biblio/Formelsammlung/Schlupf.htm | ||
| // | ||
| // Unit: % | ||
| // | ||
| optional double slip = 6; | ||
| } | ||
| } | ||
|
|
||
| // | ||
| // \brief Current calculated and estimated location that can be based on GNSS- and related navigation sensors, | ||
| // but this message does not contain the single sensor values of the sensorics. | ||
| // | ||
| // This message contains the most accurate information the vehicle knows about its positioning and kinematics | ||
| // available on the board net. | ||
| // Because of this the values can differ from the "true" values calculated out of | ||
| // GroundTruth::proj_string, GroundTruth::MovingObject::BaseMoving::position, GroundTruth::host_vehicle_id. | ||
| // | ||
| message VehiclePositionAndKinematics | ||
| { | ||
| // Geodetic origin of the ENU (east-north-up) cartesian coordinate system regarding WGS84. | ||
| // | ||
| optional GeodeticPosition enu_origin = 1; | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @u21n80 : I adapted this PR as suggested (with a smaller restructuring). |
||
|
|
||
| // The host vehicle location and kinematics at \c HostVehicleData::timestamp. | ||
| // | ||
| // \note If \c HostVehicleData::enu_origin is specified, then the \c BaseMoving parent frame used by | ||
| // \c HostVehicleData::location is the ENU frame according to ISO8855 with the geodetic origin of | ||
| // \c HostVehicleData::enu_origin. Otherwise \c BaseMoving parent frame is an arbitrary cartesian coordinate system | ||
| // with its axis conventions following ISO8855. | ||
| // | ||
| // \note Note that dimension and base_polygon need not be set. | ||
| // | ||
| optional BaseMoving location = 2; | ||
|
||
|
|
||
ThomasNaderBMW marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| // The host vehicle location and kinematics root-mean-square errors at \c HostVehicleData::timestamp. | ||
| // | ||
| // \note If \c HostVehicleData::enu_origin is specified, then the \c BaseMoving parent frame used by | ||
| // \c HostVehicleData::location is the ENU frame according to ISO8855 with the geodetic origin of | ||
| // \c HostVehicleData::enu_origin. Otherwise \c BaseMoving parent frame is an arbitrary cartesian coordinate system | ||
| // with its axis conventions following ISO8855. | ||
| // | ||
| // \note Note that dimension and base_polygon need not be set. | ||
| // | ||
| optional BaseMoving location_rmse = 3; | ||
| } | ||
|
|
||
| // | ||
| // \brief The geodetic position of the vehicle. | ||
| // In which context it is used has to be specified in the concrete field. | ||
| // | ||
| message GeodeticPosition | ||
| { | ||
| // Longitude in decimal degrees regarding WGS84. | ||
| // | ||
| // Unit: Degree | ||
| // Range: [-180; 180] | ||
| // | ||
| optional double longitude = 1; | ||
|
|
||
| // Latitude in decimal degrees regarding WGS84. | ||
| // | ||
| // Unit: Degree | ||
| // Range: [-90; 90] | ||
| // | ||
| optional double latitude = 2; | ||
|
|
||
| // Height above sea level regarding EGM96. | ||
| // | ||
| // Unit: m | ||
| // Range: [-300; 10000] | ||
| // | ||
| optional double altitude = 3; | ||
| } | ||
| } | ||
Uh oh!
There was an error while loading. Please reload this page.