Skip to content

Commit c684256

Browse files
authored
Merge branch 'master' into logical-lanes
2 parents 4d307ff + 1ad30d5 commit c684256

File tree

4 files changed

+291
-6
lines changed

4 files changed

+291
-6
lines changed

osi_common.proto

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -934,3 +934,20 @@ message GeodeticPosition
934934
//
935935
optional double altitude = 3;
936936
}
937+
938+
//
939+
// \brief Generic key-value pair structure
940+
//
941+
// A generic key-value pair structure which can be used to capture information
942+
// which is opaque to the general OSI interface.
943+
//
944+
message KeyValuePair
945+
{
946+
// A generic string key.
947+
//
948+
optional string key = 1;
949+
950+
// A generic string value.
951+
//
952+
optional string value = 2;
953+
}

osi_hostvehicledata.proto

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

78+
// State of any automated driving functions.
7879
//
79-
// \brief The absolute base parameters of the vehicle.
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+
// - full level 4 self driving systems
85+
//
86+
// \note OSI uses singular instead of plural for repeated field names.
87+
//
88+
repeated VehicleAutomatedDrivingFunction vehicle_automated_driving_function = 12;
89+
90+
//
91+
// \brief The absolute base parameters of the vehicle.
8092
//
8193
message VehicleBasics
8294
{
@@ -170,7 +182,7 @@ message HostVehicleData
170182
}
171183

172184
//
173-
// \brief The focus here is on the description of the brake system.
185+
// \brief The focus here is on the description of the brake system.
174186
//
175187
message VehicleBrakeSystem
176188
{
@@ -181,7 +193,7 @@ message HostVehicleData
181193
}
182194

183195
//
184-
// \brief The focus here is on the description of the steering train.
196+
// \brief The focus here is on the description of the steering train.
185197
//
186198
message VehicleSteering
187199
{
@@ -223,7 +235,7 @@ message HostVehicleData
223235

224236
// Rotation rate of the wheel based on the processed output of the hall sensor measurements at the wheel.
225237
// The rotation rate around the y-axis with respect to the wheel's coordinate system.
226-
//
238+
//
227239
// Unit: rad/s.
228240
//
229241
// The sign convention is defined using the right-hand rule.
@@ -237,7 +249,7 @@ message HostVehicleData
237249

238250
// Contains the longitudinal, measured slip of the tire.
239251
// \par References:
240-
// - https://www.kfz-tech.de/Biblio/Formelsammlung/Schlupf.htm
252+
// [1] kfz-tech.de, Schlupf, Retrieved June 30, 2021, from https://www.kfz-tech.de/Biblio/Formelsammlung/Schlupf.htm
241253
//
242254
// Unit: %
243255
//
@@ -270,9 +282,242 @@ message HostVehicleData
270282
// in context to the global coordinate system.
271283
//
272284
optional Orientation3d orientation = 2;
273-
285+
274286
// Most accurate geodetic information of the vehicle available in the on-board network.
275287
//
276288
optional GeodeticPosition geodetic_position = 3;
277289
}
290+
291+
//
292+
// \brief State of one automated driving function on the host vehicle.
293+
//
294+
message VehicleAutomatedDrivingFunction
295+
{
296+
// The particular driving function being reported about.
297+
//
298+
optional Name name = 1;
299+
300+
// Custom driving function name.
301+
//
302+
// Only used if name is set to NAME_OTHER.
303+
//
304+
optional string custom_name = 2;
305+
306+
// The state of the function.
307+
//
308+
// This is whether the function has actually been triggered, for
309+
// example, a warning has been raised, or additional braking is
310+
// in effect.
311+
//
312+
optional State state = 3;
313+
314+
// Custom state.
315+
//
316+
// Only used if the state is set to STATE_OTHER.
317+
//
318+
optional string custom_state = 4;
319+
320+
// Whether, and how, the driver has overridden this function.
321+
//
322+
optional DriverOverride driver_override = 5;
323+
324+
// Custom detail.
325+
//
326+
// An opaque set of key-value pairs which capture any user specific
327+
// details that may be relevant. This could include details about
328+
// how a warning was raised (dashboard, audible, etc.) or it could
329+
// be about settings which would influence evaluation, such as
330+
// sensitivity settings.
331+
//
332+
repeated KeyValuePair custom_detail = 6;
333+
334+
// A list of possible automated driving features.
335+
//
336+
// \note This can span (in theory) from Level 0 all the way to Level 5.
337+
//
338+
// \par References:
339+
// [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
340+
// [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
341+
//
342+
enum Name
343+
{
344+
// Unknown feature, should not be used.
345+
//
346+
NAME_UNKNOWN = 0;
347+
348+
// Custom feature, see custom_name.
349+
//
350+
NAME_OTHER = 1;
351+
352+
// Blind spot warning.
353+
//
354+
NAME_BLIND_SPOT_WARNING = 2;
355+
356+
// Forward collision warning.
357+
//
358+
NAME_FORWARD_COLLISION_WARNING = 3;
359+
360+
// Lane departure warning.
361+
//
362+
NAME_LANE_DEPARTURE_WARNING = 4;
363+
364+
// Parking collision warning.
365+
//
366+
NAME_PARKING_COLLISION_WARNING = 5;
367+
368+
// Rear cross-traffic warning
369+
//
370+
NAME_REAR_CROSS_TRAFFIC_WARNING = 6;
371+
372+
// Automatic emergency braking
373+
//
374+
NAME_AUTOMATIC_EMERGENCY_BRAKING = 7;
375+
376+
// Emergency steering
377+
//
378+
NAME_AUTOMATIC_EMERGENCY_STEERING = 8;
379+
380+
// Reverse automatic emergency braking
381+
//
382+
NAME_REVERSE_AUTOMATIC_EMERGENCY_BRAKING = 9;
383+
384+
// Adaptive cruise control
385+
//
386+
NAME_ADAPTIVE_CRUISE_CONTROL = 10;
387+
388+
// Lane keeping assist
389+
//
390+
NAME_LANE_KEEPING_ASSIST = 11;
391+
392+
// Active driving assistance
393+
//
394+
NAME_ACTIVE_DRIVING_ASSISTANCE = 12;
395+
396+
// Backup camera
397+
//
398+
NAME_BACKUP_CAMERA = 13;
399+
400+
// Surround view camera
401+
//
402+
NAME_SURROUND_VIEW_CAMERA = 14;
403+
404+
// Active parking assistance
405+
//
406+
NAME_ACTIVE_PARKING_ASSISTANCE = 15;
407+
408+
// Remote parking assistance
409+
//
410+
NAME_REMOTE_PARKING_ASSISTANCE = 16;
411+
412+
// Trailer assistance
413+
//
414+
NAME_TRAILER_ASSISTANCE = 17;
415+
416+
// Automatic high beams
417+
//
418+
NAME_AUTOMATIC_HIGH_BEAMS = 18;
419+
420+
// Driver monitoring
421+
//
422+
NAME_DRIVER_MONITORING = 19;
423+
424+
// Head up display
425+
//
426+
NAME_HEAD_UP_DISPLAY = 20;
427+
428+
// Night vision
429+
//
430+
NAME_NIGHT_VISION = 21;
431+
432+
// Urban driving
433+
//
434+
NAME_URBAN_DRIVING = 22;
435+
436+
// Highway autopilot.
437+
//
438+
NAME_HIGHWAY_AUTOPILOT = 23;
439+
440+
// Cruise control.
441+
//
442+
NAME_CRUISE_CONTROL = 24;
443+
444+
// Speed limit control
445+
//
446+
NAME_SPEED_LIMIT_CONTROL = 25;
447+
}
448+
449+
// The state that the feature is in.
450+
//
451+
// \note Not all of these will be applicable for all vehicles
452+
// and features.
453+
//
454+
enum State
455+
{
456+
// An unknown state, this should not be used.
457+
//
458+
STATE_UNKNOWN = 0;
459+
460+
// Used for custom states not covered by the definitions below.
461+
//
462+
// A string state can be specified in custom_state.
463+
//
464+
STATE_OTHER = 1;
465+
466+
// The function has errored in some way that renders it ineffective.
467+
//
468+
STATE_ERRORED = 2;
469+
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.
473+
//
474+
STATE_UNAVAILABLE = 3;
475+
476+
// The function can be used as all preconditions are satisfied, but
477+
// it hasn't been enabled.
478+
//
479+
STATE_AVAILABLE = 4;
480+
481+
// The function is available but conditions have not caused it to be
482+
// triggered, for example, no vehicles in front to trigger a FCW.
483+
//
484+
STATE_STANDBY = 5;
485+
486+
// The function is currently active, for example, a warning is being
487+
// shown to the driver, or emergency braking is being applied/
488+
//
489+
STATE_ACTIVE = 6;
490+
}
491+
492+
//
493+
// \brief Driver override information
494+
//
495+
// Information about whether and how and driver may have overridden
496+
// an automated driving function.
497+
//
498+
message DriverOverride
499+
{
500+
// The feature has been overridden by a driver action.
501+
//
502+
// \note If false, the rest of this message should be ignored.
503+
optional bool active = 1;
504+
505+
// What driver inputs have caused the override.
506+
//
507+
repeated Reason override_reason = 2;
508+
509+
// Ways in which a driver could override a driving function.
510+
//
511+
enum Reason
512+
{
513+
// The driver has applied sufficient input via the break pedal.
514+
//
515+
REASON_BRAKE_PEDAL = 0;
516+
517+
// The driver has applied sufficient steering input.
518+
//
519+
REASON_STEERING_INPUT = 1;
520+
}
521+
}
522+
}
278523
}

osi_lane.proto

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -854,6 +854,13 @@ message LaneBoundary
854854
// The current \c BoundaryPoint indicates the end of a dash.
855855
//
856856
DASH_END = 4;
857+
858+
// The current \c BoundaryPoint is located in the gap between
859+
// two dashes. When used to describe a first/last point of a lane
860+
// boundary, it indicates that the lane boundary starts/ends in
861+
// a gap.
862+
//
863+
DASH_GAP = 5;
857864
}
858865
}
859866

osi_trafficupdate.proto

Lines changed: 16 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,19 @@ message TrafficUpdate
5253
// MovingObject::VehicleClassification::trailer_id.
5354
//
5455
repeated MovingObject update = 3;
56+
57+
// Internal state for each vehicle.
58+
//
59+
// This is an optional field as internal state may not be known or relevant,
60+
// for example, a trailer might not have any internal state.
61+
// It is also allowed to only specify internal_state for a subset of the
62+
// objects referenced in the update.
63+
//
64+
// \note This covers any information which cannot be externally perceived
65+
// and therefore cannot be included in messages available in ground truth.
66+
//
67+
// \note The id field from this should match the id in the update field
68+
// above where the same vehicle is being referenced.
69+
//
70+
repeated HostVehicleData internal_state = 4;
5571
}

0 commit comments

Comments
 (0)