-
Notifications
You must be signed in to change notification settings - Fork 1
/
osi_occupant.proto
147 lines (120 loc) · 4.12 KB
/
osi_occupant.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
syntax = "proto2";
option optimize_for = SPEED;
import "osi_common.proto";
package osi3;
//
// \brief An occupant of a host vehicle, especially the driver of the vehicle.
//
message Occupant
{
// The ID of the driver.
//
// \rules
// is_globally_unique
// \endrules
//
optional Identifier id = 1;
// Specific information about the classification of the occupant.
//
optional Classification classification = 2;
// External reference to the occupant source.
//
// \note For OpenDRIVE and OpenSCENARIO there is no direct counterpart.
//
// \note For non-ASAM Standards, it is implementation-specific how
// source_reference is resolved.
//
// \note The value has to be repeated because one object may be derived
// from more than one origin source, for example, from a scenario file
// and from sensors.
//
repeated ExternalReference source_reference = 3;
//
// \brief Information regarding the classification of the occupant.
//
message Classification
{
// Flag determining whether the person is the driver of the vehicle or a
// passenger.
//
optional bool is_driver = 2;
// Seat position of the vehicle occupant.
//
optional Seat seat = 3;
// Describes the state of the passenger's hands related to the steering
// wheel (mostly driver).
//
optional SteeringControl steering_control = 4;
// Definition of seat positions.
//
enum Seat
{
// Seat position is unknown (must not be used in ground truth).
//
SEAT_UNKNOWN = 0;
// Other (unspecified but known) seat.
//
SEAT_OTHER = 1;
// Seat position is in the front row, left seat.
// This is usually the driver's seat in right-hand traffic.
//
SEAT_FRONT_LEFT = 2;
// Seat position is in the front row, right seat.
// This is usually the driver's seat in left-hand traffic.
//
SEAT_FRONT_RIGHT = 3;
// Seat position is in the front row, middle seat.
//
SEAT_FRONT_MIDDLE = 4;
// Seat position is in the back row, left seat.
//
SEAT_BACK_LEFT = 5;
// Seat position is in the back row, right seat.
//
SEAT_BACK_RIGHT = 6;
// Seat position is in the back row, middle seat.
//
SEAT_BACK_MIDDLE = 7;
// Seat position is in the third row, left seat.
//
SEAT_THIRD_ROW_LEFT = 8;
// Seat position is in the third row, right seat.
//
SEAT_THIRD_ROW_RIGHT = 9;
// Seat position is in the third row, middle seat.
//
SEAT_THIRD_ROW_MIDDLE = 10;
}
// Definition of hands related to the steering wheel (mostly driver).
//
enum SteeringControl
{
// Hands state is unknown (must not be used in ground truth).
//
STEERING_CONTROL_UNKNOWN = 0;
// Other (unspecified but known) hand positioning related to the
// steering wheel.
//
STEERING_CONTROL_OTHER = 1;
// Hands are not on the steering wheel.
//
STEERING_CONTROL_NO_HAND = 2;
// One hand is on the steering wheel. Whether it is the left or
// right hand is unspecified or unknown.
//
// \note If there is no differentiation between one or both hands on
// the steering wheel, this value should be used.
//
STEERING_CONTROL_ONE_HAND = 3;
// Both hands are on the steering wheel.
//
STEERING_CONTROL_BOTH_HANDS = 4;
// Only left hand is on the steering wheel.
//
STEERING_CONTROL_LEFT_HAND = 5;
// Only right hand is on the steering wheel.
//
STEERING_CONTROL_RIGHT_HAND = 6;
}
}
}