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;