From 4312db914c32eb8c9636bb3cb136516b2c6a0b42 Mon Sep 17 00:00:00 2001
From: ThomasNaderBMW <43751290+ThomasNaderBMW@users.noreply.github.com>
Date: Wed, 24 Oct 2018 17:34:50 +0200
Subject: [PATCH 01/39] Extension by HMI-, ADAS- and Dynamic-Values
Think about a simulation-construct consisting of a human driver, an AD-function and also a dynamic-model.
All these pieces can come from different authors, but should work together.
This is a requirement the driving-simulation-sector has to deal with:
A test person wants to activate an external highly automated driving in a mock-up. So the function has to listen to the mock-up. The other way around the mock-up has to understand commands from the function (Take-over-request?). So this is an interface that should be standardized.
Furthermore, it is the same with an external dynamic-model. How can this listen to the simulation-environment to get values like the friction of the street needed for dynamic-calculations? And also here, the other way around: The results of the dynamic-model describe the state of a vehicle regarding kinematics. Additionally, calculated values for the engine or the steering can be part of. Both datasets are worth to be standardized.
Dear OSI-Community, please help to enhance the appended .proto-signals.
---
osi_adas_function.proto | 112 +++++++++++++
osi_common_extension.proto | 278 ++++++++++++++++++++++++++++++++
osi_driver_inputs.proto | 109 +++++++++++++
osi_environment_extension.proto | 45 ++++++
osi_vehicle.proto | 156 ++++++++++++++++++
5 files changed, 700 insertions(+)
create mode 100644 osi_adas_function.proto
create mode 100644 osi_common_extension.proto
create mode 100644 osi_driver_inputs.proto
create mode 100644 osi_environment_extension.proto
create mode 100644 osi_vehicle.proto
diff --git a/osi_adas_function.proto b/osi_adas_function.proto
new file mode 100644
index 000000000..ceb68c74b
--- /dev/null
+++ b/osi_adas_function.proto
@@ -0,0 +1,112 @@
+syntax = "proto2";
+
+option optimize_for = SPEED;
+
+import "osi_common.proto";
+import "osi_common_extension.proto";
+
+package osi3;
+
+//
+// \brief An Interface to describe the communication of an ADAS-function.
+// This proto is in far parts complementary to the osi_driver_inputs.proto.
+// The inputs are divided into states and requests.
+//
+// The first set of signals are states the function sets internally
+// and are relevant for the vehicle state.
+//
+message FunctionStates
+{
+ // States of an ADAS-Function (SAE Level 3).
+ //
+ optional AdasSAELevel3 adas_sae_level_3 = 1;
+
+ // States of the longitudinal control.
+ //
+ optional LongitudinalControl longitudinal_control = 2;
+
+ // States of the lateral control.
+ //
+ optional LateralControl lateral_control = 3;
+
+ // States of function Emergency-Brake-Assistant.
+ //
+ optional EmergencyBrakeAssistant emergency_brake_assistant = 4;
+
+ // State of an ADAS-Function (SAE Level 3).
+ //
+ optional bool pilot_level3_state = 5;
+
+ // Request that the driver has to take over.
+ // 0=Off; 1=On
+ //
+ optional bool driver_take_over_request = 6;
+
+ // Color of the steering wheel (e.g. to show the driving mode).
+ // See osi_common_extension.
+ //
+ optional ColorformatRGB steering_wheel_lighting_color = 7;
+
+ // Requested state of the blindspot-lights (often in the side mirrors).
+ //
+ enum BlindSpotWarning
+ {
+ NONE = 0;
+
+ LEFT = 1;
+
+ RIGHT = 2;
+
+ BOTH = 3;
+ }
+}
+
+//
+// \brief An Interface to describe the communication of an ADAS-function.
+// This proto is in far parts complementary to the osi_driver_inputs.proto.
+// The inputs are divided into states and requests.
+//
+// The first set of signals are states the function sets internally
+// and are relevant for the vehicle state.
+//
+message FunctionRequests
+{
+ // All information about the trajectory the vehicle should follow.
+ // See osi_common_extension.
+ //
+ optional Trajectory trajectory = 1;
+
+ // Angle, angle-speed and torque.
+ // See osi_common_extension.
+ //
+ optional Steeringwheel steeringwheel = 2;
+
+ // Factor to scale the steeringtorque of the function output.
+ // 0-1 (0 = no force of the function, 0.5 = half the force, 1 = 100% Torque).
+ //
+ optional double steering_override_factor = 3;
+
+ // Acceleration-, brakepedal and clutch.
+ // See osi_common_extension.
+ //
+ optional Pedalry pedalry = 4;
+
+ // Position of the handbrake.
+ // 0-100 (percentage of position: Released - fully pressed)
+ //
+ optional double handbrake = 5;
+
+ // This is a description of the possible indicatorstates.
+ //
+ enum Indicators
+ {
+ NONE = 0;
+
+ LEFT = 1;
+
+ RIGHT = 2;
+
+ // Warning lights.
+ ALL = 3;
+ }
+}
diff --git a/osi_common_extension.proto b/osi_common_extension.proto
new file mode 100644
index 000000000..ee3070fd0
--- /dev/null
+++ b/osi_common_extension.proto
@@ -0,0 +1,278 @@
+syntax = "proto2";
+
+option optimize_for = SPEED;
+
+package osi3;
+
+//
+// \brief A description for the steeringwheel.
+//
+message Steeringwheel
+{
+ // Angle of the steeringwheel.
+ //
+ // Unit in Rad [-pi, pi]: 0=Central (Straight); Left>0; 0>Right.
+ //
+ optional double angle = 1;
+
+ // Angle-speed of the steeringwheel.
+ //
+ // Unit in rad/s [-pi/s, pi/s]: 0=Central (Straight); Left>0; 0>Right.
+ //
+ optional double anglespeed = 2;
+
+ // Torque of the steeringwheel to the hand.
+ //
+ // Unit in Nm: 0=Central (Straight); Left>0; 0>Right.
+ //
+ optional double torque = 3;
+}
+
+//
+// \brief A description for the positions of the pedals.
+//
+//
+message Pedalry
+{
+ // Position of the acceleration-pedal.
+ // 0-100 (percentage of position: Unpressed - fully pressed)
+ //
+ optional double pedalposition_acceleration = 1;
+
+ // Position of the brake-pedal.
+ // 0-100 (percentage of position: Unpressed - fully pressed)
+ //
+ optional double pedalposition_brake = 2;
+
+ // Position of the clutch-pedal.
+ // 0-100 (percentage of position: Unpressed - fully pressed)
+ //
+ optional double pedalposition_clutch = 3;
+}
+
+//
+// \brief This is a message to describe, which trajectory the vehicle should follow.
+//
+//
+message Trajectory
+{
+ // Contains the timestamp where the trajectorypoint should be reached.
+ // In [s].
+ //
+ optional double timestamp = 1;
+
+ // Contains the X-Position the vehicle should be at the timestamp.
+ //
+ optional double targeted_PosX = 2;
+
+ // Contains the Y-Position the vehicle should be at the timestamp.
+ //
+ optional double targeted_PosY = 3;
+
+ // Direction of the vehicle at the timestamp.
+ // In [Rad].
+ //
+ optional double trackangle = 4;
+
+ // Contains the curvature at the timestamp.
+ // In [1/m].
+ //
+ optional double curvature = 5;
+
+ // Contains the curvaturechange at the timestamp.
+ // In [1/m*s].
+ //
+ optional double curvaturechange = 6;
+
+ // Contains the velocity of the vehicle at the timestamp.
+ // In [m/s].
+ //
+ optional double velocity = 7;
+
+ // Contains the acceleration of the vehicle at the timestamp.
+ // In [m/s^2].
+ //
+ optional double acceleration = 8;
+
+ // Contains the interpolation method.
+ //
+ enum interpolation_method
+ {
+ // Stay on the actual lane.
+ //
+ LINEAR = 0;
+
+ // Change to the left.
+ //
+ CUBIC = 1;
+ }
+}
+
+//
+// \brief This is a description of possible gears.
+//
+//
+message Gear
+{
+ // The actual gear of the car.
+ //
+ enum Gear
+ {
+ // The actual gear was not calculated by the dynamicmodell.
+ //
+ GEAR_UNKNOWN = 0;
+
+ // The actual gear is 1.
+ //
+ GEAR_1 = 1;
+
+ // The actual gear is 2.
+ //
+ GEAR_2 = 2;
+
+ // The actual gear is 3.
+ //
+ GEAR_3 = 3;
+
+ // The actual gear is 4.
+ //
+ GEAR_4 = 4;
+
+ // The actual gear is 5.
+ //
+ GEAR_5 = 5;
+
+ // The actual gear is 6.
+ //
+ GEAR_6 = 6;
+
+ // The actual gear is 7.
+ //
+ GEAR_7 = 7;
+
+ // The actual gear is 8.
+ //
+ GEAR_8 = 8;
+
+ // The actual gear is 9.
+ //
+ GEAR_9 = 9;
+
+ // The car is in idling-mode.
+ //
+ GEAR_IDLING = 10;
+
+ // The car is in reverse-mode.
+ //
+ GEAR_REVERSE = 11;
+
+ // The car is in automatic-driving-mode.
+ //
+ GEAR_D = 20;
+
+ // The car is in automatic-idling-mode.
+ //
+ GEAR_N = 21;
+
+ // The car is in automatic-parking-mode.
+ //
+ GEAR_P = 22;
+
+ // The car has an automatic transmission, but the driver shifts up by his own.
+ //
+ GEAR_Up = 30;
+
+ // The car has an automatic transmission, but the driver shifts by his own.
+ //
+ GEAR_MID = 31;
+
+ // The car has an automatic transmission, but the driver shifts down by his own.
+ //
+ GEAR_DOWN = 32;
+ }
+}
+
+//
+// \brief A 3D-vector for color-description regarding the RGB-format.
+// More information: https://en.wikipedia.org/wiki/RGB_color_model.
+//
+message ColorformatRGB
+{
+ // The part of red.
+ // Values from 0 to 255.
+ //
+ optional uint32 rgb_red = 1;
+
+ // The part of green.
+ // Values from 0 to 255.
+ //
+ optional uint32 rgb_green = 2;
+
+ // The part of blue.
+ // Values from 0 to 255.
+ //
+ optional uint32 rgb_blue = 3;
+}
+
+//
+// \brief A description for highly automated driving (SAE Level 3).
+//
+//
+message AdasSAELevel3
+{
+ // Activationstate of the function.
+ //
+ optional bool is_activated = 1;
+
+ // This is the speed the function targets.
+ // E.g.: At the point of activation, the actual speed could be 80 km/h,
+ // but the function tries to accelerate to 130 km/h.
+ // In [km/h].
+ //
+ optional double targeted_speed = 2;
+}
+
+//
+// \brief A description for the function longitudinal control.
+//
+//
+message LongitudinalControl
+{
+ // Activationstate of the function.
+ //
+ optional bool is_activated = 1;
+
+ // This is the speed the function targets.
+ // E.g.: At the point of activation, the actual speed could be 80 km/h,
+ // but the function tries to accelerate to 130 km/h.
+ // In [km/h].
+ //
+ optional double targeted_speed = 2;
+
+ // The timegap describes the minimumdistance to the next vehicle in front.
+ // In [s].
+ //
+ optional bool timegap = 3;
+}
+
+//
+// \brief A description for the function lateral control.
+//
+//
+message LateralControl
+{
+ // Activationstate of the function.
+ //
+ optional bool is_activated = 1;
+}
+
+//
+// \brief A description for the function emergency brake assistant.
+//
+//
+message EmergencyBrakeAssistant
+{
+ // Activationstate of the function.
+ //
+ optional bool is_activated = 1;
+}
diff --git a/osi_driver_inputs.proto b/osi_driver_inputs.proto
new file mode 100644
index 000000000..74938433b
--- /dev/null
+++ b/osi_driver_inputs.proto
@@ -0,0 +1,109 @@
+syntax = "proto2";
+
+option optimize_for = SPEED;
+
+import "osi_common.proto";
+import "osi_common_extension.proto";
+
+package osi3;
+
+//
+// \brief An Interface to describe the inputs from a human driver.
+// Contains a base-set of signals with focus on ADAS-functions.
+// The inputs are divided into states and requests.
+//
+// The first set of signals are states the driver can (usually) directly set.
+//
+message DriverInitializedStates
+{
+ // State of the driver seat-belt. It is often an initial condition to start an ADAS-Function.
+ // 0=Open; 1=Closed
+ //
+ optional bool seat_belt = 1;
+
+ // State of the doors. It is often an initial condition to start an ADAS-Function.
+ // 0=Open; 1=Closed
+ //
+ optional bool doors = 2;
+
+ // Hands-On-Detection.
+ // 0=HandsOff; 1=HandsOn
+ //
+ optional bool hands_on_detection = 3;
+
+ // State of the ignition. It is often an initial condition to start an ADAS-Function.
+ // 0=Off; 1=On
+ //
+ optional bool ignition = 4;
+
+ // State of the warning lights.
+ // 0=Off; 1=On
+ //
+ optional bool warning_lights = 5;
+
+ // Angle, angle-speed and torque.
+ // See osi_common_extension.
+ //
+ optional Steeringwheel steeringwheel = 6;
+
+ // Acceleration-, brakepedal and clutch.
+ // See osi_common_extension.
+ //
+ optional Pedalry pedalry = 7;
+
+ // Position of the handbrake.
+ // 0-100 (percentage of position: Released - fully pressed)
+ //
+ optional double handbrake = 8;
+
+ // Position of the gearlever.
+ // See osi_common_extension.
+ //
+ optional Gear gearlever = 9;
+}
+
+//
+// The second set of signals are requests addressed to an external function.
+// The ADAS-function can react to a request by setting its own states.
+// The osi_adas_function.proto is widely complementary to this proto.
+// For e.g. the driver wants to activate a function, but the initial-conditions of the
+// ADAS-function are not fullfilled, the request is without an effect to the driving behaviour.
+//
+message DriverRequests
+{
+ // Wished states of the driver regarding an ADAS-Function (SAE Level 3).
+ //
+ optional AdasSAELevel3 adas_sae_level_3 = 1;
+
+ // Wished states of the driver regarding the longitudinal control.
+ //
+ optional LongitudinalControl longitudinal_control = 2;
+
+ // Wished states of the driver regarding the lateral control.
+ //
+ optional LateralControl lateral_control = 3;
+
+ // Wished states of the driver regarding the function Emergency-Brake-Assistant.
+ //
+ optional EmergencyBrakeAssistant emergency_brake_assistant = 4;
+
+ // Request to an ADAS-Function for a lane change.
+ // 0=EgoLane; 1=Left; 2=Right
+ //
+ enum lane_change_request
+ {
+ // Stay on the actual lane.
+ //
+ EGO_LANE = 0;
+
+ // Change to the left.
+ //
+ LC_LEFT = 1;
+
+ // Change to the right.
+ //
+ LC_RIGHT = 2;
+ }
+}
+
+
diff --git a/osi_environment_extension.proto b/osi_environment_extension.proto
new file mode 100644
index 000000000..0d0d1d517
--- /dev/null
+++ b/osi_environment_extension.proto
@@ -0,0 +1,45 @@
+syntax = "proto2";
+
+option optimize_for = SPEED;
+
+package osi3;
+
+//
+// \brief Interface for the description of the environment.
+// Can be used as Input for a dynamicmodel (also known as VehicleModell or ISARModell).
+//
+message Environment
+{
+ // Contains the friction-coefficient of each wheel.
+ // Dimensionless.
+ //
+ optional double friction_coefficient_frontleft = 1;
+ optional double friction_coefficient_frontright = 2;
+ optional double friction_coefficient_rearleft = 3;
+ optional double friction_coefficient_rearright = 4;
+
+ // Contains the z-coordinate (contact-point) of each wheel.
+ // Dimensionless.
+ //
+ optional double tyre_contact_point_frontleft = 5;
+ optional double tyre_contact_point_frontright = 6;
+ optional double tyre_contact_point_rearleft = 7;
+ optional double tyre_contact_point_rearright = 8;
+
+ // Contains the ambienttemperature.
+ // In [K].
+ //
+ optional double ambienttemperature = 9;
+
+ // Contains the velocity of the wind.
+ // In [m/s].
+ //
+ optional double windvelocity = 10;
+
+ // Contains the direction of the wind.
+ // In [°]. Wind direction is measured in degrees clockwise from due north.
+ // E.g.: A wind blowing from the north has a wind direction of 0°.
+ // More information: https://en.wikipedia.org/wiki/Wind_direction
+ //
+ optional double winddirection = 11;
+}
\ No newline at end of file
diff --git a/osi_vehicle.proto b/osi_vehicle.proto
new file mode 100644
index 000000000..7f85e127e
--- /dev/null
+++ b/osi_vehicle.proto
@@ -0,0 +1,156 @@
+syntax = "proto2";
+
+option optimize_for = SPEED;
+
+import "osi_common.proto";
+import "osi_common_extension.proto";
+
+package osi3;
+
+//
+// \brief Interface for the output of a dynamicmodel (also known as vehiclemodell).
+// Contains a base-set of signals that can be used by a simulation-environment.
+//
+// Consists of three messages: DynamicKinematics, DynamicPowertrain and DynamicSteering.
+//
+// All coordinates and orientations are relative to the global ground truth
+// coordinate system.
+//
+message VehicleKinematics
+{
+ // The 3D dimension of the moving object (its bounding box).
+ //
+ optional Dimension3d dimension = 1;
+
+ // The reference point for position and orientation: the center (x,y,z) of
+ // the bounding box.
+ //
+ optional Vector3d position = 2;
+
+ // The relative velocity of the moving object w.r.t. its parent frame and
+ // parent velocity.
+ // The velocity becomes global/absolute if the parent frame does not move.
+ //
+ // #position (t) := #position (t-dt)+ #velocity *dt
+ //
+ optional Vector3d velocity = 3;
+
+ // The relative acceleration of the moving object w.r.t. its parent frame
+ // and parent acceleration.
+ // The acceleration becomes global/absolute if the parent frame is not
+ // accelerating.
+ //
+ // #position (t) := #position (t-dt)+ #velocity *dt+ #acceleration /2*dt^2
+ //
+ // #velocity (t) := #velocity (t-dt)+ #acceleration *dt
+ //
+ optional Vector3d acceleration = 4;
+
+ // The relative orientation of the moving object w.r.t. its parent frame.
+ //
+ // Origin_base_moving_entity := Rotation_yaw_pitch_roll(#orientation)*(Origin_parent_coordinate_system - #position)
+ //
+ // \note There may be some constraints how to align the orientation w.r.t.
+ // to some stationary object's or entity's definition.
+ //
+ optional Orientation3d orientation = 5;
+
+ // The relative orientation rate of the moving object w.r.t. its parent
+ // frame and parent orientation rate in the center point of the bounding box
+ // (origin of the bounding box frame).
+ //
+ // Rotation_yaw_pitch_roll(#orientation (t)) := Rotation_yaw_pitch_roll(#orientation_rate *dt)*Rotation_yaw_pitch_roll(#orientation (t-dt))
+ //
+ // \note #orientation (t) is \b not equal #orientation (t-dt)+#orientation_rate *dt
+ //
+ optional Orientation3d orientation_rate = 6;
+
+ // The relative orientation rate acceleration of the moving object w.r.t. its parent
+ // frame and parent orientation rate in the center point of the bounding box
+ // (origin of the bounding box frame).
+ //
+ // Rotation_yaw_pitch_roll(#orientation (t)) := Rotation_yaw_pitch_roll(#orientation_rate *dt)*Rotation_yaw_pitch_roll(#orientation (t-dt))
+ //
+ // \note #orientation (t) is \b not equal #orientation (t-dt)+#orientation_rate *dt
+ //
+ optional Orientation3d orientation_rate_acceleration = 7;
+}
+
+message VehiclePowertrain
+{
+ // Rounds per minute of the crankshaft.
+ //
+ optional double engine_rpm = 1;
+
+ // Torque in Nm.
+ //
+ optional double engine_torque = 2;
+
+ // Consumption in liters per 100 km.
+ //
+ optional double engine_consumption = 3;
+
+ // The actual gear of the car.
+ //
+ optional Gear gear = 4;
+}
+
+message VehicleSteeringwheel
+{
+ // Angle, angle-speed and torque.
+ // See osi_common_extension.
+ //
+ optional Steeringwheel steeringwheel = 1;
+
+ // Spring-stiffness of the steering in Nm/°.
+ //
+ optional double stw_springstiffness = 2;
+
+ // Damping of the steering in Nm*s/°.
+ //
+ optional double stw_damping = 3;
+
+ // Friction of the steering in Nm.
+ //
+ optional double stw_friction = 4;
+}
+
+message VehicleWheels
+{
+ // Contains the rotational speed of each wheel per second.
+ // In [Rad/s].
+ optional double speed_frontleft = 1;
+ optional double speed_frontright = 2;
+ optional double speed_rearleft = 3;
+ optional double speed_rearright = 4;
+
+ // Contains the steering angle of each wheel.
+ // In [Rad].
+ optional double steeringangle_frontleft = 5;
+ optional double steeringangle_frontright = 6;
+ optional double steeringangle_rearleft = 7;
+ optional double steeringangle_rearright = 8;
+
+ // Contains the camber of each wheel.
+ // In [Rad].
+ // Negative camber if the bottom of the wheel is farther out than the top.
+ // For more information: https://en.wikipedia.org/wiki/Camber_angle
+ optional double camber_frontleft = 9;
+ optional double camber_frontright = 10;
+ optional double camber_rearleft = 11;
+ optional double camber_rearright = 12;
+
+ // Contains the tirepressure of each tire.
+ // In [Pascal].
+ optional double tirepressure_frontleft = 13;
+ optional double tirepressure_frontright = 14;
+ optional double tirepressure_rearleft = 15;
+ optional double tirepressure_rearright = 16;
+
+ // Contains the springdeflection in z-direction for each wheel.
+ // In [mm].
+ optional double springdeflection_frontleft = 17;
+ optional double springdeflection_frontright = 18;
+ optional double springdeflection_rearleft = 19;
+ optional double springdeflection_rearright = 20;
+}
\ No newline at end of file
From 3a843fa91e523a49f8ab861e6ad54a5220b2f02c Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 25 Oct 2018 16:33:03 +0200
Subject: [PATCH 02/39] Updated all formular failures (not permitted tabs and
missing comments)
---
osi_vehicle.proto | 124 +++++++++++++++++++++++++++++-----------------
1 file changed, 78 insertions(+), 46 deletions(-)
diff --git a/osi_vehicle.proto b/osi_vehicle.proto
index 7f85e127e..432cfcba3 100644
--- a/osi_vehicle.proto
+++ b/osi_vehicle.proto
@@ -46,7 +46,7 @@ message VehicleKinematics
//
optional Vector3d acceleration = 4;
- // The relative orientation of the moving object w.r.t. its parent frame.
+ // The relative orientation of the moving object w.r.t. its parent frame.
//
// Origin_base_moving_entity := Rotation_yaw_pitch_roll(#orientation)*(Origin_parent_coordinate_system - #position)
//
@@ -65,7 +65,7 @@ message VehicleKinematics
//
optional Orientation3d orientation_rate = 6;
- // The relative orientation rate acceleration of the moving object w.r.t. its parent
+ // The relative orientation rate acceleration of the moving object w.r.t. its parent
// frame and parent orientation rate in the center point of the bounding box
// (origin of the bounding box frame).
//
@@ -76,37 +76,45 @@ message VehicleKinematics
optional Orientation3d orientation_rate_acceleration = 7;
}
+//
+// \brief Interface for the output of a dynamicmodel.
+// The focus here is on the powertrain.
+//
message VehiclePowertrain
{
// Rounds per minute of the crankshaft.
//
optional double engine_rpm = 1;
- // Torque in Nm.
+ // Torque in Nm.
//
optional double engine_torque = 2;
- // Consumption in liters per 100 km.
+ // Consumption in liters per 100 km.
//
optional double engine_consumption = 3;
- // The actual gear of the car.
+ // The actual gear of the car.
//
optional Gear gear = 4;
}
+//
+// \brief Interface for the output of a dynamicmodel.
+// The focus here is on the steeringwheel.
+//
message VehicleSteeringwheel
{
- // Angle, angle-speed and torque.
- // See osi_common_extension.
+ // Angle, angle-speed and torque.
+ // See osi_common_extension.
//
optional Steeringwheel steeringwheel = 1;
- // Spring-stiffness of the steering in Nm/°.
+ // Spring-stiffness of the steering in Nm/°.
//
optional double stw_springstiffness = 2;
- // Damping of the steering in Nm*s/°.
+ // Damping of the steering in Nm*s/°.
//
optional double stw_damping = 3;
@@ -115,42 +123,66 @@ message VehicleSteeringwheel
optional double stw_friction = 4;
}
+//
+// \brief Interface for the output of a dynamicmodel.
+// The focus here are the wheels.
+//
message VehicleWheels
{
- // Contains the rotational speed of each wheel per second.
- // In [Rad/s].
- optional double speed_frontleft = 1;
- optional double speed_frontright = 2;
- optional double speed_rearleft = 3;
- optional double speed_rearright = 4;
-
- // Contains the steering angle of each wheel.
- // In [Rad].
- optional double steeringangle_frontleft = 5;
- optional double steeringangle_frontright = 6;
- optional double steeringangle_rearleft = 7;
- optional double steeringangle_rearright = 8;
-
- // Contains the camber of each wheel.
- // In [Rad].
- // Negative camber if the bottom of the wheel is farther out than the top.
- // For more information: https://en.wikipedia.org/wiki/Camber_angle
- optional double camber_frontleft = 9;
- optional double camber_frontright = 10;
- optional double camber_rearleft = 11;
- optional double camber_rearright = 12;
-
- // Contains the tirepressure of each tire.
- // In [Pascal].
- optional double tirepressure_frontleft = 13;
- optional double tirepressure_frontright = 14;
- optional double tirepressure_rearleft = 15;
- optional double tirepressure_rearright = 16;
-
- // Contains the springdeflection in z-direction for each wheel.
- // In [mm].
- optional double springdeflection_frontleft = 17;
- optional double springdeflection_frontright = 18;
- optional double springdeflection_rearleft = 19;
- optional double springdeflection_rearright = 20;
-}
\ No newline at end of file
+ // Contains the rotational speed of each wheel per second.
+ // In [Rad/s].
+ // Speed of the front-left-wheel.
+ optional double speed_frontleft = 1;
+ // Speed of the front-right-wheel.
+ optional double speed_frontright = 2;
+ // Speed of the rear-left-wheel.
+ optional double speed_rearleft = 3;
+ // Speed of the rear-right-wheel.
+ optional double speed_rearright = 4;
+
+ // Contains the steering angle of each wheel.
+ // In [Rad].
+ // Steering angle of the front-left-wheel.
+ optional double steeringangle_frontleft = 5;
+ // Steering angle of the front-right-wheel.
+ optional double steeringangle_frontright = 6;
+ // Steering angle of the rear-left-wheel.
+ optional double steeringangle_rearleft = 7;
+ // Steering angle of the rear-right-wheel.
+ optional double steeringangle_rearright = 8;
+
+ // Contains the camber of each wheel.
+ // In [Rad].
+ // Negative camber if the bottom of the wheel is farther out than the top.
+ // For more information: https://en.wikipedia.org/wiki/Camber_angle.
+ // Camber of the front-left-wheel.
+ optional double camber_frontleft = 9;
+ // Camber of the front-right-wheel.
+ optional double camber_frontright = 10;
+ // Camber of the rear-left-wheel.
+ optional double camber_rearleft = 11;
+ // Camber of the rear-right-wheel.
+ optional double camber_rearright = 12;
+
+ // Contains the tirepressure of each tire.
+ // In [Pascal].
+ // Tirepressure of the front-left-wheel.
+ optional double tirepressure_frontleft = 13;
+ // Tirepressure of the front-right-wheel.
+ optional double tirepressure_frontright = 14;
+ // Tirepressure of the rear-left-wheel.
+ optional double tirepressure_rearleft = 15;
+ // Tirepressure of the rear-right-wheel.
+ optional double tirepressure_rearright = 16;
+
+ // Contains the springdeflection in z-direction for each wheel.
+ // In [mm].
+ // Springdeflection_z of the front-left-wheel.
+ optional double springdeflection_frontleft = 17;
+ // Springdeflection_z of the front-right-wheel.
+ optional double springdeflection_frontright = 18;
+ // Springdeflection_z of the rear-left-wheel.
+ optional double springdeflection_rearleft = 19;
+ // Springdeflection_z of the rear-right-wheel.
+ optional double springdeflection_rearright = 20;
+}
From 9b6a571adce2cfa5ad6f1adeb49ce970a7170b3e Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 25 Oct 2018 16:45:47 +0200
Subject: [PATCH 03/39] Corrected all coding-style-mistakes.
---
osi_adas_function.proto | 85 ++++++++++++++++++++++++-----------------
1 file changed, 50 insertions(+), 35 deletions(-)
diff --git a/osi_adas_function.proto b/osi_adas_function.proto
index ceb68c74b..9465b6944 100644
--- a/osi_adas_function.proto
+++ b/osi_adas_function.proto
@@ -21,44 +21,52 @@ message FunctionStates
//
optional AdasSAELevel3 adas_sae_level_3 = 1;
- // States of the longitudinal control.
+ // States of the longitudinal control.
//
optional LongitudinalControl longitudinal_control = 2;
- // States of the lateral control.
+ // States of the lateral control.
//
optional LateralControl lateral_control = 3;
- // States of function Emergency-Brake-Assistant.
+ // States of function Emergency-Brake-Assistant.
//
optional EmergencyBrakeAssistant emergency_brake_assistant = 4;
- // State of an ADAS-Function (SAE Level 3).
+ // State of an ADAS-Function (SAE Level 3).
//
optional bool pilot_level3_state = 5;
- // Request that the driver has to take over.
- // 0=Off; 1=On
+ // Request that the driver has to take over.
+ // 0=Off; 1=On
//
optional bool driver_take_over_request = 6;
- // Color of the steering wheel (e.g. to show the driving mode).
- // See osi_common_extension.
- //
+ // Color of the steering wheel (e.g. to show the driving mode).
+ // See osi_common_extension.
+ //
optional ColorformatRGB steering_wheel_lighting_color = 7;
- // Requested state of the blindspot-lights (often in the side mirrors).
+ // Requested state of the blindspot-lights (often in the side mirrors).
//
enum BlindSpotWarning
{
- NONE = 0;
+ // No warning.
+ //
+ BLIND_SPOT_WARNING_NONE = 0;
- LEFT = 1;
+ // Left warning.
+ //
+ BLIND_SPOT_WARNING_LEFT = 1;
- RIGHT = 2;
+ // Right warning.
+ //
+ BLIND_SPOT_WARNING_RIGHT = 2;
- BOTH = 3;
- }
+ // Warning on both sides.
+ //
+ BLIND_SPOT_WARNING_BOTH = 3;
+ }
}
//
@@ -71,42 +79,49 @@ message FunctionStates
//
message FunctionRequests
{
- // All information about the trajectory the vehicle should follow.
- // See osi_common_extension.
+ // All information about the trajectory the vehicle should follow.
+ // See osi_common_extension.
//
optional Trajectory trajectory = 1;
- // Angle, angle-speed and torque.
- // See osi_common_extension.
+ // Angle, angle-speed and torque.
+ // See osi_common_extension.
//
optional Steeringwheel steeringwheel = 2;
- // Factor to scale the steeringtorque of the function output.
- // 0-1 (0 = no force of the function, 0.5 = half the force, 1 = 100% Torque).
+ // Factor to scale the steeringtorque of the function output.
+ // 0-1 (0 = no force of the function, 0.5 = half the force, 1 = 100% Torque).
//
optional double steering_override_factor = 3;
- // Acceleration-, brakepedal and clutch.
- // See osi_common_extension.
+ // Acceleration-, brakepedal and clutch.
+ // See osi_common_extension.
//
optional Pedalry pedalry = 4;
- // Position of the handbrake.
- // 0-100 (percentage of position: Released - fully pressed)
+ // Position of the handbrake.
+ // 0-100 (percentage of position: Released - fully pressed)
//
optional double handbrake = 5;
-
- // This is a description of the possible indicatorstates.
+
+ // This is a description of the possible indicatorstates.
+ //
+ enum Indicators
+ {
+ // No indicator.
//
- enum Indicators
- {
- NONE = 0;
+ INDICATORS_NONE = 0;
- LEFT = 1;
+ // Left-indicator.
+ //
+ INDICATORS_LEFT = 1;
- RIGHT = 2;
+ // Right-indicator.
+ //
+ INDICATORS_RIGHT = 2;
- // Warning lights.
- ALL = 3;
- }
+ // Warning lights.
+ //
+ INDICATORS_ALL = 3;
+ }
}
From 229d8184330f0c00e9856e817d554de36879f507 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 25 Oct 2018 16:55:10 +0200
Subject: [PATCH 04/39] Corrected all coding-style-mistakes.
---
osi_common_extension.proto | 144 ++++++++++++++++++-------------------
1 file changed, 72 insertions(+), 72 deletions(-)
diff --git a/osi_common_extension.proto b/osi_common_extension.proto
index ee3070fd0..3062d683e 100644
--- a/osi_common_extension.proto
+++ b/osi_common_extension.proto
@@ -10,20 +10,20 @@ package osi3;
message Steeringwheel
{
// Angle of the steeringwheel.
- //
- // Unit in Rad [-pi, pi]: 0=Central (Straight); Left>0; 0>Right.
+ //
+ // Unit in Rad [-pi, pi]: 0=Central (Straight); Left>0; 0>Right.
//
optional double angle = 1;
// Angle-speed of the steeringwheel.
- //
- // Unit in rad/s [-pi/s, pi/s]: 0=Central (Straight); Left>0; 0>Right.
+ //
+ // Unit in rad/s [-pi/s, pi/s]: 0=Central (Straight); Left>0; 0>Right.
//
optional double anglespeed = 2;
// Torque of the steeringwheel to the hand.
- //
- // Unit in Nm: 0=Central (Straight); Left>0; 0>Right.
+ //
+ // Unit in Nm: 0=Central (Straight); Left>0; 0>Right.
//
optional double torque = 3;
}
@@ -34,18 +34,18 @@ message Steeringwheel
//
message Pedalry
{
- // Position of the acceleration-pedal.
- // 0-100 (percentage of position: Unpressed - fully pressed)
+ // Position of the acceleration-pedal.
+ // 0-100 (percentage of position: Unpressed - fully pressed)
//
optional double pedalposition_acceleration = 1;
- // Position of the brake-pedal.
- // 0-100 (percentage of position: Unpressed - fully pressed)
+ // Position of the brake-pedal.
+ // 0-100 (percentage of position: Unpressed - fully pressed)
//
optional double pedalposition_brake = 2;
- // Position of the clutch-pedal.
- // 0-100 (percentage of position: Unpressed - fully pressed)
+ // Position of the clutch-pedal.
+ // 0-100 (percentage of position: Unpressed - fully pressed)
//
optional double pedalposition_clutch = 3;
}
@@ -56,56 +56,56 @@ message Pedalry
//
message Trajectory
{
- // Contains the timestamp where the trajectorypoint should be reached.
- // In [s].
+ // Contains the timestamp where the trajectorypoint should be reached.
+ // In [s].
//
optional double timestamp = 1;
-
- // Contains the X-Position the vehicle should be at the timestamp.
+
+ // Contains the X-Position the vehicle should be at the timestamp.
//
- optional double targeted_PosX = 2;
+ optional double targeted_pos_x = 2;
- // Contains the Y-Position the vehicle should be at the timestamp.
+ // Contains the Y-Position the vehicle should be at the timestamp.
//
- optional double targeted_PosY = 3;
+ optional double targeted_pos_y = 3;
- // Direction of the vehicle at the timestamp.
- // In [Rad].
+ // Direction of the vehicle at the timestamp.
+ // In [Rad].
//
optional double trackangle = 4;
- // Contains the curvature at the timestamp.
- // In [1/m].
+ // Contains the curvature at the timestamp.
+ // In [1/m].
//
optional double curvature = 5;
- // Contains the curvaturechange at the timestamp.
- // In [1/m*s].
+ // Contains the curvaturechange at the timestamp.
+ // In [1/m*s].
//
optional double curvaturechange = 6;
- // Contains the velocity of the vehicle at the timestamp.
- // In [m/s].
+ // Contains the velocity of the vehicle at the timestamp.
+ // In [m/s].
//
optional double velocity = 7;
- // Contains the acceleration of the vehicle at the timestamp.
- // In [m/s^2].
+ // Contains the acceleration of the vehicle at the timestamp.
+ // In [m/s^2].
//
optional double acceleration = 8;
- // Contains the interpolation method.
+ // Contains the interpolation method.
//
- enum interpolation_method
+ enum InterpolationMethod
{
// Stay on the actual lane.
//
- LINEAR = 0;
+ INTERPOLATION_METHOD_LINEAR = 0;
// Change to the left.
//
- CUBIC = 1;
- }
+ INTERPOLATION_METHOD_CUBIC = 1;
+ }
}
//
@@ -114,7 +114,7 @@ message Trajectory
//
message Gear
{
- // The actual gear of the car.
+ // The actual gear of the car.
//
enum Gear
{
@@ -130,11 +130,11 @@ message Gear
//
GEAR_2 = 2;
- // The actual gear is 3.
+ // The actual gear is 3.
//
GEAR_3 = 3;
- // The actual gear is 4.
+ // The actual gear is 4.
//
GEAR_4 = 4;
@@ -142,11 +142,11 @@ message Gear
//
GEAR_5 = 5;
- // The actual gear is 6.
+ // The actual gear is 6.
//
GEAR_6 = 6;
- // The actual gear is 7.
+ // The actual gear is 7.
//
GEAR_7 = 7;
@@ -154,42 +154,42 @@ message Gear
//
GEAR_8 = 8;
- // The actual gear is 9.
+ // The actual gear is 9.
//
GEAR_9 = 9;
-
- // The car is in idling-mode.
+
+ // The car is in idling-mode.
//
GEAR_IDLING = 10;
- // The car is in reverse-mode.
+ // The car is in reverse-mode.
//
GEAR_REVERSE = 11;
- // The car is in automatic-driving-mode.
+ // The car is in automatic-driving-mode.
//
GEAR_D = 20;
- // The car is in automatic-idling-mode.
+ // The car is in automatic-idling-mode.
//
GEAR_N = 21;
- // The car is in automatic-parking-mode.
+ // The car is in automatic-parking-mode.
//
GEAR_P = 22;
- // The car has an automatic transmission, but the driver shifts up by his own.
+ // The car has an automatic transmission, but the driver shifts up by his own.
//
- GEAR_Up = 30;
+ GEAR_UP = 30;
- // The car has an automatic transmission, but the driver shifts by his own.
+ // The car has an automatic transmission, but the driver shifts by his own.
//
GEAR_MID = 31;
- // The car has an automatic transmission, but the driver shifts down by his own.
+ // The car has an automatic transmission, but the driver shifts down by his own.
//
GEAR_DOWN = 32;
- }
+ }
}
//
@@ -198,18 +198,18 @@ message Gear
//
message ColorformatRGB
{
- // The part of red.
- // Values from 0 to 255.
+ // The part of red.
+ // Values from 0 to 255.
//
optional uint32 rgb_red = 1;
- // The part of green.
- // Values from 0 to 255.
+ // The part of green.
+ // Values from 0 to 255.
//
optional uint32 rgb_green = 2;
-
- // The part of blue.
- // Values from 0 to 255.
+
+ // The part of blue.
+ // Values from 0 to 255.
//
optional uint32 rgb_blue = 3;
}
@@ -220,14 +220,14 @@ message ColorformatRGB
//
message AdasSAELevel3
{
- // Activationstate of the function.
+ // Activationstate of the function.
//
optional bool is_activated = 1;
- // This is the speed the function targets.
- // E.g.: At the point of activation, the actual speed could be 80 km/h,
- // but the function tries to accelerate to 130 km/h.
- // In [km/h].
+ // This is the speed the function targets.
+ // E.g.: At the point of activation, the actual speed could be 80 km/h,
+ // but the function tries to accelerate to 130 km/h.
+ // In [km/h].
//
optional double targeted_speed = 2;
}
@@ -238,19 +238,19 @@ message AdasSAELevel3
//
message LongitudinalControl
{
- // Activationstate of the function.
+ // Activationstate of the function.
//
optional bool is_activated = 1;
- // This is the speed the function targets.
- // E.g.: At the point of activation, the actual speed could be 80 km/h,
- // but the function tries to accelerate to 130 km/h.
- // In [km/h].
+ // This is the speed the function targets.
+ // E.g.: At the point of activation, the actual speed could be 80 km/h,
+ // but the function tries to accelerate to 130 km/h.
+ // In [km/h].
//
optional double targeted_speed = 2;
- // The timegap describes the minimumdistance to the next vehicle in front.
- // In [s].
+ // The timegap describes the minimumdistance to the next vehicle in front.
+ // In [s].
//
optional bool timegap = 3;
}
@@ -261,7 +261,7 @@ message LongitudinalControl
//
message LateralControl
{
- // Activationstate of the function.
+ // Activationstate of the function.
//
optional bool is_activated = 1;
}
@@ -272,7 +272,7 @@ message LateralControl
//
message EmergencyBrakeAssistant
{
- // Activationstate of the function.
+ // Activationstate of the function.
//
optional bool is_activated = 1;
}
From 41dda82c74f7dd10679950aca6e9a5df0ac40675 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 25 Oct 2018 16:59:53 +0200
Subject: [PATCH 05/39] Corrected all coding-style-mistakes.
---
osi_driver_inputs.proto | 64 ++++++++++++++++++++---------------------
1 file changed, 31 insertions(+), 33 deletions(-)
diff --git a/osi_driver_inputs.proto b/osi_driver_inputs.proto
index 74938433b..d4b749dad 100644
--- a/osi_driver_inputs.proto
+++ b/osi_driver_inputs.proto
@@ -16,48 +16,48 @@ package osi3;
//
message DriverInitializedStates
{
- // State of the driver seat-belt. It is often an initial condition to start an ADAS-Function.
- // 0=Open; 1=Closed
+ // State of the driver seat-belt. It is often an initial condition to start an ADAS-Function.
+ // 0=Open; 1=Closed
//
optional bool seat_belt = 1;
- // State of the doors. It is often an initial condition to start an ADAS-Function.
- // 0=Open; 1=Closed
+ // State of the doors. It is often an initial condition to start an ADAS-Function.
+ // 0=Open; 1=Closed
//
optional bool doors = 2;
- // Hands-On-Detection.
- // 0=HandsOff; 1=HandsOn
+ // Hands-On-Detection.
+ // 0=HandsOff; 1=HandsOn
//
optional bool hands_on_detection = 3;
- // State of the ignition. It is often an initial condition to start an ADAS-Function.
- // 0=Off; 1=On
+ // State of the ignition. It is often an initial condition to start an ADAS-Function.
+ // 0=Off; 1=On
//
optional bool ignition = 4;
- // State of the warning lights.
- // 0=Off; 1=On
+ // State of the warning lights.
+ // 0=Off; 1=On
//
optional bool warning_lights = 5;
- // Angle, angle-speed and torque.
- // See osi_common_extension.
+ // Angle, angle-speed and torque.
+ // See osi_common_extension.
//
optional Steeringwheel steeringwheel = 6;
- // Acceleration-, brakepedal and clutch.
- // See osi_common_extension.
+ // Acceleration-, brakepedal and clutch.
+ // See osi_common_extension.
//
optional Pedalry pedalry = 7;
- // Position of the handbrake.
- // 0-100 (percentage of position: Released - fully pressed)
+ // Position of the handbrake.
+ // 0-100 (percentage of position: Released - fully pressed)
//
optional double handbrake = 8;
-
- // Position of the gearlever.
- // See osi_common_extension.
+
+ // Position of the gearlever.
+ // See osi_common_extension.
//
optional Gear gearlever = 9;
}
@@ -71,39 +71,37 @@ message DriverInitializedStates
//
message DriverRequests
{
- // Wished states of the driver regarding an ADAS-Function (SAE Level 3).
+ // Wished states of the driver regarding an ADAS-Function (SAE Level 3).
//
optional AdasSAELevel3 adas_sae_level_3 = 1;
- // Wished states of the driver regarding the longitudinal control.
+ // Wished states of the driver regarding the longitudinal control.
//
optional LongitudinalControl longitudinal_control = 2;
- // Wished states of the driver regarding the lateral control.
+ // Wished states of the driver regarding the lateral control.
//
optional LateralControl lateral_control = 3;
- // Wished states of the driver regarding the function Emergency-Brake-Assistant.
+ // Wished states of the driver regarding the function Emergency-Brake-Assistant.
//
optional EmergencyBrakeAssistant emergency_brake_assistant = 4;
- // Request to an ADAS-Function for a lane change.
- // 0=EgoLane; 1=Left; 2=Right
+ // Request to an ADAS-Function for a lane change.
+ // 0=EgoLane; 1=Left; 2=Right
//
- enum lane_change_request
+ enum LaneChangeRequest
{
// Stay on the actual lane.
//
- EGO_LANE = 0;
+ LANE_CHANGE_REQUEST_EGO_LANE = 0;
// Change to the left.
//
- LC_LEFT = 1;
+ LANE_CHANGE_REQUEST_LC_LEFT = 1;
- // Change to the right.
+ // Change to the right.
//
- LC_RIGHT = 2;
- }
+ LANE_CHANGE_REQUEST_LC_RIGHT = 2;
+ }
}
-
-
From 91dc7736750ff39510c81c4ddc865e20110fd19a Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 25 Oct 2018 17:07:40 +0200
Subject: [PATCH 06/39] Corrected all coding-style-mistakes.
---
osi_environment_extension.proto | 76 ++++++++++++++++++++-------------
1 file changed, 46 insertions(+), 30 deletions(-)
diff --git a/osi_environment_extension.proto b/osi_environment_extension.proto
index 0d0d1d517..f662164b4 100644
--- a/osi_environment_extension.proto
+++ b/osi_environment_extension.proto
@@ -10,36 +10,52 @@ package osi3;
//
message Environment
{
- // Contains the friction-coefficient of each wheel.
- // Dimensionless.
- //
- optional double friction_coefficient_frontleft = 1;
- optional double friction_coefficient_frontright = 2;
- optional double friction_coefficient_rearleft = 3;
- optional double friction_coefficient_rearright = 4;
+ // Contains the friction-coefficient of each wheel.
+ // Dimensionless.
+ //
+ // Friction at the tyre front-left.
+ //
+ optional double friction_coefficient_frontleft = 1;
+ // Friction at the tyre front-left.
+ //
+ optional double friction_coefficient_frontright = 2;
+ // Friction at the tyre front-left.
+ //
+ optional double friction_coefficient_rearleft = 3;
+ // Friction at the tyre front-left.
+ //
+ optional double friction_coefficient_rearright = 4;
- // Contains the z-coordinate (contact-point) of each wheel.
- // Dimensionless.
- //
- optional double tyre_contact_point_frontleft = 5;
- optional double tyre_contact_point_frontright = 6;
- optional double tyre_contact_point_rearleft = 7;
- optional double tyre_contact_point_rearright = 8;
+ // Contains the z-coordinate (contact-point) of each wheel.
+ // Dimensionless.
+ //
+ // Contact-point at the tyre front-left.
+ //
+ optional double tyre_contact_point_frontleft = 5;
+ // Contact-point at the tyre front-right.
+ //
+ optional double tyre_contact_point_frontright = 6;
+ // Contact-point at the tyre rear-left.
+ //
+ optional double tyre_contact_point_rearleft = 7;
+ // Contact-point at the tyre rear-right.
+ //
+ optional double tyre_contact_point_rearright = 8;
- // Contains the ambienttemperature.
- // In [K].
- //
- optional double ambienttemperature = 9;
+ // Contains the ambienttemperature.
+ // In [K].
+ //
+ optional double ambienttemperature = 9;
- // Contains the velocity of the wind.
- // In [m/s].
- //
- optional double windvelocity = 10;
-
- // Contains the direction of the wind.
- // In [°]. Wind direction is measured in degrees clockwise from due north.
- // E.g.: A wind blowing from the north has a wind direction of 0°.
- // More information: https://en.wikipedia.org/wiki/Wind_direction
- //
- optional double winddirection = 11;
-}
\ No newline at end of file
+ // Contains the velocity of the wind.
+ // In [m/s].
+ //
+ optional double windvelocity = 10;
+
+ // Contains the direction of the wind.
+ // In [Degree]. Wind direction is measured in degrees clockwise from due north.
+ // E.g.: A wind blowing from the north has a wind direction of 0 Degree.
+ // More information: https://en.wikipedia.org/wiki/Wind_direction
+ //
+ optional double winddirection = 11;
+}
From cd527505f64303c9457ae2924b8766b813e437ca Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 25 Oct 2018 17:13:44 +0200
Subject: [PATCH 07/39] Corrected all coding-style-mistakes.
---
osi_adas_function.proto | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/osi_adas_function.proto b/osi_adas_function.proto
index 9465b6944..51186aef5 100644
--- a/osi_adas_function.proto
+++ b/osi_adas_function.proto
@@ -52,19 +52,19 @@ message FunctionStates
enum BlindSpotWarning
{
// No warning.
- //
- BLIND_SPOT_WARNING_NONE = 0;
+ //
+ BLIND_SPOT_WARNING_NONE = 0;
// Left warning.
- //
+ //
BLIND_SPOT_WARNING_LEFT = 1;
// Right warning.
- //
+ //
BLIND_SPOT_WARNING_RIGHT = 2;
// Warning on both sides.
- //
+ //
BLIND_SPOT_WARNING_BOTH = 3;
}
}
@@ -109,19 +109,19 @@ message FunctionRequests
enum Indicators
{
// No indicator.
- //
- INDICATORS_NONE = 0;
+ //
+ INDICATORS_NONE = 0;
// Left-indicator.
- //
+ //
INDICATORS_LEFT = 1;
// Right-indicator.
- //
+ //
INDICATORS_RIGHT = 2;
// Warning lights.
- //
+ //
INDICATORS_ALL = 3;
}
}
From b287f06287a0b3857af1d2616fcd5334974b2ec6 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 25 Oct 2018 17:14:12 +0200
Subject: [PATCH 08/39] Corrected all coding-style-mistakes.
---
osi_common_extension.proto | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/osi_common_extension.proto b/osi_common_extension.proto
index 3062d683e..0cbe5b059 100644
--- a/osi_common_extension.proto
+++ b/osi_common_extension.proto
@@ -43,7 +43,7 @@ message Pedalry
// 0-100 (percentage of position: Unpressed - fully pressed)
//
optional double pedalposition_brake = 2;
-
+
// Position of the clutch-pedal.
// 0-100 (percentage of position: Unpressed - fully pressed)
//
From c6c82471ad74d05a683b8e5971e41cba82a2b75a Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 25 Oct 2018 17:16:16 +0200
Subject: [PATCH 09/39] Corrected all coding-style-mistakes.
---
osi_driver_inputs.proto | 1 +
1 file changed, 1 insertion(+)
diff --git a/osi_driver_inputs.proto b/osi_driver_inputs.proto
index d4b749dad..b5ef6fcd2 100644
--- a/osi_driver_inputs.proto
+++ b/osi_driver_inputs.proto
@@ -105,3 +105,4 @@ message DriverRequests
LANE_CHANGE_REQUEST_LC_RIGHT = 2;
}
}
+
From 4121c8c4d683ec75ec90d07770af2d355ed646a2 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 25 Oct 2018 17:19:19 +0200
Subject: [PATCH 10/39] Corrected all coding-style-mistakes.
---
osi_vehicle.proto | 34 ++++++++++++++++++++++++++++++++--
1 file changed, 32 insertions(+), 2 deletions(-)
diff --git a/osi_vehicle.proto b/osi_vehicle.proto
index 432cfcba3..06a340efe 100644
--- a/osi_vehicle.proto
+++ b/osi_vehicle.proto
@@ -110,11 +110,11 @@ message VehicleSteeringwheel
//
optional Steeringwheel steeringwheel = 1;
- // Spring-stiffness of the steering in Nm/°.
+ // Spring-stiffness of the steering in Nm/Deg.
//
optional double stw_springstiffness = 2;
- // Damping of the steering in Nm*s/°.
+ // Damping of the steering in Nm*s/Deg.
//
optional double stw_damping = 3;
@@ -133,22 +133,34 @@ message VehicleWheels
// In [Rad/s].
// Speed of the front-left-wheel.
optional double speed_frontleft = 1;
+
// Speed of the front-right-wheel.
+ //
optional double speed_frontright = 2;
+
// Speed of the rear-left-wheel.
+ //
optional double speed_rearleft = 3;
+
// Speed of the rear-right-wheel.
+ //
optional double speed_rearright = 4;
// Contains the steering angle of each wheel.
// In [Rad].
// Steering angle of the front-left-wheel.
optional double steeringangle_frontleft = 5;
+
// Steering angle of the front-right-wheel.
+ //
optional double steeringangle_frontright = 6;
+
// Steering angle of the rear-left-wheel.
+ //
optional double steeringangle_rearleft = 7;
+
// Steering angle of the rear-right-wheel.
+ //
optional double steeringangle_rearright = 8;
// Contains the camber of each wheel.
@@ -157,32 +169,50 @@ message VehicleWheels
// For more information: https://en.wikipedia.org/wiki/Camber_angle.
// Camber of the front-left-wheel.
optional double camber_frontleft = 9;
+
// Camber of the front-right-wheel.
+ //
optional double camber_frontright = 10;
+
// Camber of the rear-left-wheel.
+ //
optional double camber_rearleft = 11;
+
// Camber of the rear-right-wheel.
+ //
optional double camber_rearright = 12;
// Contains the tirepressure of each tire.
// In [Pascal].
// Tirepressure of the front-left-wheel.
optional double tirepressure_frontleft = 13;
+
// Tirepressure of the front-right-wheel.
+ //
optional double tirepressure_frontright = 14;
+
// Tirepressure of the rear-left-wheel.
+ //
optional double tirepressure_rearleft = 15;
+
// Tirepressure of the rear-right-wheel.
+ //
optional double tirepressure_rearright = 16;
// Contains the springdeflection in z-direction for each wheel.
// In [mm].
// Springdeflection_z of the front-left-wheel.
optional double springdeflection_frontleft = 17;
+
// Springdeflection_z of the front-right-wheel.
+ //
optional double springdeflection_frontright = 18;
+
// Springdeflection_z of the rear-left-wheel.
+ //
optional double springdeflection_rearleft = 19;
+
// Springdeflection_z of the rear-right-wheel.
+ //
optional double springdeflection_rearright = 20;
}
From efcfc0d5221023ab0e89a8057596621cd5159189 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 25 Oct 2018 17:25:57 +0200
Subject: [PATCH 11/39] tab-mistake
---
osi_adas_function.proto | 1 +
1 file changed, 1 insertion(+)
diff --git a/osi_adas_function.proto b/osi_adas_function.proto
index 51186aef5..9151c49eb 100644
--- a/osi_adas_function.proto
+++ b/osi_adas_function.proto
@@ -125,3 +125,4 @@ message FunctionRequests
INDICATORS_ALL = 3;
}
}
+
From 5f4026397ea34f7a0416da37b3e714f5286631ca Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 25 Oct 2018 17:26:57 +0200
Subject: [PATCH 12/39] tab-mistake.
---
osi_driver_inputs.proto | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/osi_driver_inputs.proto b/osi_driver_inputs.proto
index b5ef6fcd2..5cbbd6dfb 100644
--- a/osi_driver_inputs.proto
+++ b/osi_driver_inputs.proto
@@ -70,7 +70,7 @@ message DriverInitializedStates
// ADAS-function are not fullfilled, the request is without an effect to the driving behaviour.
//
message DriverRequests
-{
+{
// Wished states of the driver regarding an ADAS-Function (SAE Level 3).
//
optional AdasSAELevel3 adas_sae_level_3 = 1;
From 14c3c277d52b10d1235dbce44688d7ac604c5726 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 25 Oct 2018 17:27:37 +0200
Subject: [PATCH 13/39] tab-mistake.
---
osi_adas_function.proto | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/osi_adas_function.proto b/osi_adas_function.proto
index 9151c49eb..bf525d544 100644
--- a/osi_adas_function.proto
+++ b/osi_adas_function.proto
@@ -123,6 +123,5 @@ message FunctionRequests
// Warning lights.
//
INDICATORS_ALL = 3;
- }
+ }
}
-
From 43610bdb7b8f12b2ddb877ff588e701357b1f8da Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 25 Oct 2018 17:36:47 +0200
Subject: [PATCH 14/39] Missing \brief
---
osi_driver_inputs.proto | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/osi_driver_inputs.proto b/osi_driver_inputs.proto
index 5cbbd6dfb..4fd51391f 100644
--- a/osi_driver_inputs.proto
+++ b/osi_driver_inputs.proto
@@ -63,7 +63,7 @@ message DriverInitializedStates
}
//
-// The second set of signals are requests addressed to an external function.
+// \brief The second set of signals are requests addressed to an external function.
// The ADAS-function can react to a request by setting its own states.
// The osi_adas_function.proto is widely complementary to this proto.
// For e.g. the driver wants to activate a function, but the initial-conditions of the
From faa515faa44cb8faf6af1e2a7503060fdca1c7fa Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 15 Nov 2018 17:08:48 +0100
Subject: [PATCH 15/39] Deleted "ambienttemperature"
Already exists.
---
osi_environment_extension.proto | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/osi_environment_extension.proto b/osi_environment_extension.proto
index f662164b4..98841ed5c 100644
--- a/osi_environment_extension.proto
+++ b/osi_environment_extension.proto
@@ -6,7 +6,7 @@ package osi3;
//
// \brief Interface for the description of the environment.
-// Can be used as Input for a dynamicmodel (also known as VehicleModell or ISARModell).
+// Can be used as input for a dynamic-model (also known as vehicle-model).
//
message Environment
{
@@ -42,20 +42,15 @@ message Environment
//
optional double tyre_contact_point_rearright = 8;
- // Contains the ambienttemperature.
- // In [K].
- //
- optional double ambienttemperature = 9;
-
// Contains the velocity of the wind.
// In [m/s].
//
- optional double windvelocity = 10;
+ optional double windvelocity = 9;
// Contains the direction of the wind.
// In [Degree]. Wind direction is measured in degrees clockwise from due north.
// E.g.: A wind blowing from the north has a wind direction of 0 Degree.
- // More information: https://en.wikipedia.org/wiki/Wind_direction
+ // More information: https://de.windfinder.com/wind/windspeed.htm
//
- optional double winddirection = 11;
+ optional double winddirection = 10;
}
From acb2819b7c2662492a5ba983e038cb892e166782 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Fri, 30 Nov 2018 09:49:01 +0100
Subject: [PATCH 16/39] Transferred some values to osi_vehicle.
---
osi_environment_extension.proto | 46 +++++----------------------------
1 file changed, 6 insertions(+), 40 deletions(-)
diff --git a/osi_environment_extension.proto b/osi_environment_extension.proto
index 98841ed5c..3df036d0b 100644
--- a/osi_environment_extension.proto
+++ b/osi_environment_extension.proto
@@ -5,52 +5,18 @@ option optimize_for = SPEED;
package osi3;
//
-// \brief Interface for the description of the environment.
-// Can be used as input for a dynamic-model (also known as vehicle-model).
+// \brief Just a small extension.
//
message Environment
{
- // Contains the friction-coefficient of each wheel.
- // Dimensionless.
- //
- // Friction at the tyre front-left.
- //
- optional double friction_coefficient_frontleft = 1;
- // Friction at the tyre front-left.
- //
- optional double friction_coefficient_frontright = 2;
- // Friction at the tyre front-left.
- //
- optional double friction_coefficient_rearleft = 3;
- // Friction at the tyre front-left.
- //
- optional double friction_coefficient_rearright = 4;
-
- // Contains the z-coordinate (contact-point) of each wheel.
- // Dimensionless.
- //
- // Contact-point at the tyre front-left.
- //
- optional double tyre_contact_point_frontleft = 5;
- // Contact-point at the tyre front-right.
- //
- optional double tyre_contact_point_frontright = 6;
- // Contact-point at the tyre rear-left.
- //
- optional double tyre_contact_point_rearleft = 7;
- // Contact-point at the tyre rear-right.
- //
- optional double tyre_contact_point_rearright = 8;
-
- // Contains the velocity of the wind.
+ // Contains the velocity of the wind (global weather).
// In [m/s].
//
- optional double windvelocity = 9;
+ optional double windvelocity = 1;
- // Contains the direction of the wind.
+ // Contains the direction of the wind (global weather).
// In [Degree]. Wind direction is measured in degrees clockwise from due north.
- // E.g.: A wind blowing from the north has a wind direction of 0 Degree.
- // More information: https://de.windfinder.com/wind/windspeed.htm
+ // Like on a windrose. E.g.: A wind blowing from the north has a wind direction of 0 Degree.
//
- optional double winddirection = 10;
+ optional double winddirection = 2;
}
From 171b7844b778790b3d28c864d5d3a998ab1bbf23 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Fri, 30 Nov 2018 10:03:50 +0100
Subject: [PATCH 17/39] Added Friction Coefficients and Tire Contact Points.
---
osi_vehicle.proto | 78 ++++++++++++++++++++++++++++++++++-------------
1 file changed, 57 insertions(+), 21 deletions(-)
diff --git a/osi_vehicle.proto b/osi_vehicle.proto
index 06a340efe..4a9a840a0 100644
--- a/osi_vehicle.proto
+++ b/osi_vehicle.proto
@@ -77,11 +77,15 @@ message VehicleKinematics
}
//
-// \brief Interface for the output of a dynamicmodel.
+// \brief Interface for to the vehicle-model.
// The focus here is on the powertrain.
//
message VehiclePowertrain
{
+ // The positions of the pedals.
+ //
+ optional Pedalry pedalry = 4;
+
// Rounds per minute of the crankshaft.
//
optional double engine_rpm = 1;
@@ -129,90 +133,122 @@ message VehicleSteeringwheel
//
message VehicleWheels
{
+ // Contains the friction-coefficient of each wheel.
+ // Dimensionless.
+ //
+ // Friction at the tyre front-left.
+ //
+ optional double friction_coefficient_frontleft = 1;
+ // Friction at the tyre front-left.
+ //
+ optional double friction_coefficient_frontright = 2;
+ // Friction at the tyre front-left.
+ //
+ optional double friction_coefficient_rearleft = 3;
+ // Friction at the tyre front-left.
+ //
+ optional double friction_coefficient_rearright = 4;
+
+ // Contains the z-coordinate (contact-point) of each wheel.
+ // Dimensionless.
+ //
+ // Contact-point at the tyre front-left.
+ //
+ optional double tyre_contact_point_frontleft = 5;
+ // Contact-point at the tyre front-right.
+ //
+ optional double tyre_contact_point_frontright = 6;
+ // Contact-point at the tyre rear-left.
+ //
+ optional double tyre_contact_point_rearleft = 7;
+ // Contact-point at the tyre rear-right.
+ //
+ optional double tyre_contact_point_rearright = 8;
+
// Contains the rotational speed of each wheel per second.
// In [Rad/s].
// Speed of the front-left-wheel.
- optional double speed_frontleft = 1;
+ optional double speed_frontleft = 9;
// Speed of the front-right-wheel.
//
- optional double speed_frontright = 2;
+ optional double speed_frontright = 10;
// Speed of the rear-left-wheel.
//
- optional double speed_rearleft = 3;
+ optional double speed_rearleft = 11;
// Speed of the rear-right-wheel.
//
- optional double speed_rearright = 4;
+ optional double speed_rearright = 12;
// Contains the steering angle of each wheel.
// In [Rad].
// Steering angle of the front-left-wheel.
- optional double steeringangle_frontleft = 5;
+ optional double steeringangle_frontleft = 13;
// Steering angle of the front-right-wheel.
//
- optional double steeringangle_frontright = 6;
+ optional double steeringangle_frontright = 14;
// Steering angle of the rear-left-wheel.
//
- optional double steeringangle_rearleft = 7;
+ optional double steeringangle_rearleft = 15;
// Steering angle of the rear-right-wheel.
//
- optional double steeringangle_rearright = 8;
+ optional double steeringangle_rearright = 16;
// Contains the camber of each wheel.
// In [Rad].
// Negative camber if the bottom of the wheel is farther out than the top.
// For more information: https://en.wikipedia.org/wiki/Camber_angle.
// Camber of the front-left-wheel.
- optional double camber_frontleft = 9;
+ optional double camber_frontleft = 17;
// Camber of the front-right-wheel.
//
- optional double camber_frontright = 10;
+ optional double camber_frontright = 18;
// Camber of the rear-left-wheel.
//
- optional double camber_rearleft = 11;
+ optional double camber_rearleft = 19;
// Camber of the rear-right-wheel.
//
- optional double camber_rearright = 12;
+ optional double camber_rearright = 20;
// Contains the tirepressure of each tire.
// In [Pascal].
// Tirepressure of the front-left-wheel.
- optional double tirepressure_frontleft = 13;
+ optional double tirepressure_frontleft = 21;
// Tirepressure of the front-right-wheel.
//
- optional double tirepressure_frontright = 14;
+ optional double tirepressure_frontright = 22;
// Tirepressure of the rear-left-wheel.
//
- optional double tirepressure_rearleft = 15;
+ optional double tirepressure_rearleft = 23;
// Tirepressure of the rear-right-wheel.
//
- optional double tirepressure_rearright = 16;
+ optional double tirepressure_rearright = 24;
// Contains the springdeflection in z-direction for each wheel.
// In [mm].
// Springdeflection_z of the front-left-wheel.
- optional double springdeflection_frontleft = 17;
+ optional double springdeflection_frontleft = 25;
// Springdeflection_z of the front-right-wheel.
//
- optional double springdeflection_frontright = 18;
+ optional double springdeflection_frontright = 26;
// Springdeflection_z of the rear-left-wheel.
//
- optional double springdeflection_rearleft = 19;
+ optional double springdeflection_rearleft = 27;
// Springdeflection_z of the rear-right-wheel.
//
- optional double springdeflection_rearright = 20;
+ optional double springdeflection_rearright = 28;
}
From b95cdbf6bc1adb3fd2492f0adc23481dde581152 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Fri, 30 Nov 2018 10:22:32 +0100
Subject: [PATCH 18/39] Extension by wheels-format.
---
osi_common_extension.proto | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/osi_common_extension.proto b/osi_common_extension.proto
index 0cbe5b059..3a46684ea 100644
--- a/osi_common_extension.proto
+++ b/osi_common_extension.proto
@@ -50,6 +50,33 @@ message Pedalry
optional double pedalposition_clutch = 3;
}
+//
+// \brief This message-format is thought as placeholder for different
+// values that every wheel has.
+//
+message Wheels
+{
+ // Placeholder for the front-left-wheel.
+ // Dimensionless.
+ //
+ optional double frontleft = 1;
+
+ // Placeholder for the front-right-wheel.
+ // Dimensionless.
+ //
+ optional double frontright = 2;
+
+ // Placeholder for the rear-left-wheel.
+ // Dimensionless.
+ //
+ optional double rearleft = 3;
+
+ // Placeholder for the rear-right-wheel.
+ // Dimensionless.
+ //
+ optional double rearright = 4;
+}
+
//
// \brief This is a message to describe, which trajectory the vehicle should follow.
//
From 33eb6b1867c1c01274bda8da228bb4f4e8ceb13f Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Fri, 30 Nov 2018 10:42:27 +0100
Subject: [PATCH 19/39] Updated the Wheels-Message.
---
osi_vehicle.proto | 126 ++++++++--------------------------------------
1 file changed, 22 insertions(+), 104 deletions(-)
diff --git a/osi_vehicle.proto b/osi_vehicle.proto
index 4a9a840a0..e1554ebed 100644
--- a/osi_vehicle.proto
+++ b/osi_vehicle.proto
@@ -8,10 +8,9 @@ import "osi_common_extension.proto";
package osi3;
//
-// \brief Interface for the output of a dynamicmodel (also known as vehiclemodell).
-// Contains a base-set of signals that can be used by a simulation-environment.
-//
-// Consists of three messages: DynamicKinematics, DynamicPowertrain and DynamicSteering.
+// \brief Interface to the vehicle-model. So where the movement of a car is calculated,
+// but also the behaviour of some components of the car itself.
+// Consists of four messages: VehicleKinematics, VehiclePowertrain, VehicleSteeringwheel and VehicleWheels.
//
// All coordinates and orientations are relative to the global ground truth
// coordinate system.
@@ -77,34 +76,34 @@ message VehicleKinematics
}
//
-// \brief Interface for to the vehicle-model.
+// \brief Interface to the vehicle-model.
// The focus here is on the powertrain.
//
message VehiclePowertrain
{
// The positions of the pedals.
//
- optional Pedalry pedalry = 4;
+ optional Pedalry pedalry = 1;
// Rounds per minute of the crankshaft.
//
- optional double engine_rpm = 1;
+ optional double engine_rpm = 2;
// Torque in Nm.
//
- optional double engine_torque = 2;
+ optional double engine_torque = 3;
// Consumption in liters per 100 km.
//
- optional double engine_consumption = 3;
+ optional double engine_consumption = 4;
// The actual gear of the car.
//
- optional Gear gear = 4;
+ optional Gear gear = 5;
}
//
-// \brief Interface for the output of a dynamicmodel.
+// \brief Interface to the vehicle-model.
// The focus here is on the steeringwheel.
//
message VehicleSteeringwheel
@@ -128,127 +127,46 @@ message VehicleSteeringwheel
}
//
-// \brief Interface for the output of a dynamicmodel.
-// The focus here are the wheels.
+// \brief Interface to the vehicle-model.
+// The focus here is on the wheels.
+// It is made usage of the Wheels-message in osi_common to shorten the code.
//
message VehicleWheels
{
// Contains the friction-coefficient of each wheel.
// Dimensionless.
//
- // Friction at the tyre front-left.
- //
- optional double friction_coefficient_frontleft = 1;
- // Friction at the tyre front-left.
- //
- optional double friction_coefficient_frontright = 2;
- // Friction at the tyre front-left.
- //
- optional double friction_coefficient_rearleft = 3;
- // Friction at the tyre front-left.
- //
- optional double friction_coefficient_rearright = 4;
+ optional Wheels friction_coefficient = 1;
// Contains the z-coordinate (contact-point) of each wheel.
// Dimensionless.
//
- // Contact-point at the tyre front-left.
- //
- optional double tyre_contact_point_frontleft = 5;
- // Contact-point at the tyre front-right.
- //
- optional double tyre_contact_point_frontright = 6;
- // Contact-point at the tyre rear-left.
- //
- optional double tyre_contact_point_rearleft = 7;
- // Contact-point at the tyre rear-right.
- //
- optional double tyre_contact_point_rearright = 8;
-
+ optional Wheels contact_point = 2;
+
// Contains the rotational speed of each wheel per second.
// In [Rad/s].
- // Speed of the front-left-wheel.
- optional double speed_frontleft = 9;
-
- // Speed of the front-right-wheel.
//
- optional double speed_frontright = 10;
+ optional Wheels speed = 3;
- // Speed of the rear-left-wheel.
- //
- optional double speed_rearleft = 11;
-
- // Speed of the rear-right-wheel.
- //
- optional double speed_rearright = 12;
-
// Contains the steering angle of each wheel.
// In [Rad].
- // Steering angle of the front-left-wheel.
- optional double steeringangle_frontleft = 13;
-
- // Steering angle of the front-right-wheel.
- //
- optional double steeringangle_frontright = 14;
-
- // Steering angle of the rear-left-wheel.
//
- optional double steeringangle_rearleft = 15;
-
- // Steering angle of the rear-right-wheel.
- //
- optional double steeringangle_rearright = 16;
+ optional Wheels steeringangle = 4;
// Contains the camber of each wheel.
// In [Rad].
// Negative camber if the bottom of the wheel is farther out than the top.
// For more information: https://en.wikipedia.org/wiki/Camber_angle.
- // Camber of the front-left-wheel.
- optional double camber_frontleft = 17;
-
- // Camber of the front-right-wheel.
- //
- optional double camber_frontright = 18;
-
- // Camber of the rear-left-wheel.
//
- optional double camber_rearleft = 19;
-
- // Camber of the rear-right-wheel.
- //
- optional double camber_rearright = 20;
+ optional Wheels camber = 5;
// Contains the tirepressure of each tire.
// In [Pascal].
- // Tirepressure of the front-left-wheel.
- optional double tirepressure_frontleft = 21;
-
- // Tirepressure of the front-right-wheel.
- //
- optional double tirepressure_frontright = 22;
-
- // Tirepressure of the rear-left-wheel.
- //
- optional double tirepressure_rearleft = 23;
-
- // Tirepressure of the rear-right-wheel.
- //
- optional double tirepressure_rearright = 24;
+ //
+ optional Wheels tirepressure = 6;
// Contains the springdeflection in z-direction for each wheel.
// In [mm].
- // Springdeflection_z of the front-left-wheel.
- optional double springdeflection_frontleft = 25;
-
- // Springdeflection_z of the front-right-wheel.
- //
- optional double springdeflection_frontright = 26;
-
- // Springdeflection_z of the rear-left-wheel.
- //
- optional double springdeflection_rearleft = 27;
-
- // Springdeflection_z of the rear-right-wheel.
//
- optional double springdeflection_rearright = 28;
+ optional Wheels springdeflection = 7;
}
From d174ff6cfd65b0a5863286cb8b7bd08d34924098 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Tue, 11 Dec 2018 12:30:32 +0100
Subject: [PATCH 20/39] speed -> rotational_speed
---
osi_vehicle.proto | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/osi_vehicle.proto b/osi_vehicle.proto
index e1554ebed..10afa7b0f 100644
--- a/osi_vehicle.proto
+++ b/osi_vehicle.proto
@@ -146,7 +146,7 @@ message VehicleWheels
// Contains the rotational speed of each wheel per second.
// In [Rad/s].
//
- optional Wheels speed = 3;
+ optional Wheels rotational_speed = 3;
// Contains the steering angle of each wheel.
// In [Rad].
From 4bd94445f3bc6608c4e6b78a7ad9bb084244ce6c Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Tue, 11 Dec 2018 12:59:26 +0100
Subject: [PATCH 21/39] Corrected type (prob. copy-paste-mistake): optional
bool timegap = 3 -> optional double timegap = 3;
---
osi_common_extension.proto | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/osi_common_extension.proto b/osi_common_extension.proto
index 3a46684ea..ad57c7ce7 100644
--- a/osi_common_extension.proto
+++ b/osi_common_extension.proto
@@ -279,7 +279,7 @@ message LongitudinalControl
// The timegap describes the minimumdistance to the next vehicle in front.
// In [s].
//
- optional bool timegap = 3;
+ optional double timegap = 3;
}
//
From 6b291b38b1c81978caca9b2ba5d2674188363830 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 13 Dec 2018 17:08:30 +0100
Subject: [PATCH 22/39] Extended Description
---
osi_environment_extension.proto | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/osi_environment_extension.proto b/osi_environment_extension.proto
index 3df036d0b..33cf0d35e 100644
--- a/osi_environment_extension.proto
+++ b/osi_environment_extension.proto
@@ -5,7 +5,8 @@ option optimize_for = SPEED;
package osi3;
//
-// \brief Just a small extension.
+// \brief Just a small extension of osi_environment, so this is not a standalone .proto.
+// It was thought to be one, but this changed.
//
message Environment
{
From 3da08fcef84cbe19d0b0d56df9cae0c9c0da3509 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 13 Dec 2018 17:23:20 +0100
Subject: [PATCH 23/39] deleted pilot_level_3 signal cause it was doubled
---
osi_adas_function.proto | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/osi_adas_function.proto b/osi_adas_function.proto
index bf525d544..4fe7eb88a 100644
--- a/osi_adas_function.proto
+++ b/osi_adas_function.proto
@@ -19,7 +19,7 @@ message FunctionStates
{
// States of an ADAS-Function (SAE Level 3).
//
- optional AdasSAELevel3 adas_sae_level_3 = 1;
+ optional AdasSAELevel3 adas_saelevel3 = 1;
// States of the longitudinal control.
//
@@ -33,19 +33,15 @@ message FunctionStates
//
optional EmergencyBrakeAssistant emergency_brake_assistant = 4;
- // State of an ADAS-Function (SAE Level 3).
- //
- optional bool pilot_level3_state = 5;
-
// Request that the driver has to take over.
// 0=Off; 1=On
//
- optional bool driver_take_over_request = 6;
+ optional bool driver_take_over_request = 5;
// Color of the steering wheel (e.g. to show the driving mode).
// See osi_common_extension.
//
- optional ColorformatRGB steering_wheel_lighting_color = 7;
+ optional ColorformatRGB steering_wheel_lighting_color = 6;
// Requested state of the blindspot-lights (often in the side mirrors).
//
From c964ef5163b7285cee5157863b8cf342fe49c696 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 20 Dec 2018 14:29:41 +0100
Subject: [PATCH 24/39] Added electrical_energy_consumption
---
osi_vehicle.proto | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/osi_vehicle.proto b/osi_vehicle.proto
index 10afa7b0f..6052bacdd 100644
--- a/osi_vehicle.proto
+++ b/osi_vehicle.proto
@@ -96,10 +96,18 @@ message VehiclePowertrain
// Consumption in liters per 100 km.
//
optional double engine_consumption = 4;
+
+ // Consumption in liters per 100 km.
+ //
+ optional double fuel_consumption = 4;
+
+ // Consumption of electrical or hybrid vehicle
+ //
+ optional double electrical_energy_consumption = 5;
// The actual gear of the car.
//
- optional Gear gear = 5;
+ optional Gear gear = 6;
}
//
From b0819ed774f3264869ef415db388fffd6cd5cbe4 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 20 Dec 2018 14:32:37 +0100
Subject: [PATCH 25/39] Corrected Naming
---
osi_environment_extension.proto | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/osi_environment_extension.proto b/osi_environment_extension.proto
index 33cf0d35e..02f0f69d7 100644
--- a/osi_environment_extension.proto
+++ b/osi_environment_extension.proto
@@ -5,7 +5,7 @@ option optimize_for = SPEED;
package osi3;
//
-// \brief Just a small extension of osi_environment, so this is not a standalone .proto.
+// \brief Just a small extension of osi_environment (Environmental conditions), so this is not a standalone .proto.
// It was thought to be one, but this changed.
//
message Environment
@@ -13,11 +13,11 @@ message Environment
// Contains the velocity of the wind (global weather).
// In [m/s].
//
- optional double windvelocity = 1;
+ optional double wind_speed = 1;
// Contains the direction of the wind (global weather).
// In [Degree]. Wind direction is measured in degrees clockwise from due north.
// Like on a windrose. E.g.: A wind blowing from the north has a wind direction of 0 Degree.
//
- optional double winddirection = 2;
+ optional double wind_direction = 2;
}
From c04e1b0bb58003ba07a62513965bcd3905dd6938 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Wed, 16 Jan 2019 16:53:27 +0100
Subject: [PATCH 26/39] Corrected enum-definitions
---
osi_adas_function.proto | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/osi_adas_function.proto b/osi_adas_function.proto
index 4fe7eb88a..1f16b923c 100644
--- a/osi_adas_function.proto
+++ b/osi_adas_function.proto
@@ -45,6 +45,10 @@ message FunctionStates
// Requested state of the blindspot-lights (often in the side mirrors).
//
+ optional BlindSpotWarning blind_spot_warning = 7;
+
+ // Defined states of the possible blind spot warnings.
+ //
enum BlindSpotWarning
{
// No warning.
@@ -99,7 +103,11 @@ message FunctionRequests
// 0-100 (percentage of position: Released - fully pressed)
//
optional double handbrake = 5;
-
+
+ // This is a description of the possible indicatorstates.
+ //
+ optional Indicators indicators = 6;
+
// This is a description of the possible indicatorstates.
//
enum Indicators
From a5c450357eb37df5f7481ab5f71a51d759f5c3f2 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Wed, 16 Jan 2019 17:10:39 +0100
Subject: [PATCH 27/39] Update osi_common_extension.proto
---
osi_common_extension.proto | 150 +++++++++++++++----------------------
1 file changed, 60 insertions(+), 90 deletions(-)
diff --git a/osi_common_extension.proto b/osi_common_extension.proto
index ad57c7ce7..03a393b20 100644
--- a/osi_common_extension.proto
+++ b/osi_common_extension.proto
@@ -50,33 +50,6 @@ message Pedalry
optional double pedalposition_clutch = 3;
}
-//
-// \brief This message-format is thought as placeholder for different
-// values that every wheel has.
-//
-message Wheels
-{
- // Placeholder for the front-left-wheel.
- // Dimensionless.
- //
- optional double frontleft = 1;
-
- // Placeholder for the front-right-wheel.
- // Dimensionless.
- //
- optional double frontright = 2;
-
- // Placeholder for the rear-left-wheel.
- // Dimensionless.
- //
- optional double rearleft = 3;
-
- // Placeholder for the rear-right-wheel.
- // Dimensionless.
- //
- optional double rearright = 4;
-}
-
//
// \brief This is a message to describe, which trajectory the vehicle should follow.
//
@@ -120,7 +93,11 @@ message Trajectory
// In [m/s^2].
//
optional double acceleration = 8;
-
+
+ // Contains the interpolation method.
+ //
+ optional InterpolationMethod interpolation_method = 9;
+
// Contains the interpolation method.
//
enum InterpolationMethod
@@ -135,88 +112,81 @@ message Trajectory
}
}
+// The actual gear of the car.
//
-// \brief This is a description of possible gears.
-//
-//
-message Gear
+enum Gear
{
- // The actual gear of the car.
+ // The actual gear was not calculated by the dynamicmodell.
//
- enum Gear
- {
- // The actual gear was not calculated by the dynamicmodell.
- //
- GEAR_UNKNOWN = 0;
+ GEAR_UNKNOWN = 0;
- // The actual gear is 1.
- //
- GEAR_1 = 1;
+ // The actual gear is 1.
+ //
+ GEAR_1 = 1;
- // The actual gear is 2.
- //
- GEAR_2 = 2;
+ // The actual gear is 2.
+ //
+ GEAR_2 = 2;
- // The actual gear is 3.
- //
- GEAR_3 = 3;
+ // The actual gear is 3.
+ //
+ GEAR_3 = 3;
- // The actual gear is 4.
- //
- GEAR_4 = 4;
+ // The actual gear is 4.
+ //
+ GEAR_4 = 4;
- // The actual gear is 5.
- //
- GEAR_5 = 5;
+ // The actual gear is 5.
+ //
+ GEAR_5 = 5;
- // The actual gear is 6.
- //
- GEAR_6 = 6;
+ // The actual gear is 6.
+ //
+ GEAR_6 = 6;
- // The actual gear is 7.
- //
- GEAR_7 = 7;
+ // The actual gear is 7.
+ //
+ GEAR_7 = 7;
- // The actual gear is 8.
- //
- GEAR_8 = 8;
+ // The actual gear is 8.
+ //
+ GEAR_8 = 8;
- // The actual gear is 9.
- //
- GEAR_9 = 9;
+ // The actual gear is 9.
+ //
+ GEAR_9 = 9;
- // The car is in idling-mode.
- //
- GEAR_IDLING = 10;
+ // The car is in idling-mode.
+ //
+ GEAR_IDLING = 10;
- // The car is in reverse-mode.
- //
- GEAR_REVERSE = 11;
+ // The car is in reverse-mode.
+ //
+ GEAR_REVERSE = 11;
- // The car is in automatic-driving-mode.
- //
- GEAR_D = 20;
+ // The car is in automatic-driving-mode.
+ //
+ GEAR_D = 20;
- // The car is in automatic-idling-mode.
- //
- GEAR_N = 21;
+ // The car is in automatic-idling-mode.
+ //
+ GEAR_N = 21;
- // The car is in automatic-parking-mode.
- //
- GEAR_P = 22;
+ // The car is in automatic-parking-mode.
+ //
+ GEAR_P = 22;
- // The car has an automatic transmission, but the driver shifts up by his own.
- //
- GEAR_UP = 30;
+ // The car has an automatic transmission, but the driver shifts up by his own.
+ //
+ GEAR_UP = 30;
- // The car has an automatic transmission, but the driver shifts by his own.
- //
- GEAR_MID = 31;
+ // The car has an automatic transmission, but the driver shifts by his own.
+ //
+ GEAR_MID = 31;
- // The car has an automatic transmission, but the driver shifts down by his own.
- //
- GEAR_DOWN = 32;
- }
+ // The car has an automatic transmission, but the driver shifts down by his own.
+ //
+ GEAR_DOWN = 32;
}
//
From 08db67fa6ac508a51ee08f5c08b846332026e546 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Wed, 16 Jan 2019 17:40:47 +0100
Subject: [PATCH 28/39] moved Wheels to osi_vehicle
---
osi_vehicle.proto | 45 ---------------------------------------------
1 file changed, 45 deletions(-)
diff --git a/osi_vehicle.proto b/osi_vehicle.proto
index 6052bacdd..613ad9a7e 100644
--- a/osi_vehicle.proto
+++ b/osi_vehicle.proto
@@ -133,48 +133,3 @@ message VehicleSteeringwheel
//
optional double stw_friction = 4;
}
-
-//
-// \brief Interface to the vehicle-model.
-// The focus here is on the wheels.
-// It is made usage of the Wheels-message in osi_common to shorten the code.
-//
-message VehicleWheels
-{
- // Contains the friction-coefficient of each wheel.
- // Dimensionless.
- //
- optional Wheels friction_coefficient = 1;
-
- // Contains the z-coordinate (contact-point) of each wheel.
- // Dimensionless.
- //
- optional Wheels contact_point = 2;
-
- // Contains the rotational speed of each wheel per second.
- // In [Rad/s].
- //
- optional Wheels rotational_speed = 3;
-
- // Contains the steering angle of each wheel.
- // In [Rad].
- //
- optional Wheels steeringangle = 4;
-
- // Contains the camber of each wheel.
- // In [Rad].
- // Negative camber if the bottom of the wheel is farther out than the top.
- // For more information: https://en.wikipedia.org/wiki/Camber_angle.
- //
- optional Wheels camber = 5;
-
- // Contains the tirepressure of each tire.
- // In [Pascal].
- //
- optional Wheels tirepressure = 6;
-
- // Contains the springdeflection in z-direction for each wheel.
- // In [mm].
- //
- optional Wheels springdeflection = 7;
-}
From faa06f1b8211e0d504f2b1d5f809912eec960a75 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Wed, 16 Jan 2019 17:48:02 +0100
Subject: [PATCH 29/39] Update osi_driver_inputs.proto
---
osi_driver_inputs.proto | 151 ++++++++++++++++++++++------------------
1 file changed, 82 insertions(+), 69 deletions(-)
diff --git a/osi_driver_inputs.proto b/osi_driver_inputs.proto
index 4fd51391f..7366b81b1 100644
--- a/osi_driver_inputs.proto
+++ b/osi_driver_inputs.proto
@@ -12,97 +12,110 @@ package osi3;
// Contains a base-set of signals with focus on ADAS-functions.
// The inputs are divided into states and requests.
//
-// The first set of signals are states the driver can (usually) directly set.
-//
-message DriverInitializedStates
+message DriverInputs
{
- // State of the driver seat-belt. It is often an initial condition to start an ADAS-Function.
- // 0=Open; 1=Closed
//
- optional bool seat_belt = 1;
-
- // State of the doors. It is often an initial condition to start an ADAS-Function.
- // 0=Open; 1=Closed
+ // The first set of signals are states the driver can (usually) directly set.
//
- optional bool doors = 2;
-
- // Hands-On-Detection.
- // 0=HandsOff; 1=HandsOn
+ optional DriverInitializedStates driver_initialized_states = 1;
+
+ //
+ // \brief The second set of signals are requests addressed to an external function.
//
- optional bool hands_on_detection = 3;
+ optional DriverRequests driver_requests = 2;
- // State of the ignition. It is often an initial condition to start an ADAS-Function.
- // 0=Off; 1=On
//
- optional bool ignition = 4;
-
- // State of the warning lights.
- // 0=Off; 1=On
+ // The first set of signals are states the driver can (usually) directly set.
//
- optional bool warning_lights = 5;
+ message DriverInitializedStates
+ {
+ // State of the driver seat-belt. It is often an initial condition to start an ADAS-Function.
+ // 0=Open; 1=Closed
+ //
+ optional bool seat_belt = 1;
- // Angle, angle-speed and torque.
- // See osi_common_extension.
- //
- optional Steeringwheel steeringwheel = 6;
+ // State of the doors. It is often an initial condition to start an ADAS-Function.
+ // 0=Open; 1=Closed
+ //
+ optional bool doors = 2;
- // Acceleration-, brakepedal and clutch.
- // See osi_common_extension.
- //
- optional Pedalry pedalry = 7;
+ // Hands-On-Detection.
+ // 0=HandsOff; 1=HandsOn
+ //
+ optional bool hands_on_detection = 3;
- // Position of the handbrake.
- // 0-100 (percentage of position: Released - fully pressed)
- //
- optional double handbrake = 8;
+ // State of the ignition. It is often an initial condition to start an ADAS-Function.
+ // 0=Off; 1=On
+ //
+ optional bool ignition = 4;
- // Position of the gearlever.
- // See osi_common_extension.
- //
- optional Gear gearlever = 9;
-}
+ // State of the warning lights.
+ // 0=Off; 1=On
+ //
+ optional bool warning_lights = 5;
-//
-// \brief The second set of signals are requests addressed to an external function.
-// The ADAS-function can react to a request by setting its own states.
-// The osi_adas_function.proto is widely complementary to this proto.
-// For e.g. the driver wants to activate a function, but the initial-conditions of the
-// ADAS-function are not fullfilled, the request is without an effect to the driving behaviour.
-//
-message DriverRequests
-{
- // Wished states of the driver regarding an ADAS-Function (SAE Level 3).
- //
- optional AdasSAELevel3 adas_sae_level_3 = 1;
+ // Angle, angle-speed and torque.
+ // See osi_common_extension.
+ //
+ optional Steeringwheel steeringwheel = 6;
- // Wished states of the driver regarding the longitudinal control.
- //
- optional LongitudinalControl longitudinal_control = 2;
+ // Acceleration-, brakepedal and clutch.
+ // See osi_common_extension.
+ //
+ optional Pedalry pedalry = 7;
- // Wished states of the driver regarding the lateral control.
- //
- optional LateralControl lateral_control = 3;
+ // Position of the handbrake.
+ // 0-100 (percentage of position: Released - fully pressed)
+ //
+ optional double handbrake = 8;
- // Wished states of the driver regarding the function Emergency-Brake-Assistant.
- //
- optional EmergencyBrakeAssistant emergency_brake_assistant = 4;
+ // Position of the gearlever.
+ // See osi_common_extension.
+ //
+ optional Gear gearlever = 9;
+ }
- // Request to an ADAS-Function for a lane change.
- // 0=EgoLane; 1=Left; 2=Right
+ //
+ // \brief The second set of signals are requests addressed to an external function.
+ // The ADAS-function can react to a request by setting its own states.
+ // The osi_adas_function.proto is widely complementary to this proto.
+ // For e.g. the driver wants to activate a function, but the initial-conditions of the
+ // ADAS-function are not fullfilled, the request is without an effect to the driving behaviour.
//
- enum LaneChangeRequest
+ message DriverRequests
{
- // Stay on the actual lane.
+ // Wished states of the driver regarding an ADAS-Function (SAE Level 3).
+ //
+ optional AdasSAELevel3 adas_sae_level_3 = 1;
+
+ // Wished states of the driver regarding the longitudinal control.
//
- LANE_CHANGE_REQUEST_EGO_LANE = 0;
+ optional LongitudinalControl longitudinal_control = 2;
- // Change to the left.
+ // Wished states of the driver regarding the lateral control.
//
- LANE_CHANGE_REQUEST_LC_LEFT = 1;
+ optional LateralControl lateral_control = 3;
- // Change to the right.
+ // Wished states of the driver regarding the function Emergency-Brake-Assistant.
//
- LANE_CHANGE_REQUEST_LC_RIGHT = 2;
+ optional EmergencyBrakeAssistant emergency_brake_assistant = 4;
+
+ // Request to an ADAS-Function for a lane change.
+ // 0=EgoLane; 1=Left; 2=Right
+ //
+ enum LaneChangeRequest
+ {
+ // Stay on the actual lane.
+ //
+ LANE_CHANGE_REQUEST_EGO_LANE = 0;
+
+ // Change to the left.
+ //
+ LANE_CHANGE_REQUEST_LC_LEFT = 1;
+
+ // Change to the right.
+ //
+ LANE_CHANGE_REQUEST_LC_RIGHT = 2;
+ }
}
}
-
From 724b8b6e3bdbae31022f96404c027e4248c6c2c2 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Wed, 16 Jan 2019 18:16:24 +0100
Subject: [PATCH 30/39] Update osi_driver_inputs.proto
---
osi_driver_inputs.proto | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/osi_driver_inputs.proto b/osi_driver_inputs.proto
index 7366b81b1..15ad7850c 100644
--- a/osi_driver_inputs.proto
+++ b/osi_driver_inputs.proto
@@ -20,12 +20,12 @@ message DriverInputs
optional DriverInitializedStates driver_initialized_states = 1;
//
- // \brief The second set of signals are requests addressed to an external function.
+ // The second set of signals are requests addressed to an external function.
//
optional DriverRequests driver_requests = 2;
//
- // The first set of signals are states the driver can (usually) directly set.
+ // \brief The first set of signals are states the driver can (usually) directly set.
//
message DriverInitializedStates
{
From 37460cc833f34caeec9bd07be274b43073161c7e Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Wed, 16 Jan 2019 18:26:10 +0100
Subject: [PATCH 31/39] Corrected the senseful use of the message
---
osi_adas_function.proto | 183 ++++++++++++++++++++++------------------
1 file changed, 99 insertions(+), 84 deletions(-)
diff --git a/osi_adas_function.proto b/osi_adas_function.proto
index 1f16b923c..e971781c7 100644
--- a/osi_adas_function.proto
+++ b/osi_adas_function.proto
@@ -12,120 +12,135 @@ package osi3;
// This proto is in far parts complementary to the osi_driver_inputs.proto.
// The inputs are divided into states and requests.
//
-// The first set of signals are states the function sets internally
-// and are relevant for the vehicle state.
-//
-message FunctionStates
+message Adas
{
- // States of an ADAS-Function (SAE Level 3).
//
- optional AdasSAELevel3 adas_saelevel3 = 1;
-
- // States of the longitudinal control.
+ // States the ADAS-function can set.
//
- optional LongitudinalControl longitudinal_control = 2;
-
- // States of the lateral control.
- //
- optional LateralControl lateral_control = 3;
-
- // States of function Emergency-Brake-Assistant.
+ FunctionStates function_states = 1;
+
//
- optional EmergencyBrakeAssistant emergency_brake_assistant = 4;
-
- // Request that the driver has to take over.
- // 0=Off; 1=On
+ // Requests of the ADAS-function.
//
- optional bool driver_take_over_request = 5;
-
- // Color of the steering wheel (e.g. to show the driving mode).
- // See osi_common_extension.
- //
- optional ColorformatRGB steering_wheel_lighting_color = 6;
-
- // Requested state of the blindspot-lights (often in the side mirrors).
+ FunctionRequests function_requests = 2;
+
//
- optional BlindSpotWarning blind_spot_warning = 7;
-
- // Defined states of the possible blind spot warnings.
+ // \brief An Interface to describe the communication of an ADAS-function.
+ // The first set of signals are states the function sets internally
+ // and are relevant for the vehicle state.
//
- enum BlindSpotWarning
+ message FunctionStates
{
- // No warning.
+ // States of an ADAS-Function (SAE Level 3).
//
- BLIND_SPOT_WARNING_NONE = 0;
+ optional AdasSAELevel3 adas_saelevel3 = 1;
- // Left warning.
+ // States of the longitudinal control.
//
- BLIND_SPOT_WARNING_LEFT = 1;
+ optional LongitudinalControl longitudinal_control = 2;
- // Right warning.
+ // States of the lateral control.
//
- BLIND_SPOT_WARNING_RIGHT = 2;
+ optional LateralControl lateral_control = 3;
- // Warning on both sides.
+ // States of function Emergency-Brake-Assistant.
//
- BLIND_SPOT_WARNING_BOTH = 3;
- }
-}
+ optional EmergencyBrakeAssistant emergency_brake_assistant = 4;
-//
-// \brief An Interface to describe the communication of an ADAS-function.
-// This proto is in far parts complementary to the osi_driver_inputs.proto.
-// The inputs are divided into states and requests.
-//
-// The first set of signals are states the function sets internally
-// and are relevant for the vehicle state.
-//
-message FunctionRequests
-{
- // All information about the trajectory the vehicle should follow.
- // See osi_common_extension.
- //
- optional Trajectory trajectory = 1;
+ // Request that the driver has to take over.
+ // 0=Off; 1=On
+ //
+ optional bool driver_take_over_request = 5;
- // Angle, angle-speed and torque.
- // See osi_common_extension.
- //
- optional Steeringwheel steeringwheel = 2;
+ // Color of the steering wheel (e.g. to show the driving mode).
+ // See osi_common_extension.
+ //
+ optional ColorformatRGB steering_wheel_lighting_color = 6;
- // Factor to scale the steeringtorque of the function output.
- // 0-1 (0 = no force of the function, 0.5 = half the force, 1 = 100% Torque).
- //
- optional double steering_override_factor = 3;
+ // Requested state of the blindspot-lights (often in the side mirrors).
+ //
+ optional BlindSpotWarning blind_spot_warning = 7;
- // Acceleration-, brakepedal and clutch.
- // See osi_common_extension.
- //
- optional Pedalry pedalry = 4;
+ // Defined states of the possible blind spot warnings.
+ //
+ enum BlindSpotWarning
+ {
+ // No warning.
+ //
+ BLIND_SPOT_WARNING_NONE = 0;
+
+ // Left warning.
+ //
+ BLIND_SPOT_WARNING_LEFT = 1;
+
+ // Right warning.
+ //
+ BLIND_SPOT_WARNING_RIGHT = 2;
+
+ // Warning on both sides.
+ //
+ BLIND_SPOT_WARNING_BOTH = 3;
+ }
+ }
- // Position of the handbrake.
- // 0-100 (percentage of position: Released - fully pressed)
//
- optional double handbrake = 5;
-
- // This is a description of the possible indicatorstates.
+ // \brief An Interface to describe the communication of an ADAS-function.
+ // This proto is in far parts complementary to the osi_driver_inputs.proto.
+ // The inputs are divided into states and requests.
//
- optional Indicators indicators = 6;
-
- // This is a description of the possible indicatorstates.
+ // The first set of signals are states the function sets internally
+ // and are relevant for the vehicle state.
//
- enum Indicators
+ message FunctionRequests
{
- // No indicator.
+ // All information about the trajectory the vehicle should follow.
+ // See osi_common_extension.
+ //
+ optional Trajectory trajectory = 1;
+
+ // Angle, angle-speed and torque.
+ // See osi_common_extension.
+ //
+ optional Steeringwheel steeringwheel = 2;
+
+ // Factor to scale the steeringtorque of the function output.
+ // 0-1 (0 = no force of the function, 0.5 = half the force, 1 = 100% Torque).
+ //
+ optional double steering_override_factor = 3;
+
+ // Acceleration-, brakepedal and clutch.
+ // See osi_common_extension.
//
- INDICATORS_NONE = 0;
+ optional Pedalry pedalry = 4;
- // Left-indicator.
+ // Position of the handbrake.
+ // 0-100 (percentage of position: Released - fully pressed)
//
- INDICATORS_LEFT = 1;
+ optional double handbrake = 5;
- // Right-indicator.
+ // This is a description of the possible indicatorstates.
//
- INDICATORS_RIGHT = 2;
+ optional Indicators indicators = 6;
- // Warning lights.
+ // This is a description of the possible indicatorstates.
//
- INDICATORS_ALL = 3;
+ enum Indicators
+ {
+ // No indicator.
+ //
+ INDICATORS_NONE = 0;
+
+ // Left-indicator.
+ //
+ INDICATORS_LEFT = 1;
+
+ // Right-indicator.
+ //
+ INDICATORS_RIGHT = 2;
+
+ // Warning lights.
+ //
+ INDICATORS_ALL = 3;
+ }
}
}
From 94a7934984c2f511320aeca5fe202dc307317dc4 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 17 Jan 2019 10:14:52 +0100
Subject: [PATCH 32/39] Corrected OSI-Vehicle
---
osi_vehicle.proto | 314 ++++++++++++++++++++++++++++++----------------
1 file changed, 206 insertions(+), 108 deletions(-)
diff --git a/osi_vehicle.proto b/osi_vehicle.proto
index 613ad9a7e..ea28884a2 100644
--- a/osi_vehicle.proto
+++ b/osi_vehicle.proto
@@ -12,124 +12,222 @@ package osi3;
// but also the behaviour of some components of the car itself.
// Consists of four messages: VehicleKinematics, VehiclePowertrain, VehicleSteeringwheel and VehicleWheels.
//
-// All coordinates and orientations are relative to the global ground truth
-// coordinate system.
-//
-message VehicleKinematics
+message OsiVehicle
{
- // The 3D dimension of the moving object (its bounding box).
- //
- optional Dimension3d dimension = 1;
-
- // The reference point for position and orientation: the center (x,y,z) of
- // the bounding box.
- //
- optional Vector3d position = 2;
-
- // The relative velocity of the moving object w.r.t. its parent frame and
- // parent velocity.
- // The velocity becomes global/absolute if the parent frame does not move.
- //
- // #position (t) := #position (t-dt)+ #velocity *dt
- //
- optional Vector3d velocity = 3;
-
- // The relative acceleration of the moving object w.r.t. its parent frame
- // and parent acceleration.
- // The acceleration becomes global/absolute if the parent frame is not
- // accelerating.
- //
- // #position (t) := #position (t-dt)+ #velocity *dt+ #acceleration /2*dt^2
- //
- // #velocity (t) := #velocity (t-dt)+ #acceleration *dt
- //
- optional Vector3d acceleration = 4;
-
- // The relative orientation of the moving object w.r.t. its parent frame.
- //
- // Origin_base_moving_entity := Rotation_yaw_pitch_roll(#orientation)*(Origin_parent_coordinate_system - #position)
- //
- // \note There may be some constraints how to align the orientation w.r.t.
- // to some stationary object's or entity's definition.
- //
- optional Orientation3d orientation = 5;
-
- // The relative orientation rate of the moving object w.r.t. its parent
- // frame and parent orientation rate in the center point of the bounding box
- // (origin of the bounding box frame).
- //
- // Rotation_yaw_pitch_roll(#orientation (t)) := Rotation_yaw_pitch_roll(#orientation_rate *dt)*Rotation_yaw_pitch_roll(#orientation (t-dt))
- //
- // \note #orientation (t) is \b not equal #orientation (t-dt)+#orientation_rate *dt
- //
- optional Orientation3d orientation_rate = 6;
-
- // The relative orientation rate acceleration of the moving object w.r.t. its parent
- // frame and parent orientation rate in the center point of the bounding box
- // (origin of the bounding box frame).
- //
- // Rotation_yaw_pitch_roll(#orientation (t)) := Rotation_yaw_pitch_roll(#orientation_rate *dt)*Rotation_yaw_pitch_roll(#orientation (t-dt))
- //
- // \note #orientation (t) is \b not equal #orientation (t-dt)+#orientation_rate *dt
//
- optional Orientation3d orientation_rate_acceleration = 7;
-}
-
-//
-// \brief Interface to the vehicle-model.
-// The focus here is on the powertrain.
-//
-message VehiclePowertrain
-{
- // The positions of the pedals.
+ // So this is the interface, that describes how the vehicle is moving.
+ // All coordinates and orientations are relative to the global ground truth
+ // coordinate system.
//
- optional Pedalry pedalry = 1;
+ optional VehicleKinematics vehicle_kinematics = 1;
- // Rounds per minute of the crankshaft.
//
- optional double engine_rpm = 2;
-
- // Torque in Nm.
+ // Interface to the vehicle-model.
+ // The focus here is on the powertrain.
//
- optional double engine_torque = 3;
-
- // Consumption in liters per 100 km.
- //
- optional double engine_consumption = 4;
-
- // Consumption in liters per 100 km.
- //
- optional double fuel_consumption = 4;
+ optional VehiclePowertrain vehicle_powertrain = 2;
- // Consumption of electrical or hybrid vehicle
- //
- optional double electrical_energy_consumption = 5;
-
- // The actual gear of the car.
//
- optional Gear gear = 6;
-}
-
-//
-// \brief Interface to the vehicle-model.
-// The focus here is on the steeringwheel.
-//
-message VehicleSteeringwheel
-{
- // Angle, angle-speed and torque.
- // See osi_common_extension.
+ // Interface to the vehicle-model.
+ // The focus here is on the steeringwheel.
//
- optional Steeringwheel steeringwheel = 1;
-
- // Spring-stiffness of the steering in Nm/Deg.
+ optional VehicleSteeringwheel vehicle_steeringwheel = 3;
+
//
- optional double stw_springstiffness = 2;
-
- // Damping of the steering in Nm*s/Deg.
+ // Interface to the vehicle-model.
+ // The focus here is on the physical description of a wheel.
+ //
+ optional VehicleWheels vehicle_wheels = 4;
+
+ //
+ // \brief So this is the interface, that describes how the vehicle is moving.
+ // All coordinates and orientations are relative to the global ground truth
+ // coordinate system.
+ //
+ message VehicleKinematics
+ {
+ // The 3D dimension of the moving object (its bounding box).
+ //
+ optional Dimension3d dimension = 1;
+
+ // The reference point for position and orientation: the center (x,y,z) of
+ // the bounding box.
+ //
+ optional Vector3d position = 2;
+
+ // The relative velocity of the moving object w.r.t. its parent frame and
+ // parent velocity.
+ // The velocity becomes global/absolute if the parent frame does not move.
+ //
+ // #position (t) := #position (t-dt)+ #velocity *dt
+ //
+ optional Vector3d velocity = 3;
+
+ // The relative acceleration of the moving object w.r.t. its parent frame
+ // and parent acceleration.
+ // The acceleration becomes global/absolute if the parent frame is not
+ // accelerating.
+ //
+ // #position (t) := #position (t-dt)+ #velocity *dt+ #acceleration /2*dt^2
+ //
+ // #velocity (t) := #velocity (t-dt)+ #acceleration *dt
+ //
+ optional Vector3d acceleration = 4;
+
+ // The relative orientation of the moving object w.r.t. its parent frame.
+ //
+ // Origin_base_moving_entity := Rotation_yaw_pitch_roll(#orientation)*(Origin_parent_coordinate_system - #position)
+ //
+ // \note There may be some constraints how to align the orientation w.r.t.
+ // to some stationary object's or entity's definition.
+ //
+ optional Orientation3d orientation = 5;
+
+ // The relative orientation rate of the moving object w.r.t. its parent
+ // frame and parent orientation rate in the center point of the bounding box
+ // (origin of the bounding box frame).
+ //
+ // Rotation_yaw_pitch_roll(#orientation (t)) := Rotation_yaw_pitch_roll(#orientation_rate *dt)*Rotation_yaw_pitch_roll(#orientation (t-dt))
+ //
+ // \note #orientation (t) is \b not equal #orientation (t-dt)+#orientation_rate *dt
+ //
+ optional Orientation3d orientation_rate = 6;
+
+ // The relative orientation rate acceleration of the moving object w.r.t. its parent
+ // frame and parent orientation rate in the center point of the bounding box
+ // (origin of the bounding box frame).
+ //
+ // Rotation_yaw_pitch_roll(#orientation (t)) := Rotation_yaw_pitch_roll(#orientation_rate *dt)*Rotation_yaw_pitch_roll(#orientation (t-dt))
+ //
+ // \note #orientation (t) is \b not equal #orientation (t-dt)+#orientation_rate *dt
+ //
+ optional Orientation3d orientation_rate_acceleration = 7;
+ }
+
+ //
+ // \brief Interface to the vehicle-model.
+ // The focus here is on the powertrain.
+ //
+ message VehiclePowertrain
+ {
+ // The positions of the pedals.
+ //
+ optional Pedalry pedalry = 1;
+
+ // Rounds per minute of the crankshaft.
+ //
+ optional double engine_rpm = 2;
+
+ // Torque in Nm.
+ //
+ optional double engine_torque = 3;
+
+ // Consumption in liters per 100 km.
+ //
+ optional double engine_consumption = 4;
+
+ // Consumption in liters per 100 km.
+ //
+ optional double fuel_consumption = 4;
+
+ // Consumption of electrical or hybrid vehicle
+ //
+ optional double electrical_energy_consumption = 5;
+
+ // The actual gear of the car.
+ //
+ optional Gear gear = 6;
+ }
+
+ //
+ // \brief Interface to the vehicle-model.
+ // The focus here is on the steeringwheel.
+ //
+ message VehicleSteeringwheel
+ {
+ // Angle, angle-speed and torque.
+ // See osi_common_extension.
+ //
+ optional Steeringwheel steeringwheel = 1;
+
+ // Spring-stiffness of the steering in Nm/Deg.
+ //
+ optional double stw_springstiffness = 2;
+
+ // Damping of the steering in Nm*s/Deg.
+ //
+ optional double stw_damping = 3;
+
+ // Friction of the steering in Nm.
+ //
+ optional double stw_friction = 4;
+ }
+
//
- optional double stw_damping = 3;
-
- // Friction of the steering in Nm.
+ // \brief Interface to the vehicle-model.
+ // The focus here is on the wheels.
+ // It is made usage of the wheel-message to shorten the code.
+ //
+ message VehicleWheels
+ {
+ // Contains the physical description of the front-left wheel.
+ //
+ optional Wheel wheel_front_left = 1;
+
+ // Contains the physical description of the front-right wheel.
+ //
+ optional Wheel wheel_front_right = 2;
+
+ // Contains the physical description of the rear-left wheel.
+ //
+ optional Wheel wheel_rear_left = 3;
+
+ // Contains the physical description of the rear-right wheel.
+ //
+ optional Wheel wheel_rear_right = 4;
+ }
+
//
- optional double stw_friction = 4;
+ // \brief Interface to the vehicle-model.
+ // The focus here is on the physical description of a wheel.
+ //
+ message Wheel
+ {
+ // Contains the friction-coefficient of each wheel.
+ // Dimensionless.
+ //
+ optional double friction_coefficient = 1;
+
+ // Contains the z-coordinate (contact-point) of each wheel.
+ // Dimensionless.
+ //
+ optional double contact_point = 2;
+
+ // Contains the rotational speed of each wheel per second.
+ // In [Rad/s].
+ //
+ optional double rotational_speed = 3;
+
+ // Contains the steering angle of each wheel.
+ // In [Rad].
+ //
+ optional double steeringangle = 4;
+
+ // Contains the camber of each wheel.
+ // In [Rad].
+ // Negative camber if the bottom of the wheel is farther out than the top.
+ // For more information: https://en.wikipedia.org/wiki/Camber_angle.
+ //
+ optional double camber = 5;
+
+ // Contains the tirepressure of each tire.
+ // In [Pascal].
+ //
+ optional double tirepressure = 6;
+
+ // Contains the springdeflection in z-direction for each wheel.
+ // In [mm].
+ //
+ optional double springdeflection = 7;
+ }
}
From 550d812012a4e56a1f25007a284ab7a56fcf58c4 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 17 Jan 2019 10:24:02 +0100
Subject: [PATCH 33/39] Update osi_adas_function.proto
---
osi_adas_function.proto | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/osi_adas_function.proto b/osi_adas_function.proto
index e971781c7..33c14f9b3 100644
--- a/osi_adas_function.proto
+++ b/osi_adas_function.proto
@@ -17,12 +17,12 @@ message Adas
//
// States the ADAS-function can set.
//
- FunctionStates function_states = 1;
+ optional FunctionStates function_states = 1;
//
// Requests of the ADAS-function.
//
- FunctionRequests function_requests = 2;
+ optional FunctionRequests function_requests = 2;
//
// \brief An Interface to describe the communication of an ADAS-function.
From 9397b9b18306606dc741bc98c83f83738720d872 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 17 Jan 2019 10:47:17 +0100
Subject: [PATCH 34/39] Update osi_common_extension.proto
---
osi_common_extension.proto | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/osi_common_extension.proto b/osi_common_extension.proto
index 03a393b20..3ca1ed99d 100644
--- a/osi_common_extension.proto
+++ b/osi_common_extension.proto
@@ -11,15 +11,15 @@ message Steeringwheel
{
// Angle of the steeringwheel.
//
- // Unit in Rad [-pi, pi]: 0=Central (Straight); Left>0; 0>Right.
+ // Unit in rad: 0=Central (Straight); Left>0; 0>Right.
//
optional double angle = 1;
// Angle-speed of the steeringwheel.
//
- // Unit in rad/s [-pi/s, pi/s]: 0=Central (Straight); Left>0; 0>Right.
+ // Unit in rad/s: 0=Central (Straight); Left>0; 0>Right.
//
- optional double anglespeed = 2;
+ optional double angular_speed = 2;
// Torque of the steeringwheel to the hand.
//
@@ -37,17 +37,17 @@ message Pedalry
// Position of the acceleration-pedal.
// 0-100 (percentage of position: Unpressed - fully pressed)
//
- optional double pedalposition_acceleration = 1;
+ optional double pedal_position_acceleration = 1;
// Position of the brake-pedal.
// 0-100 (percentage of position: Unpressed - fully pressed)
//
- optional double pedalposition_brake = 2;
+ optional double pedal_position_brake = 2;
// Position of the clutch-pedal.
// 0-100 (percentage of position: Unpressed - fully pressed)
//
- optional double pedalposition_clutch = 3;
+ optional double pedal_position_clutch = 3;
}
//
@@ -59,7 +59,7 @@ message Trajectory
// Contains the timestamp where the trajectorypoint should be reached.
// In [s].
//
- optional double timestamp = 1;
+ optional Timestamp timestamp = 1;
// Contains the X-Position the vehicle should be at the timestamp.
//
From a243522db6f9eb52e74d728fbe0bd62e39cfbe66 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 17 Jan 2019 12:19:09 +0100
Subject: [PATCH 35/39] Update osi_common_extension.proto
---
osi_common_extension.proto | 63 --------------------------------------
1 file changed, 63 deletions(-)
diff --git a/osi_common_extension.proto b/osi_common_extension.proto
index 3ca1ed99d..d5e775bf2 100644
--- a/osi_common_extension.proto
+++ b/osi_common_extension.proto
@@ -210,66 +210,3 @@ message ColorformatRGB
//
optional uint32 rgb_blue = 3;
}
-
-//
-// \brief A description for highly automated driving (SAE Level 3).
-//
-//
-message AdasSAELevel3
-{
- // Activationstate of the function.
- //
- optional bool is_activated = 1;
-
- // This is the speed the function targets.
- // E.g.: At the point of activation, the actual speed could be 80 km/h,
- // but the function tries to accelerate to 130 km/h.
- // In [km/h].
- //
- optional double targeted_speed = 2;
-}
-
-//
-// \brief A description for the function longitudinal control.
-//
-//
-message LongitudinalControl
-{
- // Activationstate of the function.
- //
- optional bool is_activated = 1;
-
- // This is the speed the function targets.
- // E.g.: At the point of activation, the actual speed could be 80 km/h,
- // but the function tries to accelerate to 130 km/h.
- // In [km/h].
- //
- optional double targeted_speed = 2;
-
- // The timegap describes the minimumdistance to the next vehicle in front.
- // In [s].
- //
- optional double timegap = 3;
-}
-
-//
-// \brief A description for the function lateral control.
-//
-//
-message LateralControl
-{
- // Activationstate of the function.
- //
- optional bool is_activated = 1;
-}
-
-//
-// \brief A description for the function emergency brake assistant.
-//
-//
-message EmergencyBrakeAssistant
-{
- // Activationstate of the function.
- //
- optional bool is_activated = 1;
-}
From 5497acd47e0d9d4f292350b634ae9bb925ab7665 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 17 Jan 2019 12:24:42 +0100
Subject: [PATCH 36/39] Update osi_adas_function.proto
---
osi_adas_function.proto | 67 +++++++++++++++++++++++++++++++++++++++--
1 file changed, 65 insertions(+), 2 deletions(-)
diff --git a/osi_adas_function.proto b/osi_adas_function.proto
index 33c14f9b3..2d6dc173e 100644
--- a/osi_adas_function.proto
+++ b/osi_adas_function.proto
@@ -12,7 +12,7 @@ package osi3;
// This proto is in far parts complementary to the osi_driver_inputs.proto.
// The inputs are divided into states and requests.
//
-message Adas
+message AdasFunction
{
//
// States the ADAS-function can set.
@@ -33,7 +33,7 @@ message Adas
{
// States of an ADAS-Function (SAE Level 3).
//
- optional AdasSAELevel3 adas_saelevel3 = 1;
+ optional HadPilot hadpilot = 1;
// States of the longitudinal control.
//
@@ -144,3 +144,66 @@ message Adas
}
}
}
+
+//
+// \brief A description for highly automated driving (SAE Level 3).
+//
+//
+message HadPilot
+{
+ // Activationstate of the function.
+ //
+ optional bool is_activated = 1;
+
+ // This is the speed the function targets.
+ // E.g.: At the point of activation, the actual speed could be 80 km/h,
+ // but the function tries to accelerate to 130 km/h.
+ // In [km/h].
+ //
+ optional double targeted_speed = 2;
+}
+
+//
+// \brief A description for the function longitudinal control.
+//
+//
+message LongitudinalControl
+{
+ // Activationstate of the function.
+ //
+ optional bool is_activated = 1;
+
+ // This is the speed the function targets.
+ // E.g.: At the point of activation, the actual speed could be 80 km/h,
+ // but the function tries to accelerate to 130 km/h.
+ // In [km/h].
+ //
+ optional double targeted_speed = 2;
+
+ // The timegap describes the minimumdistance to the next vehicle in front.
+ // In [s].
+ //
+ optional double timegap = 3;
+}
+
+//
+// \brief A description for the function lateral control.
+//
+//
+message LateralControl
+{
+ // Activationstate of the function.
+ //
+ optional bool is_activated = 1;
+}
+
+//
+// \brief A description for the function emergency brake assistant.
+//
+//
+message EmergencyBrakeAssistant
+{
+ // Activationstate of the function.
+ //
+ optional bool is_activated = 1;
+}
From c21be51f21c1fe4790c4c07bd1265280e0b445c4 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 17 Jan 2019 12:26:24 +0100
Subject: [PATCH 37/39] Moved definitions to adas
---
osi_driver_inputs.proto | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/osi_driver_inputs.proto b/osi_driver_inputs.proto
index 15ad7850c..49207770f 100644
--- a/osi_driver_inputs.proto
+++ b/osi_driver_inputs.proto
@@ -86,7 +86,7 @@ message DriverInputs
{
// Wished states of the driver regarding an ADAS-Function (SAE Level 3).
//
- optional AdasSAELevel3 adas_sae_level_3 = 1;
+ optional HadPilot hadpilot = 1;
// Wished states of the driver regarding the longitudinal control.
//
From 554382aa304c14d2a64f37b950b72e4cbd86b1fc Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 17 Jan 2019 12:28:52 +0100
Subject: [PATCH 38/39] Update osi_driver_inputs.proto
---
osi_driver_inputs.proto | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/osi_driver_inputs.proto b/osi_driver_inputs.proto
index 49207770f..5b78915e6 100644
--- a/osi_driver_inputs.proto
+++ b/osi_driver_inputs.proto
@@ -99,7 +99,12 @@ message DriverInputs
// Wished states of the driver regarding the function Emergency-Brake-Assistant.
//
optional EmergencyBrakeAssistant emergency_brake_assistant = 4;
-
+
+ // Request to an ADAS-Function for a lane change.
+ // 0=EgoLane; 1=Left; 2=Right
+ //
+ optional LaneChangeRequest lane_change_request = 5;
+
// Request to an ADAS-Function for a lane change.
// 0=EgoLane; 1=Left; 2=Right
//
From dc36283ebba0dba061aec97ee6b6dc82d2797882 Mon Sep 17 00:00:00 2001
From: Thomas Nader
Date: Thu, 17 Jan 2019 12:32:42 +0100
Subject: [PATCH 39/39] Update osi_driver_inputs.proto
---
osi_driver_inputs.proto | 1 +
1 file changed, 1 insertion(+)
diff --git a/osi_driver_inputs.proto b/osi_driver_inputs.proto
index 5b78915e6..693513571 100644
--- a/osi_driver_inputs.proto
+++ b/osi_driver_inputs.proto
@@ -4,6 +4,7 @@ option optimize_for = SPEED;
import "osi_common.proto";
import "osi_common_extension.proto";
+import "osi_adas_function.proto";
package osi3;