Skip to content

Commit aeba490

Browse files
committed
Add driver assist to host vehicle data
Signed-off-by: Caspar de Haes <caspar.dehaes@five.ai>
1 parent 412521e commit aeba490

File tree

2 files changed

+217
-0
lines changed

2 files changed

+217
-0
lines changed

osi_hostvehicledata.proto

Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,15 @@ message HostVehicleData
7575
//
7676
optional VehicleLocalization vehicle_localization = 8;
7777

78+
// What driver assistance is active.
79+
//
80+
// This can include:
81+
// - information presented to the driver, for example, parking sensors
82+
// - warnings raised by the vehicle, for example, forward collision warning
83+
// - corrective action taken by the vehicle, for example, auto emergency braking
84+
//
85+
repeated DriverAssistState driver_assist_state = 12;
86+
7887
//
7988
// \brief The absolute base parameters of the vehicle.
8089
//
@@ -275,4 +284,201 @@ message HostVehicleData
275284
//
276285
optional GeodeticPosition geodetic_position = 3;
277286
}
287+
288+
//
289+
// \brief The driver assist state specifically relating to recognised
290+
// Advanced Driver Assistance Systems.
291+
//
292+
message DriverAssistState
293+
{
294+
// The particular feature being reported about.
295+
//
296+
optional AssistFeature assist_feature = 1;
297+
298+
// Custom feature name.
299+
//
300+
// Only used if assist_feature is set to ASSIST_FEATURE_OTHER.
301+
//
302+
optional string custom_name = 2;
303+
304+
// The activation state of the feature.
305+
//
306+
// This is whether the feature has actually been triggered, for
307+
// example, a warning has been raised, or additional braking is
308+
// in effect.
309+
//
310+
optional ActivationState activation_state = 3;
311+
312+
// Custom activation state.
313+
//
314+
// Only used if the activation_state is set to ACTIVATION_STATE_OTHER.
315+
//
316+
optional string custom_activation_state = 4;
317+
318+
// Custom detail.
319+
//
320+
// An opaque set of key-value pairs which capture any user specific
321+
// details that may be relevant. This could include details about
322+
// how a warning was raised (dashboard, audible, etc.) or it could
323+
// be about settings which would influence evaluation, such as
324+
// sensitivity settings.
325+
//
326+
repeated CustomDetail custom_detail = 5;
327+
328+
// ADAS feature that is raising the notification.
329+
//
330+
// \note The naming convention is taken from the SAE guidance on ADAS
331+
// nomenclature:
332+
// https://www.sae.org/binaries/content/assets/cm/content/miscellaneous/adas-nomenclature.pdf
333+
//
334+
enum AssistFeature
335+
{
336+
// Unknown feature, should not be used.
337+
//
338+
ASSIST_FEATURE_UNKNOWN = 0;
339+
340+
// Custom feature, see custom_name.
341+
//
342+
ASSIST_FEATURE_OTHER = 1;
343+
344+
// Blind spot warning.
345+
//
346+
ASSIST_FEATURE_BLIND_SPOT_WARNING = 2;
347+
348+
// Forward collision warning.
349+
//
350+
ASSIST_FEATURE_FORWARD_COLLISION_WARNING = 3;
351+
352+
// Lane departure warning.
353+
//
354+
ASSIST_FEATURE_LANE_DEPARTURE_WARNING = 4;
355+
356+
// Parking collision warning.
357+
//
358+
ASSIST_FEATURE_PARKING_COLLISION_WARNING = 5;
359+
360+
// Rear cross-traffic warning
361+
//
362+
ASSIST_FEATURE_REAR_CROSS_TRAFFIC_WARNING = 6;
363+
364+
// Automatic emergency braking
365+
//
366+
ASSIST_FEATURE_AUTOMATIC_EMERGENCY_BRAKING = 7;
367+
368+
// Emergency steering
369+
//
370+
ASSIST_FEATURE_AUTOMATIC_EMERGENCY_STEERING = 8;
371+
372+
// Reverse automatic emergency braking
373+
//
374+
ASSIST_FEATURE_REVERSE_AUTOMATIC_EMERGENCY_BRAKING = 9;
375+
376+
// Adaptive cruise control
377+
//
378+
ASSIST_FEATURE_ADAPTIVE_CRUISE_CONTROL = 10;
379+
380+
// Lane keeping assist
381+
//
382+
ASSIST_FEATURE_LANE_KEEPING_ASSIST = 11;
383+
384+
// Active driving assistance
385+
//
386+
ASSIST_FEATURE_ACTIVE_DRIVING_ASSISTANCE = 12;
387+
388+
// Backup camera
389+
//
390+
ASSIST_FEATURE_BACKUP_CAMERA = 13;
391+
392+
// Surround view camera
393+
//
394+
ASSIST_FEATURE_SURROUND_VIEW_CAMERA = 14;
395+
396+
// Active parking assistance
397+
//
398+
ASSIST_FEATURE_ACTIVE_PARKING_ASSISTANCE = 15;
399+
400+
// Remote parking assistance
401+
//
402+
ASSIST_FEATURE_REMOTE_PARKING_ASSISTANCE = 16;
403+
404+
// Trailer assistance
405+
//
406+
ASSIST_FEATURE_TRAILER_ASSISTANCE = 17;
407+
408+
// Automatic high beams
409+
//
410+
ASSIST_FEATURE_AUTOMATIC_HIGH_BEAMS = 18;
411+
412+
// Driver monitoring
413+
//
414+
ASSIST_FEATURE_DRIVER_MONITORING = 19;
415+
416+
// Head up display
417+
//
418+
ASSIST_FEATURE_HEAD_UP_DISPLAY = 20;
419+
420+
// Night vision
421+
//
422+
ASSIST_FEATURE_NIGHT_VISION = 21;
423+
}
424+
425+
// The activation state of a feature.
426+
//
427+
// \note Not all of these will be applicable for all vehicles
428+
// and features.
429+
//
430+
enum ActivationState
431+
{
432+
// An unknown activation state, this should not be used.
433+
//
434+
ACTIVATION_STATE_UNKNOWN = 0;
435+
436+
// Used for custom states not covered by the definitions below.
437+
//
438+
// A string state can be specified in custom_activation_state.
439+
//
440+
ACTIVATION_STATE_OTHER = 1;
441+
442+
// The feature has been disabled.
443+
//
444+
ACTIVATION_STATE_TURNED_OFF = 2;
445+
446+
// The feature has errored in some way that renders it ineffective.
447+
//
448+
ACTIVATION_STATE_ERRORED = 3;
449+
450+
// The feature is enabled but conditions have not caused it to be
451+
// triggered, for example, no vehicles in front to trigger a FCW.
452+
//
453+
ACTIVATION_STATE_STANDBY = 4;
454+
455+
// The feature is currently active, for example, a warning is being
456+
// shown to the driver, or emergency braking is being applied/
457+
//
458+
ACTIVATION_STATE_ACTIVE = 5;
459+
460+
// The feature would be ACTIVE, but the user has show sufficient
461+
// input to override, for example, by applying throttle or steering
462+
// input.
463+
//
464+
ACTIVATION_STATE_ACTIVE_DRIVER_OVERRIDE = 6;
465+
}
466+
467+
//
468+
// \brief Custom detail message
469+
//
470+
// To contain driver-assist related information that is too function
471+
// specific to be captured in a generic way.
472+
//
473+
message CustomDetail
474+
{
475+
// A generic string key to identify the information.
476+
//
477+
optional string key = 1;
478+
479+
// A generic string value to capture the information.
480+
//
481+
optional string value = 2;
482+
}
483+
}
278484
}

osi_trafficupdate.proto

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ option optimize_for = SPEED;
55
import "osi_version.proto";
66
import "osi_common.proto";
77
import "osi_object.proto";
8+
import "osi_hostvehicledata.proto";
89

910
package osi3;
1011

@@ -52,4 +53,14 @@ message TrafficUpdate
5253
// MovingObject::VehicleClassification::trailer_id.
5354
//
5455
repeated MovingObject update = 3;
56+
57+
// Internal state for each vehicle.
58+
//
59+
// \note This covers any information which cannot be externally perceived
60+
// and therefore cannot be included in messages available in ground truth.
61+
//
62+
// \note The id field from this should match the id in the update field
63+
// above where the same vehicle is being referenced.
64+
//
65+
repeated HostVehicleData internal_state = 4;
5566
}

0 commit comments

Comments
 (0)