From d7c38719474f70c910175e12561851389b349b6b Mon Sep 17 00:00:00 2001 From: Caspar de Haes Date: Thu, 19 Aug 2021 13:21:02 +0100 Subject: [PATCH 1/7] Add a driver assistance notification Designed to allow communication of what features are currently active and/or enabled, for example, ADAS features such as AEB or FCW. Signed-off-by: Caspar de Haes --- osi_object.proto | 115 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/osi_object.proto b/osi_object.proto index af2d9a232..9e91da9fd 100644 --- a/osi_object.proto +++ b/osi_object.proto @@ -696,6 +696,15 @@ message MovingObject // optional Identifier trailer_id = 4; + // 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 + // + optional DriverAssistState driver_assist_state = 5; + // Definition of vehicle types. // enum Type @@ -917,5 +926,111 @@ message MovingObject BRAKE_LIGHT_STATE_STRONG = 4; } } + + // + // \brief The state of driver assistance features. + // + message DriverAssistState + { + // State of recognised ADAS features. + // + repeated ADASState adas_state = 1; + + // Custom driver assist state. + // + repeated CustomAssistState custom_assist_state = 2; + + // + // The driver assist state specifically relating to recognised + // Advanced Driver Assistance Systems. + // + message ADASState + { + // The particular feature being reported about. + // + optional ADASFeature adas_feature = 1; + + // Whether this particular feature is enabled or not. + // + // For example, the Forward Collision Warning feature may + // be enabled, even if it isn't active, because there are no + // vehicles in front. + // + optional bool enabled = 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 detail. + // + // An opaque field to distinguish user-specific details, such as + // whether the notification was raised via an audio warning, or + // the dashboard. + // + optional string custom_detail = 4; + + // 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 ADASFeature + { + BLIND_SPOT_WARNING = 1; + FORWARD_COLLISION_WARNING = 2; + LANE_DEPARTURE_WARNING = 3; + PARKING_COLLISION_WARNING = 4; + REAR_CROSS_TRAFFIC_WARNING = 5; + AUTOMATIC_EMERGENCY_BRAKING = 6; + AUTOMATIC_EMERGENCY_STEERING = 7; + REVERSE_AUTOMATIC_EMERGENCY_BRAKING = 8; + ADAPTIVE_CRUISE_CONTROL = 9; + LANE_KEEPING_ASSIST = 10; + ACTIVE_DRIVING_ASSISTANCE = 11; + BACKUP_CAMERA = 12; + SURROUND_VIEW_CAMERA = 13; + ACTIVE_PARKING_ASSISTANCE = 14; + REMOTE_PARKING_ASSISTANCE = 15; + TRAILER_ASSISTANCE = 16; + AUTOMATIC_HIGH_BEAMS = 17; + DRIVER_MONITORING = 18; + HEAD_UP_DISPLAY = 19; + NIGHT_VISION = 20; + } + + // The activation state of a feature. + // + // \note Not all of these will be applicable for all vehicles + // and features. + // + enum ActivationState + { + INACTIVE = 1; + ACTIVE = 2; + ACTIVE_DRIVER_OVERRIDE = 3; + } + } + + // + // The driver assist state relating to anything not formally + // recognised. This could be proprietary assistance features + // that are available for a particular vehicle. + // + message CustomAssistState + { + // An identifier for the assistance feature. + // + optional string identifier = 1; + + // A string indicating any relevant information about the feature. + optional string state = 2; + } + } } } From 9e20577d3b39f8e9f6fcbee7aee5b27b3af2722f Mon Sep 17 00:00:00 2001 From: Caspar de Haes Date: Fri, 20 Aug 2021 11:57:08 +0100 Subject: [PATCH 2/7] Consolidate driver assist into a single message With optional ways of customising to allow more flexibility but also common features. Signed-off-by: Caspar de Haes --- osi_object.proto | 168 +++++++++++++++++++++++++---------------------- 1 file changed, 91 insertions(+), 77 deletions(-) diff --git a/osi_object.proto b/osi_object.proto index 9e91da9fd..b3f4f122e 100644 --- a/osi_object.proto +++ b/osi_object.proto @@ -703,7 +703,7 @@ message MovingObject // - warnings raised by the vehicle, for example, forward collision warning // - corrective action taken by the vehicle, for example, auto emergency braking // - optional DriverAssistState driver_assist_state = 5; + repeated DriverAssistState driver_assist_state = 5; // Definition of vehicle types. // @@ -928,108 +928,122 @@ message MovingObject } // - // \brief The state of driver assistance features. + // The driver assist state specifically relating to recognised + // Advanced Driver Assistance Systems. // message DriverAssistState { - // State of recognised ADAS features. + // The particular feature being reported about. // - repeated ADASState adas_state = 1; + optional AssistFeature assist_feature = 1; - // Custom driver assist state. + // Custom feature name. // - repeated CustomAssistState custom_assist_state = 2; + // Only used if assist_feature is set to CUSTOM_FEATURE. + // + 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 CUSTOM_STATE. // - // The driver assist state specifically relating to recognised - // Advanced Driver Assistance Systems. + optional string custom_activation_state = 4; + + // Custom detail. // - message ADASState + // 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 { - // The particular feature being reported about. - // - optional ADASFeature adas_feature = 1; + CUSTOM_FEATURE = 1; + BLIND_SPOT_WARNING = 2; + FORWARD_COLLISION_WARNING = 3; + LANE_DEPARTURE_WARNING = 4; + PARKING_COLLISION_WARNING = 5; + REAR_CROSS_TRAFFIC_WARNING = 6; + AUTOMATIC_EMERGENCY_BRAKING = 7; + AUTOMATIC_EMERGENCY_STEERING = 8; + REVERSE_AUTOMATIC_EMERGENCY_BRAKING = 9; + ADAPTIVE_CRUISE_CONTROL = 10; + LANE_KEEPING_ASSIST = 11; + ACTIVE_DRIVING_ASSISTANCE = 12; + BACKUP_CAMERA = 13; + SURROUND_VIEW_CAMERA = 14; + ACTIVE_PARKING_ASSISTANCE = 15; + REMOTE_PARKING_ASSISTANCE = 16; + TRAILER_ASSISTANCE = 17; + AUTOMATIC_HIGH_BEAMS = 18; + DRIVER_MONITORING = 19; + HEAD_UP_DISPLAY = 20; + NIGHT_VISION = 21; + } - // Whether this particular feature is enabled or not. + // The activation state of a feature. + // + // \note Not all of these will be applicable for all vehicles + // and features. + // + enum ActivationState + { + // Used for custom states not covered by the definitions below. // - // For example, the Forward Collision Warning feature may - // be enabled, even if it isn't active, because there are no - // vehicles in front. + // A string state can be specified in custom_activation_state. // - optional bool enabled = 2; + CUSTOM_STATE = 1; - // 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. + // The feature has been disabled. // - optional ActivationState activation_state = 3; + TURNED_OFF = 2; - // Custom detail. - // - // An opaque field to distinguish user-specific details, such as - // whether the notification was raised via an audio warning, or - // the dashboard. + // The feature has errored in some way that renders it ineffective. // - optional string custom_detail = 4; + ERRORED = 3; - // ADAS feature that is raising the notification. + // The feature is enabled but conditions have not caused it to be + // triggered, for example, no vehicles in front to trigger a FCW. // - // \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 ADASFeature - { - BLIND_SPOT_WARNING = 1; - FORWARD_COLLISION_WARNING = 2; - LANE_DEPARTURE_WARNING = 3; - PARKING_COLLISION_WARNING = 4; - REAR_CROSS_TRAFFIC_WARNING = 5; - AUTOMATIC_EMERGENCY_BRAKING = 6; - AUTOMATIC_EMERGENCY_STEERING = 7; - REVERSE_AUTOMATIC_EMERGENCY_BRAKING = 8; - ADAPTIVE_CRUISE_CONTROL = 9; - LANE_KEEPING_ASSIST = 10; - ACTIVE_DRIVING_ASSISTANCE = 11; - BACKUP_CAMERA = 12; - SURROUND_VIEW_CAMERA = 13; - ACTIVE_PARKING_ASSISTANCE = 14; - REMOTE_PARKING_ASSISTANCE = 15; - TRAILER_ASSISTANCE = 16; - AUTOMATIC_HIGH_BEAMS = 17; - DRIVER_MONITORING = 18; - HEAD_UP_DISPLAY = 19; - NIGHT_VISION = 20; - } - - // The activation state of a feature. + STANDBY = 4; + + // The feature is currently active, for example, a warning is being + // shown to the driver, or emergency braking is being applied/ // - // \note Not all of these will be applicable for all vehicles - // and features. + ACTIVE = 5; + + // The feature would be ACTIVE, but the user has show sufficient + // input to override, for example, by applying throttle or steering + // input. // - enum ActivationState - { - INACTIVE = 1; - ACTIVE = 2; - ACTIVE_DRIVER_OVERRIDE = 3; - } + ACTIVE_DRIVER_OVERRIDE = 6; } + // Custom detail. // - // The driver assist state relating to anything not formally - // recognised. This could be proprietary assistance features - // that are available for a particular vehicle. + // Structure to hold custom key-value pair details. // - message CustomAssistState + message CustomDetail { - // An identifier for the assistance feature. - // - optional string identifier = 1; - - // A string indicating any relevant information about the feature. - optional string state = 2; + optional string key = 1; + optional string value = 2; } } } From 6a08d7bfac08ff37fb96a24610695393aef8d1ce Mon Sep 17 00:00:00 2001 From: Caspar de Haes Date: Fri, 20 Aug 2021 15:14:30 +0100 Subject: [PATCH 3/7] Fix up naming conventions Signed-off-by: Caspar de Haes --- osi_object.proto | 63 ++++++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 29 deletions(-) diff --git a/osi_object.proto b/osi_object.proto index b3f4f122e..e5f31445e 100644 --- a/osi_object.proto +++ b/osi_object.proto @@ -939,7 +939,7 @@ message MovingObject // Custom feature name. // - // Only used if assist_feature is set to CUSTOM_FEATURE. + // Only used if assist_feature is set to ASSIST_FEATURE_OTHER. // optional string custom_name = 2; @@ -953,7 +953,7 @@ message MovingObject // Custom activation state. // - // Only used if the activation_state is set to CUSTOM_STATE. + // Only used if the activation_state is set to ACTIVATION_STATE_OTHER. // optional string custom_activation_state = 4; @@ -975,27 +975,28 @@ message MovingObject // enum AssistFeature { - CUSTOM_FEATURE = 1; - BLIND_SPOT_WARNING = 2; - FORWARD_COLLISION_WARNING = 3; - LANE_DEPARTURE_WARNING = 4; - PARKING_COLLISION_WARNING = 5; - REAR_CROSS_TRAFFIC_WARNING = 6; - AUTOMATIC_EMERGENCY_BRAKING = 7; - AUTOMATIC_EMERGENCY_STEERING = 8; - REVERSE_AUTOMATIC_EMERGENCY_BRAKING = 9; - ADAPTIVE_CRUISE_CONTROL = 10; - LANE_KEEPING_ASSIST = 11; - ACTIVE_DRIVING_ASSISTANCE = 12; - BACKUP_CAMERA = 13; - SURROUND_VIEW_CAMERA = 14; - ACTIVE_PARKING_ASSISTANCE = 15; - REMOTE_PARKING_ASSISTANCE = 16; - TRAILER_ASSISTANCE = 17; - AUTOMATIC_HIGH_BEAMS = 18; - DRIVER_MONITORING = 19; - HEAD_UP_DISPLAY = 20; - NIGHT_VISION = 21; + ASSIST_FEATURE_UNKNOWN = 0; + ASSIST_FEATURE_OTHER = 1; + ASSIST_FEATURE_BLIND_SPOT_WARNING = 2; + ASSIST_FEATURE_FORWARD_COLLISION_WARNING = 3; + ASSIST_FEATURE_LANE_DEPARTURE_WARNING = 4; + ASSIST_FEATURE_PARKING_COLLISION_WARNING = 5; + ASSIST_FEATURE_REAR_CROSS_TRAFFIC_WARNING = 6; + ASSIST_FEATURE_AUTOMATIC_EMERGENCY_BRAKING = 7; + ASSIST_FEATURE_AUTOMATIC_EMERGENCY_STEERING = 8; + ASSIST_FEATURE_REVERSE_AUTOMATIC_EMERGENCY_BRAKING = 9; + ASSIST_FEATURE_ADAPTIVE_CRUISE_CONTROL = 10; + ASSIST_FEATURE_LANE_KEEPING_ASSIST = 11; + ASSIST_FEATURE_ACTIVE_DRIVING_ASSISTANCE = 12; + ASSIST_FEATURE_BACKUP_CAMERA = 13; + ASSIST_FEATURE_SURROUND_VIEW_CAMERA = 14; + ASSIST_FEATURE_ACTIVE_PARKING_ASSISTANCE = 15; + ASSIST_FEATURE_REMOTE_PARKING_ASSISTANCE = 16; + ASSIST_FEATURE_TRAILER_ASSISTANCE = 17; + ASSIST_FEATURE_AUTOMATIC_HIGH_BEAMS = 18; + ASSIST_FEATURE_DRIVER_MONITORING = 19; + ASSIST_FEATURE_HEAD_UP_DISPLAY = 20; + ASSIST_FEATURE_NIGHT_VISION = 21; } // The activation state of a feature. @@ -1005,35 +1006,39 @@ message MovingObject // 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. // - CUSTOM_STATE = 1; + ACTIVATION_STATE_OTHER = 1; // The feature has been disabled. // - TURNED_OFF = 2; + ACTIVATION_STATE_TURNED_OFF = 2; // The feature has errored in some way that renders it ineffective. // - ERRORED = 3; + 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. // - STANDBY = 4; + 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/ // - ACTIVE = 5; + 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. // - ACTIVE_DRIVER_OVERRIDE = 6; + ACTIVATION_STATE_ACTIVE_DRIVER_OVERRIDE = 6; } // Custom detail. From 001b9431ee3a0a60a5a1c4aa2b207640ace94b21 Mon Sep 17 00:00:00 2001 From: Caspar de Haes Date: Fri, 20 Aug 2021 15:37:07 +0100 Subject: [PATCH 4/7] Add comments Signed-off-by: Caspar de Haes --- osi_object.proto | 67 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/osi_object.proto b/osi_object.proto index e5f31445e..9a1f6a706 100644 --- a/osi_object.proto +++ b/osi_object.proto @@ -928,7 +928,7 @@ message MovingObject } // - // The driver assist state specifically relating to recognised + // \brief The driver assist state specifically relating to recognised // Advanced Driver Assistance Systems. // message DriverAssistState @@ -975,27 +975,92 @@ message MovingObject // 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; } From 7684d03dc74adaebcda545a491793a227e2431c9 Mon Sep 17 00:00:00 2001 From: Caspar de Haes Date: Fri, 20 Aug 2021 15:53:58 +0100 Subject: [PATCH 5/7] Add missing comments Signed-off-by: Caspar de Haes --- osi_object.proto | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/osi_object.proto b/osi_object.proto index 9a1f6a706..a41bdc919 100644 --- a/osi_object.proto +++ b/osi_object.proto @@ -1106,13 +1106,20 @@ message MovingObject ACTIVATION_STATE_ACTIVE_DRIVER_OVERRIDE = 6; } - // Custom detail. // - // Structure to hold custom key-value pair details. + // \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; } } From cea90a13c81a675bf5fad51fe1a00b59fe90d4dc Mon Sep 17 00:00:00 2001 From: Caspar de Haes Date: Wed, 13 Oct 2021 15:16:04 +0100 Subject: [PATCH 6/7] Don't include driver assist in ground truth As the data isn't externally perceivable. Instead, include it as a new top level message. Signed-off-by: Caspar de Haes --- CMakeLists.txt | 1 + osi_hostvehicledata.proto | 5 + osi_internalvehiclestate.proto | 245 +++++++++++++++++++++++++++++++++ osi_object.proto | 206 --------------------------- osi_trafficupdate.proto | 11 ++ 5 files changed, 262 insertions(+), 206 deletions(-) create mode 100644 osi_internalvehiclestate.proto diff --git a/CMakeLists.txt b/CMakeLists.txt index 58c125328..94177730d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -67,6 +67,7 @@ set(OSI_PROTO_FILES osi_environment.proto osi_groundtruth.proto osi_hostvehicledata.proto + osi_internalvehiclestate.proto osi_trafficsign.proto osi_trafficlight.proto osi_trafficupdate.proto diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 711f7fcc6..47b85e32c 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -3,6 +3,7 @@ syntax = "proto2"; option optimize_for = SPEED; import "osi_common.proto"; +import "osi_internalvehiclestate.proto"; package osi3; @@ -29,4 +30,8 @@ message HostVehicleData // \note Note that dimension and base_polygon need not be set. // optional BaseMoving location_rmse = 2; + + // Internal state of the vehicle that isn't externally perceivable. + // + optional InternalVehicleState internal_state = 3; } diff --git a/osi_internalvehiclestate.proto b/osi_internalvehiclestate.proto new file mode 100644 index 000000000..064041790 --- /dev/null +++ b/osi_internalvehiclestate.proto @@ -0,0 +1,245 @@ +syntax = "proto2"; + +option optimize_for = SPEED; + +import "osi_version.proto"; +import "osi_common.proto"; + +package osi3; + +// +// \brief Vehicle state which cannot be directly perceived from outside the +// vehicle. +// +message InternalVehicleState +{ + // The interface version used by the sender (scenario engine). + // + optional InterfaceVersion version = 1; + + // The data timestamp of the simulation environment. Zero time is arbitrary + // but must be identical for all messages. Zero time does not need to + // coincide with the UNIX epoch. It is recommended to use zero timestamp as + // the starting time point of the simulation. + // + // \note For traffic command data the timestamp coincides both with + // the notional simulation time the data applies to and the time it was sent + // There is no inherent latency for traffic command data, as opposed + // to sensor data. + // + optional Timestamp timestamp = 2; + + // The ID of the object. + // + // \rules + // is_globally_unique + // \endrules + // + optional Identifier id = 3; + + // 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 = 4; + + // + // \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_object.proto b/osi_object.proto index a41bdc919..af2d9a232 100644 --- a/osi_object.proto +++ b/osi_object.proto @@ -696,15 +696,6 @@ message MovingObject // optional Identifier trailer_id = 4; - // 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 = 5; - // Definition of vehicle types. // enum Type @@ -926,202 +917,5 @@ message MovingObject BRAKE_LIGHT_STATE_STRONG = 4; } } - - // - // \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..0226895d3 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_internalvehiclestate.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 InternalVehicleState internal_state = 4; } From 8b1ceb0df17507f61df9134eb3530f6fbdaeab6d Mon Sep 17 00:00:00 2001 From: Caspar de Haes Date: Wed, 13 Oct 2021 15:36:25 +0100 Subject: [PATCH 7/7] Add new file to setup.py Signed-off-by: Caspar de Haes --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 70423591e..357e60e32 100644 --- a/setup.py +++ b/setup.py @@ -57,6 +57,7 @@ def find_protoc(): 'osi_environment.proto', 'osi_groundtruth.proto', 'osi_hostvehicledata.proto', + 'osi_internalvehiclestate.proto', 'osi_trafficsign.proto', 'osi_trafficlight.proto', 'osi_trafficupdate.proto',