Skip to content

Commit 3338034

Browse files
Add figures to OSI-Documentation
The figures still have to be approved by BMW.
1 parent 0577003 commit 3338034

11 files changed

+311
-207
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,5 @@ version.py
3030
__pycache__/
3131
*.py[cod]
3232
proto2cpp.log
33+
.clang-format
34+
githooks/pre-commit

osi_common.proto

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ message Timestamp
8787
// \brief The dimension of a 3D box, e.g. the size of a 3D bounding box or its
8888
// uncertainties.
8989
//
90+
// \image html OSI_Dimension3d.jpg
91+
//
9092
// The dimensions are positive. Uncertainties are negative or positive.
9193
//
9294
// Dimension is defined in the specified reference coordinate frame along the
@@ -135,7 +137,9 @@ message Dimension3d
135137
//
136138
// <tt>Rotation_yaw_pitch_roll = Rotation_roll*Rotation_pitch*Rotation_yaw</tt>
137139
//
138-
// <tt>vector_global_coord_system := Inverse_Rotation_yaw_pitch_roll(</tt><tt>Orientation3d</tt><tt>)*(vector_local_coord_system) + local_origin::position</tt>
140+
// <tt>vector_global_coord_system :=
141+
// Inverse_Rotation_yaw_pitch_roll(</tt><tt>Orientation3d</tt><tt>)*(vector_local_coord_system)
142+
// + local_origin::position</tt>
139143
//
140144
// \attention This definition changed in OSI version 3.0.0. Previous OSI
141145
// versions (V2.xx) had an other definition.
@@ -198,7 +202,9 @@ message MountingPosition
198202

199203
// Orientation offset relative to the specified reference coordinate system.
200204
//
201-
// <tt>Origin_sensor := Rotation_yaw_pitch_roll(#orientation)*(Origin_reference_coordinate_system - #position)</tt>
205+
// <tt>Origin_sensor :=
206+
// Rotation_yaw_pitch_roll(#orientation)*(Origin_reference_coordinate_system
207+
// - #position)</tt>
202208
//
203209
optional Orientation3d orientation = 2;
204210
}
@@ -210,13 +216,14 @@ message MountingPosition
210216
//
211217
// Azimuth and elevation are defined as the rotations that would have to be
212218
// applied to the local frame (e.g sensor frame definition in
213-
// \c SensorDetectionHeader) to make its x-axis point towards the referenced point
214-
// or to align it with the referenced vector. The rotations are to be performed
215-
// \b azimuth \b first (around the z-axis) and \b elevation \b second (around
216-
// the new y-axis) to follow the definition of \c Orientation3d. For the
219+
// \c SensorDetectionHeader) to make its x-axis point towards the referenced
220+
// point or to align it with the referenced vector. The rotations are to be
221+
// performed \b azimuth \b first (around the z-axis) and \b elevation \b second
222+
// (around the new y-axis) to follow the definition of \c Orientation3d. For the
217223
// sense of each rotation, the right-hand rule applies.
218224
//
219-
// <tt>vector_cartesian := Rotation(#elevation)*Rotation(#azimuth)*Unit_vector_x*#distance</tt>
225+
// <tt>vector_cartesian :=
226+
// Rotation(#elevation)*Rotation(#azimuth)*Unit_vector_x*#distance</tt>
220227
//
221228
message Spherical3d
222229
{
@@ -245,8 +252,10 @@ message Spherical3d
245252
// This includes the \c StationaryObject , \c TrafficSign ,
246253
// \c TrafficLight , \c RoadMarking messages.
247254
//
255+
// \image html OSI_BaseStationary.jpg
256+
//
248257
// All coordinates and orientations from ground truth objects are relative to
249-
// the global ground truth frame. All coordinates and orientations
258+
// the global ground truth frame (see image). All coordinates and orientations
250259
// from detected objects are relative to the host vehicle frame (see:
251260
// \c MovingObject::Vehicle vehicle reference point).
252261
//
@@ -265,7 +274,9 @@ message BaseStationary
265274
// The relative orientation of the stationary object w.r.t. its parent
266275
// frame.
267276
//
268-
// <tt>Origin_base_stationary_entity := Rotation_yaw_pitch_roll(#orientation)*(Origin_parent_coordinate_system - #position)</tt>
277+
// <tt>Origin_base_stationary_entity :=
278+
// Rotation_yaw_pitch_roll(#orientation)*(Origin_parent_coordinate_system -
279+
// #position)</tt>
269280
//
270281
// \note There may be some constraints how to align the orientation w.r.t.
271282
// to some stationary object's or entity's definition.
@@ -274,8 +285,8 @@ message BaseStationary
274285

275286
// Usage as ground truth:
276287
// The two dimensional (flat) contour of the object. This is an extension of
277-
// the concept of a bounding box as defined by \c Dimension3d. The contour is
278-
// the projection of the object's outline onto the z-plane in the object
288+
// the concept of a bounding box as defined by \c Dimension3d. The contour
289+
// is the projection of the object's outline onto the z-plane in the object
279290
// frame (independent of its current position and orientation). The height
280291
// is the same as the height of the bounding box.
281292
//
@@ -318,7 +329,9 @@ message BaseMoving
318329

319330
// The relative orientation of the moving object w.r.t. its parent frame.
320331
//
321-
// <tt>Origin_base_moving_entity := Rotation_yaw_pitch_roll(#orientation)*(Origin_parent_coordinate_system - #position)</tt>
332+
// <tt>Origin_base_moving_entity :=
333+
// Rotation_yaw_pitch_roll(#orientation)*(Origin_parent_coordinate_system -
334+
// #position)</tt>
322335
//
323336
// \note There may be some constraints how to align the orientation w.r.t.
324337
// to some stationary object's or entity's definition.
@@ -338,7 +351,8 @@ message BaseMoving
338351
// The acceleration becomes global/absolute if the parent frame is not
339352
// accelerating.
340353
//
341-
// <tt> #position (t) := #position (t-dt)+ #velocity *dt+ #acceleration /2*dt^2</tt>
354+
// <tt> #position (t) := #position (t-dt)+ #velocity *dt+ #acceleration
355+
// /2*dt^2</tt>
342356
//
343357
// <tt> #velocity (t) := #velocity (t-dt)+ #acceleration *dt</tt>
344358
//
@@ -348,16 +362,19 @@ message BaseMoving
348362
// frame and parent orientation rate in the center point of the bounding box
349363
// (origin of the bounding box frame).
350364
//
351-
// <tt>Rotation_yaw_pitch_roll(#orientation (t)) := Rotation_yaw_pitch_roll(#orientation_rate *dt)*Rotation_yaw_pitch_roll(#orientation (t-dt))</tt>
365+
// <tt>Rotation_yaw_pitch_roll(#orientation (t)) :=
366+
// Rotation_yaw_pitch_roll(#orientation_rate
367+
// *dt)*Rotation_yaw_pitch_roll(#orientation (t-dt))</tt>
352368
//
353-
// \note <tt>#orientation (t)</tt> is \b not equal <tt>#orientation (t-dt)+#orientation_rate *dt</tt>
369+
// \note <tt>#orientation (t)</tt> is \b not equal <tt>#orientation
370+
// (t-dt)+#orientation_rate *dt</tt>
354371
//
355372
optional Orientation3d orientation_rate = 6;
356373

357374
// Usage as ground truth:
358375
// The two dimensional (flat) contour of the object. This is an extension of
359-
// the concept of a bounding box as defined by \c Dimension3d. The contour is
360-
// the projection of the object's outline onto the z-plane in the object
376+
// the concept of a bounding box as defined by \c Dimension3d. The contour
377+
// is the projection of the object's outline onto the z-plane in the object
361378
// frame (independent of its current position and orientation). The height
362379
// is the same as the height of the bounding box.
363380
//

osi_detectedobject.proto

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ message DetectedItemHeader
7171
//
7272
MEASUREMENT_STATE_UNKNOWN = 0;
7373

74-
// Measurement state is unspecified (but known, i.e. value is not part of
75-
// this enum list).
74+
// Measurement state is unspecified (but known, i.e. value is not part
75+
// of this enum list).
7676
//
7777
MEASUREMENT_STATE_OTHER = 1;
7878

@@ -91,6 +91,8 @@ message DetectedItemHeader
9191
// \brief A stationary object (e.g. landmark) in the environment as detected by
9292
// the sensor.
9393
//
94+
// \image html OSI_DetectedStatObject.jpg
95+
//
9496
message DetectedStationaryObject
9597
{
9698
// Common information of one detected item.
@@ -242,18 +244,20 @@ message DetectedMovingObject
242244
// Specific information about the classification of the vehicle.
243245
//
244246
//
245-
// \note This field is mandatory if the \c CandidateMovingObject::type is
246-
// \c MovingObject::TYPE_VEHICLE .
247+
// \note This field is mandatory if the \c CandidateMovingObject::type
248+
// is \c MovingObject::TYPE_VEHICLE .
247249
//
248250
optional MovingObject.VehicleClassification vehicle_classification = 3;
249251

250252
// Pedestrian head pose for behavior prediction. Describes the head
251253
// orientation w.r.t. the host vehicle orientation.
252254
// The x-axis of the right-handed head frame is pointing along the
253-
// pedestrian's straight ahead viewing direction and the z-axis is pointing
254-
// upwards (cranial direction [1] i.e. to pedestrian's skull cap).
255+
// pedestrian's straight ahead viewing direction and the z-axis is
256+
// pointing upwards (cranial direction [1] i.e. to pedestrian's skull
257+
// cap).
255258
//
256-
// <tt>View_normal_base_coord_system = Inverse_Rotation(#head_pose)*Unit_vector_x</tt>
259+
// <tt>View_normal_base_coord_system =
260+
// Inverse_Rotation(#head_pose)*Unit_vector_x</tt>
257261
//
258262
// \note This field is mandatory if the \c CandidateMovingObject.type is
259263
// \c MovingObject::TYPE_PEDESTRIAN
@@ -266,14 +270,15 @@ message DetectedMovingObject
266270
// Pedestrian upper body pose for behavior prediction. Describes the
267271
// upper body orientation w.r.t. the host vehicle orientation.
268272
// The x-axis of the right-handed upper body frame is pointing along the
269-
// pedestrian's upper body ventral direction [2] (i.e. usually pedestrian's
270-
// intended moving direction) and the z-axis is pointing upwards (to
271-
// pedestrian's head).
273+
// pedestrian's upper body ventral direction [2] (i.e. usually
274+
// pedestrian's intended moving direction) and the z-axis is pointing
275+
// upwards (to pedestrian's head).
272276
//
273-
// <tt>View_normal_base_coord_system = Inverse_Rotation(#upper_body_pose)*Unit_vector_x</tt>
277+
// <tt>View_normal_base_coord_system =
278+
// Inverse_Rotation(#upper_body_pose)*Unit_vector_x</tt>
274279
//
275-
// \note This field is mandatory if the \c CandidateMovingObject::type is
276-
// \c MovingObject::TYPE_PEDESTRIAN
280+
// \note This field is mandatory if the \c CandidateMovingObject::type
281+
// is \c MovingObject::TYPE_PEDESTRIAN
277282
//
278283
// \par References:
279284
// - [2] https://en.wikipedia.org/wiki/Anatomical_terms_of_location

osi_detectedroadmarking.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ package osi3;
1111
//
1212
// \brief A road marking in the environment as detected by the sensor.
1313
//
14+
// \image html OSI_DetectedRoadMarking.jpg
15+
//
1416
message DetectedRoadMarking
1517
{
1618
// Common information of one detected item.

osi_detectedtrafficlight.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ package osi3;
1111
//
1212
// \brief A traffic light in the environment as detected by the sensor.
1313
//
14+
// \image html OSI_DetectedTrafficLight.jpg
15+
//
1416
message DetectedTrafficLight
1517
{
1618
// Common information of one detected item.

osi_detectedtrafficsign.proto

Lines changed: 31 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ package osi3;
1111
//
1212
// \brief A traffic sign in the environment as detected by the sensor.
1313
//
14+
// \image html OSI_DetectedTrafficSigns.jpg
15+
//
1416
message DetectedTrafficSign
1517
{
1618
// Common information of one detected item.
@@ -29,6 +31,8 @@ message DetectedTrafficSign
2931

3032
//
3133
// \brief Candidates for a detected main sign as estimated by the sensor.
34+
//
35+
// \image html OSI_DetectedMainTrafficSign.jpg
3236
//
3337
message DetectedMainSign
3438
{
@@ -48,8 +52,8 @@ message DetectedTrafficSign
4852
// (Normally it is equal to the ground truth z-axis.)
4953
// The x-axis of the given \c BaseStationary::orientation is view
5054
// normal of the traffic sign's image.
51-
// This x-axis points from the traffic sign's image in the direction from
52-
// where a 'viewer' could see the traffic sign image.
55+
// This x-axis points from the traffic sign's image in the direction
56+
// from where a 'viewer' could see the traffic sign image.
5357
//
5458
optional BaseStationary base = 2;
5559

@@ -71,9 +75,9 @@ message DetectedTrafficSign
7175
{
7276
// The estimated probability that this candidate is the true value.
7377
//
74-
// \note The sum of all \c #probability must be one. This probability is
75-
// given under the condition of
76-
// \c DetectedItemHeader::existence_probability.
78+
// \note The sum of all \c #probability must be one. This
79+
// probability is given under the condition of \c
80+
// DetectedItemHeader::existence_probability.
7781
//
7882
// Range: [0,1]
7983
//
@@ -104,11 +108,12 @@ message DetectedTrafficSign
104108
//
105109
GEOMETRY_CIRCLE = 2;
106110

107-
// Traffic sign has a triangular geometry pointing to the top. (3 corners)
111+
// Traffic sign has a triangular geometry pointing to the top. (3
112+
// corners)
108113
//
109114
GEOMETRY_TRIANGLE_TOP = 3;
110115

111-
//Traffic sign has a triangular geometry pointing down. (3 corners)
116+
// Traffic sign has a triangular geometry pointing down. (3 corners)
112117
//
113118
GEOMETRY_TRIANGLE_DOWN = 4;
114119

@@ -135,11 +140,13 @@ message DetectedTrafficSign
135140
//
136141
GEOMETRY_DIAMOND = 9;
137142

138-
// Traffic sign has a geometry of an arrow pointing to the left. (5 corners)
143+
// Traffic sign has a geometry of an arrow pointing to the left. (5
144+
// corners)
139145
//
140146
GEOMETRY_ARROW_LEFT = 10;
141147

142-
// Traffic sign has a geometry of an arrow pointing to the right. (5 corners)
148+
// Traffic sign has a geometry of an arrow pointing to the right. (5
149+
// corners)
143150
//
144151
GEOMETRY_ARROW_RIGHT = 11;
145152

@@ -152,6 +159,8 @@ message DetectedTrafficSign
152159
//
153160
// \brief Candidates for all detected supplementary signs of one traffic
154161
// sign as estimated by the sensor.
162+
//
163+
// \image html OSI_DetectedSuppSign.jpg
155164
//
156165
message DetectedSupplementarySign
157166
{
@@ -167,12 +176,12 @@ message DetectedTrafficSign
167176
// The orientation of the bounding box \c SupplementarySign::base
168177
// ( \c BaseStationary::orientation ) is defined as follows:
169178
// The z-axis of the given \c BaseStationary::orientation is the vector
170-
// from the bottom to the top of the supplementary traffic sign's 2D image
171-
// plate. (Normally it is equal to the ground truth z-axis.)
172-
// The x-axis of the given \c BaseStationary::orientation is view
173-
// normal of the supplementary traffic sign's image.
174-
// This x-axis points from the supplementary traffic sign's image in the
175-
// direction from where a 'viewer' could see the supplementary traffic sign image.
179+
// from the bottom to the top of the supplementary traffic sign's 2D
180+
// image plate. (Normally it is equal to the ground truth z-axis.) The
181+
// x-axis of the given \c BaseStationary::orientation is view normal of
182+
// the supplementary traffic sign's image. This x-axis points from the
183+
// supplementary traffic sign's image in the direction from where a
184+
// 'viewer' could see the supplementary traffic sign image.
176185
//
177186
optional BaseStationary base = 2;
178187

@@ -191,21 +200,22 @@ message DetectedTrafficSign
191200
{
192201
// The estimated probability that this candidate is the true value.
193202
//
194-
// \note The sum of all \c #probability must be one. This probability is
195-
// given under the condition of
196-
// \c DetectedItemHeader::existence_probability.
203+
// \note The sum of all \c #probability must be one. This
204+
// probability is given under the condition of \c
205+
// DetectedItemHeader::existence_probability.
197206
//
198207
// Range: [0,1]
199208
//
200209
optional double probability = 1;
201210

202-
// The classification of one of more supplementary signs that together
203-
// define this candidate.
211+
// The classification of one of more supplementary signs that
212+
// together define this candidate.
204213
//
205214
// \note IDs, which are referenced in this message, usually
206215
// reference to \c DetectedXXX::tracking_id IDs.
207216
//
208-
optional TrafficSign.SupplementarySign.Classification classification = 2;
217+
optional TrafficSign.SupplementarySign.Classification
218+
classification = 2;
209219
}
210220
}
211221
}

osi_hostvehicledata.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ package osi3;
1010
// \brief Interface for host vehicle data that is available to sensors and
1111
// other functions due to host vehicle's internal communication.
1212
//
13+
// \image html OSI_HostVehicle.jpg
14+
//
1315
// All coordinates and orientations are relative to the global ground truth
1416
// coordinate system.
1517
//

0 commit comments

Comments
 (0)