diff --git a/.gitignore b/.gitignore
index 5db5dddb4..019172fbd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,3 +30,5 @@ version.py
__pycache__/
*.py[cod]
proto2cpp.log
+.clang-format
+githooks/pre-commit
diff --git a/doc/images/OSI_BaseStationary.jpg b/doc/images/OSI_BaseStationary.jpg
new file mode 100644
index 000000000..a512becc7
Binary files /dev/null and b/doc/images/OSI_BaseStationary.jpg differ
diff --git a/doc/images/OSI_DetectedMainTrafficSign.jpg b/doc/images/OSI_DetectedMainTrafficSign.jpg
new file mode 100644
index 000000000..2e2c565f2
Binary files /dev/null and b/doc/images/OSI_DetectedMainTrafficSign.jpg differ
diff --git a/doc/images/OSI_DetectedRoadMarking.jpg b/doc/images/OSI_DetectedRoadMarking.jpg
new file mode 100644
index 000000000..61fa7c595
Binary files /dev/null and b/doc/images/OSI_DetectedRoadMarking.jpg differ
diff --git a/doc/images/OSI_DetectedStatObject.jpg b/doc/images/OSI_DetectedStatObject.jpg
new file mode 100644
index 000000000..05c9ca69d
Binary files /dev/null and b/doc/images/OSI_DetectedStatObject.jpg differ
diff --git a/doc/images/OSI_DetectedSuppSign.jpg b/doc/images/OSI_DetectedSuppSign.jpg
new file mode 100644
index 000000000..a3b948db5
Binary files /dev/null and b/doc/images/OSI_DetectedSuppSign.jpg differ
diff --git a/doc/images/OSI_DetectedTrafficLight.jpg b/doc/images/OSI_DetectedTrafficLight.jpg
new file mode 100644
index 000000000..e8911bf93
Binary files /dev/null and b/doc/images/OSI_DetectedTrafficLight.jpg differ
diff --git a/doc/images/OSI_DetectedTrafficSigns.jpg b/doc/images/OSI_DetectedTrafficSigns.jpg
new file mode 100644
index 000000000..a8f7043cc
Binary files /dev/null and b/doc/images/OSI_DetectedTrafficSigns.jpg differ
diff --git a/doc/images/OSI_Dimension3d.jpg b/doc/images/OSI_Dimension3d.jpg
new file mode 100644
index 000000000..8791e44fb
Binary files /dev/null and b/doc/images/OSI_Dimension3d.jpg differ
diff --git a/doc/images/OSI_HostVehicle.jpg b/doc/images/OSI_HostVehicle.jpg
new file mode 100644
index 000000000..233f7088c
Binary files /dev/null and b/doc/images/OSI_HostVehicle.jpg differ
diff --git a/doc/images/OSI_MainTrafficSign.jpg b/doc/images/OSI_MainTrafficSign.jpg
new file mode 100644
index 000000000..a1355353c
Binary files /dev/null and b/doc/images/OSI_MainTrafficSign.jpg differ
diff --git a/doc/images/OSI_RoadMarking.jpg b/doc/images/OSI_RoadMarking.jpg
new file mode 100644
index 000000000..df7c953ab
Binary files /dev/null and b/doc/images/OSI_RoadMarking.jpg differ
diff --git a/doc/images/OSI_StatObject.jpg b/doc/images/OSI_StatObject.jpg
new file mode 100644
index 000000000..54f5b546c
Binary files /dev/null and b/doc/images/OSI_StatObject.jpg differ
diff --git a/doc/images/OSI_SuppSign.jpg b/doc/images/OSI_SuppSign.jpg
new file mode 100644
index 000000000..1578d9dbe
Binary files /dev/null and b/doc/images/OSI_SuppSign.jpg differ
diff --git a/doc/images/OSI_TrafficLight.jpg b/doc/images/OSI_TrafficLight.jpg
new file mode 100644
index 000000000..ae6fb2dc4
Binary files /dev/null and b/doc/images/OSI_TrafficLight.jpg differ
diff --git a/doc/images/OSI_TrafficSigns.jpg b/doc/images/OSI_TrafficSigns.jpg
new file mode 100644
index 000000000..687ee130e
Binary files /dev/null and b/doc/images/OSI_TrafficSigns.jpg differ
diff --git a/doc/images/images.zip b/doc/images/images.zip
new file mode 100644
index 000000000..85af6cba2
Binary files /dev/null and b/doc/images/images.zip differ
diff --git a/osi_common.proto b/osi_common.proto
index 118cf28a8..fe2e088da 100644
--- a/osi_common.proto
+++ b/osi_common.proto
@@ -87,6 +87,8 @@ message Timestamp
// \brief The dimension of a 3D box, e.g. the size of a 3D bounding box or its
// uncertainties.
//
+// \image html OSI_Dimension3d.jpg
+//
// The dimensions are positive. Uncertainties are negative or positive.
//
// Dimension is defined in the specified reference coordinate frame along the
@@ -135,7 +137,9 @@ message Dimension3d
//
// Rotation_yaw_pitch_roll = Rotation_roll*Rotation_pitch*Rotation_yaw
//
-// vector_global_coord_system := Inverse_Rotation_yaw_pitch_roll(Orientation3d)*(vector_local_coord_system) + local_origin::position
+// vector_global_coord_system :=
+// Inverse_Rotation_yaw_pitch_roll(Orientation3d)*(vector_local_coord_system)
+// + local_origin::position
//
// \attention This definition changed in OSI version 3.0.0. Previous OSI
// versions (V2.xx) had an other definition.
@@ -198,7 +202,9 @@ message MountingPosition
// Orientation offset relative to the specified reference coordinate system.
//
- // Origin_sensor := Rotation_yaw_pitch_roll(#orientation)*(Origin_reference_coordinate_system - #position)
+ // Origin_sensor :=
+ // Rotation_yaw_pitch_roll(#orientation)*(Origin_reference_coordinate_system
+ // - #position)
//
optional Orientation3d orientation = 2;
}
@@ -210,13 +216,14 @@ 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 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 Orientation3d. For the
+// \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 Orientation3d. For the
// sense of each rotation, the right-hand rule applies.
//
-// vector_cartesian := Rotation(#elevation)*Rotation(#azimuth)*Unit_vector_x*#distance
+// vector_cartesian :=
+// Rotation(#elevation)*Rotation(#azimuth)*Unit_vector_x*#distance
//
message Spherical3d
{
@@ -245,8 +252,10 @@ message Spherical3d
// This includes the \c StationaryObject , \c TrafficSign ,
// \c TrafficLight , \c RoadMarking messages.
//
+// \image html OSI_BaseStationary.jpg
+//
// All coordinates and orientations from ground truth objects are relative to
-// the global ground truth frame. All coordinates and orientations
+// the global ground truth frame (see image). All coordinates and orientations
// from detected objects are relative to the host vehicle frame (see:
// \c MovingObject::Vehicle vehicle reference point).
//
@@ -265,7 +274,9 @@ message BaseStationary
// The relative orientation of the stationary object w.r.t. its parent
// frame.
//
- // Origin_base_stationary_entity := Rotation_yaw_pitch_roll(#orientation)*(Origin_parent_coordinate_system - #position)
+ // Origin_base_stationary_entity :=
+ // Rotation_yaw_pitch_roll(#orientation)*(Origin_parent_coordinate_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.
@@ -274,8 +285,8 @@ message BaseStationary
// 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 \c Dimension3d. The contour is
- // the projection of the object's outline onto the z-plane in the object
+ // the concept of a bounding box as defined by \c 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.
//
@@ -318,7 +329,9 @@ message BaseMoving
// The relative orientation of the moving object w.r.t. its parent frame.
//
- // Origin_base_moving_entity := Rotation_yaw_pitch_roll(#orientation)*(Origin_parent_coordinate_system - #position)
+ // Origin_base_moving_entity :=
+ // Rotation_yaw_pitch_roll(#orientation)*(Origin_parent_coordinate_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.
@@ -338,7 +351,8 @@ message BaseMoving
// The acceleration becomes global/absolute if the parent frame is not
// accelerating.
//
- // #position (t) := #position (t-dt)+ #velocity *dt+ #acceleration /2*dt^2
+ // #position (t) := #position (t-dt)+ #velocity *dt+ #acceleration
+ // /2*dt^2
//
// #velocity (t) := #velocity (t-dt)+ #acceleration *dt
//
@@ -348,16 +362,19 @@ message BaseMoving
// frame and parent orientation rate in the center point of the bounding box
// (origin of the bounding box frame).
//
- // Rotation_yaw_pitch_roll(#orientation (t)) := Rotation_yaw_pitch_roll(#orientation_rate *dt)*Rotation_yaw_pitch_roll(#orientation (t-dt))
+ // Rotation_yaw_pitch_roll(#orientation (t)) :=
+ // Rotation_yaw_pitch_roll(#orientation_rate
+ // *dt)*Rotation_yaw_pitch_roll(#orientation (t-dt))
//
- // \note #orientation (t) is \b not equal #orientation (t-dt)+#orientation_rate *dt
+ // \note #orientation (t) is \b not equal #orientation
+ // (t-dt)+#orientation_rate *dt
//
optional Orientation3d orientation_rate = 6;
// 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 \c Dimension3d. The contour is
- // the projection of the object's outline onto the z-plane in the object
+ // the concept of a bounding box as defined by \c 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.
//
diff --git a/osi_detectedlane.proto b/osi_detectedlane.proto
index 98a6315d7..1987949ae 100644
--- a/osi_detectedlane.proto
+++ b/osi_detectedlane.proto
@@ -70,12 +70,13 @@ message DetectedLaneBoundary
// attribute has to be set for each instance. All other values will be
// reused from the previous \c BoundaryPoint in the sequence or set to
// default values if there is none or it was never set. For dashed lines,
- // one \c LaneBoundary::BoundaryPoint has to be at the start and another at the end
- // of each dashed line segment. For Botts' dots lines, one
- // \c LaneBoundary::BoundaryPoint position has to define each Botts' dot.
+ // one \c LaneBoundary::BoundaryPoint has to be at the start and another at
+ // the end of each dashed line segment. For Botts' dots lines, one \c
+ // LaneBoundary::BoundaryPoint position has to define each Botts' dot.
//
- // \attention For \c LaneBoundary::BoundaryPoint the same rules regarding maximum
- // distance and approximation error apply as for \c Lane::Classification::centerline.
+ // \attention For \c LaneBoundary::BoundaryPoint the same rules regarding
+ // maximum distance and approximation error apply as for \c
+ // Lane::Classification::centerline.
//
repeated LaneBoundary.BoundaryPoint boundary_line = 3;
diff --git a/osi_detectedobject.proto b/osi_detectedobject.proto
index 52ef0670d..754040dc8 100644
--- a/osi_detectedobject.proto
+++ b/osi_detectedobject.proto
@@ -71,8 +71,8 @@ message DetectedItemHeader
//
MEASUREMENT_STATE_UNKNOWN = 0;
- // Measurement state is unspecified (but known, i.e. value is not part of
- // this enum list).
+ // Measurement state is unspecified (but known, i.e. value is not part
+ // of this enum list).
//
MEASUREMENT_STATE_OTHER = 1;
@@ -91,6 +91,8 @@ message DetectedItemHeader
// \brief A stationary object (e.g. landmark) in the environment as detected by
// the sensor.
//
+// \image html OSI_DetectedStatObject.jpg
+//
message DetectedStationaryObject
{
// Common information of one detected item.
@@ -242,18 +244,20 @@ message DetectedMovingObject
// Specific information about the classification of the vehicle.
//
//
- // \note This field is mandatory if the \c CandidateMovingObject::type is
- // \c MovingObject::TYPE_VEHICLE .
+ // \note This field is mandatory if the \c CandidateMovingObject::type
+ // is \c MovingObject::TYPE_VEHICLE .
//
optional MovingObject.VehicleClassification vehicle_classification = 3;
// Pedestrian head pose for behavior prediction. Describes the head
// orientation w.r.t. the host vehicle orientation.
// The x-axis of the right-handed head frame is pointing along the
- // pedestrian's straight ahead viewing direction and the z-axis is pointing
- // upwards (cranial direction [1] i.e. to pedestrian's skull cap).
+ // pedestrian's straight ahead viewing direction and the z-axis is
+ // pointing upwards (cranial direction [1] i.e. to pedestrian's skull
+ // cap).
//
- // View_normal_base_coord_system = Inverse_Rotation(#head_pose)*Unit_vector_x
+ // View_normal_base_coord_system =
+ // Inverse_Rotation(#head_pose)*Unit_vector_x
//
// \note This field is mandatory if the \c CandidateMovingObject.type is
// \c MovingObject::TYPE_PEDESTRIAN
@@ -266,14 +270,15 @@ message DetectedMovingObject
// Pedestrian upper body pose for behavior prediction. Describes the
// upper body orientation w.r.t. the host vehicle orientation.
// The x-axis of the right-handed upper body frame is pointing along the
- // pedestrian's upper body ventral direction [2] (i.e. usually pedestrian's
- // intended moving direction) and the z-axis is pointing upwards (to
- // pedestrian's head).
+ // pedestrian's upper body ventral direction [2] (i.e. usually
+ // pedestrian's intended moving direction) and the z-axis is pointing
+ // upwards (to pedestrian's head).
//
- // View_normal_base_coord_system = Inverse_Rotation(#upper_body_pose)*Unit_vector_x
+ // View_normal_base_coord_system =
+ // Inverse_Rotation(#upper_body_pose)*Unit_vector_x
//
- // \note This field is mandatory if the \c CandidateMovingObject::type is
- // \c MovingObject::TYPE_PEDESTRIAN
+ // \note This field is mandatory if the \c CandidateMovingObject::type
+ // is \c MovingObject::TYPE_PEDESTRIAN
//
// \par References:
// - [2] https://en.wikipedia.org/wiki/Anatomical_terms_of_location
diff --git a/osi_detectedroadmarking.proto b/osi_detectedroadmarking.proto
index 789c13e6d..906b6c790 100644
--- a/osi_detectedroadmarking.proto
+++ b/osi_detectedroadmarking.proto
@@ -11,6 +11,8 @@ package osi3;
//
// \brief A road marking in the environment as detected by the sensor.
//
+// \image html OSI_DetectedRoadMarking.jpg
+//
message DetectedRoadMarking
{
// Common information of one detected item.
diff --git a/osi_detectedtrafficlight.proto b/osi_detectedtrafficlight.proto
index 91509c528..cb062c6a5 100644
--- a/osi_detectedtrafficlight.proto
+++ b/osi_detectedtrafficlight.proto
@@ -11,6 +11,8 @@ package osi3;
//
// \brief A traffic light in the environment as detected by the sensor.
//
+// \image html OSI_DetectedTrafficLight.jpg
+//
message DetectedTrafficLight
{
// Common information of one detected item.
diff --git a/osi_detectedtrafficsign.proto b/osi_detectedtrafficsign.proto
index 24904e9aa..a527e2d74 100644
--- a/osi_detectedtrafficsign.proto
+++ b/osi_detectedtrafficsign.proto
@@ -11,6 +11,8 @@ package osi3;
//
// \brief A traffic sign in the environment as detected by the sensor.
//
+// \image html OSI_DetectedTrafficSigns.jpg
+//
message DetectedTrafficSign
{
// Common information of one detected item.
@@ -30,6 +32,8 @@ message DetectedTrafficSign
//
// \brief Candidates for a detected main sign as estimated by the sensor.
//
+ // \image html OSI_DetectedMainTrafficSign.jpg
+ //
message DetectedMainSign
{
// A list of candidates for this traffic sign as estimated by the
@@ -48,8 +52,8 @@ message DetectedTrafficSign
// (Normally it is equal to the ground truth z-axis.)
// The x-axis of the given \c BaseStationary::orientation is view
// normal of the traffic sign's image.
- // This x-axis points from the traffic sign's image in the direction from
- // where a 'viewer' could see the traffic sign image.
+ // This x-axis points from the traffic sign's image in the direction
+ // from where a 'viewer' could see the traffic sign image.
//
optional BaseStationary base = 2;
@@ -71,9 +75,9 @@ message DetectedTrafficSign
{
// The estimated probability that this candidate is the true value.
//
- // \note The sum of all \c #probability must be one. This probability is
- // given under the condition of
- // \c DetectedItemHeader::existence_probability.
+ // \note The sum of all \c #probability must be one. This
+ // probability is given under the condition of \c
+ // DetectedItemHeader::existence_probability.
//
// Range: [0,1]
//
@@ -104,11 +108,12 @@ message DetectedTrafficSign
//
GEOMETRY_CIRCLE = 2;
- // Traffic sign has a triangular geometry pointing to the top. (3 corners)
+ // Traffic sign has a triangular geometry pointing to the top. (3
+ // corners)
//
GEOMETRY_TRIANGLE_TOP = 3;
- //Traffic sign has a triangular geometry pointing down. (3 corners)
+ // Traffic sign has a triangular geometry pointing down. (3 corners)
//
GEOMETRY_TRIANGLE_DOWN = 4;
@@ -135,11 +140,13 @@ message DetectedTrafficSign
//
GEOMETRY_DIAMOND = 9;
- // Traffic sign has a geometry of an arrow pointing to the left. (5 corners)
+ // Traffic sign has a geometry of an arrow pointing to the left. (5
+ // corners)
//
GEOMETRY_ARROW_LEFT = 10;
- // Traffic sign has a geometry of an arrow pointing to the right. (5 corners)
+ // Traffic sign has a geometry of an arrow pointing to the right. (5
+ // corners)
//
GEOMETRY_ARROW_RIGHT = 11;
@@ -153,6 +160,8 @@ message DetectedTrafficSign
// \brief Candidates for all detected supplementary signs of one traffic
// sign as estimated by the sensor.
//
+ // \image html OSI_DetectedSuppSign.jpg
+ //
message DetectedSupplementarySign
{
// The definition of one of more supplementary signs that together
@@ -167,12 +176,12 @@ message DetectedTrafficSign
// The orientation of the bounding box \c SupplementarySign::base
// ( \c BaseStationary::orientation ) is defined as follows:
// The z-axis of the given \c BaseStationary::orientation is the vector
- // from the bottom to the top of the supplementary traffic sign's 2D image
- // plate. (Normally it is equal to the ground truth z-axis.)
- // The x-axis of the given \c BaseStationary::orientation is view
- // normal of the supplementary traffic sign's image.
- // This x-axis points from the supplementary traffic sign's image in the
- // direction from where a 'viewer' could see the supplementary traffic sign image.
+ // from the bottom to the top of the supplementary traffic sign's 2D
+ // image plate. (Normally it is equal to the ground truth z-axis.) The
+ // x-axis of the given \c BaseStationary::orientation is view normal of
+ // the supplementary traffic sign's image. This x-axis points from the
+ // supplementary traffic sign's image in the direction from where a
+ // 'viewer' could see the supplementary traffic sign image.
//
optional BaseStationary base = 2;
@@ -191,21 +200,22 @@ message DetectedTrafficSign
{
// The estimated probability that this candidate is the true value.
//
- // \note The sum of all \c #probability must be one. This probability is
- // given under the condition of
- // \c DetectedItemHeader::existence_probability.
+ // \note The sum of all \c #probability must be one. This
+ // probability is given under the condition of \c
+ // DetectedItemHeader::existence_probability.
//
// Range: [0,1]
//
optional double probability = 1;
- // The classification of one of more supplementary signs that together
- // define this candidate.
+ // The classification of one of more supplementary signs that
+ // together define this candidate.
//
// \note IDs, which are referenced in this message, usually
// reference to \c DetectedXXX::tracking_id IDs.
//
- optional TrafficSign.SupplementarySign.Classification classification = 2;
+ optional TrafficSign.SupplementarySign.Classification
+ classification = 2;
}
}
}
diff --git a/osi_environment.proto b/osi_environment.proto
index 00d61a854..0f3e01b12 100644
--- a/osi_environment.proto
+++ b/osi_environment.proto
@@ -109,9 +109,12 @@ message EnvironmentalConditions
// contrast of a distant object against its background.
//
// \par References:
- // - [2] SHEPARD, Frank D. Reduced visibility due to fog on the highway. Transportation Research Board, 1996.
- // - [3] [StVO 17 chapter 3](https://www.stvo.de/strassenverkehrsordnung/101-17-beleuchtung)
- // - [4] [Homepage of the Meteorological Office](http://www.metoffice.gov.uk/guide/weather/observations-guide/how-we-measure-visibility)
+ // - [2] SHEPARD, Frank D. Reduced visibility due to fog on the highway.
+ // Transportation Research Board, 1996.
+ // - [3] [StVO 17 chapter
+ // 3](https://www.stvo.de/strassenverkehrsordnung/101-17-beleuchtung)
+ // - [4] [Homepage of the Meteorological
+ // Office](http://www.metoffice.gov.uk/guide/weather/observations-guide/how-we-measure-visibility)
//
enum Fog
{
@@ -175,11 +178,17 @@ message EnvironmentalConditions
// [6] and standards for required lighting levels on roads [6, 7, 8, 9].
//
// \par References:
- // - [5] [The NIST Reference on Constants, Units, and Uncertainty](https://physics.nist.gov/cuu/Units/units.html)
- // - [6] [National Optical Astronomy Observatory](https://www.noao.edu/education/QLTkit/ACTIVITY_Documents/Safety/LightLevels_outdoor+indoor.pdf)
- // - [7] [Standards for required street lighting in the USA](http://www.wsdot.wa.gov/research/reports/fullreports/847.1.pdf)
- // - [8] [Canadian IES-RP-8 standards for road lighting - municipality of Saint-Gedeon-de-. Beauce](http://sslnet.ca/wp-content/uploads/2011/10/LTE-RT-2011-0076-Anglais.pdf)
- // - [9] [European standards for road lighting](http://courtneystrong.com/wp-content/uploads/2017/07/css-sl1-class-and-quality-of-street-lighting.pdf)
+ // - [5] [The NIST Reference on Constants, Units, and
+ // Uncertainty](https://physics.nist.gov/cuu/Units/units.html)
+ // - [6] [National Optical Astronomy
+ // Observatory](https://www.noao.edu/education/QLTkit/ACTIVITY_Documents/Safety/LightLevels_outdoor+indoor.pdf)
+ // - [7] [Standards for required street lighting in the
+ // USA](http://www.wsdot.wa.gov/research/reports/fullreports/847.1.pdf)
+ // - [8] [Canadian IES-RP-8 standards for road lighting - municipality of
+ // Saint-Gedeon-de-.
+ // Beauce](http://sslnet.ca/wp-content/uploads/2011/10/LTE-RT-2011-0076-Anglais.pdf)
+ // - [9] [European standards for road
+ // lighting](http://courtneystrong.com/wp-content/uploads/2017/07/css-sl1-class-and-quality-of-street-lighting.pdf)
//
enum AmbientIllumination
{
@@ -194,8 +203,8 @@ message EnvironmentalConditions
// Level 1 illumination in ]0.001, 0.01[ [lx]
// E.g. Night with no artificial light.
//
- // \note Use \c #AMBIENT_ILLUMINATION_LEVEL1 if illumination is less than
- // 0.001 [lx]
+ // \note Use \c #AMBIENT_ILLUMINATION_LEVEL1 if illumination is less
+ // than 0.001 [lx]
//
AMBIENT_ILLUMINATION_LEVEL1 = 2;
@@ -242,8 +251,8 @@ message EnvironmentalConditions
// Level 9 illumination in [10000, 120000[ [lx]
// E.g. Full daylight to intense sunlight.
//
- // \note Use \c #AMBIENT_ILLUMINATION_LEVEL9 if illumination is more than
- // 120000 [lx]
+ // \note Use \c #AMBIENT_ILLUMINATION_LEVEL9 if illumination is more
+ // than 120000 [lx]
//
AMBIENT_ILLUMINATION_LEVEL9 = 10;
}
diff --git a/osi_groundtruth.proto b/osi_groundtruth.proto
index 428faa991..96dd27025 100644
--- a/osi_groundtruth.proto
+++ b/osi_groundtruth.proto
@@ -125,7 +125,9 @@ message GroundTruth
// Unit: []
//
// \par References:
- // - [1] [International Standard ISO 3166-1: Codes for the representation of names of countries and their subdivisions - Part 1: Country codes, third ed., 2013] (https://www.iso.org/obp/ui/)
+ // - [1] [International Standard ISO 3166-1: Codes for the representation of
+ // names of countries and their subdivisions - Part 1: Country codes, third
+ // ed., 2013] (https://www.iso.org/obp/ui/)
// - [2] [Wikipedia ISO 3166/1] (https://en.wikipedia.org/wiki/ISO_3166-1)
//
optional uint32 country_code = 13;
diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto
index 957ddb8ff..3aa6f4a7b 100644
--- a/osi_hostvehicledata.proto
+++ b/osi_hostvehicledata.proto
@@ -10,6 +10,8 @@ package osi3;
// \brief Interface for host vehicle data that is available to sensors and
// other functions due to host vehicle's internal communication.
//
+// \image html OSI_HostVehicle.jpg
+//
// All coordinates and orientations are relative to the global ground truth
// coordinate system.
//
diff --git a/osi_lane.proto b/osi_lane.proto
index ac7fc8e85..f51650a90 100644
--- a/osi_lane.proto
+++ b/osi_lane.proto
@@ -45,7 +45,7 @@ message Lane
// Example: \c #type = \c #TYPE_DRIVING (see reference picture)
//
optional Type type = 1;
-
+
// Indicates that the host vehicle travels on this particular lane.
// The host vehicle may travel on more than one lane at once. This does
// also apply for the \c CanditateLane in the \c DetectedLane .
@@ -54,21 +54,22 @@ message Lane
// The lane's center line (as a list of segments).
//
- // This is the line, that a typical vehicle is supposed to follow. Thus, if
- // the road narrows (e.g. at a construction site) this line is supposed to
- // describe the trajectory that the vehicle should follow. The intended
- // direction of travel on the lane is given by the direction defined by the
- // sequence of points forming the center line.
+ // This is the line, that a typical vehicle is supposed to follow. Thus,
+ // if the road narrows (e.g. at a construction site) this line is
+ // supposed to describe the trajectory that the vehicle should follow.
+ // The intended direction of travel on the lane is given by the
+ // direction defined by the sequence of points forming the center line.
//
// \image html highway_exit.png "Center lines as yellow dotted lines."
//
// \attention The points describing the center line might be set at
- // arbitrary distances. When the points are pairwise linearly connected, the
- // lateral distance to the real ideal line (as used by the simulation
- // environment internally) must not exceed 5cm. As shown in the following
- // image:
+ // arbitrary distances. When the points are pairwise linearly connected,
+ // the lateral distance to the real ideal line (as used by the
+ // simulation environment internally) must not exceed 5cm. As shown in
+ // the following image:
//
- // \image html line_approximation_error.png "Approximation error as green line."
+ // \image html line_approximation_error.png "Approximation error as
+ // green line."
//
// \note The \c #centerline is defined only for \c #type =
// \c #TYPE_DRIVING and one \c #lane_pairing pair.
@@ -78,23 +79,23 @@ message Lane
// Definition of the intended driving direction.
//
// Defined and used for driving lanes.
- // true means driving direction is according to ascending storage order of
- // center line points.
- // false means driving direction is according to descending storage order of
- // center line points.
+ // true means driving direction is according to ascending storage order
+ // of center line points. false means driving direction is according to
+ // descending storage order of center line points.
//
- // \note The \c #centerline_is_driving_direction is defined for \c #type =
- // \c #TYPE_DRIVING .
+ // \note The \c #centerline_is_driving_direction is defined for \c #type
+ // = \c #TYPE_DRIVING .
//
optional bool centerline_is_driving_direction = 4;
- // List of IDs of all lane segments that are directly adjacent to the lane
- // on the left side (w.r.t. intended driving direction). Note that lengths
- // of lane segments are not synchronized and therefore there are multiple
- // adjacent segments if there is a split/merge point in the adjacent lane.
+ // List of IDs of all lane segments that are directly adjacent to the
+ // lane on the left side (w.r.t. intended driving direction). Note that
+ // lengths of lane segments are not synchronized and therefore there are
+ // multiple adjacent segments if there is a split/merge point in the
+ // adjacent lane.
//
- // Example: The lane ID 2 is the only left adjacent lane for lane ID 3 in
- // the reference picture.
+ // Example: The lane ID 2 is the only left adjacent lane for lane ID 3
+ // in the reference picture.
//
// \note The \c #left_adjacent_lane_id is undefined for \c #type =
// \c #TYPE_INTERSECTION .
@@ -103,14 +104,14 @@ message Lane
//
repeated Identifier left_adjacent_lane_id = 5;
- // List of IDs of all lane segments that are directly adjacent to the lane
- // on the right side (w.r.t. intended driving direction). Note that lengths
- // of lane segments are not synchronized and therefore there are multiple
- // adjacent segments if there is a split/merge point in the adjacent lane.
- // Example: The lane IDs 4 and 7 are the right adjacent lane segments for
- // lane ID 3 in the reference picture due to the lane split. Lane ID 6 is
- // not a right adjacent lane to lane ID 3 as they are separated by lane ID
- // 7.
+ // List of IDs of all lane segments that are directly adjacent to the
+ // lane on the right side (w.r.t. intended driving direction). Note that
+ // lengths of lane segments are not synchronized and therefore there are
+ // multiple adjacent segments if there is a split/merge point in the
+ // adjacent lane. Example: The lane IDs 4 and 7 are the right adjacent
+ // lane segments for lane ID 3 in the reference picture due to the lane
+ // split. Lane ID 6 is not a right adjacent lane to lane ID 3 as they
+ // are separated by lane ID 7.
//
// \note The \c #right_adjacent_lane_id is undefined for \c #type =
// \c #TYPE_INTERSECTION .
@@ -120,20 +121,19 @@ message Lane
repeated Identifier right_adjacent_lane_id = 6;
// The antecessor/successor lane pairings of this lane. There can be
- // multiple pairings with the same antecessor and different successor lanes
- // and vice versa.
- // The antecessor lanes end in the same point that this lane starts from.
- // The successor lanes start in the same point that this lane ends in.
- // Example:
+ // multiple pairings with the same antecessor and different successor
+ // lanes and vice versa. The antecessor lanes end in the same point that
+ // this lane starts from. The successor lanes start in the same point
+ // that this lane ends in. Example:
//
// \note OSI uses singular instead of plural for repeated field names.
//
repeated LanePairing lane_pairing = 7;
- // The right adjacent lane boundaries \c #right_lane_boundary_id may only be
- // shared with/as the left adjacent lane boundaries
- // \c #left_lane_boundary_id of the nearest right adjacent lane
- // \c #right_adjacent_lane_id.
+ // The right adjacent lane boundaries \c #right_lane_boundary_id may
+ // only be shared with/as the left adjacent lane boundaries \c
+ // #left_lane_boundary_id of the nearest right adjacent lane \c
+ // #right_adjacent_lane_id.
//
// \note Empty for intersections.
//
@@ -144,10 +144,10 @@ message Lane
//
repeated Identifier right_lane_boundary_id = 8;
- // The left adjacent lane boundaries \c #left_lane_boundary_id may only be
- // shared with/as the right adjacent lane boundaries
- // \c #right_lane_boundary_id of the nearest left adjacent lane
- // \c #left_adjacent_lane_id.
+ // The left adjacent lane boundaries \c #left_lane_boundary_id may only
+ // be shared with/as the right adjacent lane boundaries \c
+ // #right_lane_boundary_id of the nearest left adjacent lane \c
+ // #left_adjacent_lane_id.
//
// \note Empty for intersections.
//
@@ -184,7 +184,8 @@ message Lane
TYPE_OTHER = 1;
// A normal lane.
- // Example: lanes with IDs 1, 2, 3, 4 and 7 of the highway_exit image.
+ // Example: lanes with IDs 1, 2, 3, 4 and 7 of the highway_exit
+ // image.
//
TYPE_DRIVING = 2;
@@ -227,10 +228,10 @@ message Lane
//
optional double surface_ice = 4;
- // The coefficient representing the roughness or unevenness of the road.
- // International Roughness Index (IRI) [1] values range from 0 = smooth
- // ground (equivalent to driving on a plate of glass) up to > 20 mm/m
- // (a very rough road).
+ // The coefficient representing the roughness or unevenness of the
+ // road. International Roughness Index (IRI) [1] values range from 0
+ // = smooth ground (equivalent to driving on a plate of glass) up to
+ // > 20 mm/m (a very rough road).
//
// Estimated value ranges (IRI):
// 0.0 [mm/m] absolutely perfect evenness
@@ -265,9 +266,10 @@ message Lane
// The surface texture or fine roughness
//
// Whereas the IRI-based roughness or unevenness measure only takes
- // into account road wavelengths around 0.5m - 100m, the surface texture
- // or fine roughness [2] measures only wavelengths below 0.5m.
- // It is given as the standard height deviation of fine roughness
+ // into account road wavelengths around 0.5m - 100m, the surface
+ // texture or fine roughness [2] measures only wavelengths below
+ // 0.5m. It is given as the standard height deviation of fine
+ // roughness
//
// Unit: [m]
//
@@ -315,13 +317,13 @@ message LaneBoundary
// Since a \c BoundaryPoint is part of a sequence, only the position
// attribute has to be set for each instance. All other values will be
// reused from the previous \c BoundaryPoint in the sequence or set to
- // default values if there is none or it was never set.
+ // default values if there is none or it was never set.
//
// \note For dashed lines, one \c BoundaryPoint has to be at the start and
- // another at the end of each dashed line segment. The first
+ // another at the end of each dashed line segment. The first
// \c BoundaryPoint defines the beginning of the first dashed lane marking.
- // The last \c BoundaryPoint defines the end of the last dashed lane
- // marking. For example, the area between the second and third
+ // The last \c BoundaryPoint defines the end of the last dashed lane
+ // marking. For example, the area between the second and third
// \c BoundaryPoint has no lane marking, and so on.
// \note For Botts' dots lines, one \c BoundaryPoint position has to define
// each Botts' dot.
@@ -383,9 +385,9 @@ message LaneBoundary
repeated Identifier limiting_structure_id = 3;
// The lane boundary type.
- // There is no special representation for double lines, e.g. solid / solid
- // or dashed / solid. In such cases, each lane will define its own side of
- // the lane boundary.
+ // There is no special representation for double lines, e.g. solid /
+ // solid or dashed / solid. In such cases, each lane will define its own
+ // side of the lane boundary.
//
enum Type
{
@@ -451,12 +453,13 @@ message LaneBoundary
}
// The color of the lane boundary in case of a lane markings.
- // Lane markings that alternate in color must be represented by individual
- // \c LaneBoundary segments.
+ // Lane markings that alternate in color must be represented by
+ // individual \c LaneBoundary segments.
//
enum Color
{
- // Color of marking is unknown. Value must not be used in ground truth.
+ // Color of marking is unknown. Value must not be used in ground
+ // truth.
//
COLOR_UNKNOWN = 0;
@@ -464,8 +467,8 @@ message LaneBoundary
//
COLOR_OTHER = 1;
- // Marking without color. Used to represent logical boundaries without
- // actual physical markings at the respective position.
+ // Marking without color. Used to represent logical boundaries
+ // without actual physical markings at the respective position.
// Value may be used in ground truth only.
//
COLOR_NONE = 2;
diff --git a/osi_object.proto b/osi_object.proto
index e11f9c89b..91b26cc1f 100644
--- a/osi_object.proto
+++ b/osi_object.proto
@@ -11,6 +11,8 @@ package osi3;
// \c MovingObject e.g. pedestrian, animal, or vehicle) nor a traffic related
// object (\c TrafficLight, \c TrafficSign).
//
+// \image html OSI_StatObject.jpg
+//
// \c StationaryObject excludes traffic lights, traffic signs and road marking
//
message StationaryObject
@@ -100,23 +102,24 @@ message StationaryObject
//
TYPE_WALL = 11;
- // Landmarks corresponding to vertical structures in the environment.
+ // Landmarks corresponding to vertical structures in the
+ // environment.
//
TYPE_VERTICAL_STRUCTURE = 12;
- // Landmarks corresponding to rectangular structures in the environment,
- // like walls.
+ // Landmarks corresponding to rectangular structures in the
+ // environment, like walls.
//
TYPE_RECTANGULAR_STRUCTURE = 13;
- // Landmarks corresponding to overhead structures in the environment,
- // like sign bridges.
+ // Landmarks corresponding to overhead structures in the
+ // environment, like sign bridges.
//
TYPE_OVERHEAD_STRUCTURE = 14;
- // Landmarks corresponding to light sources or reflective structures in
- // the environment, like street lights or reflective poles on the road
- // boarder.
+ // Landmarks corresponding to light sources or reflective structures
+ // in the environment, like street lights or reflective poles on the
+ // road boarder.
//
TYPE_REFLECTIVE_STRUCTURE = 15;
@@ -130,7 +133,8 @@ message StationaryObject
//
enum Material
{
- // Type of the material is unknown (must not be used in ground truth).
+ // Type of the material is unknown (must not be used in ground
+ // truth).
//
MATERIAL_UNKNOWN = 0;
@@ -167,12 +171,12 @@ message StationaryObject
MATERIAL_MUD = 8;
}
-
// Definition of material density types.
//
enum Density
{
- // Type of the material density is unknown (must not be used in ground truth).
+ // Type of the material density is unknown (must not be used in
+ // ground truth).
//
DENSITY_UNKNOWN = 0;
@@ -331,17 +335,20 @@ message MovingObject
// This is an extension to the \c MovingObject with additional attributes,
// such as type and lights. The origin of the rear (front) axis coordinate
// system in world coordinates is calculated as:
- // \c MovingObject::base . \c BaseMoving::position + R * \c MovingObject::VehicleAttributes::bbcenter_to_rear (front)
- // for the host vehicle (R rotates from vehicle to world frame, i.e. inverse
- // orientation of \c MovingObject::base . \c BaseMoving::orientation).
+ // \c MovingObject::base . \c BaseMoving::position + R * \c
+ // MovingObject::VehicleAttributes::bbcenter_to_rear (front) for the host
+ // vehicle (R rotates from vehicle to world frame, i.e. inverse orientation
+ // of \c MovingObject::base . \c BaseMoving::orientation).
//
// For all vehicles, including host vehicles, the position given in
- // \c MovingObject::base . \c BaseMoving::position points to the center of the vehicle's bounding box.
+ // \c MovingObject::base . \c BaseMoving::position points to the center of
+ // the vehicle's bounding box.
//
- // The vehicle object coordinates are defined as x-axis is the direction from
- // rear to front of the vehicle, y-axis corresponds to rear axle and z-axis
- // points to vehicle ceiling [1]. The coordinate system is right-handed.
- // Therefore the positive y-axis points to the left of the vehicle.
+ // The vehicle object coordinates are defined as x-axis is the direction
+ // from rear to front of the vehicle, y-axis corresponds to rear axle and
+ // z-axis points to vehicle ceiling [1]. The coordinate system is
+ // right-handed. Therefore the positive y-axis points to the left of the
+ // vehicle.
//
// \par References:
// - [1] DIN ISO 8855:2013-11
@@ -350,8 +357,8 @@ message MovingObject
{
// The ID of the driver of the (host) vehicle.
//
- // \note Field need not be set if host_vehicle is set to false or use value
- // for non valid id.
+ // \note Field need not be set if host_vehicle is set to false or use
+ // value for non valid id.
//
optional Identifier driver_id = 1;
@@ -368,15 +375,17 @@ message MovingObject
//
optional uint32 number_wheels = 3;
- // The vector pointing from the bounding box center point (\c MovingObject::base . \c BaseMoving::position) to
- // the middle (in x, y and z) of the rear axle under neutral load
- // conditions. In object coordinates.
+ // The vector pointing from the bounding box center point (\c
+ // MovingObject::base . \c BaseMoving::position) to the middle (in x, y
+ // and z) of the rear axle under neutral load conditions. In object
+ // coordinates.
//
optional Vector3d bbcenter_to_rear = 4;
- // The vector pointing from the bounding box center point (\c MovingObject::base . \c BaseMoving::position) to
- // the middle (in x, y and z) of the front axle under neutral load
- // conditions. In object coordinates.
+ // The vector pointing from the bounding box center point (\c
+ // MovingObject::base . \c BaseMoving::position) to the middle (in x, y
+ // and z) of the front axle under neutral load conditions. In object
+ // coordinates.
//
optional Vector3d bbcenter_to_front = 5;
@@ -409,8 +418,8 @@ message MovingObject
// Id of the attached trailer.
//
- // \note Field need not be set if has_Trailer is set to false or use value
- // for non valid id.
+ // \note Field need not be set if has_Trailer is set to false or use
+ // value for non valid id.
//
optional Identifier trailer_id = 4;
@@ -534,7 +543,8 @@ message MovingObject
//
enum IndicatorState
{
- // Indicator state is unknown (must not be used in ground truth).
+ // Indicator state is unknown (must not be used in ground
+ // truth).
//
INDICATOR_STATE_UNKNOWN = 0;
@@ -559,7 +569,8 @@ message MovingObject
INDICATOR_STATE_WARNING = 5;
}
- // Definition of generic light states for light that may be on or off.
+ // Definition of generic light states for light that may be on or
+ // off.
//
enum GenericLightState
{
@@ -584,7 +595,8 @@ message MovingObject
//
enum BrakeLightState
{
- // Brake light state is unknown (must not be used in ground truth).
+ // Brake light state is unknown (must not be used in ground
+ // truth).
//
BRAKE_LIGHT_STATE_UNKNOWN = 0;
diff --git a/osi_occupant.proto b/osi_occupant.proto
index e1a7380cf..10d2f04b7 100644
--- a/osi_occupant.proto
+++ b/osi_occupant.proto
@@ -106,11 +106,11 @@ message Occupant
//
STEERING_CONTROL_NO_HAND = 2;
- // One hand is on the steering wheel. Whether it is the left or right
- // hand is unspecified or unknown.
+ // One hand is on the steering wheel. Whether it is the left or
+ // right hand is unspecified or unknown.
//
- // \note If there is no differentiation between one or both hands on the
- // steering wheel, this value should be used.
+ // \note If there is no differentiation between one or both hands on
+ // the steering wheel, this value should be used.
//
STEERING_CONTROL_ONE_HAND = 3;
diff --git a/osi_roadmarking.proto b/osi_roadmarking.proto
index c866690f5..cbe760106 100644
--- a/osi_roadmarking.proto
+++ b/osi_roadmarking.proto
@@ -10,11 +10,14 @@ package osi3;
//
// \brief A road surface marking.
//
-// Lane markings are excluded and defined as \c LaneBoundary messages
-// as part of \c Lane.
+// \image html OSI_RoadMarking.jpg
//
// 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
{
@@ -55,8 +58,8 @@ message RoadMarking
//
optional Type type = 1;
- // Traffic sign as road marking (color image, monochrome image or character
- // string).
+ // 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 ).
@@ -64,7 +67,8 @@ message RoadMarking
// \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;
+ 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)
@@ -97,7 +101,7 @@ message RoadMarking
//
enum Type
{
- // Type of road marking is unknown (must not be used in ground
+ // Type of road marking is unknown (must not be used in ground
// truth).
//
TYPE_UNKNOWN = 0;
@@ -106,7 +110,8 @@ message RoadMarking
//
TYPE_OTHER = 1;
- // Paint on the road surface indicating a color image of a traffic sign.
+ // Paint on the road surface indicating a color image of a traffic
+ // sign.
//
TYPE_PAINTED_TRAFFIC_SIGN = 2;
@@ -116,8 +121,8 @@ message RoadMarking
//
TYPE_SYMBOLIC_TRAFFIC_SIGN = 3;
- // Paint on the road surface as a character string (e.g. BUS as bus only
- // lane).
+ // Paint on the road surface as a character string (e.g. BUS as bus
+ // only lane).
//
TYPE_TEXTUAL_TRAFFIC_SIGN = 4;
@@ -138,7 +143,8 @@ message RoadMarking
//
enum Color
{
- // Color of road marking is unknown (must not be used in ground truth).
+ // Color of road marking is unknown (must not be used in ground
+ // truth).
//
COLOR_UNKNOWN = 0;
diff --git a/osi_sensordata.proto b/osi_sensordata.proto
index 250303cd1..e2c6b714a 100644
--- a/osi_sensordata.proto
+++ b/osi_sensordata.proto
@@ -24,8 +24,9 @@ message DetectedEntityHeader
// was processed or at which it is transmitted) in the global synchronized
// time.
//
- // \note See \c SensorData::timestamp and \c SensorData::last_measurement_time
- // for detailed discussions on the semantics of time-related fields.
+ // \note See \c SensorData::timestamp and \c
+ // SensorData::last_measurement_time for detailed discussions on the
+ // semantics of time-related fields.
//
optional Timestamp measurement_time = 1;
@@ -165,19 +166,21 @@ message SensorData
//
// \arg \b x-direction of sensor coordinate system: sensor viewing direction
// \arg \b z-direction of sensor coordinate system: sensor (up)
- // \arg \b y-direction of sensor coordinate system: perpendicular to x and z right hand system
+ // \arg \b y-direction of sensor coordinate system: perpendicular to x and z
+ // right hand system
//
// \par References:
// - [1] DIN ISO 8855:2013-11
//
// \note This field is usually static during the simulation.
// \note The origin of vehicle's coordinate system in world frame is
- // ( \c MovingObject::base . \c BaseMoving::position + Inverse_Rotation_yaw_pitch_roll(
- // \c MovingObject::base . \c BaseMoving::orientation) *
- // \c MovingObject::VehicleAttributes::bbcenter_to_rear) .
- // The orientation of the vehicle's coordinate system is equal to the
- // orientation of the vehicle's bounding box \c MovingObject::base .
- // \c BaseMoving::orientation.
+ // ( \c MovingObject::base . \c BaseMoving::position +
+ // Inverse_Rotation_yaw_pitch_roll( \c MovingObject::base . \c
+ // BaseMoving::orientation) * \c
+ // MovingObject::VehicleAttributes::bbcenter_to_rear) . The orientation of
+ // the vehicle's coordinate system is equal to the orientation of the
+ // vehicle's bounding box \c MovingObject::base . \c
+ // BaseMoving::orientation.
//
optional MountingPosition mounting_position = 6;
diff --git a/osi_sensorview.proto b/osi_sensorview.proto
index f9e4c916e..95b966996 100644
--- a/osi_sensorview.proto
+++ b/osi_sensorview.proto
@@ -70,19 +70,21 @@ message SensorView
//
// \arg \b x-direction of sensor coordinate system: sensor viewing direction
// \arg \b z-direction of sensor coordinate system: sensor (up)
- // \arg \b y-direction of sensor coordinate system: perpendicular to x and z right hand system
+ // \arg \b y-direction of sensor coordinate system: perpendicular to x and z
+ // right hand system
//
// \par References:
// - [1] DIN ISO 8855:2013-11
//
// \note This field is usually static during the simulation.
// \note The origin of vehicle's coordinate system in world frame is
- // ( \c MovingObject::base . \c BaseMoving::position + Inverse_Rotation_yaw_pitch_roll(
- // \c MovingObject::base . \c BaseMoving::orientation) *
- // \c MovingObject::VehicleAttributes::bbcenter_to_rear) .
- // The orientation of the vehicle's coordinate system is equal to the
- // orientation of the vehicle's bounding box \c MovingObject::base .
- // \c BaseMoving::orientation.
+ // ( \c MovingObject::base . \c BaseMoving::position +
+ // Inverse_Rotation_yaw_pitch_roll( \c MovingObject::base . \c
+ // BaseMoving::orientation) * \c
+ // MovingObject::VehicleAttributes::bbcenter_to_rear) . The orientation of
+ // the vehicle's coordinate system is equal to the orientation of the
+ // vehicle's bounding box \c MovingObject::base . \c
+ // BaseMoving::orientation.
//
optional MountingPosition mounting_position = 4;
diff --git a/osi_sensorviewconfiguration.proto b/osi_sensorviewconfiguration.proto
index 4a3df1e10..2899f338b 100644
--- a/osi_sensorviewconfiguration.proto
+++ b/osi_sensorviewconfiguration.proto
@@ -98,14 +98,14 @@ message SensorViewConfiguration
// - [1] DIN ISO 8855:2013-11
//
// \note The origin of vehicle's coordinate system in world frame is
- // ( \c MovingObject::base . \c BaseMoving::position + Inverse_Rotation_yaw_pitch_roll(
- // \c MovingObject::base . \c BaseMoving::orientation) *
- // \c MovingObject::VehicleAttributes::bbcenter_to_rear) .
- // The orientation of the vehicle's coordinate system is equal to the
- // orientation of the vehicle's bounding box \c MovingObject::base .
- // \c BaseMoving::orientation.
- // \note A default position can be provided by the sensor model (e.g. to
- // indicate the position the model was validated for),
+ // ( \c MovingObject::base . \c BaseMoving::position +
+ // Inverse_Rotation_yaw_pitch_roll( \c MovingObject::base . \c
+ // BaseMoving::orientation) * \c
+ // MovingObject::VehicleAttributes::bbcenter_to_rear) . The orientation of
+ // the vehicle's coordinate system is equal to the orientation of the
+ // vehicle's bounding box \c MovingObject::base . \c
+ // BaseMoving::orientation. \note A default position can be provided by the
+ // sensor model (e.g. to indicate the position the model was validated for),
// but this is optional; the environment simulation must provide a valid
// mounting position (based on the vehicle configuration) when setting the
// view configuration.
@@ -120,18 +120,18 @@ message SensorViewConfiguration
//
// This determines the limit of the cone of interest of ground truth
// that the simulation environment has to provide.
- // Viewing range: [- \c #field_of_view_horizontal/2, \c #field_of_view_horizontal/2]
- // azimuth in the sensor frame as defined in \c Spherical3d.
- // Unit: [rad]
+ // Viewing range: [- \c #field_of_view_horizontal/2, \c
+ // #field_of_view_horizontal/2] azimuth in the sensor frame as defined in \c
+ // Spherical3d. Unit: [rad]
optional double field_of_view_horizontal = 5;
// Field of View in vertical orientation of the sensor.
//
// This determines the limit of the cone of interest of ground truth
// that the simulation environment has to provide.
- // Viewing range: [- \c #field_of_view_vertical/2, \c #field_of_view_vertical/2]
- // elevation in the sensor frame at zero azimuth as defined in
- // \c Spherical3d.
+ // Viewing range: [- \c #field_of_view_vertical/2, \c
+ // #field_of_view_vertical/2] elevation in the sensor frame at zero azimuth
+ // as defined in \c Spherical3d.
//
// Unit: [rad]
optional double field_of_view_vertical = 6;
@@ -187,31 +187,36 @@ message SensorViewConfiguration
//
// \note OSI uses singular instead of plural for repeated field names.
//
- repeated GenericSensorViewConfiguration generic_sensor_view_configuration = 1000;
+ repeated GenericSensorViewConfiguration generic_sensor_view_configuration =
+ 1000;
// Radar-specific Sensor View Configuration(s).
//
// \note OSI uses singular instead of plural for repeated field names.
//
- repeated RadarSensorViewConfiguration radar_sensor_view_configuration = 1001;
+ repeated RadarSensorViewConfiguration radar_sensor_view_configuration =
+ 1001;
// Lidar-specific Sensor View Configuration(s).
//
// \note OSI uses singular instead of plural for repeated field names.
//
- repeated LidarSensorViewConfiguration lidar_sensor_view_configuration = 1002;
+ repeated LidarSensorViewConfiguration lidar_sensor_view_configuration =
+ 1002;
// Camera-specific Sensor View Configuration(s).
//
// \note OSI uses singular instead of plural for repeated field names.
//
- repeated CameraSensorViewConfiguration camera_sensor_view_configuration = 1003;
+ repeated CameraSensorViewConfiguration camera_sensor_view_configuration =
+ 1003;
// Ultrasonic-specific Sensor View Configuration(s).
//
// \note OSI uses singular instead of plural for repeated field names.
//
- repeated UltrasonicSensorViewConfiguration ultrasonic_sensor_view_configuration = 1004;
+ repeated UltrasonicSensorViewConfiguration
+ ultrasonic_sensor_view_configuration = 1004;
}
//
@@ -245,14 +250,14 @@ message GenericSensorViewConfiguration
// - [1] DIN ISO 8855:2013-11
//
// \note The origin of vehicle's coordinate system in world frame is
- // ( \c MovingObject::base . \c BaseMoving::position + Inverse_Rotation_yaw_pitch_roll(
- // \c MovingObject::base . \c BaseMoving::orientation) *
- // \c MovingObject::VehicleAttributes::bbcenter_to_rear) .
- // The orientation of the vehicle's coordinate system is equal to the
- // orientation of the vehicle's bounding box \c MovingObject::base .
- // \c BaseMoving::orientation.
- // \note A default position can be provided by the sensor model (e.g. to
- // indicate the position the model was validated for),
+ // ( \c MovingObject::base . \c BaseMoving::position +
+ // Inverse_Rotation_yaw_pitch_roll( \c MovingObject::base . \c
+ // BaseMoving::orientation) * \c
+ // MovingObject::VehicleAttributes::bbcenter_to_rear) . The orientation of
+ // the vehicle's coordinate system is equal to the orientation of the
+ // vehicle's bounding box \c MovingObject::base . \c
+ // BaseMoving::orientation. \note A default position can be provided by the
+ // sensor model (e.g. to indicate the position the model was validated for),
// but this is optional; the environment simulation must provide a valid
// mounting position (based on the vehicle configuration) when setting the
// view configuration.
@@ -265,17 +270,18 @@ message GenericSensorViewConfiguration
// Field of View in horizontal orientation of the physical sensor.
//
- // Viewing range: [- \c #field_of_view_horizontal/2, \c #field_of_view_horizontal/2]
- // azimuth in the sensor frame as defined in \c Spherical3d.
+ // Viewing range: [- \c #field_of_view_horizontal/2, \c
+ // #field_of_view_horizontal/2] azimuth in the sensor frame as defined in \c
+ // Spherical3d.
//
// Unit: [rad]
optional double field_of_view_horizontal = 4;
// Field of View in vertical orientation of the physical sensor.
//
- // Viewing range: [- \c #field_of_view_vertical/2, \c #field_of_view_vertical/2]
- // elevation in the sensor frame at zero azimuth as defined in
- // \c Spherical3d.
+ // Viewing range: [- \c #field_of_view_vertical/2, \c
+ // #field_of_view_vertical/2] elevation in the sensor frame at zero azimuth
+ // as defined in \c Spherical3d.
//
// Unit: [rad]
optional double field_of_view_vertical = 5;
@@ -315,14 +321,14 @@ message RadarSensorViewConfiguration
// - [1] DIN ISO 8855:2013-11
//
// \note The origin of vehicle's coordinate system in world frame is
- // ( \c MovingObject::base . \c BaseMoving::position + Inverse_Rotation_yaw_pitch_roll(
- // \c MovingObject::base . \c BaseMoving::orientation) *
- // \c MovingObject::VehicleAttributes::bbcenter_to_rear) .
- // The orientation of the vehicle's coordinate system is equal to the
- // orientation of the vehicle's bounding box \c MovingObject::base .
- // \c BaseMoving::orientation.
- // \note A default position can be provided by the sensor model (e.g. to
- // indicate the position the model was validated for),
+ // ( \c MovingObject::base . \c BaseMoving::position +
+ // Inverse_Rotation_yaw_pitch_roll( \c MovingObject::base . \c
+ // BaseMoving::orientation) * \c
+ // MovingObject::VehicleAttributes::bbcenter_to_rear) . The orientation of
+ // the vehicle's coordinate system is equal to the orientation of the
+ // vehicle's bounding box \c MovingObject::base . \c
+ // BaseMoving::orientation. \note A default position can be provided by the
+ // sensor model (e.g. to indicate the position the model was validated for),
// but this is optional; the environment simulation must provide a valid
// mounting position (based on the vehicle configuration) when setting the
// view configuration.
@@ -335,17 +341,18 @@ message RadarSensorViewConfiguration
// Field of View in horizontal orientation of the physical sensor.
//
- // Viewing range: [- \c #field_of_view_horizontal/2, \c #field_of_view_horizontal/2]
- // azimuth in the sensor frame as defined in \c Spherical3d.
+ // Viewing range: [- \c #field_of_view_horizontal/2, \c
+ // #field_of_view_horizontal/2] azimuth in the sensor frame as defined in \c
+ // Spherical3d.
//
// Unit: [rad]
optional double field_of_view_horizontal = 4;
// Field of View in vertical orientation of the physical sensor.
//
- // Viewing range: [- \c #field_of_view_vertical/2, \c #field_of_view_vertical/2]
- // elevation in the sensor frame at zero azimuth as defined in
- // \c Spherical3d.
+ // Viewing range: [- \c #field_of_view_vertical/2, \c
+ // #field_of_view_vertical/2] elevation in the sensor frame at zero azimuth
+ // as defined in \c Spherical3d.
//
// Unit: [rad]
optional double field_of_view_vertical = 5;
@@ -397,7 +404,8 @@ message RadarSensorViewConfiguration
// \brief The radar antenna diagram.
//
// \note Rotation is defined analog Spherical3d
- message AntennaDiagramEntry {
+ message AntennaDiagramEntry
+ {
// Horizontal deflection (azimuth) of entry in sensor/antenna
// coordinates.
//
@@ -449,14 +457,14 @@ message LidarSensorViewConfiguration
// - [1] DIN ISO 8855:2013-11
//
// \note The origin of vehicle's coordinate system in world frame is
- // ( \c MovingObject::base . \c BaseMoving::position + Inverse_Rotation_yaw_pitch_roll(
- // \c MovingObject::base . \c BaseMoving::orientation) *
- // \c MovingObject::VehicleAttributes::bbcenter_to_rear) .
- // The orientation of the vehicle's coordinate system is equal to the
- // orientation of the vehicle's bounding box \c MovingObject::base .
- // \c BaseMoving::orientation.
- // \note A default position can be provided by the sensor model (e.g. to
- // indicate the position the model was validated for),
+ // ( \c MovingObject::base . \c BaseMoving::position +
+ // Inverse_Rotation_yaw_pitch_roll( \c MovingObject::base . \c
+ // BaseMoving::orientation) * \c
+ // MovingObject::VehicleAttributes::bbcenter_to_rear) . The orientation of
+ // the vehicle's coordinate system is equal to the orientation of the
+ // vehicle's bounding box \c MovingObject::base . \c
+ // BaseMoving::orientation. \note A default position can be provided by the
+ // sensor model (e.g. to indicate the position the model was validated for),
// but this is optional; the environment simulation must provide a valid
// mounting position (based on the vehicle configuration) when setting the
// view configuration.
@@ -469,17 +477,18 @@ message LidarSensorViewConfiguration
// Field of View in horizontal orientation of the physical sensor.
//
- // Viewing range: [- \c #field_of_view_horizontal/2, \c #field_of_view_horizontal/2]
- // azimuth in the sensor frame as defined in \c Spherical3d.
+ // Viewing range: [- \c #field_of_view_horizontal/2, \c
+ // #field_of_view_horizontal/2] azimuth in the sensor frame as defined in \c
+ // Spherical3d.
//
// Unit: [rad]
optional double field_of_view_horizontal = 4;
// Field of View in vertical orientation of the physical sensor.
//
- // Viewing range: [- \c #field_of_view_vertical/2, \c #field_of_view_vertical/2]
- // elevation in the sensor frame at zero azimuth as defined in
- // \c Spherical3d.
+ // Viewing range: [- \c #field_of_view_vertical/2, \c
+ // #field_of_view_vertical/2] elevation in the sensor frame at zero azimuth
+ // as defined in \c Spherical3d.
//
// Unit: [rad]
optional double field_of_view_vertical = 5;
@@ -547,14 +556,14 @@ message CameraSensorViewConfiguration
// - [1] DIN ISO 8855:2013-11
//
// \note The origin of vehicle's coordinate system in world frame is
- // ( \c MovingObject::base . \c BaseMoving::position + Inverse_Rotation_yaw_pitch_roll(
- // \c MovingObject::base . \c BaseMoving::orientation) *
- // \c MovingObject::VehicleAttributes::bbcenter_to_rear) .
- // The orientation of the vehicle's coordinate system is equal to the
- // orientation of the vehicle's bounding box \c MovingObject::base .
- // \c BaseMoving::orientation.
- // \note A default position can be provided by the sensor model (e.g. to
- // indicate the position the model was validated for),
+ // ( \c MovingObject::base . \c BaseMoving::position +
+ // Inverse_Rotation_yaw_pitch_roll( \c MovingObject::base . \c
+ // BaseMoving::orientation) * \c
+ // MovingObject::VehicleAttributes::bbcenter_to_rear) . The orientation of
+ // the vehicle's coordinate system is equal to the orientation of the
+ // vehicle's bounding box \c MovingObject::base . \c
+ // BaseMoving::orientation. \note A default position can be provided by the
+ // sensor model (e.g. to indicate the position the model was validated for),
// but this is optional; the environment simulation must provide a valid
// mounting position (based on the vehicle configuration) when setting the
// view configuration.
@@ -567,17 +576,18 @@ message CameraSensorViewConfiguration
// Field of View in horizontal orientation of the physical sensor.
//
- // Viewing range: [- \c #field_of_view_horizontal/2, \c #field_of_view_horizontal/2]
- // azimuth in the sensor frame as defined in \c Spherical3d.
+ // Viewing range: [- \c #field_of_view_horizontal/2, \c
+ // #field_of_view_horizontal/2] azimuth in the sensor frame as defined in \c
+ // Spherical3d.
//
// Unit: [rad]
optional double field_of_view_horizontal = 4;
// Field of View in vertical orientation of the physical sensor.
//
- // Viewing range: [- \c #field_of_view_vertical/2, \c #field_of_view_vertical/2]
- // elevation in the sensor frame at zero azimuth as defined in
- // \c Spherical3d.
+ // Viewing range: [- \c #field_of_view_vertical/2, \c
+ // #field_of_view_vertical/2] elevation in the sensor frame at zero azimuth
+ // as defined in \c Spherical3d.
//
// Unit: [rad]
optional double field_of_view_vertical = 5;
@@ -712,14 +722,14 @@ message UltrasonicSensorViewConfiguration
// - [1] DIN ISO 8855:2013-11
//
// \note The origin of vehicle's coordinate system in world frame is
- // ( \c MovingObject::base . \c BaseMoving::position + Inverse_Rotation_yaw_pitch_roll(
- // \c MovingObject::base . \c BaseMoving::orientation) *
- // \c MovingObject::VehicleAttributes::bbcenter_to_rear) .
- // The orientation of the vehicle's coordinate system is equal to the
- // orientation of the vehicle's bounding box \c MovingObject::base .
- // \c BaseMoving::orientation.
- // \note A default position can be provided by the sensor model (e.g. to
- // indicate the position the model was validated for),
+ // ( \c MovingObject::base . \c BaseMoving::position +
+ // Inverse_Rotation_yaw_pitch_roll( \c MovingObject::base . \c
+ // BaseMoving::orientation) * \c
+ // MovingObject::VehicleAttributes::bbcenter_to_rear) . The orientation of
+ // the vehicle's coordinate system is equal to the orientation of the
+ // vehicle's bounding box \c MovingObject::base . \c
+ // BaseMoving::orientation. \note A default position can be provided by the
+ // sensor model (e.g. to indicate the position the model was validated for),
// but this is optional; the environment simulation must provide a valid
// mounting position (based on the vehicle configuration) when setting the
// view configuration.
@@ -732,17 +742,18 @@ message UltrasonicSensorViewConfiguration
// Field of View in horizontal orientation of the physical sensor.
//
- // Viewing range: [- \c #field_of_view_horizontal/2, \c #field_of_view_horizontal/2]
- // azimuth in the sensor frame as defined in \c Spherical3d.
+ // Viewing range: [- \c #field_of_view_horizontal/2, \c
+ // #field_of_view_horizontal/2] azimuth in the sensor frame as defined in \c
+ // Spherical3d.
//
// Unit: [rad]
optional double field_of_view_horizontal = 4;
// Field of View in vertical orientation of the physical sensor.
//
- // Viewing range: [- \c #field_of_view_vertical/2, \c #field_of_view_vertical/2]
- // elevation in the sensor frame at zero azimuth as defined in
- // \c Spherical3d.
+ // Viewing range: [- \c #field_of_view_vertical/2, \c
+ // #field_of_view_vertical/2] elevation in the sensor frame at zero azimuth
+ // as defined in \c Spherical3d.
//
// Unit: [rad]
optional double field_of_view_vertical = 5;
diff --git a/osi_trafficlight.proto b/osi_trafficlight.proto
index 230a308c7..ab7b607e7 100644
--- a/osi_trafficlight.proto
+++ b/osi_trafficlight.proto
@@ -9,6 +9,8 @@ package osi3;
//
// \brief A traffic light.
//
+// \image html OSI_TrafficLight.jpg
+//
// One traffic light message defines a single 'bulb' and not a box of several
// bulbs, e.g. red, yellow, green are three separate traffic lights.
//
@@ -39,9 +41,9 @@ message TrafficLight
// \note If the color of the traffic light is known (from history or
// geometrical arrangement) and the state \c #mode is
// \c #MODE_OFF then \c #color could remain unchanged.
- // If traffic light displays images in different colors and traffic light
- // is off ( \c #mode = \c #MODE_OFF), then
- // \c #color = \c #COLOR_OTHER .
+ // If traffic light displays images in different colors and traffic
+ // light is off ( \c #mode = \c #MODE_OFF), then \c #color = \c
+ // #COLOR_OTHER .
//
optional Color color = 1;
@@ -130,8 +132,8 @@ message TrafficLight
//
ICON_ARROW_DIAG_LEFT = 5;
- // This traffic light applies to a lane allowing to drive straight ahead
- // or to turn left.
+ // This traffic light applies to a lane allowing to drive straight
+ // ahead or to turn left.
//
ICON_ARROW_STRAIGHT_AHEAD_LEFT = 6;
@@ -143,12 +145,13 @@ message TrafficLight
//
ICON_ARROW_DIAG_RIGHT = 8;
- // This traffic light applies to a lane allowing to drive straight ahead
- // or to turn right.
+ // This traffic light applies to a lane allowing to drive straight
+ // ahead or to turn right.
//
ICON_ARROW_STRAIGHT_AHEAD_RIGHT = 9;
- // This traffic light applies to a lane allowing to turn left or right.
+ // This traffic light applies to a lane allowing to turn left or
+ // right.
//
ICON_ARROW_LEFT_RIGHT = 10;
@@ -167,8 +170,8 @@ message TrafficLight
//
ICON_ARROW_DOWN_RIGHT = 13;
- // This traffic light indicates that the assigned lane is not open for
- // driving.
+ // This traffic light indicates that the assigned lane is not open
+ // for driving.
//
ICON_ARROW_CROSS = 14;
@@ -204,24 +207,24 @@ message TrafficLight
// This traffic light is valid for
// trams.
//
- // \note There is no detailed traffic light specification for trams and
- // buses at the moment.
+ // \note There is no detailed traffic light specification for trams
+ // and buses at the moment.
//
ICON_TRAM = 22;
// This traffic light is valid for
// buses.
//
- // \note There is no detailed traffic light specification for trams and
- // buses at the moment.
+ // \note There is no detailed traffic light specification for trams
+ // and buses at the moment.
//
ICON_BUS = 23;
// This traffic light is valid for
// buses and trams.
//
- // \note There is no detailed traffic light specification for trams and
- // buses at the moment.
+ // \note There is no detailed traffic light specification for trams
+ // and buses at the moment.
//
ICON_BUS_AND_TRAM = 24;
}
diff --git a/osi_trafficsign.proto b/osi_trafficsign.proto
index a624dbf73..6303cdf64 100644
--- a/osi_trafficsign.proto
+++ b/osi_trafficsign.proto
@@ -130,6 +130,8 @@ message TrafficSignValue
//
// \brief A traffic sign.
//
+// \image html OSI_TrafficSigns.jpg
+//
// All coordinates and orientations are relative to the global ground truth
// coordinate system.
//
@@ -153,6 +155,8 @@ message TrafficSign
//
// \brief Main sign of the traffic sign.
//
+ // \image html OSI_MainTrafficSign.jpg
+ //
message MainSign
{
// The base parameters of the traffic sign.
@@ -164,8 +168,8 @@ message TrafficSign
// (Normally it is equal to the ground truth z-axis.)
// The x-axis of the given \c BaseStationary::orientation is view
// normal of the traffic sign's image.
- // This x-axis points from the traffic sign's image in the direction from
- // where a 'viewer' could see the traffic sign image.
+ // This x-axis points from the traffic sign's image in the direction
+ // from where a 'viewer' could see the traffic sign image.
//
optional BaseStationary base = 1;
@@ -187,39 +191,42 @@ message TrafficSign
//
optional Type type = 2;
- // Additional value associated with the traffic sign, e.g. value of the
- // speed limit.
+ // Additional value associated with the traffic sign, e.g. value of
+ // the speed limit.
//
- // \note Field need not be set if traffic sign type does not require it.
+ // \note Field need not be set if traffic sign type does not require
+ // it.
//
optional TrafficSignValue value = 3;
- // Some traffic signs have an additional arrow symbol as an additional
- // constraint for their scope (e.g. no parking to the right).
- // The arrow direction is given relative to the sign's 2D image plane, i.e.
- // as a viewer standing right in front of the sign and looking straight
- // towards it would interpret the arrow.
+ // Some traffic signs have an additional arrow symbol as an
+ // additional constraint for their scope (e.g. no parking to the
+ // right). The arrow direction is given relative to the sign's 2D
+ // image plane, i.e. as a viewer standing right in front of the sign
+ // and looking straight towards it would interpret the arrow.
//
// The definition for left and right is according to the following
// temporarily constructed right-handed local coordinate system:
- // Set z-axis to match the z-axis of the ground truth coordinate system.
- // Set x-axis to the view normal of the traffic sign's image
+ // Set z-axis to match the z-axis of the ground truth coordinate
+ // system. Set x-axis to the view normal of the traffic sign's image
// (\c #base \c BaseStationary::orientation x-axis).
- // Right: direction of the local coordinate system's positive y-axis.
- // Left: opposite direction of the local coordinate system's y-axis i.e.
- // negative y-axis',
+ // Right: direction of the local coordinate system's positive
+ // y-axis. Left: opposite direction of the local coordinate system's
+ // y-axis i.e. negative y-axis',
//
- // \note If a traffic sign image is on the ground (there is no definition
- // for right or left). Normally, this is a road marking and not a traffic
- // sign. Actual traffic signs lying on the ground might have been
- // intentionally unmounted and, hence, not be in effect.
+ // \note If a traffic sign image is on the ground (there is no
+ // definition for right or left). Normally, this is a road marking
+ // and not a traffic sign. Actual traffic signs lying on the ground
+ // might have been intentionally unmounted and, hence, not be in
+ // effect.
//
optional DirectionScope direction_scope = 4;
// The IDs of the lanes that the sign is assigned to.
// May be multiple if the sign is valid for multiple lanes.
//
- // \note OSI uses singular instead of plural for repeated field names.
+ // \note OSI uses singular instead of plural for repeated field
+ // names.
//
repeated Identifier assigned_lane_id = 5;
@@ -227,16 +234,22 @@ message TrafficSign
// Numbers are given according to German StVO.
//
// For an overview see:
- // \arg https://www.dvr.de/publikationen/downloads/verkehrszeichen.html (Images)
- // \arg https://www.gesetze-im-internet.de/stvo_2013/anlage_1.html (Allgemeine und Besondere Gefahrenzeichen)
- // \arg https://www.gesetze-im-internet.de/stvo_2013/anlage_2.html (Vorschriftzeichen)
- // \arg https://www.gesetze-im-internet.de/stvo_2013/anlage_3.html (Richtzeichen)
- // \arg https://www.gesetze-im-internet.de/stvo_2013/anlage_4.html (Verkehrseinrichtungen)
- // \arg https://traffic-rules.com/
+ // \arg
+ // https://www.dvr.de/publikationen/downloads/verkehrszeichen.html
+ // (Images) \arg
+ // https://www.gesetze-im-internet.de/stvo_2013/anlage_1.html
+ // (Allgemeine und Besondere Gefahrenzeichen) \arg
+ // https://www.gesetze-im-internet.de/stvo_2013/anlage_2.html
+ // (Vorschriftzeichen) \arg
+ // https://www.gesetze-im-internet.de/stvo_2013/anlage_3.html
+ // (Richtzeichen) \arg
+ // https://www.gesetze-im-internet.de/stvo_2013/anlage_4.html
+ // (Verkehrseinrichtungen) \arg https://traffic-rules.com/
//
enum Type
{
- // Type of traffic sign is unknown (must not be used in ground truth).
+ // Type of traffic sign is unknown (must not be used in ground
+ // truth).
//
TYPE_UNKNOWN = 0;
@@ -286,8 +299,8 @@ message TrafficSign
//
TYPE_DOUBLE_TURN_RIGHT = 7;
- // Steep hill downwards (StVO 108) \c TrafficSignValue::value and
- // \c TrafficSignValue::value_unit .
+ // Steep hill downwards (StVO 108) \c TrafficSignValue::value
+ // and \c TrafficSignValue::value_unit .
//
// See e.g.: https://www.dvr.de/bilder/stvo/gt/108-10.png
//
@@ -368,15 +381,17 @@ message TrafficSign
//
TYPE_STOP = 17;
- // Priority must be given to vehicles from the opposite direction
- // (StVO 208). Or: \c #TYPE_PRIORITY_OVER_OPPOSITE_DIRECTION
+ // Priority must be given to vehicles from the opposite
+ // direction (StVO 208). Or: \c
+ // #TYPE_PRIORITY_OVER_OPPOSITE_DIRECTION
//
// See e.g.: https://www.dvr.de/bilder/stvo/gt/208.png
//
TYPE_PRIORITY_TO_OPPOSITE_DIRECTION = 18;
- // Priority must be given to vehicles from the opposite direction
- // (StVO 208 Upside down). Or: \c #TYPE_PRIORITY_TO_OPPOSITE_DIRECTION
+ // Priority must be given to vehicles from the opposite
+ // direction (StVO 208 Upside down). Or: \c
+ // #TYPE_PRIORITY_TO_OPPOSITE_DIRECTION
//
// See e.g.:
//
@@ -436,7 +451,8 @@ message TrafficSign
TYPE_PRESCRIBED_RIGHT_WAY = 24;
// Prescribed left turn and driving straight ahead
- // (StVO 214.1). Right: \c #TYPE_PRESCRIBED_RIGHT_TURN_AND_STRAIGHT_AHEAD
+ // (StVO 214.1). Right: \c
+ // #TYPE_PRESCRIBED_RIGHT_TURN_AND_STRAIGHT_AHEAD
//
// See e.g.:
//
@@ -449,7 +465,8 @@ message TrafficSign
TYPE_PRESCRIBED_LEFT_TURN_AND_STRAIGHT_AHEAD = 25;
// Prescribed right turn and driving straight ahead
- // (StVO 214.2). Left: \c #TYPE_PRESCRIBED_LEFT_TURN_AND_RIGHT_TURN
+ // (StVO 214.2). Left: \c
+ // #TYPE_PRESCRIBED_LEFT_TURN_AND_RIGHT_TURN
//
// See e.g.: https://www.dvr.de/bilder/stvo/gt/214.png
//
@@ -474,8 +491,8 @@ message TrafficSign
//
TYPE_PRESCRIBED_LEFT_TURN_AND_RIGHT_TURN = 27;
- // Prescribed left turn, right turn and driving straight ahead (required
- // for logical signs as road marking).
+ // Prescribed left turn, right turn and driving straight ahead
+ // (required for logical signs as road marking).
//
// See e.g.:
//
@@ -632,35 +649,40 @@ message TrafficSign
TYPE_PRESCRIBED_U_TURN_RIGHT = 50;
// Minimum safety distance for trucks (StVO 273).
- // \c TrafficSignValue::value and \c TrafficSignValue::value_unit .
+ // \c TrafficSignValue::value and \c
+ // TrafficSignValue::value_unit .
//
// See e.g.: https://www.dvr.de/bilder/stvo/gt/273.png
//
TYPE_MINIMUM_DISTANCE_FOR_TRUCKS = 51;
- // Start of speed limit (StVO 274) \c TrafficSignValue::value and
- // \c TrafficSignValue::value_unit . End: \c #TYPE_SPEED_LIMIT_END
+ // Start of speed limit (StVO 274) \c TrafficSignValue::value
+ // and \c TrafficSignValue::value_unit . End: \c
+ // #TYPE_SPEED_LIMIT_END
//
// See e.g.: https://www.dvr.de/bilder/stvo/gt/274-60.png
//
TYPE_SPEED_LIMIT_BEGIN = 52;
- // Start of zone with speed limit (StVO 274.1) \c TrafficSignValue::value and
- // \c TrafficSignValue::value_unit . End: \c #TYPE_SPEED_LIMIT_ZONE_END
+ // Start of zone with speed limit (StVO 274.1) \c
+ // TrafficSignValue::value and \c TrafficSignValue::value_unit .
+ // End: \c #TYPE_SPEED_LIMIT_ZONE_END
//
// See e.g.: https://www.dvr.de/bilder/stvo/gt/274.1.png
//
TYPE_SPEED_LIMIT_ZONE_BEGIN = 53;
- // End of zone with speed limit (StVO 274.2) \c TrafficSignValue::value and
- // \c TrafficSignValue::value_unit . Begin: \c #TYPE_SPEED_LIMIT_ZONE_BEGIN
+ // End of zone with speed limit (StVO 274.2) \c
+ // TrafficSignValue::value and \c TrafficSignValue::value_unit .
+ // Begin: \c #TYPE_SPEED_LIMIT_ZONE_BEGIN
//
// See e.g.: https://www.dvr.de/bilder/stvo/gt/274.2.png
//
TYPE_SPEED_LIMIT_ZONE_END = 54;
- // Start of mandatory minimum speed (StVO 275) \c TrafficSignValue::value and
- // \c TrafficSignValue::value_unit . End: \c #TYPE_MINIMUM_SPEED_END
+ // Start of mandatory minimum speed (StVO 275) \c
+ // TrafficSignValue::value and \c TrafficSignValue::value_unit .
+ // End: \c #TYPE_MINIMUM_SPEED_END
//
// See e.g.: https://www.dvr.de/bilder/stvo/gt/275.png
//
@@ -681,14 +703,16 @@ message TrafficSign
TYPE_OVERTAKING_BAN_FOR_TRUCKS_BEGIN = 57;
// End of speed limit (StVO 278) \c TrafficSignValue::value and
- // \c TrafficSignValue::value_unit . Begin: \c #TYPE_SPEED_LIMIT_BEGIN
+ // \c TrafficSignValue::value_unit . Begin: \c
+ // #TYPE_SPEED_LIMIT_BEGIN
//
// See e.g.: https://www.dvr.de/bilder/stvo/gt/278-60.png
//
TYPE_SPEED_LIMIT_END = 58;
- // End of mandatory minimum speed (StVO 279) \c TrafficSignValue::value and
- // \c TrafficSignValue::value_unit . Begin: \c #TYPE_MINIMUM_SPEED_BEGIN
+ // End of mandatory minimum speed (StVO 279) \c
+ // TrafficSignValue::value and \c TrafficSignValue::value_unit .
+ // Begin: \c #TYPE_MINIMUM_SPEED_BEGIN
//
// See e.g.: https://www.dvr.de/bilder/stvo/gt/279.png
//
@@ -775,15 +799,17 @@ message TrafficSign
//
TYPE_RIGHT_OF_WAY_END = 69;
- // Traffic has priority over vehicles from the opposite direction
- // (StVO 308). Or: \c #TYPE_PRIORITY_TO_OPPOSITE_DIRECTION
+ // Traffic has priority over vehicles from the opposite
+ // direction (StVO 308). Or: \c
+ // #TYPE_PRIORITY_TO_OPPOSITE_DIRECTION
//
// See e.g.: https://www.dvr.de/bilder/stvo/gt/308.png
//
TYPE_PRIORITY_OVER_OPPOSITE_DIRECTION = 70;
- // Traffic has priority over vehicles from the opposite direction
- // (StVO 308 Upside down). Or: \c #TYPE_PRIORITY_OVER_OPPOSITE_DIRECTION
+ // Traffic has priority over vehicles from the opposite
+ // direction (StVO 308 Upside down). Or: \c
+ // #TYPE_PRIORITY_OVER_OPPOSITE_DIRECTION
//
// See e.g.:
//
@@ -909,9 +935,10 @@ message TrafficSign
//
TYPE_PEDESTRIAN_CROSSING_INFO = 87;
- // Pole indicating highways exit in e.g. 100m (StVO 450,
+ // Pole indicating highways exit in e.g. 100m (StVO 450,
// StVO 451, StVO 452).
- // \c TrafficSignValue::value and \c TrafficSignValue::value_unit .
+ // \c TrafficSignValue::value and \c
+ // TrafficSignValue::value_unit .
//
// See e.g.: https://www.dvr.de/bilder/stvo/gt/450-51.png
//
@@ -926,7 +953,7 @@ message TrafficSign
// \c RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN
// (StVO 297.1-21)
//
- // See e.g.:
+ // See e.g.:
//
// \note No speed limitation
//
@@ -941,7 +968,7 @@ message TrafficSign
// \c RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN
// (StVO 297.1-21)
//
- // See e.g.:
+ // See e.g.:
//
// \note No speed limitation
//
@@ -963,13 +990,13 @@ message TrafficSign
}
// Definition of the direction of the traffic sign's scope.
- // Signs marked with additional arrows. (E.g. No parking sign (StVO 286) to
- // the left.)
+ // Signs marked with additional arrows. (E.g. No parking sign (StVO
+ // 286) to the left.)
//
enum DirectionScope
{
- // Direction of the sign's scope is unknown (must not be used in ground
- // truth).
+ // Direction of the sign's scope is unknown (must not be used in
+ // ground truth).
//
DIRECTION_SCOPE_UNKNOWN = 0;
@@ -989,7 +1016,8 @@ message TrafficSign
//
DIRECTION_SCOPE_RIGHT = 4;
- // Direction of the sign's scope for its viewer is to both sides.
+ // Direction of the sign's scope for its viewer is to both
+ // sides.
//
DIRECTION_SCOPE_LEFT_RIGHT = 5;
}
@@ -999,6 +1027,8 @@ message TrafficSign
//
// \brief Additional supplementary sign modifying the main sign.
//
+ // \image html OSI_SuppSign.jpg
+ //
message SupplementarySign
{
// The base parameters of the supplementary traffic sign.
@@ -1006,12 +1036,12 @@ message TrafficSign
// The orientation of the bounding box \c SupplementarySign::base
// ( \c BaseStationary::orientation ) is defined as follows:
// The z-axis of the given \c BaseStationary::orientation is the vector
- // from the bottom to the top of the supplementary traffic sign's 2D image
- // plate. (Normally it is equal to the ground truth z-axis.)
- // The x-axis of the given \c BaseStationary::orientation is view
- // normal of the supplementary traffic sign's image.
- // This x-axis points from the supplementary traffic sign's image in the
- // direction from where a 'viewer' could see the supplementary traffic sign image.
+ // from the bottom to the top of the supplementary traffic sign's 2D
+ // image plate. (Normally it is equal to the ground truth z-axis.) The
+ // x-axis of the given \c BaseStationary::orientation is view normal of
+ // the supplementary traffic sign's image. This x-axis points from the
+ // supplementary traffic sign's image in the direction from where a
+ // 'viewer' could see the supplementary traffic sign image.
//
optional BaseStationary base = 1;
@@ -1032,19 +1062,22 @@ message TrafficSign
//
optional Type type = 2;
- // Additional value(s) associated with the traffic sign, e.g. length, mass
- // or starting time in time range.
+ // Additional value(s) associated with the traffic sign, e.g.
+ // length, mass or starting time in time range.
//
- // \note Field need not be set if traffic sign type does not require it.
+ // \note Field need not be set if traffic sign type does not require
+ // it.
//
- // \note OSI uses singular instead of plural for repeated field names.
+ // \note OSI uses singular instead of plural for repeated field
+ // names.
//
repeated TrafficSignValue value = 3;
// The IDs of the lanes that the sign is assigned to.
// May be multiple if the sign is valid for multiple lanes.
//
- // \note OSI uses singular instead of plural for repeated field names.
+ // \note OSI uses singular instead of plural for repeated field
+ // names.
//
repeated Identifier assigned_lane_id = 4;
@@ -1053,8 +1086,8 @@ message TrafficSign
//
enum Type
{
- // Type of supplementary sign is unknown (must not be used in ground
- // truth).
+ // Type of supplementary sign is unknown (must not be used in
+ // ground truth).
//
TYPE_UNKNOWN = 0;
@@ -1062,51 +1095,61 @@ message TrafficSign
//
TYPE_OTHER = 1;
- // There is no supplementary sign (must not be used in ground truth).
+ // There is no supplementary sign (must not be used in ground
+ // truth).
//
TYPE_NO_SIGN = 2;
- // Traffic sign is valid for a certain distance (given by \c TrafficSignValue::value in
- // e.g. meter - \c TrafficSignValue::value_unit).
+ // Traffic sign is valid for a certain distance (given by \c
+ // TrafficSignValue::value in e.g. meter - \c
+ // TrafficSignValue::value_unit).
//
TYPE_VALID_FOR_DISTANCE = 3;
- // Distance to the start of validity of the traffic sign (given by
- // \c TrafficSignValue::value in e.g. meter - \c TrafficSignValue::value_unit).
+ // Distance to the start of validity of the traffic sign (given
+ // by \c TrafficSignValue::value in e.g. meter - \c
+ // TrafficSignValue::value_unit).
//
TYPE_VALID_IN_DISTANCE = 4;
- // Time range for validity of traffic sign (starting from first \c TrafficSignValue::value
- // and ending with second \c TrafficSignValue::value, both defining e.g. time of day in
- // minutes since midnight - first \c TrafficSignValue::value_unit and second \c TrafficSignValue::value_unit).
- // Day of the week starting from third \c TrafficSignValue::value and ending with
- // fourth \c TrafficSignValue::value with third \c TrafficSignValue::value_unit and fourth \c TrafficSignValue::value_unit).
+ // Time range for validity of traffic sign (starting from first
+ // \c TrafficSignValue::value and ending with second \c
+ // TrafficSignValue::value, both defining e.g. time of day in
+ // minutes since midnight - first \c
+ // TrafficSignValue::value_unit and second \c
+ // TrafficSignValue::value_unit). Day of the week starting from
+ // third \c TrafficSignValue::value and ending with fourth \c
+ // TrafficSignValue::value with third \c
+ // TrafficSignValue::value_unit and fourth \c
+ // TrafficSignValue::value_unit).
//
TYPE_TIME_RANGE = 5;
- // Restriction of the validity of the traffic sign depending on the
- // vehicle's weight (more than \c TrafficSignValue::value e.g. in kilogram -
- // \c TrafficSignValue::value_unit).
+ // Restriction of the validity of the traffic sign depending on
+ // the vehicle's weight (more than \c TrafficSignValue::value
+ // e.g. in kilogram - \c TrafficSignValue::value_unit).
//
TYPE_WEIGHT = 6;
- // Restriction of the validity of the traffic sign to wet / rainy
- // conditions.
+ // Restriction of the validity of the traffic sign to wet /
+ // rainy conditions.
//
TYPE_RAIN = 7;
- // Restriction of the validity of the traffic sign to foggy conditions.
+ // Restriction of the validity of the traffic sign to foggy
+ // conditions.
//
TYPE_FOG = 8;
- // Restriction of the validity of the traffic sign to snowy / icy
- // conditions.
+ // Restriction of the validity of the traffic sign to snowy /
+ // icy conditions.
//
TYPE_SNOW = 9;
- // Combined restriction of the validity of the traffic sign to rainy or
- // snowy conditions denoted by a single supplementary sign (instead of
- // two signs of \c #TYPE_RAIN and \c #TYPE_SNOW respectively).
+ // Combined restriction of the validity of the traffic sign to
+ // rainy or snowy conditions denoted by a single supplementary
+ // sign (instead of two signs of \c #TYPE_RAIN and \c #TYPE_SNOW
+ // respectively).
//
TYPE_SNOW_RAIN = 10;
@@ -1166,8 +1209,8 @@ message TrafficSign
//
TYPE_CAR = 24;
- // Ends in e.g. .. meter (given by \c TrafficSignValue::value in e.g. meter -
- // \c TrafficSignValue::value_unit).
+ // Ends in e.g. .. meter (given by \c TrafficSignValue::value in
+ // e.g. meter - \c TrafficSignValue::value_unit).
//
TYPE_STOP_IN = 25;
}
diff --git a/test_cases.py b/test_cases.py
index 1ea69c54b..6f4d448d6 100644
--- a/test_cases.py
+++ b/test_cases.py
@@ -14,6 +14,7 @@
noComment = 0
hasBrief = False
hasNewLine = True
+ saveStatement = ""
for line in fin:
i = i + 1
@@ -56,9 +57,15 @@
state = 1
# --------------------------------------------------------------
+ # Test case 9 is checking if there is '__'
+ if line.find("__") != -1:
+ print(file + " in line " + str(i) + ": not permitted use of '__' ")
+ state = 1
+
+ # --------------------------------------------------------------
+ # Divide statement and comment. Concatenate multi line statements.
- # Search for comment ("//") and add one more slash character ("/") to the comment
- # block to make Doxygen detect it.
+ # Search for comment ("//").
matchComment = re.search("//", line)
if matchComment is not None:
statement = line[:matchComment.start()]
@@ -66,11 +73,24 @@
else:
statement = line
comment = ""
-
+
+ # Add part of the statement from last line.
+ statement = saveStatement + " " + statement
+ saveStatement = ""
+
# New line is not necessary. Remove for a better output.
statement = statement.replace("\n", "")
comment = comment.replace("\n", "")
+ # Is statement complete
+ matchSep = re.search(r"[{};]", statement)
+ if matchSep is None:
+ saveStatement = statement
+ statement = ""
+ else:
+ saveStatement = statement[matchSep.end():]
+ statement = statement[:matchSep.end()]
+
# --------------------------------------------------------------
# Test case 6-8 camelcase for enums and check enum name?
@@ -112,12 +132,6 @@ def convert(name):
s1 = re.sub(r'(.)([A-Z][a-z]+)', r'\1_\2', name)
return re.sub(r'([a-z0-9])([A-Z])', r'\1_\2', s1).upper()
- # --------------------------------------------------------------
- # Test case 9 is checking if there is '__'
- if line.find("__") != -1:
- print(file + " in line " + str(i) + ": not permitted use of '__' ")
- state = 1
-
# --------------------------------------------------------------
# Test case 10-12,18 check message name, field type and field name
#
@@ -176,11 +190,11 @@ def convert(name):
# --------------------------------------------------------------
# Test case 13-17 is checking comment
- if line.find("//") != -1:
+ if matchComment is not None:
noComment += 1;
if comment.find("\\brief") != -1:
hasBrief = True;
- else:
+ elif len(saveStatement) == 0:
# Test case 13 is checking if comment is min. 2 lines
if noComment == 1:
print(file + " in line " + str(i-1) + ": short comment - min. 2 lines.")
@@ -207,7 +221,8 @@ def convert(name):
# Test case 17 every statement has a comment
print(file + " in line " + str(i) + ": comment is missing for: '"+statement+"'")
state = 1
-
+
+
noComment = 0
hasBrief = False