forked from ReinhardBiegelIntech/open-simulation-interface
-
Notifications
You must be signed in to change notification settings - Fork 0
/
osi_roadmarking.proto
198 lines (167 loc) · 6.16 KB
/
osi_roadmarking.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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
syntax = "proto2";
option optimize_for = SPEED;
import "osi_common.proto";
import "osi_trafficsign.proto";
package osi3;
//
// \brief A road surface marking.
//
// \image html OSI_RoadMarking.svg
//
// The figure shows two STOP road markings. STOP \c
// RoadMarking::Classification::type == \c
// RoadMarking::Classification::TYPE_TEXTUAL_TRAFFIC_SIGN is marked, STOP \c
// RoadMarking::Classification::type == \c
// RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN is not marked.
//
// All coordinates and orientations are relative to the global ground truth
// coordinate system.
//
// Lane markings are excluded and defined as \c LaneBoundary messages
// as part of \c Lane.
//
message RoadMarking
{
// The ID of the road marking.
//
optional Identifier id = 1;
// The base parameters of the road marking.
//
// The orientation of the bounding box \c #base
// \c BaseStationary::orientation is defined as follows:
// The z-axis of the \c BaseStationary::orientation is the vector from the
// 'bottom' to the 'top' of the road marking's (i.e. painted traffic sign)
// 2D image area.
// (Normally it is in the ground truth xy-plain.)
// The x-axis of the \c BaseStationary::orientation is the view normal of
// the road marking's 2D image area.
// Normally this x-axis points to the sky.
//
// \note If a valid unidirectional road marking is assigned to the host
// vehicle's current lane and the driving direction of the latter roughly
// matches the z-axis of the \c #base \c BaseStationary::orientation then
// the road marking is of relevance to (i.e. in effect for) the host
// vehicle.
//
optional BaseStationary base = 2;
// The classification data for the road marking.
//
optional Classification classification = 3;
//
// \brief \c Classification data for a road surface marking.
//
message Classification
{
// The type of the road marking.
//
optional Type type = 1;
// Traffic sign as road marking (color image, monochrome image or
// character string).
//
// \note Field is set if ( \c #type == \c #TYPE_PAINTED_TRAFFIC_SIGN or
// \c #TYPE_SYMBOLIC_TRAFFIC_SIGN or \c #TYPE_TEXTUAL_TRAFFIC_SIGN ).
//
// \note Field need not be set (or set to \c #TYPE_OTHER)
// if road marking type (\c #type) does not require it.
//
optional TrafficSign.MainSign.Classification.Type
traffic_main_sign_type = 2;
// The monochrome color of the road marking.
// \note Field need not be set (or set to \c #COLOR_OTHER)
// if road marking type does not require it (e.g. for \c #type ==
// \c #TYPE_PAINTED_TRAFFIC_SIGN).
//
optional Color monochrome_color = 3;
// Additional value associated with the road marking, e.g. value of the
// speed limit.
//
// \note Field need not be set if road marking type does not require it.
//
// \note OSI 3 uses \c #value_text and not \c TrafficSignValue for
// simple chars.
//
optional TrafficSignValue value = 4;
// Additional text value as road marking, e.g. BUS, TAXI etc.
//
// \note Field need not be set if road marking type does not require it.
//
optional string value_text = 5;
// The ID(s) of the lane(s) that the road marking is assigned to.
// May be multiple if the road marking goes across multiple lanes.
//
// \note OSI uses singular instead of plural for repeated field names.
//
repeated Identifier assigned_lane_id = 6;
// Boolean flag to indicate that the road marking is taken out of service.
// This can be achieved by visibly crossing the road marking with stripes,
// or completly covering a road marking making it not visible.
//
// \image html OSI_RoadMaking_is_out_of_service.jpg width=800px
//
optional bool is_out_of_service = 7;
// Definition of road marking types.
//
enum Type
{
// Type of road marking is unknown (must not be used in ground
// truth).
//
TYPE_UNKNOWN = 0;
// Other (unspecified but known) type of road marking.
//
TYPE_OTHER = 1;
// Paint on the road surface indicating a color image of a traffic
// sign.
//
TYPE_PAINTED_TRAFFIC_SIGN = 2;
// Paint on the road surface indicating a monochrome logical symbol
// of a traffic sign (e.g. digits 50 as start of speed limit 50 or
// stop line for stop sign).
//
TYPE_SYMBOLIC_TRAFFIC_SIGN = 3;
// Paint on the road surface as a character string (e.g. BUS as bus
// only lane).
//
TYPE_TEXTUAL_TRAFFIC_SIGN = 4;
// Paint on the road surface indicating a generic symbol.
//
TYPE_GENERIC_SYMBOL = 5;
// Paint on the road surface indicating a generic line.
//
TYPE_GENERIC_LINE = 6;
// Paint on the road surface indicating a generic character string.
//
TYPE_GENERIC_TEXT = 7;
}
// Definition of road marking colors
//
enum Color
{
// Color of road marking is unknown (must not be used in ground
// truth).
//
COLOR_UNKNOWN = 0;
// Marking with another (unspecified but known) color.
//
COLOR_OTHER = 1;
// Marking with white color.
//
COLOR_WHITE = 2;
// Marking with yellow / orange-yellow color.
//
COLOR_YELLOW = 3;
// Marking with blue color.
//
COLOR_BLUE = 5;
// Marking with red color.
//
COLOR_RED = 6;
// Marking with green color.
//
COLOR_GREEN = 7;
// Marking with violet color.
//
COLOR_VIOLET = 8;
}
}
}