Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 24 additions & 20 deletions osi_common.proto
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ package osi;
// \brief A cartesian 3D vector for positions, velocities or accelerations or
// its uncertainties.
//
// Units are [m] for positions, [m/s] for velocities and [m/s^2] for accelerations.
//
// The coordinate system is defined as right-handed.
//
// Units are [m] for positions, [m/s] for velocities and [m/s^2] for
// accelerations.
message Vector3d
{
// The x coordinate.
Expand All @@ -35,8 +35,8 @@ message Vector3d
// \brief A cartesian 2D vector for positions, velocities or accelerations or
// its uncertainties.
//
// Units are [m] for positions, [m/s] for velocities and [m/s^2] for accelerations.
//
// Units are [m] for positions, [m/s] for velocities and [m/s^2] for
// accelerations.
message Vector2d
{
// The x coordinate.
Expand Down Expand Up @@ -67,9 +67,11 @@ message Timestamp
optional int64 seconds = 1;

// The number of nanoseconds since the start of the last second.
//
// Range: [0, 999.999.999]
//
// Unit: [ns]
optional int32 nanos = 2;
optional uint32 nanos = 2;
}

//
Expand Down Expand Up @@ -118,12 +120,12 @@ message Dimension3d
// Roll/Pitch are 0 if the objects xy-plane is parallel to its parent's xy-plane.
// Yaw is 0 if the object's local x-axis is parallel to its parent's x-axis.
//
// Rotation_yaw_pitch_roll = Rotation_roll*Rotation_pitch*Rotation_yaw
// <tt>Rotation_yaw_pitch_roll = Rotation_roll*Rotation_pitch*Rotation_yaw</tt>
//
// vector_global_coord_system := Inverse_Rotation_yaw_pitch_roll(orientation)*(vector_local_coord_system) + local_origin.position
// <tt>vector_global_coord_system := Inverse_Rotation_yaw_pitch_roll(orientation)*(vector_local_coord_system) + local_origin.position</tt>

//
// \note This definition changed in OSI version 3.0.0. Previous OSI versions
// \attention This definition changed in OSI version 3.0.0. Previous OSI versions
// (V2.xx) had an other definition.
//
// \par References:
Expand Down Expand Up @@ -180,7 +182,8 @@ message MountingPosition
optional Vector3d position = 1;

// Orientation offset relative to the specified reference coordinate system.
// Origin_sensor := Rotation_yaw_pitch_roll(MountingPosition.orientation)*(Origin_reference_coordinate_system - MountingPosition.position)
//
// <tt>Origin_sensor := Rotation_yaw_pitch_roll(MountingPosition.orientation)*(Origin_reference_coordinate_system - MountingPosition.position)</tt>
optional Orientation3d orientation = 2;
}

Expand All @@ -191,13 +194,13 @@ message MountingPosition
//
// Azimuth and elevation are defined as the rotations that would have to be
// applied to the local frame (e.g sensor frame definition in
// \c OSI:DetectionHeader) to make its x-axis point towards the referenced point
// \c SensorDetectionHeader) to make its x-axis point towards the referenced point
// or to align it with the referenced vector. The rotations are to be performed
// \b azimuth \b first (around the z-axis) and \b elevation \b second (around
// the new y-axis) to follow the definition of \c OSI:Orientation3D. For the
// the new y-axis) to follow the definition of \c Orientation3D. For the
// sense of each rotation, the right-hand rule applies.
//
// vector_cartesian := Rotation(elevation)*Rotation(azimuth)*Unit_vector_x*distance
// <tt>vector_cartesian := Rotation(elevation)*Rotation(azimuth)*Unit_vector_x*distance</tt>
message Spherical3d
{
// The radial distance.
Expand All @@ -219,8 +222,8 @@ message Spherical3d
//
// \brief The base attributes of a stationary object or entity.
//
// This includes the \c OSI::StationaryObject, \c OSI::TrafficSign,
// \c OSI::TrafficLight, \c OSI::RoadMarking messages.
// This includes the \c StationaryObject , \c TrafficSign ,
// \c TrafficLight , \c RoadMarking messages.
//
// All coordinates and orientations are relative to the global ground truth
// coordinate system.
Expand All @@ -238,7 +241,7 @@ message BaseStationary
// The relative orientation of the stationary object w.r.t. its parent
// frame.
//
// Origin_base_stationary_entity := Rotation_yaw_pitch_roll(BaseStationary.orientation)*(Origin_parent_coordinate_system - BaseStationary.position)
// <tt>Origin_base_stationary_entity := Rotation_yaw_pitch_roll(BaseStationary.orientation)*(Origin_parent_coordinate_system - BaseStationary.position)</tt>
//
// \note There may be some constraints how to align the orientation w.r.t.
// to some stationary object's or entity's definition.
Expand Down Expand Up @@ -285,7 +288,7 @@ message BaseMoving

// The relative orientation of the moving object w.r.t. its parent frame.
//
// Origin_base_moving_entity := Rotation_yaw_pitch_roll(BaseMoving.orientation)*(Origin_parent_coordinate_system - BaseMoving.position)
// <tt>Origin_base_moving_entity := Rotation_yaw_pitch_roll(BaseMoving.orientation)*(Origin_parent_coordinate_system - BaseMoving.position)</tt>
//
// \note There may be some constraints how to align the orientation w.r.t.
// to some stationary object's or entity's definition.
Expand All @@ -295,23 +298,24 @@ message BaseMoving
// parent velocity.
// The velocity becomes global/absolute if the parent frame does not move.
//
// BaseMoving.position(t) := BaseMoving.position(t-dt)+velocity*dt
// <tt>BaseMoving.position(t) := BaseMoving.position(t-dt)+velocity*dt</tt>
optional Vector3d velocity = 4;

// The relative acceleration of the moving object w.r.t. its parent frame
// and parent acceleration.
// The acceleration becomes global/absolute if the parent frame is not
// accelerating.
//
// BaseMoving.position(t) := BaseMoving.position(t-dt)+velocity*dt+acceleration/2*dt^2
// BaseMoving.velocity(t) := BaseMoving.velocity(t-dt)+acceleration*dt
// <tt>BaseMoving.position(t) := BaseMoving.position(t-dt)+velocity*dt+acceleration/2*dt^2</tt>
//
// <tt>BaseMoving.velocity(t) := BaseMoving.velocity(t-dt)+acceleration*dt</tt>
optional Vector3d acceleration = 5;

// 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).
//
// Rotation_yaw_pitch_roll(BaseMoving.orientation(t)) := Rotation_yaw_pitch_roll(BaseMoving.orientation_rate*dt)*Rotation_yaw_pitch_roll(BaseMoving.orientation(t-dt))
// <tt>Rotation_yaw_pitch_roll(BaseMoving.orientation(t)) := Rotation_yaw_pitch_roll(BaseMoving.orientation_rate*dt)*Rotation_yaw_pitch_roll(BaseMoving.orientation(t-dt))</tt>
//
// \note BaseMoving.orientation(t) is \b not equal BaseMoving.orientation(t-dt)+BaseMoving.orientation_rate*dt
optional Orientation3d orientation_rate = 6;
Expand Down
17 changes: 10 additions & 7 deletions osi_datarecording.proto
Original file line number Diff line number Diff line change
Expand Up @@ -7,33 +7,36 @@ import "osi_sensordata.proto";
package osi;

//
// \brief (Time) Series of SensorData messages that may be used for data recording or internal buffering by some sensor models.
// \brief (Time) Series of SensorData messages that may be used for data
// recording or internal buffering by some sensor models.
//
message SensorDataSeries
{
// List of sensor data messages for subsequent timesteps.
//
repeated SensorData sensor_data = 1;
repeated SensorData sensor_data_list = 1;
}

//
// \brief List of SensorData interface copies, one for each sensor in the vehicle.
//
// \brief List of SensorData interface copies, one for each sensor in the
// vehicle.
//
// Can be used to bundle output of multiple sensors in one transmission.
//
message SensorDataList
{
// List of sensor data for multiple sensors at a specific timestep.
//
repeated SensorData sensor = 1;
repeated SensorData sensors = 1;
}

//
// \brief List of sensors where each element contains a time series of SensorData messages.
// \brief List of sensors where each element contains a time series of
// SensorData messages.
//
message SensorDataSeriesList
{
// List of sensor data for multiple sensors at subsequent timesteps.
//
repeated SensorDataSeries sensor = 1;
repeated SensorDataSeries sensors = 1;
}
2 changes: 1 addition & 1 deletion osi_detectedobject.proto
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,7 @@ message DetectedObjectHeader
}

//
// \brief Version of detected object messages ( \c OSI::DetectedObject
// \brief Version of detected object messages ( \c DetectedObject
// etc.).
//
message InterfaceVersion
Expand Down
Loading