Skip to content

Commit afc494c

Browse files
committed
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 <caspar.dehaes@five.ai>
1 parent f7a5421 commit afc494c

File tree

1 file changed

+85
-56
lines changed

1 file changed

+85
-56
lines changed

osi_hostvehicledata.proto

Lines changed: 85 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -293,29 +293,33 @@ message HostVehicleData
293293
//
294294
message VehicleAutomatedDrivingFunction
295295
{
296-
// The particular function being reported about.
296+
// The particular driving function being reported about.
297297
//
298-
optional FunctionName function_name = 1;
298+
optional Name name = 1;
299299

300-
// Custom function name.
300+
// Custom driving function name.
301301
//
302-
// Only used if function_name is set to FUNCTION_NAME_OTHER.
302+
// Only used if name is set to NAME_OTHER.
303303
//
304304
optional string custom_name = 2;
305305

306-
// The activation state of the function.
306+
// The state of the function.
307307
//
308308
// This is whether the function has actually been triggered, for
309309
// example, a warning has been raised, or additional braking is
310310
// in effect.
311311
//
312-
optional ActivationState activation_state = 3;
312+
optional State state = 3;
313313

314-
// Custom activation state.
314+
// Custom state.
315315
//
316-
// Only used if the activation_state is set to ACTIVATION_STATE_OTHER.
316+
// Only used if the state is set to STATE_OTHER.
317317
//
318-
optional string custom_activation_state = 4;
318+
optional string custom_state = 4;
319+
320+
// Whether, and how, the driver has overridden this function.
321+
//
322+
optional DriverOverride driver_override = 5;
319323

320324
// Custom detail.
321325
//
@@ -325,7 +329,7 @@ message HostVehicleData
325329
// be about settings which would influence evaluation, such as
326330
// sensitivity settings.
327331
//
328-
repeated KeyValuePair custom_detail = 5;
332+
repeated KeyValuePair custom_detail = 6;
329333

330334
// A list of possible automated driving features.
331335
//
@@ -335,157 +339,182 @@ message HostVehicleData
335339
// - https://www.sae.org/binaries/content/assets/cm/content/miscellaneous/adas-nomenclature.pdf
336340
// - https://www.vda.de/en/topics/innovation-and-technology/automated-driving/automated-driving
337341
//
338-
enum FunctionName
342+
enum Name
339343
{
340344
// Unknown feature, should not be used.
341345
//
342-
FUNCTION_NAME_UNKNOWN = 0;
346+
NAME_UNKNOWN = 0;
343347

344348
// Custom feature, see custom_name.
345349
//
346-
FUNCTION_NAME_OTHER = 1;
350+
NAME_OTHER = 1;
347351

348352
// Blind spot warning.
349353
//
350-
FUNCTION_NAME_BLIND_SPOT_WARNING = 2;
354+
NAME_BLIND_SPOT_WARNING = 2;
351355

352356
// Forward collision warning.
353357
//
354-
FUNCTION_NAME_FORWARD_COLLISION_WARNING = 3;
358+
NAME_FORWARD_COLLISION_WARNING = 3;
355359

356360
// Lane departure warning.
357361
//
358-
FUNCTION_NAME_LANE_DEPARTURE_WARNING = 4;
362+
NAME_LANE_DEPARTURE_WARNING = 4;
359363

360364
// Parking collision warning.
361365
//
362-
FUNCTION_NAME_PARKING_COLLISION_WARNING = 5;
366+
NAME_PARKING_COLLISION_WARNING = 5;
363367

364368
// Rear cross-traffic warning
365369
//
366-
FUNCTION_NAME_REAR_CROSS_TRAFFIC_WARNING = 6;
370+
NAME_REAR_CROSS_TRAFFIC_WARNING = 6;
367371

368372
// Automatic emergency braking
369373
//
370-
FUNCTION_NAME_AUTOMATIC_EMERGENCY_BRAKING = 7;
374+
NAME_AUTOMATIC_EMERGENCY_BRAKING = 7;
371375

372376
// Emergency steering
373377
//
374-
FUNCTION_NAME_AUTOMATIC_EMERGENCY_STEERING = 8;
378+
NAME_AUTOMATIC_EMERGENCY_STEERING = 8;
375379

376380
// Reverse automatic emergency braking
377381
//
378-
FUNCTION_NAME_REVERSE_AUTOMATIC_EMERGENCY_BRAKING = 9;
382+
NAME_REVERSE_AUTOMATIC_EMERGENCY_BRAKING = 9;
379383

380384
// Adaptive cruise control
381385
//
382-
FUNCTION_NAME_ADAPTIVE_CRUISE_CONTROL = 10;
386+
NAME_ADAPTIVE_CRUISE_CONTROL = 10;
383387

384388
// Lane keeping assist
385389
//
386-
FUNCTION_NAME_LANE_KEEPING_ASSIST = 11;
390+
NAME_LANE_KEEPING_ASSIST = 11;
387391

388392
// Active driving assistance
389393
//
390-
FUNCTION_NAME_ACTIVE_DRIVING_ASSISTANCE = 12;
394+
NAME_ACTIVE_DRIVING_ASSISTANCE = 12;
391395

392396
// Backup camera
393397
//
394-
FUNCTION_NAME_BACKUP_CAMERA = 13;
398+
NAME_BACKUP_CAMERA = 13;
395399

396400
// Surround view camera
397401
//
398-
FUNCTION_NAME_SURROUND_VIEW_CAMERA = 14;
402+
NAME_SURROUND_VIEW_CAMERA = 14;
399403

400404
// Active parking assistance
401405
//
402-
FUNCTION_NAME_ACTIVE_PARKING_ASSISTANCE = 15;
406+
NAME_ACTIVE_PARKING_ASSISTANCE = 15;
403407

404408
// Remote parking assistance
405409
//
406-
FUNCTION_NAME_REMOTE_PARKING_ASSISTANCE = 16;
410+
NAME_REMOTE_PARKING_ASSISTANCE = 16;
407411

408412
// Trailer assistance
409413
//
410-
FUNCTION_NAME_TRAILER_ASSISTANCE = 17;
414+
NAME_TRAILER_ASSISTANCE = 17;
411415

412416
// Automatic high beams
413417
//
414-
FUNCTION_NAME_AUTOMATIC_HIGH_BEAMS = 18;
418+
NAME_AUTOMATIC_HIGH_BEAMS = 18;
415419

416420
// Driver monitoring
417421
//
418-
FUNCTION_NAME_DRIVER_MONITORING = 19;
422+
NAME_DRIVER_MONITORING = 19;
419423

420424
// Head up display
421425
//
422-
FUNCTION_NAME_HEAD_UP_DISPLAY = 20;
426+
NAME_HEAD_UP_DISPLAY = 20;
423427

424428
// Night vision
425429
//
426-
FUNCTION_NAME_NIGHT_VISION = 21;
430+
NAME_NIGHT_VISION = 21;
427431

428432
// Urban driving
429433
//
430-
FUNCTION_NAME_URBAN_DRIVING = 22;
434+
NAME_URBAN_DRIVING = 22;
431435

432436
// Highway autopilot.
433437
//
434-
FUNCTION_NAME_HIGHWAY_AUTOPILOT = 23;
438+
NAME_HIGHWAY_AUTOPILOT = 23;
435439

436440
// Cruise control.
437441
//
438-
FUNCTION_NAME_CRUISE_CONTROL = 24;
442+
NAME_CRUISE_CONTROL = 24;
439443

440444
// Speed limit control
441445
//
442-
FUNCTION_NAME_SPEED_LIMIT_CONTROL = 25;
446+
NAME_SPEED_LIMIT_CONTROL = 25;
443447
}
444448

445-
// The activation state of a feature.
449+
// The state that the feature is in.
446450
//
447451
// \note Not all of these will be applicable for all vehicles
448452
// and features.
449453
//
450-
enum ActivationState
454+
enum State
451455
{
452-
// An unknown activation state, this should not be used.
456+
// An unknown state, this should not be used.
453457
//
454-
ACTIVATION_STATE_UNKNOWN = 0;
458+
STATE_UNKNOWN = 0;
455459

456460
// Used for custom states not covered by the definitions below.
457461
//
458-
// A string state can be specified in custom_activation_state.
462+
// A string state can be specified in custom_state.
459463
//
460-
ACTIVATION_STATE_OTHER = 1;
464+
STATE_OTHER = 1;
461465

462-
// The function has been disabled.
466+
// The function has errored in some way that renders it ineffective.
463467
//
464-
ACTIVATION_STATE_TURNED_OFF = 2;
468+
STATE_ERRORED = 2;
465469

466-
// The function has errored in some way that renders it ineffective.
470+
// The function cannot be used due to unfulfilled preconditions,
471+
// for example it is a highway only feature and the vehicle is in
472+
// an urban environment.
467473
//
468-
ACTIVATION_STATE_ERRORED = 3;
474+
STATE_UNAVAILABLE = 3;
469475

470-
// The function is initialized but not ready to start.
476+
// The function can be used as all preconditions are satisfied, but
477+
// it hasn't been enabled.
471478
//
472-
ACTIVATION_STATE_UNAVAILABLE = 4;
479+
STATE_AVAILABLE = 4;
473480

474-
// The function is enabled but conditions have not caused it to be
481+
// The function is available but conditions have not caused it to be
475482
// triggered, for example, no vehicles in front to trigger a FCW.
476483
//
477-
ACTIVATION_STATE_STANDBY = 5;
484+
STATE_STANDBY = 5;
478485

479486
// The function is currently active, for example, a warning is being
480487
// shown to the driver, or emergency braking is being applied/
481488
//
482-
ACTIVATION_STATE_ACTIVE = 6;
489+
STATE_ACTIVE = 6;
490+
}
491+
492+
// Information about whether and how and driver may have overridden
493+
// an automated driving function.
494+
//
495+
message DriverOverride
496+
{
497+
// The feature has been overridden by a driver action.
498+
//
499+
// \note If false, the rest of this message should be ignored.
500+
optional bool active = 1;
501+
502+
// What driver inputs have caused the override.
503+
//
504+
repeated Reason override_reason = 2;
483505

484-
// The function would be ACTIVE, but the user has show sufficient
485-
// input to override, for example, by applying throttle or steering
486-
// input.
506+
// Ways in which a driver could override a driving function.
487507
//
488-
ACTIVATION_STATE_ACTIVE_DRIVER_OVERRIDE = 7;
508+
enum Reason
509+
{
510+
// The driver has applied sufficient input via the break pedal.
511+
//
512+
REASON_BRAKE_PEDAL = 0;
513+
514+
// The driver has applied sufficient steering input.
515+
//
516+
REASON_STEERING_INPUT = 1;
517+
}
489518
}
490519
}
491520
}

0 commit comments

Comments
 (0)