Skip to content

Commit 3f0f4fa

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

File tree

2 files changed

+225
-0
lines changed

2 files changed

+225
-0
lines changed

osi_hostvehicledata.proto

Lines changed: 214 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,14 @@ message HostVehicleData
3232
//
3333
optional Timestamp timestamp = 11;
3434

35+
// The ID of the object.
36+
//
37+
// \rules
38+
// is_globally_unique
39+
// \endrules
40+
//
41+
optional Identifier id = 9;
42+
3543
// Deprecated: Will be removed in next major release. Moved to VehiclePositionAndKinematics.
3644
// Current estimated location based on GPS- and related navigation sensors.
3745
//
@@ -71,6 +79,15 @@ message HostVehicleData
7179
//
7280
optional VehicleLocalization vehicle_localization = 8;
7381

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

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)