From aeba4902799afa30405d105362c8e22df02da9d0 Mon Sep 17 00:00:00 2001 From: Caspar de Haes Date: Wed, 13 Oct 2021 15:28:44 +0100 Subject: [PATCH 1/7] Add driver assist to host vehicle data Signed-off-by: Caspar de Haes --- osi_hostvehicledata.proto | 206 ++++++++++++++++++++++++++++++++++++++ osi_trafficupdate.proto | 11 ++ 2 files changed, 217 insertions(+) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 761a2d42e..13a91f4d4 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -75,6 +75,15 @@ message HostVehicleData // optional VehicleLocalization vehicle_localization = 8; + // What driver assistance is active. + // + // This can include: + // - information presented to the driver, for example, parking sensors + // - warnings raised by the vehicle, for example, forward collision warning + // - corrective action taken by the vehicle, for example, auto emergency braking + // + repeated DriverAssistState driver_assist_state = 12; + // // \brief The absolute base parameters of the vehicle. // @@ -275,4 +284,201 @@ message HostVehicleData // optional GeodeticPosition geodetic_position = 3; } + + // + // \brief The driver assist state specifically relating to recognised + // Advanced Driver Assistance Systems. + // + message DriverAssistState + { + // The particular feature being reported about. + // + optional AssistFeature assist_feature = 1; + + // Custom feature name. + // + // Only used if assist_feature is set to ASSIST_FEATURE_OTHER. + // + optional string custom_name = 2; + + // The activation state of the feature. + // + // This is whether the feature has actually been triggered, for + // example, a warning has been raised, or additional braking is + // in effect. + // + optional ActivationState activation_state = 3; + + // Custom activation state. + // + // Only used if the activation_state is set to ACTIVATION_STATE_OTHER. + // + optional string custom_activation_state = 4; + + // Custom detail. + // + // An opaque set of key-value pairs which capture any user specific + // details that may be relevant. This could include details about + // how a warning was raised (dashboard, audible, etc.) or it could + // be about settings which would influence evaluation, such as + // sensitivity settings. + // + repeated CustomDetail custom_detail = 5; + + // ADAS feature that is raising the notification. + // + // \note The naming convention is taken from the SAE guidance on ADAS + // nomenclature: + // https://www.sae.org/binaries/content/assets/cm/content/miscellaneous/adas-nomenclature.pdf + // + enum AssistFeature + { + // Unknown feature, should not be used. + // + ASSIST_FEATURE_UNKNOWN = 0; + + // Custom feature, see custom_name. + // + ASSIST_FEATURE_OTHER = 1; + + // Blind spot warning. + // + ASSIST_FEATURE_BLIND_SPOT_WARNING = 2; + + // Forward collision warning. + // + ASSIST_FEATURE_FORWARD_COLLISION_WARNING = 3; + + // Lane departure warning. + // + ASSIST_FEATURE_LANE_DEPARTURE_WARNING = 4; + + // Parking collision warning. + // + ASSIST_FEATURE_PARKING_COLLISION_WARNING = 5; + + // Rear cross-traffic warning + // + ASSIST_FEATURE_REAR_CROSS_TRAFFIC_WARNING = 6; + + // Automatic emergency braking + // + ASSIST_FEATURE_AUTOMATIC_EMERGENCY_BRAKING = 7; + + // Emergency steering + // + ASSIST_FEATURE_AUTOMATIC_EMERGENCY_STEERING = 8; + + // Reverse automatic emergency braking + // + ASSIST_FEATURE_REVERSE_AUTOMATIC_EMERGENCY_BRAKING = 9; + + // Adaptive cruise control + // + ASSIST_FEATURE_ADAPTIVE_CRUISE_CONTROL = 10; + + // Lane keeping assist + // + ASSIST_FEATURE_LANE_KEEPING_ASSIST = 11; + + // Active driving assistance + // + ASSIST_FEATURE_ACTIVE_DRIVING_ASSISTANCE = 12; + + // Backup camera + // + ASSIST_FEATURE_BACKUP_CAMERA = 13; + + // Surround view camera + // + ASSIST_FEATURE_SURROUND_VIEW_CAMERA = 14; + + // Active parking assistance + // + ASSIST_FEATURE_ACTIVE_PARKING_ASSISTANCE = 15; + + // Remote parking assistance + // + ASSIST_FEATURE_REMOTE_PARKING_ASSISTANCE = 16; + + // Trailer assistance + // + ASSIST_FEATURE_TRAILER_ASSISTANCE = 17; + + // Automatic high beams + // + ASSIST_FEATURE_AUTOMATIC_HIGH_BEAMS = 18; + + // Driver monitoring + // + ASSIST_FEATURE_DRIVER_MONITORING = 19; + + // Head up display + // + ASSIST_FEATURE_HEAD_UP_DISPLAY = 20; + + // Night vision + // + ASSIST_FEATURE_NIGHT_VISION = 21; + } + + // The activation state of a feature. + // + // \note Not all of these will be applicable for all vehicles + // and features. + // + enum ActivationState + { + // An unknown activation state, this should not be used. + // + ACTIVATION_STATE_UNKNOWN = 0; + + // Used for custom states not covered by the definitions below. + // + // A string state can be specified in custom_activation_state. + // + ACTIVATION_STATE_OTHER = 1; + + // The feature has been disabled. + // + ACTIVATION_STATE_TURNED_OFF = 2; + + // The feature has errored in some way that renders it ineffective. + // + ACTIVATION_STATE_ERRORED = 3; + + // The feature is enabled but conditions have not caused it to be + // triggered, for example, no vehicles in front to trigger a FCW. + // + ACTIVATION_STATE_STANDBY = 4; + + // The feature is currently active, for example, a warning is being + // shown to the driver, or emergency braking is being applied/ + // + ACTIVATION_STATE_ACTIVE = 5; + + // The feature would be ACTIVE, but the user has show sufficient + // input to override, for example, by applying throttle or steering + // input. + // + ACTIVATION_STATE_ACTIVE_DRIVER_OVERRIDE = 6; + } + + // + // \brief Custom detail message + // + // To contain driver-assist related information that is too function + // specific to be captured in a generic way. + // + message CustomDetail + { + // A generic string key to identify the information. + // + optional string key = 1; + + // A generic string value to capture the information. + // + optional string value = 2; + } + } } diff --git a/osi_trafficupdate.proto b/osi_trafficupdate.proto index 965937630..b4fe3d4d4 100644 --- a/osi_trafficupdate.proto +++ b/osi_trafficupdate.proto @@ -5,6 +5,7 @@ option optimize_for = SPEED; import "osi_version.proto"; import "osi_common.proto"; import "osi_object.proto"; +import "osi_hostvehicledata.proto"; package osi3; @@ -52,4 +53,14 @@ message TrafficUpdate // MovingObject::VehicleClassification::trailer_id. // repeated MovingObject update = 3; + + // Internal state for each vehicle. + // + // \note This covers any information which cannot be externally perceived + // and therefore cannot be included in messages available in ground truth. + // + // \note The id field from this should match the id in the update field + // above where the same vehicle is being referenced. + // + repeated HostVehicleData internal_state = 4; } From a7f6ab2470e298212d6a6d6838c09fa12d26f065 Mon Sep 17 00:00:00 2001 From: Caspar de Haes Date: Fri, 15 Oct 2021 18:04:48 +0100 Subject: [PATCH 2/7] Feedback from review Signed-off-by: Caspar de Haes --- osi_common.proto | 18 ++++++++++++++++++ osi_hostvehicledata.proto | 21 ++------------------- osi_trafficupdate.proto | 5 +++++ 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/osi_common.proto b/osi_common.proto index 58685962c..332f7813e 100644 --- a/osi_common.proto +++ b/osi_common.proto @@ -885,3 +885,21 @@ message GeodeticPosition // optional double altitude = 3; } + + +// +// \brief Generic key-value pair structure +// +// A generic key-value pair structure which can be used to capture information +// which is opaque to the general OSI interface. +// +message KeyValuePair +{ + // A generic string key. + // + optional string key = 1; + + // A generic string value. + // + optional string value = 2; +} diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 13a91f4d4..572537cdd 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -75,7 +75,7 @@ message HostVehicleData // optional VehicleLocalization vehicle_localization = 8; - // What driver assistance is active. + // State of driver assistance systems. // // This can include: // - information presented to the driver, for example, parking sensors @@ -323,7 +323,7 @@ message HostVehicleData // be about settings which would influence evaluation, such as // sensitivity settings. // - repeated CustomDetail custom_detail = 5; + repeated KeyValuePair custom_detail = 5; // ADAS feature that is raising the notification. // @@ -463,22 +463,5 @@ message HostVehicleData // ACTIVATION_STATE_ACTIVE_DRIVER_OVERRIDE = 6; } - - // - // \brief Custom detail message - // - // To contain driver-assist related information that is too function - // specific to be captured in a generic way. - // - message CustomDetail - { - // A generic string key to identify the information. - // - optional string key = 1; - - // A generic string value to capture the information. - // - optional string value = 2; - } } } diff --git a/osi_trafficupdate.proto b/osi_trafficupdate.proto index b4fe3d4d4..12e7a39d5 100644 --- a/osi_trafficupdate.proto +++ b/osi_trafficupdate.proto @@ -56,6 +56,11 @@ message TrafficUpdate // Internal state for each vehicle. // + // This is an optional field as internal state may not be known or relevant, + // for example, a trailer is not going to have any internal state. + // It is also allowed to only specify internal_state for a subset of the + // objects referenced in the update. + // // \note This covers any information which cannot be externally perceived // and therefore cannot be included in messages available in ground truth. // From b6063266bec569d69e53ab9cafaaf09928eda13c Mon Sep 17 00:00:00 2001 From: Caspar de Haes Date: Fri, 22 Oct 2021 17:46:00 +0100 Subject: [PATCH 3/7] Make the structure more generic to all automated driving Signed-off-by: Caspar de Haes --- osi_hostvehicledata.proto | 117 +++++++++++++++++++++++--------------- 1 file changed, 71 insertions(+), 46 deletions(-) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 572537cdd..c9e5f79e8 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -75,14 +75,17 @@ message HostVehicleData // optional VehicleLocalization vehicle_localization = 8; - // State of driver assistance systems. + // State of any automated driving functions. // // This can include: // - information presented to the driver, for example, parking sensors // - warnings raised by the vehicle, for example, forward collision warning // - corrective action taken by the vehicle, for example, auto emergency braking + // - full level 4 self driving systems // - repeated DriverAssistState driver_assist_state = 12; + // \note OSI uses singular instead of plural for repeated field names. + // + repeated VehicleAutomatedDrivingFunction automated_driving_function = 12; // // \brief The absolute base parameters of the vehicle. @@ -286,24 +289,23 @@ message HostVehicleData } // - // \brief The driver assist state specifically relating to recognised - // Advanced Driver Assistance Systems. + // \brief State of one automated driving function on the host vehicle. // - message DriverAssistState + message VehicleAutomatedDrivingFunction { - // The particular feature being reported about. + // The particular function being reported about. // - optional AssistFeature assist_feature = 1; + optional FunctionName function_name = 1; - // Custom feature name. + // Custom function name. // - // Only used if assist_feature is set to ASSIST_FEATURE_OTHER. + // Only used if function_name is set to FUNCTION_NAME_OTHER. // optional string custom_name = 2; - // The activation state of the feature. + // The activation state of the function. // - // This is whether the feature has actually been triggered, for + // This is whether the function has actually been triggered, for // example, a warning has been raised, or additional braking is // in effect. // @@ -325,101 +327,120 @@ message HostVehicleData // repeated KeyValuePair custom_detail = 5; - // ADAS feature that is raising the notification. + // A list of possible automated driving features. + // + // \note This can span (in theory) from Level 0 all the way to Level 5. // - // \note The naming convention is taken from the SAE guidance on ADAS - // nomenclature: - // https://www.sae.org/binaries/content/assets/cm/content/miscellaneous/adas-nomenclature.pdf + // References: + // - https://www.sae.org/binaries/content/assets/cm/content/miscellaneous/adas-nomenclature.pdf + // - https://www.vda.de/en/topics/innovation-and-technology/automated-driving/automated-driving // - enum AssistFeature + enum FunctionName { // Unknown feature, should not be used. // - ASSIST_FEATURE_UNKNOWN = 0; + FUNCTION_NAME_UNKNOWN = 0; // Custom feature, see custom_name. // - ASSIST_FEATURE_OTHER = 1; + FUNCTION_NAME_OTHER = 1; // Blind spot warning. // - ASSIST_FEATURE_BLIND_SPOT_WARNING = 2; + FUNCTION_NAME_BLIND_SPOT_WARNING = 2; // Forward collision warning. // - ASSIST_FEATURE_FORWARD_COLLISION_WARNING = 3; + FUNCTION_NAME_FORWARD_COLLISION_WARNING = 3; // Lane departure warning. // - ASSIST_FEATURE_LANE_DEPARTURE_WARNING = 4; + FUNCTION_NAME_LANE_DEPARTURE_WARNING = 4; // Parking collision warning. // - ASSIST_FEATURE_PARKING_COLLISION_WARNING = 5; + FUNCTION_NAME_PARKING_COLLISION_WARNING = 5; // Rear cross-traffic warning // - ASSIST_FEATURE_REAR_CROSS_TRAFFIC_WARNING = 6; + FUNCTION_NAME_REAR_CROSS_TRAFFIC_WARNING = 6; // Automatic emergency braking // - ASSIST_FEATURE_AUTOMATIC_EMERGENCY_BRAKING = 7; + FUNCTION_NAME_AUTOMATIC_EMERGENCY_BRAKING = 7; // Emergency steering // - ASSIST_FEATURE_AUTOMATIC_EMERGENCY_STEERING = 8; + FUNCTION_NAME_AUTOMATIC_EMERGENCY_STEERING = 8; // Reverse automatic emergency braking // - ASSIST_FEATURE_REVERSE_AUTOMATIC_EMERGENCY_BRAKING = 9; + FUNCTION_NAME_REVERSE_AUTOMATIC_EMERGENCY_BRAKING = 9; // Adaptive cruise control // - ASSIST_FEATURE_ADAPTIVE_CRUISE_CONTROL = 10; + FUNCTION_NAME_ADAPTIVE_CRUISE_CONTROL = 10; // Lane keeping assist // - ASSIST_FEATURE_LANE_KEEPING_ASSIST = 11; + FUNCTION_NAME_LANE_KEEPING_ASSIST = 11; // Active driving assistance // - ASSIST_FEATURE_ACTIVE_DRIVING_ASSISTANCE = 12; + FUNCTION_NAME_ACTIVE_DRIVING_ASSISTANCE = 12; // Backup camera // - ASSIST_FEATURE_BACKUP_CAMERA = 13; + FUNCTION_NAME_BACKUP_CAMERA = 13; // Surround view camera // - ASSIST_FEATURE_SURROUND_VIEW_CAMERA = 14; + FUNCTION_NAME_SURROUND_VIEW_CAMERA = 14; // Active parking assistance // - ASSIST_FEATURE_ACTIVE_PARKING_ASSISTANCE = 15; + FUNCTION_NAME_ACTIVE_PARKING_ASSISTANCE = 15; // Remote parking assistance // - ASSIST_FEATURE_REMOTE_PARKING_ASSISTANCE = 16; + FUNCTION_NAME_REMOTE_PARKING_ASSISTANCE = 16; // Trailer assistance // - ASSIST_FEATURE_TRAILER_ASSISTANCE = 17; + FUNCTION_NAME_TRAILER_ASSISTANCE = 17; // Automatic high beams // - ASSIST_FEATURE_AUTOMATIC_HIGH_BEAMS = 18; + FUNCTION_NAME_AUTOMATIC_HIGH_BEAMS = 18; // Driver monitoring // - ASSIST_FEATURE_DRIVER_MONITORING = 19; + FUNCTION_NAME_DRIVER_MONITORING = 19; // Head up display // - ASSIST_FEATURE_HEAD_UP_DISPLAY = 20; + FUNCTION_NAME_HEAD_UP_DISPLAY = 20; // Night vision // - ASSIST_FEATURE_NIGHT_VISION = 21; + FUNCTION_NAME_NIGHT_VISION = 21; + + // Urban driving + // + FUNCTION_NAME_URBAN_DRIVING = 22; + + // Highway autopilot. + // + FUNCTION_NAME_HIGHWAY_AUTOPILOT = 23; + + // Cruise control. + // + FUNCTION_NAME_CRUISE_CONTROL = 24; + + // Speed limit control + // + FUNCTION_NAME_SPEED_LIMIT_CONTROL = 25; + } // The activation state of a feature. @@ -439,29 +460,33 @@ message HostVehicleData // ACTIVATION_STATE_OTHER = 1; - // The feature has been disabled. + // The function has been disabled. // ACTIVATION_STATE_TURNED_OFF = 2; - // The feature has errored in some way that renders it ineffective. + // The function has errored in some way that renders it ineffective. // ACTIVATION_STATE_ERRORED = 3; - // The feature is enabled but conditions have not caused it to be + // The function is initialized but not ready to start. + // + ACTIVATION_STATE_UNAVAILABLE = 4; + + // The function is enabled but conditions have not caused it to be // triggered, for example, no vehicles in front to trigger a FCW. // - ACTIVATION_STATE_STANDBY = 4; + ACTIVATION_STATE_STANDBY = 5; - // The feature is currently active, for example, a warning is being + // The function is currently active, for example, a warning is being // shown to the driver, or emergency braking is being applied/ // - ACTIVATION_STATE_ACTIVE = 5; + ACTIVATION_STATE_ACTIVE = 6; - // The feature would be ACTIVE, but the user has show sufficient + // The function would be ACTIVE, but the user has show sufficient // input to override, for example, by applying throttle or steering // input. // - ACTIVATION_STATE_ACTIVE_DRIVER_OVERRIDE = 6; + ACTIVATION_STATE_ACTIVE_DRIVER_OVERRIDE = 7; } } } From f7a542120de672249afaa47cadb8f2d1a8c35bed Mon Sep 17 00:00:00 2001 From: Caspar de Haes Date: Thu, 28 Oct 2021 17:21:02 +0100 Subject: [PATCH 4/7] Code review mark-ups Signed-off-by: Caspar de Haes --- osi_common.proto | 1 - osi_hostvehicledata.proto | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/osi_common.proto b/osi_common.proto index 332f7813e..5085541c1 100644 --- a/osi_common.proto +++ b/osi_common.proto @@ -886,7 +886,6 @@ message GeodeticPosition optional double altitude = 3; } - // // \brief Generic key-value pair structure // diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index c9e5f79e8..df8b2689e 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -85,7 +85,7 @@ message HostVehicleData // // \note OSI uses singular instead of plural for repeated field names. // - repeated VehicleAutomatedDrivingFunction automated_driving_function = 12; + repeated VehicleAutomatedDrivingFunction vehicle_automated_driving_function = 12; // // \brief The absolute base parameters of the vehicle. @@ -440,7 +440,6 @@ message HostVehicleData // Speed limit control // FUNCTION_NAME_SPEED_LIMIT_CONTROL = 25; - } // The activation state of a feature. From f193bc8f30669c3e5162463727ee3a2820652efa Mon Sep 17 00:00:00 2001 From: Caspar de Haes Date: Thu, 20 Jan 2022 14:55:55 +0000 Subject: [PATCH 5/7] Split out driver override To remove complexity and confusion from the state enum. Also remove redundant prefixes for fields and enums. Signed-off-by: Caspar de Haes --- osi_hostvehicledata.proto | 144 +++++++++++++++++++++++--------------- 1 file changed, 88 insertions(+), 56 deletions(-) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index df8b2689e..8b9b08c1f 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -293,29 +293,33 @@ message HostVehicleData // message VehicleAutomatedDrivingFunction { - // The particular function being reported about. + // The particular driving function being reported about. // - optional FunctionName function_name = 1; + optional Name name = 1; - // Custom function name. + // Custom driving function name. // - // Only used if function_name is set to FUNCTION_NAME_OTHER. + // Only used if name is set to NAME_OTHER. // optional string custom_name = 2; - // The activation state of the function. + // The state of the function. // // This is whether the function has actually been triggered, for // example, a warning has been raised, or additional braking is // in effect. // - optional ActivationState activation_state = 3; + optional State state = 3; - // Custom activation state. + // Custom state. // - // Only used if the activation_state is set to ACTIVATION_STATE_OTHER. + // Only used if the state is set to STATE_OTHER. // - optional string custom_activation_state = 4; + optional string custom_state = 4; + + // Whether, and how, the driver has overridden this function. + // + optional DriverOverride driver_override = 5; // Custom detail. // @@ -325,7 +329,7 @@ message HostVehicleData // be about settings which would influence evaluation, such as // sensitivity settings. // - repeated KeyValuePair custom_detail = 5; + repeated KeyValuePair custom_detail = 6; // A list of possible automated driving features. // @@ -335,157 +339,185 @@ message HostVehicleData // - https://www.sae.org/binaries/content/assets/cm/content/miscellaneous/adas-nomenclature.pdf // - https://www.vda.de/en/topics/innovation-and-technology/automated-driving/automated-driving // - enum FunctionName + enum Name { // Unknown feature, should not be used. // - FUNCTION_NAME_UNKNOWN = 0; + NAME_UNKNOWN = 0; // Custom feature, see custom_name. // - FUNCTION_NAME_OTHER = 1; + NAME_OTHER = 1; // Blind spot warning. // - FUNCTION_NAME_BLIND_SPOT_WARNING = 2; + NAME_BLIND_SPOT_WARNING = 2; // Forward collision warning. // - FUNCTION_NAME_FORWARD_COLLISION_WARNING = 3; + NAME_FORWARD_COLLISION_WARNING = 3; // Lane departure warning. // - FUNCTION_NAME_LANE_DEPARTURE_WARNING = 4; + NAME_LANE_DEPARTURE_WARNING = 4; // Parking collision warning. // - FUNCTION_NAME_PARKING_COLLISION_WARNING = 5; + NAME_PARKING_COLLISION_WARNING = 5; // Rear cross-traffic warning // - FUNCTION_NAME_REAR_CROSS_TRAFFIC_WARNING = 6; + NAME_REAR_CROSS_TRAFFIC_WARNING = 6; // Automatic emergency braking // - FUNCTION_NAME_AUTOMATIC_EMERGENCY_BRAKING = 7; + NAME_AUTOMATIC_EMERGENCY_BRAKING = 7; // Emergency steering // - FUNCTION_NAME_AUTOMATIC_EMERGENCY_STEERING = 8; + NAME_AUTOMATIC_EMERGENCY_STEERING = 8; // Reverse automatic emergency braking // - FUNCTION_NAME_REVERSE_AUTOMATIC_EMERGENCY_BRAKING = 9; + NAME_REVERSE_AUTOMATIC_EMERGENCY_BRAKING = 9; // Adaptive cruise control // - FUNCTION_NAME_ADAPTIVE_CRUISE_CONTROL = 10; + NAME_ADAPTIVE_CRUISE_CONTROL = 10; // Lane keeping assist // - FUNCTION_NAME_LANE_KEEPING_ASSIST = 11; + NAME_LANE_KEEPING_ASSIST = 11; // Active driving assistance // - FUNCTION_NAME_ACTIVE_DRIVING_ASSISTANCE = 12; + NAME_ACTIVE_DRIVING_ASSISTANCE = 12; // Backup camera // - FUNCTION_NAME_BACKUP_CAMERA = 13; + NAME_BACKUP_CAMERA = 13; // Surround view camera // - FUNCTION_NAME_SURROUND_VIEW_CAMERA = 14; + NAME_SURROUND_VIEW_CAMERA = 14; // Active parking assistance // - FUNCTION_NAME_ACTIVE_PARKING_ASSISTANCE = 15; + NAME_ACTIVE_PARKING_ASSISTANCE = 15; // Remote parking assistance // - FUNCTION_NAME_REMOTE_PARKING_ASSISTANCE = 16; + NAME_REMOTE_PARKING_ASSISTANCE = 16; // Trailer assistance // - FUNCTION_NAME_TRAILER_ASSISTANCE = 17; + NAME_TRAILER_ASSISTANCE = 17; // Automatic high beams // - FUNCTION_NAME_AUTOMATIC_HIGH_BEAMS = 18; + NAME_AUTOMATIC_HIGH_BEAMS = 18; // Driver monitoring // - FUNCTION_NAME_DRIVER_MONITORING = 19; + NAME_DRIVER_MONITORING = 19; // Head up display // - FUNCTION_NAME_HEAD_UP_DISPLAY = 20; + NAME_HEAD_UP_DISPLAY = 20; // Night vision // - FUNCTION_NAME_NIGHT_VISION = 21; + NAME_NIGHT_VISION = 21; // Urban driving // - FUNCTION_NAME_URBAN_DRIVING = 22; + NAME_URBAN_DRIVING = 22; // Highway autopilot. // - FUNCTION_NAME_HIGHWAY_AUTOPILOT = 23; + NAME_HIGHWAY_AUTOPILOT = 23; // Cruise control. // - FUNCTION_NAME_CRUISE_CONTROL = 24; + NAME_CRUISE_CONTROL = 24; // Speed limit control // - FUNCTION_NAME_SPEED_LIMIT_CONTROL = 25; + NAME_SPEED_LIMIT_CONTROL = 25; } - // The activation state of a feature. + // The state that the feature is in. // // \note Not all of these will be applicable for all vehicles // and features. // - enum ActivationState + enum State { - // An unknown activation state, this should not be used. + // An unknown state, this should not be used. // - ACTIVATION_STATE_UNKNOWN = 0; + STATE_UNKNOWN = 0; // Used for custom states not covered by the definitions below. // - // A string state can be specified in custom_activation_state. + // A string state can be specified in custom_state. // - ACTIVATION_STATE_OTHER = 1; + STATE_OTHER = 1; - // The function has been disabled. + // The function has errored in some way that renders it ineffective. // - ACTIVATION_STATE_TURNED_OFF = 2; + STATE_ERRORED = 2; - // The function has errored in some way that renders it ineffective. + // The function cannot be used due to unfulfilled preconditions, + // for example it is a highway only feature and the vehicle is in + // an urban environment. // - ACTIVATION_STATE_ERRORED = 3; + STATE_UNAVAILABLE = 3; - // The function is initialized but not ready to start. + // The function can be used as all preconditions are satisfied, but + // it hasn't been enabled. // - ACTIVATION_STATE_UNAVAILABLE = 4; + STATE_AVAILABLE = 4; - // The function is enabled but conditions have not caused it to be + // The function is available but conditions have not caused it to be // triggered, for example, no vehicles in front to trigger a FCW. // - ACTIVATION_STATE_STANDBY = 5; + STATE_STANDBY = 5; // The function is currently active, for example, a warning is being // shown to the driver, or emergency braking is being applied/ // - ACTIVATION_STATE_ACTIVE = 6; + STATE_ACTIVE = 6; + } + + // + // \brief Driver override information + // + // Information about whether and how and driver may have overridden + // an automated driving function. + // + message DriverOverride + { + // The feature has been overridden by a driver action. + // + // \note If false, the rest of this message should be ignored. + optional bool active = 1; - // The function would be ACTIVE, but the user has show sufficient - // input to override, for example, by applying throttle or steering - // input. + // What driver inputs have caused the override. // - ACTIVATION_STATE_ACTIVE_DRIVER_OVERRIDE = 7; + repeated Reason override_reason = 2; + + // Ways in which a driver could override a driving function. + // + enum Reason + { + // The driver has applied sufficient input via the break pedal. + // + REASON_BRAKE_PEDAL = 0; + + // The driver has applied sufficient steering input. + // + REASON_STEERING_INPUT = 1; + } } } } From 7ecdf361ead421e08d3bce49439762eaf2406dbe Mon Sep 17 00:00:00 2001 From: clemenshabedank Date: Wed, 2 Feb 2022 11:21:20 +0100 Subject: [PATCH 6/7] small change Signed-off-by: Habedank Clemens --- osi_trafficupdate.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osi_trafficupdate.proto b/osi_trafficupdate.proto index 12e7a39d5..5b157c668 100644 --- a/osi_trafficupdate.proto +++ b/osi_trafficupdate.proto @@ -57,7 +57,7 @@ message TrafficUpdate // Internal state for each vehicle. // // This is an optional field as internal state may not be known or relevant, - // for example, a trailer is not going to have any internal state. + // for example, a trailer might not have any internal state. // It is also allowed to only specify internal_state for a subset of the // objects referenced in the update. // From e30bf2f2ecfbc2067d7c36e0a088dcab3c216afc Mon Sep 17 00:00:00 2001 From: Stefan Cyliax Date: Fri, 4 Feb 2022 08:52:03 +0100 Subject: [PATCH 7/7] Doc: fix reference style for links Signed-off-by: Stefan Cyliax --- osi_hostvehicledata.proto | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 8b9b08c1f..7049cc4c7 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -88,7 +88,7 @@ message HostVehicleData repeated VehicleAutomatedDrivingFunction vehicle_automated_driving_function = 12; // - // \brief The absolute base parameters of the vehicle. + // \brief The absolute base parameters of the vehicle. // message VehicleBasics { @@ -182,7 +182,7 @@ message HostVehicleData } // - // \brief The focus here is on the description of the brake system. + // \brief The focus here is on the description of the brake system. // message VehicleBrakeSystem { @@ -193,7 +193,7 @@ message HostVehicleData } // - // \brief The focus here is on the description of the steering train. + // \brief The focus here is on the description of the steering train. // message VehicleSteering { @@ -235,7 +235,7 @@ message HostVehicleData // Rotation rate of the wheel based on the processed output of the hall sensor measurements at the wheel. // The rotation rate around the y-axis with respect to the wheel's coordinate system. - // + // // Unit: rad/s. // // The sign convention is defined using the right-hand rule. @@ -249,7 +249,7 @@ message HostVehicleData // Contains the longitudinal, measured slip of the tire. // \par References: - // - https://www.kfz-tech.de/Biblio/Formelsammlung/Schlupf.htm + // [1] kfz-tech.de, Schlupf, Retrieved June 30, 2021, from https://www.kfz-tech.de/Biblio/Formelsammlung/Schlupf.htm // // Unit: % // @@ -282,7 +282,7 @@ message HostVehicleData // in context to the global coordinate system. // optional Orientation3d orientation = 2; - + // Most accurate geodetic information of the vehicle available in the on-board network. // optional GeodeticPosition geodetic_position = 3; @@ -335,9 +335,9 @@ message HostVehicleData // // \note This can span (in theory) from Level 0 all the way to Level 5. // - // References: - // - https://www.sae.org/binaries/content/assets/cm/content/miscellaneous/adas-nomenclature.pdf - // - https://www.vda.de/en/topics/innovation-and-technology/automated-driving/automated-driving + // \par References: + // [1] CLEARING THE CONFUSION: Recommended Common Naming for Advanced Driver Assistance Technologies, SAE International, Retrieved October 22, 2021, from https://www.sae.org/binaries/content/assets/cm/content/miscellaneous/adas-nomenclature.pdf + // [2] Automated Driving, German Association of the Automotive Industry (VDA), Retrieved October 22, 2021, from https://www.vda.de/en/topics/innovation-and-technology/automated-driving/automated-driving // enum Name {