osi3::BaseMoving Struct Reference
Public Attributes
optional Dimension3d | dimension = 1 |
The 3D dimension of the moving object (its bounding box). More... | |
optional Vector3d | position = 2 |
The reference point for position and orientation: the center (x,y,z) of the bounding box. More... | |
optional Orientation3d | orientation = 3 |
The relative orientation of the moving object w.r.t. More... | |
optional Vector3d | velocity = 4 |
The relative velocity of the moving object w.r.t. More... | |
optional Vector3d | acceleration = 5 |
The relative acceleration of the moving object w.r.t. More... | |
optional Orientation3d | orientation_rate = 6 |
The relative orientation rate of the moving object w.r.t. More... | |
optional Orientation3d | orientation_acceleration = 8 |
The relative orientation acceleration of the moving object w.r.t. More... | |
repeated Vector2d | base_polygon = 7 |
Usage as ground truth: The two dimensional (flat) contour of the object. More... | |
repeated BoundingBox | bounding_box_section = 9 |
Sub-divisions of the overall bounding box of the BaseMoving object. More... | |
Detailed Description
The base attributes of an object that is moving.
This includes the MovingObject
messages.
E.g. a vehicle is a base moving object.
All coordinates and orientations from ground truth objects are relative to the global ground truth frame. All coordinates and orientations from detected objects are relative to the host vehicle frame (see: MovingObject
vehicle reference point).
Member Data Documentation
◆ dimension
optional Dimension3d osi3::BaseMoving::dimension = 1 |
The 3D dimension of the moving object (its bounding box).
- Note
- The
dimension
must completely enclose the geometry of theBaseMoving
with the exception of the side mirrors for vehicles. - The bounding box does NOT include side mirrors for vehicles.
◆ position
optional Vector3d osi3::BaseMoving::position = 2 |
The reference point for position and orientation: the center (x,y,z) of the bounding box.
◆ orientation
optional Orientation3d osi3::BaseMoving::orientation = 3 |
The relative orientation of the moving object w.r.t.
its parent frame, noted in the parent frame. The orientation becomes global/absolute if the parent frame is inertial (all parent frames up to ground truth).
\( Origin_{\text{base moving entity}} := Rotation_{yaw,pitch,roll}( \) orientation
\( )* (Origin_{\text{parent coord system}} - \) position
\( ) \)
- Note
- There may be some constraints how to align the orientation w.r.t. to some stationary object's or entity's definition.
◆ velocity
optional Vector3d osi3::BaseMoving::velocity = 4 |
◆ acceleration
optional Vector3d osi3::BaseMoving::acceleration = 5 |
The relative acceleration of the moving object w.r.t.
its parent frame, noted in the parent frame. The acceleration becomes global/absolute if the parent frame is inertial (all parent frames up to ground truth).
position
\( (t) := \) position
\( (t-dt)+ \) velocity
\( *dt+ \) acceleration
\( /2*dt^2\)
velocity
\( (t) := \) velocity
\( (t-dt)+ \) acceleration
\( *dt \)
◆ orientation_rate
optional Orientation3d osi3::BaseMoving::orientation_rate = 6 |
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), noted in the parent frame. The orientation becomes global/absolute if the parent frame is inertial (all parent frames up to ground truth).
orientation
\( .yaw(t) := \) orientation_rate
\( .yaw(t) * dt + \) orientation
\( .yaw(t-dt) \)
orientation
\( .pitch(t) := \) orientation_rate
\( .pitch(t) * dt + \) orientation
\( .pitch(t-dt) \)
orientation
\( .roll(t) := \) orientation_rate
\( .roll(t) * dt + \) orientation
\( .roll(t-dt)\)
◆ orientation_acceleration
optional Orientation3d osi3::BaseMoving::orientation_acceleration = 8 |
The relative orientation acceleration of the moving object w.r.t.
its parent frame and parent orientation acceleration in the center point of the bounding box (origin of the bounding box frame), noted in the parent frame. The orientation becomes global/absolute if the parent frame is inertial (all parent frames up to ground truth).
orientation_rate
\( .yaw(t) := \) orientation_acceleration
\( .yaw(t) * dt + \) orientation_rate
\( .yaw(t-dt) \)
orientation_rate
\( .pitch(t) := \) orientation_acceleration
\( .pitch(t) * dt + \) orientation_rate
\( .pitch(t-dt) \)
orientation_rate
\( .roll(t) := \) orientation_acceleration
\( .roll(t) * dt + \) orientation_rate
\( .roll(t-dt) \)
◆ base_polygon
repeated Vector2d osi3::BaseMoving::base_polygon = 7 |
Usage as ground truth: The two dimensional (flat) contour of the object.
This is an extension of the concept of a bounding box as defined by Dimension3d
. The contour is the projection of the object's outline onto the z-plane in the object frame (independent of its current position and orientation). The height is the same as the height of the bounding box.
Usage as sensor data: The polygon describes the visible part of the object's contour.
General definitions: The polygon is defined in the local object frame: x pointing forward and y to the left. The origin is the center of the bounding box. As ground truth, the polygon is closed by connecting the last with the first point. Therefore these two points must be different. The polygon must consist of at least three points. As sensor data, however, the polygon is open. The polygon is defined counter-clockwise.
◆ bounding_box_section
repeated BoundingBox osi3::BaseMoving::bounding_box_section = 9 |
Sub-divisions of the overall bounding box of the BaseMoving
object.
The bounding box sections can include side mirrors, cargo, etc. for vehicles, as well as body-part sections for pedestrians. Note that for more precise pedestrian information PedestrianAttributes
can be used.
- Note
- The bounding box sub-divisions can extend beyond the overall bounding box, however no actual geometry must reside outside of the overall bounding box, with the specific exception of the side mirrors.
- If any sub-divisions are provided, then they must cover all occupied space of the overall bounding box. In other words, a consumer of this data is guaranteed that any part of the overall bounding box that is not covered by any sub-division is free of physical objects, and thus no collisions can occur there.
- osi_common.proto