Skip to content

Commit 4d07544

Browse files
Carsten KueblerCarsten Kuebler
authored andcommitted
Add documentation
Add comments from Tim Fricke and change formatting.
1 parent 64e5221 commit 4d07544

File tree

5 files changed

+252
-160
lines changed

5 files changed

+252
-160
lines changed

osi_common.proto

Lines changed: 77 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -87,21 +87,22 @@ message Dimension3d
8787
}
8888

8989
//
90-
// \brief A 3D orientation, orientation rate or orientation acceleration (i.e. derivatives)
91-
// or its uncertainties denoted in euler angles.
90+
// \brief A 3D orientation, orientation rate or orientation acceleration (i.e.
91+
// derivatives) or its uncertainties denoted in euler angles.
9292
//
9393
// Units are
9494
// \arg [rad] for orientation
9595
// \arg [rad/s] for rates
9696
// \arg [rad/s^2] for accelerations
9797
//
98-
// The preferred angular range is (-pi, pi]. The coordinate system is defined as right-handed.
98+
// The preferred angular range is (-pi, pi]. The coordinate system is defined as
99+
// right-handed.
100+
// For the sense of each rotation, the right-hand rule applies.
99101
//
100-
// The rotations are to be performed \b yaw \b first, \b pitch \b second and \b roll \b third to follow the definition according to [1].
101-
//
102-
// Rotations are defined in the reference coordinate frame around z-axis (=yaw), y-axis (=pitch) and x-axis (=roll),
103-
// not in the body frame of the object.
104-
// A positive angle corresponds to a clockwise rotation around the respective axis.
102+
// The rotations are to be performed \b yaw \b first (around the z-axis),
103+
// \b pitch \b second (around the new y-axis) and \b roll \b third (around the
104+
// new x-axis) to follow the definition according to [1] (Tait-Bryan / Euler
105+
// convention z-y'-x'').
105106
//
106107
// Roll/Pitch are 0 if the objects xy-plane is parallel to its parent's xy-plane.
107108
// Yaw is 0 if the object's local x-axis is parallel to its parent's x-axis.
@@ -111,7 +112,8 @@ message Dimension3d
111112
// vector_global_coord_system := Inverse_Rotation_yaw_pitch_roll(orientation)*(vector_local_coord_system) + local_origin.position
112113

113114
//
114-
// \note This definition changed in OSI version 3.0.0. Previous OSI versions (V2.xx) had an other definition.
115+
// \note This definition changed in OSI version 3.0.0. Previous OSI versions
116+
// (V2.xx) had an other definition.
115117
//
116118
// \par References:
117119
// [1] DIN ISO 8855:2013-11
@@ -134,13 +136,16 @@ message Orientation3d
134136
//
135137
// \brief A common identifier (ID), represented as an integer.
136138
//
137-
// Has to be unique among all simulated items at any given time. For ground truth, the identifier of an item (object,
138-
// lane, sign, etc.) must remain stable over its lifetime. Identifier values may be only be reused if the available
139-
// address space is exhausted and the specific values have not been in use for several timesteps. Sensor specific
140-
// tracking IDs have no restrictions and should behave according to the sensor specifications.
139+
// Has to be unique among all simulated items at any given time. For ground
140+
// truth, the identifier of an item (object, lane, sign, etc.) must remain
141+
// stable over its lifetime. Identifier values may be only be reused if the
142+
// available address space is exhausted and the specific values have not been in
143+
// use for several timesteps. Sensor specific tracking IDs have no restrictions
144+
// and should behave according to the sensor specifications.
141145
//
142-
// The value MAX(uint64) = 2^(64) -1 = 0b1111111111111111111111111111111111111111111111111111111111111111 is reserved and
143-
// indicates an invalid ID or error.
146+
// The value MAX(uint64) = 2^(64) -1 =
147+
// 0b1111111111111111111111111111111111111111111111111111111111111111 is
148+
// reserved and indicates an invalid ID or error.
144149
//
145150
message Identifier
146151
{
@@ -170,11 +175,19 @@ message MountingPosition
170175
//
171176
// Used e.g., for low level representations of radar detections.
172177
//
173-
// Units are [m] for radial distance and [rad] for azimuth and elevation angles.
178+
// Units are [m] for radial distance and [rad] for azimuth and elevation angles.
179+
// With the x-axis of the sensor frame pointing in the central viewing direction
180+
// of the sensor, the z-axis pointing upwards and the senor frame being
181+
// right-handed, azimuth and elevation are defined as the rotations that would
182+
// have to be applied to the sensor frame to make its x-axis point towards the
183+
// referenced point or to align it with the referenced vector. The rotations are
184+
// to be performed \b azimuth \b first (around the z-axis) and \b elevation
185+
// \b second (around the new y-axis) to follow the definition of
186+
// OSI:Orientation3D. For the sense of each rotation, the right-hand rule
187+
// applies.
174188
// If azimuth and elevation are zero, the referenced point lies directly ahead
175-
// in the central viewing direction of the sensor, and the respective vector points directly in the latter.
176-
// A positive angle corresponds to a clockwise rotation around the respective axis, i.e.
177-
// z-axis (azimuth = yaw), y-axis (elevation = pitch).
189+
// in the central viewing direction of the sensor, and the respective vector
190+
// points directly in the latter.
178191
//
179192
// vector_cartesian := Rotation(elevation)*Rotation(azimuth)*Unit_vector_x*distance
180193
message Spherical3d
@@ -195,40 +208,47 @@ message Spherical3d
195208
//
196209
// \brief The base attributes of a stationary object or entity.
197210
//
198-
// This includes the StationaryObject, TrafficSign, TrafficLight, RoadMarking messages.
211+
// This includes the \c OSI::StationaryObject, \c OSI::TrafficSign,
212+
// \c OSI::TrafficLight, \c OSI::RoadMarking messages.
199213
//
200214
// All coordinates and orientations are relative to the global ground truth
201215
// coordinate system.
202216
//
203217
message BaseStationary
204218
{
205-
// The 3D dimensions of the stationary object (bounding box), e.g. a landmark:
206-
//
219+
// The 3D dimensions of the stationary object (bounding box), e.g. a
220+
// landmark.
207221
optional Dimension3d dimension = 1;
208222

209-
// The reference point for position and orientation, i.e. the center (x, y, z) of the bounding box.
210-
//
223+
// The reference point for position and orientation, i.e. the center (x,y,z)
224+
// of the bounding box.
211225
optional Vector3d position = 2;
212226

213-
// The relative orientation of the stationary object w.r.t. its parent frame.
227+
// The relative orientation of the stationary object w.r.t. its parent
228+
// frame.
214229
//
215230
// Origin_base_stationary_entity := Rotation_yaw_pitch_roll(BaseStationary.orientation)*(Origin_parent_coordinate_system - BaseStationary.position)
216-
// \note There may be some constraints how to align the orientation w.r.t. to some stationary object's or entity's definition.
231+
//
232+
// \note There may be some constraints how to align the orientation w.r.t.
233+
// to some stationary object's or entity's definition.
217234
optional Orientation3d orientation = 3;
218235

219236
// Usage as ground truth:
220-
// The two dimensional (flat) contour of the object. This is an extension of the concept of a
221-
// bounding box as defined by Dimension3d. The contour is the projection of the object's outline
222-
// onto the z-plane in the object frame (independent of its current position and orientation).
237+
// The two dimensional (flat) contour of the object. This is an extension of
238+
// the concept of a bounding box as defined by Dimension3d. The contour is
239+
// the projection of the object's outline onto the z-plane in the object
240+
// frame (independent of its current position and orientation).
223241
//
224242
// Usage as sensor data:
225243
// The polygon describes the visible part of the object's contour.
226244
//
227245
// General definitions:
228-
// The polygon is defined in the local object frame: x pointing forward and y to the left.
246+
// The polygon is defined in the local object frame: x pointing forward and
247+
// y to the left.
229248
// The origin is the center of the bounding box.
230-
// As ground truth, the polygon is closed by connecting the last with the first point. Therefore
231-
// these two points must be different. The polygon must consist of at least three points.
249+
// As ground truth, the polygon is closed by connecting the last with the
250+
// first point. Therefore these two points must be different. The polygon
251+
// must consist of at least three points.
232252
// As sensor data, however, the polygon is open.
233253
// The polygon is defined counter-clockwise.
234254
repeated Vector2d base_polygon = 4;
@@ -248,49 +268,59 @@ message BaseMoving
248268
//
249269
optional Dimension3d dimension = 1;
250270

251-
// The reference point for position and orientation: the center (x, y, z) of the bounding box.
252-
//
271+
// The reference point for position and orientation: the center (x,y,z) of
272+
// the bounding box.
253273
optional Vector3d position = 2;
254274

255275
// The relative orientation of the moving object w.r.t. its parent frame.
256276
//
257277
// Origin_base_moving_entity := Rotation_yaw_pitch_roll(BaseMoving.orientation)*(Origin_parent_coordinate_system - BaseMoving.position)
258-
// \note There may be some constraints how to align the orientation w.r.t. to some stationary object's or entity's definition.
278+
//
279+
// \note There may be some constraints how to align the orientation w.r.t.
280+
// to some stationary object's or entity's definition.
259281
optional Orientation3d orientation = 3;
260282

261-
// The relative velocity of the moving object w.r.t. its parent frame and parent velocity.
283+
// The relative velocity of the moving object w.r.t. its parent frame and
284+
// parent velocity.
262285
// The velocity becomes global/absolute if the parent frame does not move.
263286
//
264287
// BaseMoving.position(t) := BaseMoving.position(t-dt)+velocity*dt
265288
optional Vector3d velocity = 4;
266289

267-
// The relative acceleration of the moving object w.r.t. its parent frame and parent acceleration.
268-
// The acceleration becomes global/absolute if the parent frame is not accelerating.
290+
// The relative acceleration of the moving object w.r.t. its parent frame
291+
// and parent acceleration.
292+
// The acceleration becomes global/absolute if the parent frame is not
293+
// accelerating.
269294
//
270295
// BaseMoving.position(t) := BaseMoving.position(t-dt)+velocity*dt+acceleration/2*dt^2
271296
// BaseMoving.velocity(t) := BaseMoving.velocity(t-dt)+acceleration*dt
272297
optional Vector3d acceleration = 5;
273298

274-
// The relative orientation rate of the moving object w.r.t. its parent frame and parent orientation rate in the center point of the bounding box (origin of the bounding box frame).
299+
// The relative orientation rate of the moving object w.r.t. its parent
300+
// frame and parent orientation rate in the center point of the bounding box
301+
// (origin of the bounding box frame).
275302
//
276303
// Rotation_yaw_pitch_roll(BaseMoving.orientation(t)) := Rotation_yaw_pitch_roll(BaseMoving.orientation_rate*dt)*Rotation_yaw_pitch_roll(BaseMoving.orientation(t-dt))
304+
//
277305
// \note BaseMoving.orientation(t) is \b not equal BaseMoving.orientation(t-dt)+BaseMoving.orientation_rate*dt
278306
optional Orientation3d orientation_rate = 6;
279307

280308
// Usage as ground truth:
281-
// The two dimensional (flat) contour of the object. This is an extension of the concept of a
282-
// bounding box as defined by Dimension3d. The contour is the projection of the object's outline
283-
// onto the z-plane in the object frame (independent of its current position and orientation).
309+
// The two dimensional (flat) contour of the object. This is an extension of
310+
// the concept of a bounding box as defined by Dimension3d. The contour is
311+
// the projection of the object's outline onto the z-plane in the object
312+
// frame (independent of its current position and orientation).
284313
//
285314
// Usage as sensor data:
286315
// The polygon describes the visible part of the object's contour.
287316
//
288317
// General definitions:
289-
// The polygon is defined in the local object frame: x pointing forward and y to the left.
290-
// The origin is the center of the bounding box.
291-
// As ground truth, the polygon is closed by connecting the last with the first point. Therefore
292-
// these two points must be different. The polygon must consist of at least three points.
293-
// As sensor data, however, the polygon is open.
318+
// The polygon is defined in the local object frame: x pointing forward and
319+
// y to the left. The origin is the center of the bounding box.
320+
// As ground truth, the polygon is closed by connecting the last with the
321+
// first point. Therefore these two points must be different. The polygon
322+
// must consist of at least three points. As sensor data, however, the
323+
// polygon is open.
294324
// The polygon is defined counter-clockwise.
295325
repeated Vector2d base_polygon = 7;
296326
}

0 commit comments

Comments
 (0)