diff --git a/osi_common.proto b/osi_common.proto index 3262c71f2..7dfd6e1e8 100644 --- a/osi_common.proto +++ b/osi_common.proto @@ -4,169 +4,169 @@ option optimize_for = SPEED; package osi; -/** - * The interface version number. - */ +/// +/// The interface version number. +/// message InterfaceVersion { - // The field containing the version number. Should be left on default, not to be modified by sender. Increments will - // happen as part of changes to the whole interface. + /// The field containing the version number. Should be left on default, not to be modified by sender. Increments will + /// happen as part of changes to the whole interface. optional uint32 major = 1 [default = 2]; optional uint32 minor = 2 [default = 0]; optional uint32 patch = 3 [default = 0]; } -/** - * A cartesian 3D vector for positions, velocities or accelerations. - * Units are [m] for positions, [m/s] for velocities and [m/s^2] for accelerations. - */ +/// +/// A cartesian 3D vector for positions, velocities or accelerations. +/// Units are [m] for positions, [m/s] for velocities and [m/s^2] for accelerations. +/// message Vector3d { - // The x coordinate + /// The x coordinate optional double x = 1; - // The y coordinate + /// The y coordinate optional double y = 2; - // The z coordinate + /// The z coordinate optional double z = 3; } -/** - * A timestamp. - * Names and types of fields chosen in accordance with google/protobuf/timestamp.proto to allow a possible switch in the - * future. Definition of zero point in time differs and does not use Unix epoch. - */ +/// +/// A timestamp. +/// Names and types of fields chosen in accordance with google/protobuf/timestamp.proto to allow a possible switch in the +/// future. Definition of zero point in time differs and does not use Unix epoch. +/// message Timestamp { - // The number of seconds since start of the simulation / system / vehicle. Unit: [s]. + /// The number of seconds since start of the simulation / system / vehicle. Unit: [s]. optional int64 seconds = 1; - // The number of nanoseconds since the start of the last second. Unit: [ns]. + /// The number of nanoseconds since the start of the last second. Unit: [ns]. optional int32 nanos = 2; } -/** - * A 3D dimension, e.g. parameters of a 3D bounding box. - * Units are all [m]. - */ +/// +/// A 3D dimension, e.g. parameters of a 3D bounding box. +/// Units are all [m]. +/// message Dimension3d { - // The width of the bounding box. + /// The width of the bounding box. optional double width = 1; - // The length of the bounding box. + /// The length of the bounding box. optional double length = 2; - //The height of the bounding box. + ///The height of the bounding box. optional double height = 3; } -/** - * A 3D orientation, orientation rate or orientation acceleration. - * Units are [rad] for orientation, [rad/s] for rates and [rad/s^2] for accelerations. The preferred angular range is - * (-pi, pi]. See http://planning.cs.uiuc.edu/node102.html for a definition of the rotational order. The rotations are - * to be performed roll first, then the pitch, and finally the yaw. Rotations are defined in the reference coordinate - * frame around z (=yaw), y (=pitch) and x (=roll), not in the body frame of the object. Rotations with positive angles - * are performed counter-clockwise. - * - * Roll/Pitch are 0 if objects xy-plane corresponds it's parent xy-plane. - * Yaw is 0 if the x axis is parallel to the x axis of it's parent coordinate system. - */ +/// +/// A 3D orientation, orientation rate or orientation acceleration. +/// Units are [rad] for orientation, [rad/s] for rates and [rad/s^2] for accelerations. The preferred angular range is +/// (-pi, pi]. See http://planning.cs.uiuc.edu/node102.html for a definition of the rotational order. The rotations are +/// to be performed roll first, then the pitch, and finally the yaw. Rotations are defined in the reference coordinate +/// frame around z (=yaw), y (=pitch) and x (=roll), not in the body frame of the object. Rotations with positive angles +/// are performed counter-clockwise. +/// +/// Roll/Pitch are 0 if objects xy-plane corresponds it's parent xy-plane. +/// Yaw is 0 if the x axis is parallel to the x axis of it's parent coordinate system. +/// message Orientation3d { - // The roll angle/rate/acceleration. + /// The roll angle/rate/acceleration. optional double roll = 1; - // The pitch angle/rate/acceleration. + /// The pitch angle/rate/acceleration. optional double pitch = 2; - // The yaw angle/rate/acceleration. + /// The yaw angle/rate/acceleration. optional double yaw = 3; } -/** - * A common identifier. - * Has to be unique among all simulated items at any given time. For ground truth, the identifier of an item (object, - * lane, sign, etc.) must remain stable over its lifetime. Identifier values might be only be reused if the available - * address space is exhausted and the specific values have not been in use for several timesteps. Sensor specific - * tracking ids have no restrictions and should behave according to the sensor specifications. - */ +/// +/// A common identifier. +/// Has to be unique among all simulated items at any given time. For ground truth, the identifier of an item (object, +/// lane, sign, etc.) must remain stable over its lifetime. Identifier values might be only be reused if the available +/// address space is exhausted and the specific values have not been in use for several timesteps. Sensor specific +/// tracking ids have no restrictions and should behave according to the sensor specifications. +/// message Identifier { - // The identifier's value. + /// The identifier's value. optional uint64 value = 1; } -/** - * Specifies the mounting position of a sensor. Details are specified in each instance where MountingPosition is used. - */ +/// +/// Specifies the mounting position of a sensor. Details are specified in each instance where MountingPosition is used. +/// message MountingPosition { - // Offset position relative to specified reference coordinate system. + /// Offset position relative to specified reference coordinate system. optional Vector3d position = 1; - // Orientation offset relative to specified reference coordinate system. + /// Orientation offset relative to specified reference coordinate system. optional Orientation3d orientation = 2; } -/** - * A polar representation for a point / vector in 3D space used for low level representations of radar detections. - * Units are [m] for radial distance and [rad] for azimuth and elevation angles. If azimuth and elevation are zero, the - * referenced point is directly in front / vector is pointing directly in the central viewing direction of the sensor. - */ +/// +/// A polar representation for a point / vector in 3D space used for low level representations of radar detections. +/// Units are [m] for radial distance and [rad] for azimuth and elevation angles. If azimuth and elevation are zero, the +/// referenced point is directly in front / vector is pointing directly in the central viewing direction of the sensor. +/// message Polar3d { - // The radial distance. + /// The radial distance. optional double distance = 1; - // The azimuth (horizontal) angle. + /// The azimuth (horizontal) angle. optional double azimuth = 2; - // The elevation (vertical) angle. + /// The elevation (vertical) angle. optional double elevation = 3; } -/** - * The base attributes of object or similar that is stationary. - * This includes the StationaryObject, TrafficSign, TrafficLight, RoadMarking messages. - */ +/// +/// The base attributes of object or similar that is stationary. +/// This includes the StationaryObject, TrafficSign, TrafficLight, RoadMarking messages. +/// message BaseStationary { - // The 3D dimension of the landmark (bounding box): + /// The 3D dimension of the landmark (bounding box): optional Dimension3d dimension = 1; - // The reference point for position and rotation (orientation): center (x, y, z) of bounding box. + /// The reference point for position and rotation (orientation): center (x, y, z) of bounding box. optional Vector3d position = 2; - // The relative orientation of the landmark w.r.t its parent frame. + /// The relative orientation of the landmark w.r.t its parent frame. optional Orientation3d orientation = 3; } -/** - * The base attributes of each object that is moving. - * This includes the MovingObject messages. - */ +/// +/// The base attributes of each object that is moving. +/// This includes the MovingObject messages. +/// message BaseMoving { - // The 3D dimension of the object (bounding box): + /// The 3D dimension of the object (bounding box): optional Dimension3d dimension = 1; - // The reference point for position and rotation (orientation): center (x, y, z) of bounding box. + /// The reference point for position and rotation (orientation): center (x, y, z) of bounding box. optional Vector3d position = 2; - // The relative orientation of the object w.r.t its parent frame. + /// The relative orientation of the object w.r.t its parent frame. optional Orientation3d orientation = 3; - // The relative velocity of the object w.r.t. its parent frame and parent velocity. - // Obviously, the velocity becomes global/absolute if the parent frame does not move. + /// The relative velocity of the object w.r.t. its parent frame and parent velocity. + /// Obviously, the velocity becomes global/absolute if the parent frame does not move. optional Vector3d velocity = 4; - // The relative acceleration of the object w.r.t. its parent frame and parent acceleration. - // Obviously, the acceleration becomes global/absolute if the parent frame is not accelerating. + /// The relative acceleration of the object w.r.t. its parent frame and parent acceleration. + /// Obviously, the acceleration becomes global/absolute if the parent frame is not accelerating. optional Vector3d acceleration = 5; - // The relative orientation rate of the object w.r.t. its parent frame and parent orientation rate. - // Obviously, the orientation rate becomes global/absolute if the parent frame is not rotating. + /// The relative orientation rate of the object w.r.t. its parent frame and parent orientation rate. + /// Obviously, the orientation rate becomes global/absolute if the parent frame is not rotating. optional Orientation3d orientation_rate = 6; } diff --git a/osi_datarecording.proto b/osi_datarecording.proto index 09fc7ba89..e28a37590 100644 --- a/osi_datarecording.proto +++ b/osi_datarecording.proto @@ -6,30 +6,30 @@ import "osi_sensordata.proto"; package osi; -/** - * (Time) Series of SensorData messages that may be used for data recording or internal buffering by some sensor models. - */ +/// +/// (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. + /// List of sensor data messages for subsequent timesteps. repeated SensorData sensor_data = 1; } -/** - * List of SensorData interface copies, one for each sensor in the vehicle. - * Can be used to bundle output of multiple sensors in one transmission. - */ +/// +/// 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. + /// List of sensor data for multiple sensors at a specific timestep. repeated SensorData sensor = 1; } -/** - * List of sensors where each element contains a time series of SensorData messages. - */ +/// +/// 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. + /// List of sensor data for multiple sensors at subsequent timesteps. repeated SensorDataSeries sensor = 1; } diff --git a/osi_detectedlandmark.proto b/osi_detectedlandmark.proto index c0f80836c..aecbca448 100644 --- a/osi_detectedlandmark.proto +++ b/osi_detectedlandmark.proto @@ -7,191 +7,191 @@ import "osi_landmark.proto"; package osi; -/** - * A traffic sign in the environment as detected by the sensor. - */ +/// +/// A traffic sign in the environment as detected by the sensor. +/// message DetectedTrafficSign { - // The id of the original traffic sign in the ground truth. - // In case of a ghost sign (no corresponding ground truth), this field should be unset. + /// The id of the original traffic sign in the ground truth. + /// In case of a ghost sign (no corresponding ground truth), this field should be unset. optional Identifier ground_truth_id = 1; - // A list of candidates for this traffic sign as estimated by the sensor. + /// A list of candidates for this traffic sign as estimated by the sensor. repeated CandidateSign candidate_sign = 2; - // A list of candidates for (a) possible supplementary sign(s) as estimated by the sensor. + /// A list of candidates for (a) possible supplementary sign(s) as estimated by the sensor. repeated CandidateSupplementarySign candidate_supplementary_sign = 3; - // The detected geometry of the traffic sign. + /// The detected geometry of the traffic sign. optional Geometry geometry = 4; - // The estimated probability that this traffic sign really exists. Range [0,1]. + /// The estimated probability that this traffic sign really exists. Range [0,1]. optional double existence_probability = 5; - // The measurement state of the traffic sign. + /// The measurement state of the traffic sign. optional MeasurementState measurement_state = 6; - // The standard deviation of the base parameters of the detected traffic sign. + /// The standard deviation of the base parameters of the detected traffic sign. optional BaseStationary standard_deviation = 7; - // Links to the corresponding lanes. + /// Links to the corresponding lanes. repeated RelevantLane relevant_lane = 8; - // Definition of traffic sign geometries. + /// Definition of traffic sign geometries. enum Geometry { - // Geometry of the traffic sign is unknown. + /// Geometry of the traffic sign is unknown. GEOMETRY_UNKNOWN = 0; - // Geometry of the traffic sign is unspecified (but known). + /// Geometry of the traffic sign is unspecified (but known). GEOMETRY_OTHER = 1; - // Traffic sign has a triangular geometry. + /// Traffic sign has a triangular geometry. GEOMETRY_TRIANGLE = 2; - // Traffic sign has a circular geometry. + /// Traffic sign has a circular geometry. GEOMETRY_CIRCLE = 3; - // Traffic sign has a square geometry. + /// Traffic sign has a square geometry. GEOMETRY_SQUARE = 4; } - // Definition of measurement states. + /// Definition of measurement states. enum MeasurementState { - // Measurement state is unknown. + /// Measurement state is unknown. 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; - // Traffic sign has been measured by the sensor in the current timestep. + /// Traffic sign has been measured by the sensor in the current timestep. MEASUREMENT_STATE_MEASURED = 2; - // Traffic sign has not been measured by the sensor in the current timestep. Values provided by tracking only. + /// Traffic sign has not been measured by the sensor in the current timestep. Values provided by tracking only. MEASUREMENT_STATE_PREDICTED = 3; } } -/** - * A candidate for a detected traffic sign as estimated by the sensor. - */ +/// +/// A candidate for a detected traffic sign as estimated by the sensor. +/// message CandidateSign { - // The definition of the candidate's properties. - // The sign.id values of all CandidateSigns within one DetectedTrafficSign correspond to the tracking id and must - // be identical. + /// The definition of the candidate's properties. + /// The sign.id values of all CandidateSigns within one DetectedTrafficSign correspond to the tracking id and must + /// be identical. optional TrafficSign sign = 1; - // The estimated probability that this candidate is the true value. Range [0,1]. - // The sum of all candidate_probabilities must be one. + /// The estimated probability that this candidate is the true value. Range [0,1]. + /// The sum of all candidate_probabilities must be one. optional double candidate_probability = 2; } -/** - * A candidate for (a) detected supplementary sign(s) as estimated by the sensor. - */ +/// +/// A candidate for (a) detected supplementary sign(s) as estimated by the sensor. +/// message CandidateSupplementarySign { - // The definition of one of more supplementary signs that together define this candidate. + /// The definition of one of more supplementary signs that together define this candidate. repeated SupplementarySign sign = 1; - // The estimated probability that this candidate is the true value. Range [0,1]. - // The sum of all candidate_probabilities must be one. + /// The estimated probability that this candidate is the true value. Range [0,1]. + /// The sum of all candidate_probabilities must be one. optional double candidate_probability = 2; } -/** - * A traffic light in the environment as detected by the sensor. - */ +/// +/// A traffic light in the environment as detected by the sensor. +/// message DetectedTrafficLight { - // The id of the original traffic light in the ground truth. - // In case of a ghost detection (no corresponding ground truth), this field should be unset. + /// The id of the original traffic light in the ground truth. + /// In case of a ghost detection (no corresponding ground truth), this field should be unset. optional Identifier ground_truth_id = 1; - // Description of the detected traffic light. + /// Description of the detected traffic light. optional TrafficLight traffic_light = 2; - // Determines for which directions the traffic light applies. + /// Determines for which directions the traffic light applies. repeated RelevantDirection relevant_direction = 3; - // Links to the corresponding lanes. + /// Links to the corresponding lanes. repeated RelevantLane relevant_lane = 4; - // Existence probability. Range [0,1]. + /// Existence probability. Range [0,1]. optional double existence_probability = 5; - // The standard deviation of the base parameters of the detected traffic light. + /// The standard deviation of the base parameters of the detected traffic light. optional BaseStationary standard_deviation = 6; - /** - * Further specifies the relevant directions of the traffic light. - */ + /// + /// Further specifies the relevant directions of the traffic light. + /// message RelevantDirection { - // The direction the traffic light corresponds to. + /// The direction the traffic light corresponds to. optional Direction direction = 1; - // Relevance probability. Range [0,1]. + /// Relevance probability. Range [0,1]. optional double relevance_probability = 2; - // Specifies the different directions. + /// Specifies the different directions. enum Direction { - // Direction is unknown (must not be used in ground truth). + /// Direction is unknown (must not be used in ground truth). DIRECTION_UNKNOWN = 0; - // Other (unspecified but known) direction. + /// Other (unspecified but known) direction. DIRECTION_OTHER = 1; - // Direction is straight. + /// Direction is straight. DIRECTION_STRAIGHT = 2; - // Direction is left. + /// Direction is left. DIRECTION_LEFT = 3; - // Direction is right. + /// Direction is right. DIRECTION_RIGHT = 4; } } } -/** - * Further specifies the relevant lane of a detected object. - */ +/// +/// Further specifies the relevant lane of a detected object. +/// message RelevantLane { - // Tracking id of the lane segment. + /// Tracking id of the lane segment. optional Identifier lane_id = 1; - // Relevance probability. Range [0,1]. + /// Relevance probability. Range [0,1]. optional double relevance_probability = 2; } -/** - * A road marking in the environment as detected by the sensor. - */ +/// +/// A road marking in the environment as detected by the sensor. +/// message DetectedRoadMarking { - // Tracking id of the road marking. + /// Tracking id of the road marking. optional Identifier tracking_id = 1; - // The id of the original road marking in the ground truth. - // In case of a ghost detection (no corresponding ground truth), this field should be unset. + /// The id of the original road marking in the ground truth. + /// In case of a ghost detection (no corresponding ground truth), this field should be unset. optional Identifier ground_truth_id = 2; - // A list of candidates for this road marking as estimated by the sensor. + /// A list of candidates for this road marking as estimated by the sensor. repeated CandidateRoadMarking candidate_road_marking = 3; - // Existence probability. Range [0,1]. + /// Existence probability. Range [0,1]. optional double existence_probability = 4; - // Links to the corresponding lanes. + /// Links to the corresponding lanes. repeated RelevantLane relevant_lane = 5; - // The standard deviation of the base parameters of the detected road marking. + /// The standard deviation of the base parameters of the detected road marking. optional BaseStationary standard_deviation = 6; } -/** - * A candidate for a detected road marking as estimated by the sensor. - */ +/// +/// A candidate for a detected road marking as estimated by the sensor. +/// message CandidateRoadMarking { - // The description of the road marking. + /// The description of the road marking. optional RoadMarking road_marking = 1; - // The estimated probability that this candidate is the true value. Range [0,1]. - // The sum of all candidate_probabilities must be one. + /// The estimated probability that this candidate is the true value. Range [0,1]. + /// The sum of all candidate_probabilities must be one. optional double candidate_probability = 2; } diff --git a/osi_detectedlane.proto b/osi_detectedlane.proto index 20d59fc7b..7b3344489 100644 --- a/osi_detectedlane.proto +++ b/osi_detectedlane.proto @@ -7,19 +7,19 @@ import "osi_lane.proto"; package osi; -/** - * A lane segment as detected by the sensor. - */ +/// +/// A lane segment as detected by the sensor. +/// message DetectedLane { - // The id of the original lane in the ground truth. - // Multiple entries if the detected lane is a merge of multiple lanes in ground truth (as lane segment definitions - // may vary between sensor and ground truth). + /// The id of the original lane in the ground truth. + /// Multiple entries if the detected lane is a merge of multiple lanes in ground truth (as lane segment definitions + /// may vary between sensor and ground truth). repeated Identifier ground_truth_id = 1; - // The detected lane. + /// The detected lane. optional Lane lane = 2; - // Estimated probability that this lane really exists. Range [0,1]. + /// Estimated probability that this lane really exists. Range [0,1]. optional double existence_probability = 3; } diff --git a/osi_detectedobject.proto b/osi_detectedobject.proto index f0a53b469..8036057fd 100644 --- a/osi_detectedobject.proto +++ b/osi_detectedobject.proto @@ -9,105 +9,105 @@ import "osi_sensorspecific.proto"; package osi; -/** - * Object in the environment as detected and perceived by the sensor. - */ +/// +/// Object in the environment as detected and perceived by the sensor. +/// message DetectedObject { - // Specific id of the object as assigned by the sensor internally. Need not match with ground_truth_id. + /// Specific id of the object as assigned by the sensor internally. Need not match with ground_truth_id. optional Identifier tracking_id = 1; - // The id of the original object in the ground truth list of vehicles / objects / .. - // Multiple entries if detected object is a merge of multiple ground truth objects. + /// The id of the original object in the ground truth list of vehicles / objects / .. + /// Multiple entries if detected object is a merge of multiple ground truth objects. repeated Identifier ground_truth_id = 2; - // Base parameters of the object. Reference point is the middle of the bounding box of the target object. + /// Base parameters of the object. Reference point is the middle of the bounding box of the target object. optional BaseMoving object = 3; - // The standard deviations of the base parameters in object (cross correlations are currently neglected). + /// The standard deviations of the base parameters in object (cross correlations are currently neglected). optional BaseMoving standard_deviation = 4; - // The estimated probabilities for the object to belong to a specific class. + /// The estimated probabilities for the object to belong to a specific class. optional ClassProbability class_probability = 5; - // The estimated probability that this object really exists. Range [0,1]. + /// The estimated probability that this object really exists. Range [0,1]. optional double existence_probability = 6; - // Current state of lights as perceived by sensor, only relevant if the object is estimated to be an object that - // has lights. + /// Current state of lights as perceived by sensor, only relevant if the object is estimated to be an object that + /// has lights. optional Vehicle.LightState light_state = 7; - // Reference point of the sensor measurement (required to decouple position and bounding box estimation) as used by - // the sensor (model). - // Note that the value of this field has no impact on the value of object.position, which always references the - // center of the object / bounding box. + /// Reference point of the sensor measurement (required to decouple position and bounding box estimation) as used by + /// the sensor (model). + /// Note that the value of this field has no impact on the value of object.position, which always references the + /// center of the object / bounding box. optional ReferencePoint reference_point = 8; - // Additional internal data and state flags required and used by the sensor-models, should not be used by - // subscribers to SensorData. Generally this field should be cleared after internal processing. + /// Additional internal data and state flags required and used by the sensor-models, should not be used by + /// subscribers to SensorData. Generally this field should be cleared after internal processing. optional ModelInternalObject model_internal_object = 9; - // Additional data that is specific to radar sensors. - // Field need not be set if simulated sensor is not a radar sensor. + /// Additional data that is specific to radar sensors. + /// Field need not be set if simulated sensor is not a radar sensor. optional RadarSpecificObjectData radar_specifics = 10; - // Additional data that is specific to lidar sensors. - // Field need not be set if simulated sensor is not a lidar sensor. + /// Additional data that is specific to lidar sensors. + /// Field need not be set if simulated sensor is not a lidar sensor. optional LidarSpecificObjectData lidar_specifics = 11; - // Additional data that is specific to camera sensors. - // Field need not be set if simulated sensor is not a camera sensor. + /// Additional data that is specific to camera sensors. + /// Field need not be set if simulated sensor is not a camera sensor. optional CameraSpecificObjectData camera_specifics = 12; - // Definition of available reference points. + /// Definition of available reference points. enum ReferencePoint { - // Reference point is unknown, i.e. sensor does not report a reference point for the position coordinate. - // Value must not be used in ground truth data. - // Usually this means that the reference point for the given position coordinates is a largely arbitrary point - // within the bounding volume unknown to the sensor. If this value is set, the center of the bounding box should - // be used as reference point by convention, unless the specific use case requires otherwise. + /// Reference point is unknown, i.e. sensor does not report a reference point for the position coordinate. + /// Value must not be used in ground truth data. + /// Usually this means that the reference point for the given position coordinates is a largely arbitrary point + /// within the bounding volume unknown to the sensor. If this value is set, the center of the bounding box should + /// be used as reference point by convention, unless the specific use case requires otherwise. REFERENCE_POINT_UNKNOWN = 0; - // Other (unspecified but known) reference point. + /// Other (unspecified but known) reference point. REFERENCE_POINT_OTHER = 1; - // Center of the bounding box. + /// Center of the bounding box. REFERENCE_POINT_CENTER = 2; - // Middle-Left of the bounding box. + /// Middle-Left of the bounding box. REFERENCE_POINT_MIDDLE_LEFT = 3; - // Middle-Right of the bounding box. + /// Middle-Right of the bounding box. REFERENCE_POINT_MIDDLE_RIGHT = 4; - // Rear-Middle of the bounding box. + /// Rear-Middle of the bounding box. REFERENCE_POINT_REAR_MIDDLE = 5; - // Rear-Left of the bounding box. + /// Rear-Left of the bounding box. REFERENCE_POINT_REAR_LEFT = 6; - // Rear-Right of the bounding box. + /// Rear-Right of the bounding box. REFERENCE_POINT_REAR_RIGHT = 7; - // Front-Middle of the bounding box. + /// Front-Middle of the bounding box. REFERENCE_POINT_FRONT_MIDDLE = 8; - // Front-Left of the bounding box. + /// Front-Left of the bounding box. REFERENCE_POINT_FRONT_LEFT = 9; - // Front-Right of the bounding box. + /// Front-Right of the bounding box. REFERENCE_POINT_FRONT_RIGHT = 10; } - /** - * Probabilities for the classification of the object as perceived by the sensor. - */ + /// + /// Probabilities for the classification of the object as perceived by the sensor. + /// message ClassProbability { - // Probability that the object has unknown type. Range [0,1]. + /// Probability that the object has unknown type. Range [0,1]. optional double prob_unknown = 1; - // Probability that the object is a car. Range [0,1]. + /// Probability that the object is a car. Range [0,1]. optional double prob_car = 2; - // Probability that the object is a truck. Range [0,1]. + /// Probability that the object is a truck. Range [0,1]. optional double prob_truck = 3; - // Probability that the object is a motorbike. Range [0,1]. + /// Probability that the object is a motorbike. Range [0,1]. optional double prob_motorbike = 4; - // Probability that the object is a bicycle. Range [0,1]. + /// Probability that the object is a bicycle. Range [0,1]. optional double prob_bicycle = 5; - // Probability that the object is a pedestrian. Range [0,1]. + /// Probability that the object is a pedestrian. Range [0,1]. optional double prob_pedestrian = 6; - // Probability that the object is a stationary object. Range [0,1]. + /// Probability that the object is a stationary object. Range [0,1]. optional double prob_stationary = 7; } } diff --git a/osi_detectedoccupant.proto b/osi_detectedoccupant.proto index 819dd1ade..1fc7c713e 100644 --- a/osi_detectedoccupant.proto +++ b/osi_detectedoccupant.proto @@ -7,14 +7,14 @@ import "osi_occupant.proto"; package osi; -/** - * A vehicle occupant as detected and perceived by an interior sensor. - */ +/// +/// A vehicle occupant as detected and perceived by an interior sensor. +/// message DetectedOccupant { - // The detected vehicle occupant + /// The detected vehicle occupant optional Occupant occupant = 1; - // The id of the original vehicle occupant in the ground truth. + /// The id of the original vehicle occupant in the ground truth. optional Identifier ground_truth_occupant_id = 2; } diff --git a/osi_environment.proto b/osi_environment.proto index 1a927966a..f6aeb029f 100644 --- a/osi_environment.proto +++ b/osi_environment.proto @@ -4,45 +4,45 @@ option optimize_for = SPEED; package osi; -/** - * The conditions of the environment. - */ +/// +/// The conditions of the environment. +/// message EnvironmentalConditions { - // The ambient illumination of the environment. + /// The ambient illumination of the environment. optional AmbientIllumination ambient_illumination = 1; - // The time of day. + /// The time of day. optional TimeOfDay time_of_day = 2; - // Definition of ambient illumination states. + /// Definition of ambient illumination states. enum AmbientIllumination { - // Ambient illumination is unknown (must not be used in ground truth). + /// Ambient illumination is unknown (must not be used in ground truth). AMBIENT_ILLUMINATION_UNKNOWN = 0; - // Other (unspecified but known) ambient illumination. + /// Other (unspecified but known) ambient illumination. AMBIENT_ILLUMINATION_OTHER = 1; - // Ambient illumination index is "bright". - // E.g. daytime with sunshine. + /// Ambient illumination index is "bright". + /// E.g. daytime with sunshine. AMBIENT_ILLUMINATION_BRIGHT = 2; - // Ambient illumination index is "medium". - // E.g. daytime with overcast sky. + /// Ambient illumination index is "medium". + /// E.g. daytime with overcast sky. AMBIENT_ILLUMINATION_MEDIUM = 3; - // Ambient illumination index is "low". - // E.g. during twilight (dawn/dusk) or in a tunnel. + /// Ambient illumination index is "low". + /// E.g. during twilight (dawn/dusk) or in a tunnel. AMBIENT_ILLUMINATION_LOW = 4; - // Ambient illumination index is "dark". - // E.g. night time, no sunlight. + /// Ambient illumination index is "dark". + /// E.g. night time, no sunlight. AMBIENT_ILLUMINATION_DARK = 5; } - /** - * The time of day at the location of the vehicle. - */ + /// + /// The time of day at the location of the vehicle. + /// message TimeOfDay { - // The number of seconds that have passed since midnight local time. - // Used for determining the current state of the circadian rhythm of a driver. + /// The number of seconds that have passed since midnight local time. + /// Used for determining the current state of the circadian rhythm of a driver. optional uint32 seconds_from_midnight = 1; } } diff --git a/osi_groundtruth.proto b/osi_groundtruth.proto index 9e2c144db..c33c9ddad 100644 --- a/osi_groundtruth.proto +++ b/osi_groundtruth.proto @@ -11,59 +11,59 @@ import "osi_occupant.proto"; package osi; -/** - * The ground truth information from the simulation environment. - * - * This ground truth information is supposed to describe the whole simulated environment around any simulated vehicle. - * For each simulated ego vehicle (might only be one, but could also be multiple) define an area around the vehicle - * which is greater than the combined field of views (FOV) of all sensors obstructed in the vehicle. The ground truth - * data is supposed to describe the convex hull of all such areas w.r.t. a global simulation coordinate system. - * - * The simulation coordinate system might change during the simulation if and only if, all coordinates w.r.t. this - * coordinate system are also changed. - * - * The data has to be sent at a rate defined by the receiving partner. When sending, values with default values might be - * left default in order to improve performance. - * - * To provide a complete interface, all fields of all messages have to be set, unless specifically stated in the field's - * definition that the field may remain unset. - * - * In enums (e.g. types) the unknown (first / default) value is not allowed to be used in the ground truth interface. - */ +/// +/// The ground truth information from the simulation environment. +/// +/// This ground truth information is supposed to describe the whole simulated environment around any simulated vehicle. +/// For each simulated ego vehicle (might only be one, but could also be multiple) define an area around the vehicle +/// which is greater than the combined field of views (FOV) of all sensors obstructed in the vehicle. The ground truth +/// data is supposed to describe the convex hull of all such areas w.r.t. a global simulation coordinate system. +/// +/// The simulation coordinate system might change during the simulation if and only if, all coordinates w.r.t. this +/// coordinate system are also changed. +/// +/// The data has to be sent at a rate defined by the receiving partner. When sending, values with default values might be +/// left default in order to improve performance. +/// +/// To provide a complete interface, all fields of all messages have to be set, unless specifically stated in the field's +/// definition that the field may remain unset. +/// +/// In enums (e.g. types) the unknown (first / default) value is not allowed to be used in the ground truth interface. +/// message GroundTruth { - // The interface version used by the sender (simulation environment). + /// The interface version used by the sender (simulation environment). optional InterfaceVersion version = 1; - // The data timestamp of the simulation environment. Zero time is arbitrary but must be identical for all messages. - // Zero time does not need to coincide with the unix epoch. Recommended is the starting time point of the - // simulation. + /// The data timestamp of the simulation environment. Zero time is arbitrary but must be identical for all messages. + /// Zero time does not need to coincide with the unix epoch. Recommended is the starting time point of the + /// simulation. optional Timestamp timestamp = 2; - // A list of vehicles. + /// A list of vehicles. repeated Vehicle vehicle = 3; - // A list of moving objects (excluding vehicles). + /// A list of moving objects (excluding vehicles). repeated MovingObject moving_object = 4; - // A list of stationary objects. + /// A list of stationary objects. repeated StationaryObject stationary_object = 5; - // A list of traffic signs. + /// A list of traffic signs. repeated TrafficSign traffic_sign = 6; - // A list of traffic lights. + /// A list of traffic lights. repeated TrafficLight traffic_light = 7; - // A list of road surface markings. Lane Markings are excluded and defined as LaneBoundaries as part of the Lanes. + /// A list of road surface markings. Lane Markings are excluded and defined as LaneBoundaries as part of the Lanes. repeated RoadMarking road_marking = 8; - // A list of lanes forming a road network. + /// A list of lanes forming a road network. repeated Lane lane = 9; - // A list of passengers in the (ego) vehicle(s). + /// A list of passengers in the (ego) vehicle(s). repeated Occupant occupant = 10; - // Conditions of the environment. + /// Conditions of the environment. optional EnvironmentalConditions environmental_conditions = 11; } diff --git a/osi_landmark.proto b/osi_landmark.proto index a83aa01ac..28c7b50ec 100644 --- a/osi_landmark.proto +++ b/osi_landmark.proto @@ -6,432 +6,432 @@ import "osi_common.proto"; package osi; -/** - * A traffic sign. - */ +/// +/// A traffic sign. +/// message TrafficSign { - // The id of the traffic sign. + /// The id of the traffic sign. optional Identifier id = 1; - // The base parameters of the traffic sign. + /// The base parameters of the traffic sign. optional BaseStationary base = 2; - // The type of the traffic sign. + /// The type of the traffic sign. optional Type type = 3; - // Additional value associated with the traffic sign, e.g. value of the speed limit. - // Field need not be set if traffic sign type does not require it. Speed (limits) should be given in km/h. + /// Additional value associated with the traffic sign, e.g. value of the speed limit. + /// Field need not be set if traffic sign type does not require it. Speed (limits) should be given in km/h. optional double value = 4; - // Variability + /// Variability optional Variability variability = 5; - // Additional, supplementary signs, e.g. time limit, modifying the traffic sign. + /// Additional, supplementary signs, e.g. time limit, modifying the traffic sign. repeated SupplementarySign supplementary_sign = 6; - // The ids of the lanes that the traffic sign is assigned to. - // Might be multiple if the traffic sign is valid for multiple lanes. + /// The ids of the lanes that the traffic sign is assigned to. + /// Might be multiple if the traffic sign is valid for multiple lanes. repeated Identifier assigned_lane = 7; - // Definition of traffic sign types. - // Numbers given according to German StVO. For an overview see - // http://www.dvr.de/multimedia/downloads/verkehrszeichen.htm (Images) - // https://www.gesetze-im-internet.de/stvo_2013/anlage_1.html (Allgemeine und Besondere Gefahrenzeichen) - // https://www.gesetze-im-internet.de/stvo_2013/anlage_2.html (Vorschriftzeichen) - // https://www.gesetze-im-internet.de/stvo_2013/anlage_3.html (Richtzeichen) - // https://www.gesetze-im-internet.de/stvo_2013/anlage_4.html (Verkehrseinrichtungen) + /// Definition of traffic sign types. + /// Numbers given according to German StVO. For an overview see + /// http:///www.dvr.de/multimedia/downloads/verkehrszeichen.htm (Images) + /// https:///www.gesetze-im-internet.de/stvo_2013/anlage_1.html (Allgemeine und Besondere Gefahrenzeichen) + /// https:///www.gesetze-im-internet.de/stvo_2013/anlage_2.html (Vorschriftzeichen) + /// https:///www.gesetze-im-internet.de/stvo_2013/anlage_3.html (Richtzeichen) + /// https:///www.gesetze-im-internet.de/stvo_2013/anlage_4.html (Verkehrseinrichtungen) 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; - // Other (unspecified but known) type of traffic sign. + /// Other (unspecified but known) type of traffic sign. TYPE_OTHER = 1; - // Start of speed limit (StVO 274). + /// Start of speed limit (StVO 274). TYPE_SPEED_LIMIT_BEGIN = 2; - // End of speed limit (StVO 278). + /// End of speed limit (StVO 278). TYPE_SPEED_LIMIT_END = 3; - // Town entrance (StVO 310). + /// Town entrance (StVO 310). TYPE_TOWN_BEGIN = 4; - // Town exit (StVO 311). + /// Town exit (StVO 311). TYPE_TOWN_END = 5; - // Start of zone with speed limit 30 (StVO 274.1). + /// Start of zone with speed limit 30 (StVO 274.1). TYPE_ZONE_30_BEGIN = 6; - // End of zone with speed limit 30 (StVO 274.2). + /// End of zone with speed limit 30 (StVO 274.2). TYPE_ZONE_30_END = 7; - // Mandatory minimum speed (StVO 275). + /// Mandatory minimum speed (StVO 275). TYPE_MINIMUM_SPEED = 8; - // Start of area with calmed / reduced traffic (verkehrsberuhigter Bereich - StVO 325.1). + /// Start of area with calmed / reduced traffic (verkehrsberuhigter Bereich - StVO 325.1). TYPE_TRAFFIC_CALMED_DISTRICT_BEGIN = 9; - // End of area with calmed / reduced traffic (verkehrsberuhigter Bereich - StVO 325.2). + /// End of area with calmed / reduced traffic (verkehrsberuhigter Bereich - StVO 325.2). TYPE_TRAFFIC_CALMED_DISTRICT_END = 10; - // Start of area without traffic to reduce harmful air pollution (StVO 270.1). + /// Start of area without traffic to reduce harmful air pollution (StVO 270.1). TYPE_ENVIRONMENTAL_ZONE_BEGIN = 11; - // End of area without traffic to reduce harmful air pollution (StVO 270.2). + /// End of area without traffic to reduce harmful air pollution (StVO 270.2). TYPE_ENVIRONMENTAL_ZONE_END = 12; - // Start of overtaking ban (StVO 276). + /// Start of overtaking ban (StVO 276). TYPE_OVERTAKING_BAN_BEGIN = 13; - // End of overtaking ban (StVO 280). + /// End of overtaking ban (StVO 280). TYPE_OVERTAKING_BAN_END = 14; - // Start of overtaking ban for trucks (StVO 277). + /// Start of overtaking ban for trucks (StVO 277). TYPE_OVERTAKING_BAN_FOR_TRUCKS_BEGIN = 15; - // End of overtaking ban for trucks (StVO 281). + /// End of overtaking ban for trucks (StVO 281). TYPE_OVERTAKING_BAN_FOR_TRUCKS_END = 16; - // End of all speed and overtaking restrictions (StVO 282). + /// End of all speed and overtaking restrictions (StVO 282). TYPE_ALL_RESTRICTIONS_END = 17; - // Begin of priority road with right of way (StVO 306). + /// Begin of priority road with right of way (StVO 306). TYPE_RIGHT_OF_WAY_BEGIN = 18; - // End of priority road with right of way (StVO 307). + /// End of priority road with right of way (StVO 307). TYPE_RIGHT_OF_WAY_END = 19; - // Right of way at the next intersection (StVO 301). + /// Right of way at the next intersection (StVO 301). TYPE_RIGHT_OF_WAY_NEXT_INTERSECTION = 20; - // Begin of no parking zone (StVO 290.1). + /// Begin of no parking zone (StVO 290.1). TYPE_NO_PARKING_ZONE_BEGIN = 21; - // End of no parking zone (StVO 290.2). + /// End of no parking zone (StVO 290.2). TYPE_NO_PARKING_ZONE_END = 22; - // No parking sign (StVO 286). + /// No parking sign (StVO 286). TYPE_NO_PARKING = 23; - // No stopping sign (StVO 283). + /// No stopping sign (StVO 283). TYPE_NO_STOPPING = 24; - // Give way sign (StVO 205). + /// Give way sign (StVO 205). TYPE_GIVE_WAY = 25; - // Stop sign (StVO 206). + /// Stop sign (StVO 206). TYPE_STOP = 26; - // Danger sign (StVO 101). + /// Danger sign (StVO 101). TYPE_DANGER_SPOT = 27; - // Road works sign (StVO 123) + /// Road works sign (StVO 123) TYPE_ROAD_WORKS = 28; - // Roundabout (StVO 215). + /// Roundabout (StVO 215). TYPE_ROUNDABOUT = 29; - // Traffic light ahead sign (StVO 131). + /// Traffic light ahead sign (StVO 131). TYPE_ATTENTION_TRAFFIC_LIGHT = 30; - // Pedestrian crossing (StVO 350). + /// Pedestrian crossing (StVO 350). TYPE_PEDESTRIAN_CROSSING_INFO = 31; - // Minimum safety distance for trucks (StVO 273). + /// Minimum safety distance for trucks (StVO 273). TYPE_MINIMUM_DISTANCE_FOR_TRUCKS = 32; - // Entry not allowed (StVO 267). + /// Entry not allowed (StVO 267). TYPE_DO_NOT_ENTER = 33; - // Entry prohibited for all vehicle types (StVO 250). + /// Entry prohibited for all vehicle types (StVO 250). TYPE_PROHIBITED_FOR_ALL = 34; - // Entry prohibited for all motor vehicles (StVO 251). + /// Entry prohibited for all motor vehicles (StVO 251). TYPE_PROHIBITED_FOR_MOTOR_VEHICLES = 35; - // Entry prohibited for trucks (StVO 253). + /// Entry prohibited for trucks (StVO 253). TYPE_PROHIBITED_FOR_TRUCKS = 36; - // Entry prohibited for bicycles (StVO 254). + /// Entry prohibited for bicycles (StVO 254). TYPE_PROHIBITED_FOR_BICYCLES = 37; - // Entry prohibited for motor bikes (StVO 255). + /// Entry prohibited for motor bikes (StVO 255). TYPE_PROHIBITED_FOR_MOTOR_BIKES = 38; - // Entry prohibited for pedestrians (StVO 259). + /// Entry prohibited for pedestrians (StVO 259). TYPE_PROHIBITED_FOR_PEDESTRIANS = 39; - // Entry prohibited for all motor vehicles and bikes (StVO 260). + /// Entry prohibited for all motor vehicles and bikes (StVO 260). TYPE_PROHIBITED_FOR_MOTOR_VEHICLES_BIKES = 40; - // Begin of highway (StVO 330.1). + /// Begin of highway (StVO 330.1). TYPE_HIGHWAY_BEGIN = 41; - // End of highway (StVO 330.2). + /// End of highway (StVO 330.2). TYPE_HIGHWAY_END = 42; - // Highway exit sign (StVO 333). + /// Highway exit sign (StVO 333). TYPE_HIGHWAY_EXIT = 43; - // Pole indicating highways exit in 100m (StVO 450). + /// Pole indicating highways exit in 100m (StVO 450). TYPE_POLE_EXIT_100M = 44; - // Pole indicating highways exit in 200m (StVO 450). + /// Pole indicating highways exit in 200m (StVO 450). TYPE_POLE_EXIT_200M = 45; - // Pole indicating highways exit in 300m (StVO 450). + /// Pole indicating highways exit in 300m (StVO 450). TYPE_POLE_EXIT_300M = 46; - // Pole for warning and guiding purposes (red/white stripes - StVO 605). + /// Pole for warning and guiding purposes (red/white stripes - StVO 605). TYPE_POLE_WARNING = 47; - // Begin of expressway for motor vehicles (StVO 331.1). + /// Begin of expressway for motor vehicles (StVO 331.1). TYPE_EXPRESSWAY_BEGIN = 48; - // End of expressways for motor vehicles (StVO 331.2). + /// End of expressways for motor vehicles (StVO 331.2). TYPE_EXPRESSWAY_END = 49; - // Parking space (StVO 314). + /// Parking space (StVO 314). TYPE_CAR_PARKING = 50; } - // + /// enum Variability { - // Variability type of sign is unknown. Value must not be used in ground truth. + /// Variability type of sign is unknown. Value must not be used in ground truth. VARIABILITY_UNKNOWN = 0; - // Other (unspecified but known) variability. + /// Other (unspecified but known) variability. VARIABILITY_OTHER = 1; - // Fixed sign, i.e. always present. + /// Fixed sign, i.e. always present. VARIABILITY_FIXED = 2; - // Temporary or variable sign, e.g. on a sign bridge. + /// Temporary or variable sign, e.g. on a sign bridge. VARIABILITY_VARIABLE = 3; } } -/** - * Additional, supplementary sign modifying a parent traffic sign. - */ +/// +/// Additional, supplementary sign modifying a parent traffic sign. +/// message SupplementarySign { - // Type of the supplementary sign. + /// Type of the supplementary sign. optional Type type = 1; - // Optional first value defining additional properties, e.g. length, mass, or starting time in time range. + /// Optional first value defining additional properties, e.g. length, mass, or starting time in time range. optional double value_1 = 2; - // Optional second value defining additional properties, e.g. end time in time range. + /// Optional second value defining additional properties, e.g. end time in time range. optional double value_2 = 3; - // Definition of supplementary sign types. - // See TrafficSign.Type for further information. + /// Definition of supplementary sign types. + /// See TrafficSign.Type for further information. enum Type { - // Type of supplementary sign is unknown. Value must not be used in ground truth. + /// Type of supplementary sign is unknown. Value must not be used in ground truth. TYPE_UNKNOWN = 0; - // Other (unspecified but known) type of supplementary sign. + /// Other (unspecified but known) type of supplementary sign. TYPE_OTHER = 1; - // There is no supplementary sign. Value must not be used in ground truth. + /// There is no supplementary sign. Value must not be used in ground truth. TYPE_NO_SIGN = 2; - // Traffic sign is valid for a certain distance (given by value_1 in meter). + /// Traffic sign is valid for a certain distance (given by value_1 in meter). TYPE_VALID_FOR_DISTANCE = 3; - // Distance to the start of validity of the traffic sign (given by value_1 in meter). + /// Distance to the start of validity of the traffic sign (given by value_1 in meter). TYPE_VALID_IN_DISTANCE = 4; - // Time range for validity of traffic sign (starting from value_1 and ending with value_2, both defining - // time of day in minutes from midnight). + /// Time range for validity of traffic sign (starting from value_1 and ending with value_2, both defining + /// time of day in minutes from midnight). TPYE_TIME_RANGE = 5; - // Restriction of the validity of the traffic sign depending on the vehicle's weight (more than value_1 in - // kilogram). + /// Restriction of the validity of the traffic sign depending on the vehicle's weight (more than value_1 in + /// kilogram). 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 TYPE_WET and 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 TYPE_WET and TYPE_SNOW respectively). TYPE_SNOW_RAIN = 10; - // + /// TYPE_LEFT_ARROW = 11; - // + /// TYPE_RIGHT_ARROW = 12; - // + /// TYPE_LEFT_BEND_ARROW = 13; - // + /// TYPE_RIGHT_BEND_ARROW = 14; - // + /// TYPE_TRUCK = 15; - // + /// TYPE_TRACTORS_MAY_BE_PASSED = 16; - // + /// TYPE_HAZARDOUS = 17; - // + /// TYPE_TRAILER = 18; - // + /// TYPE_NIGHT = 19; - // + /// TYPE_ZONE = 20; - // + /// TYPE_STOP_4_WAY = 21; - // + /// TYPE_MOTORCYCLE = 22; - // + /// TYPE_MOTORCYCLE_ALLOWED = 23; - // + /// TYPE_CAR = 24; - // + /// TYPE_STOP_IN = 25; } } -/** - * A traffic light. - */ +/// +/// A traffic light. +/// message TrafficLight { - // The id of the traffic light. + /// The id of the traffic light. optional Identifier id = 1; - // The base parameters of the traffic light. + /// The base parameters of the traffic light. optional BaseStationary base = 2; - // The type of the traffic light. + /// The type of the traffic light. optional Type type = 3; - // The shape of the traffic light. + /// The shape of the traffic light. optional Shape shape = 4; - // The state of the traffic light. + /// The state of the traffic light. optional LightState light_state = 5; - // Presence of a green arrow sign for right turns on the traffic light. + /// Presence of a green arrow sign for right turns on the traffic light. optional GreenArrowPresence green_arrow = 6; - // The ids of the lanes that the traffic light is assigned to. - // Might be multiple if the traffic light is valid for multiple lanes. + /// The ids of the lanes that the traffic light is assigned to. + /// Might be multiple if the traffic light is valid for multiple lanes. repeated Identifier assigned_lane = 7; - // Definition of traffic light types. + /// Definition of traffic light types. enum Type { - // Unknown type of traffic light. Value must not be used in ground truth. + /// Unknown type of traffic light. Value must not be used in ground truth. TYPE_UNKNOWN = 0; - // Other (unspecified but known) type of traffic light. + /// Other (unspecified but known) type of traffic light. TYPE_OTHER = 1; - // Normal traffic light for motor vehicle traffic. + /// Normal traffic light for motor vehicle traffic. TYPE_NORMAL = 2; - // Light for pedestrian traffic. + /// Light for pedestrian traffic. TYPE_PEDESTRIAN = 3; - // Light for bicycle traffic. + /// Light for bicycle traffic. TYPE_BICYCLE = 4; } - // Definition of traffic light shapes. + /// Definition of traffic light shapes. enum Shape { - // Unknown shape of traffic light. Value must not be used in ground truth. + /// Unknown shape of traffic light. Value must not be used in ground truth. SHAPE_UNKNOWN = 0; - // Other (unspecified but known) shape of traffic light. + /// Other (unspecified but known) shape of traffic light. SHAPE_OTHER = 1; - // This is a normal traffic light without specification of direction. + /// This is a normal traffic light without specification of direction. SHAPE_CIRCULAR = 2; - // This traffic light applies to the lane straight ahead. + /// This traffic light applies to the lane straight ahead. SHAPE_ARROW_STRAIGHT = 3; - // This traffic light applies to left turns. + /// This traffic light applies to left turns. SHAPE_ARROW_LEFT = 4; - // This traffic light applies to diagonal left turns. + /// This traffic light applies to diagonal left turns. SHAPE_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. SHAPE_ARROW_STRAIGHT_LEFT = 6; - // This traffic light applies to right turns. + /// This traffic light applies to right turns. SHAPE_ARROW_RIGHT = 7; - // This traffic light applies to diagonal right turns. + /// This traffic light applies to diagonal right turns. SHAPE_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. SHAPE_ARROW_STRAIGHT_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. SHAPE_ARROW_LEFT_RIGHT = 10; - // This traffic light indicates that the assigned lane is open for driving. + /// This traffic light indicates that the assigned lane is open for driving. SHAPE_ARROW_DOWN = 11; - // This traffic light indicates a necessary lane change to the left ahead. + /// This traffic light indicates a necessary lane change to the left ahead. SHAPE_ARROW_DOWN_LEFT = 12; - // This traffic light indicates a necessary lane change to the right ahead. + /// This traffic light indicates a necessary lane change to the right ahead. SHAPE_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. SHAPE_ARROW_CROSS = 14; } - /** - * Definition of light state for traffic lights. - * This containes the logical information about the traffic light and NOT a description of individual light bulbs. - */ + /// + /// Definition of light state for traffic lights. + /// This containes the logical information about the traffic light and NOT a description of individual light bulbs. + /// message LightState { - // The color of the traffic light. + /// The color of the traffic light. optional Color color = 1; - // The operating mode of the traffic light. + /// The operating mode of the traffic light. optional Mode mode = 2; - // Definition of colors for traffic lights. + /// Definition of colors for traffic lights. enum Color { - // Color is unknown. Value must not be used in ground truth. + /// Color is unknown. Value must not be used in ground truth. COLOR_UNKNOWN = 0; - // Other (unspecified but known) color. + /// Other (unspecified but known) color. COLOR_OTHER = 1; - // Traffic light is off / not active. In this case mode must also be set to MODE_OFF. + /// Traffic light is off / not active. In this case mode must also be set to MODE_OFF. COLOR_OFF = 2; - // Red light is on. + /// Red light is on. COLOR_RED = 3; - // Red and yellow light are on at the same time. + /// Red and yellow light are on at the same time. COLOR_RED_YELLOW = 4; - // Yellow light is on. + /// Yellow light is on. COLOR_YELLOW = 5; - // Green light is on. + /// Green light is on. COLOR_GREEN = 6; } - // Definition of light modes for traffic lights. + /// Definition of light modes for traffic lights. enum Mode { - // Mode is unknown. Value must not be used in ground truth. + /// Mode is unknown. Value must not be used in ground truth. MODE_UNKNOWN = 0; - // Other (unspecified but known) mode. + /// Other (unspecified but known) mode. MODE_OTHER = 1; - // Traffic light is off / not active. In this case color must also be set to COLOR_OFF. + /// Traffic light is off / not active. In this case color must also be set to COLOR_OFF. MODE_OFF = 2; - // Light is on normally. + /// Light is on normally. MODE_CONSTANT = 3; - // Light is blinking. + /// Light is blinking. MODE_BLINKING = 4; } } - // Definition of states for the presence of a green arrow sign for right turns. + /// Definition of states for the presence of a green arrow sign for right turns. enum GreenArrowPresence { - // Presence of green arrow sign is unknown (must not be used in ground truth). + /// Presence of green arrow sign is unknown (must not be used in ground truth). GREEN_ARROW_UNKNOWN = 0; - // Other (unspecified but known) green arrow sign. + /// Other (unspecified but known) green arrow sign. GREEN_ARROW_OTHER = 1; - // No green arrow sign present. + /// No green arrow sign present. GREEN_ARROW_NOT_PRESENT = 2; - // Green arrow sign present. + /// Green arrow sign present. GREEN_ARROW_PRESENT = 3; } } -/** - * A road surface marking. - * Lane Markings are excluded and defined as LaneBoundaries as part of the Lanes. - */ +/// +/// A road surface marking. +/// Lane Markings are excluded and defined as LaneBoundaries as part of the Lanes. +/// message RoadMarking { - // The id of the road marking. + /// The id of the road marking. optional Identifier id = 1; - // The base parameters of the road marking. + /// The base parameters of the road marking. optional BaseStationary base = 2; - // The type of the road marking. + /// The type of the road marking. optional Type type = 3; - // The color of the road marking. + /// The color of the road marking. optional Color color = 4; - // Additional value associated with the road marking, e.g. value of the speed limit. - // Field need not be set if road marking type does not require it. + /// Additional value associated with the road marking, e.g. value of the speed limit. + /// Field need not be set if road marking type does not require it. optional double value = 5; - // The id(s) of the lane(s) that the road marking is assigned to. - // Might be multiple if the road marking goes across multiple lanes. + /// The id(s) of the lane(s) that the road marking is assigned to. + /// Might be multiple if the road marking goes across multiple lanes. repeated Identifier assigned_lane = 6; - // Definition of road marking types. + /// Definition of road marking types. enum Type { - // Type of road marking is unknown. Value must not be used in ground truth. + /// Type of road marking is unknown. Value must not be used in ground truth. TYPE_UNKNOWN = 0; - // Other (unspecified but known) type of road marking. + /// Other (unspecified but known) type of road marking. TYPE_OTHER = 1; - // A stop line. + /// A stop line. TYPE_STOP_LINE = 2; - // A speed limit sign painted on the road surface. + /// A speed limit sign painted on the road surface. TYPE_SPEED_LIMIT = 3; - // A straight arrow painted on the road surface indicating a lane to drive straight. + /// A straight arrow painted on the road surface indicating a lane to drive straight. TYPE_STRAIGHT_ARROW = 4; - // A straight arrow painted on the road surface indicating a lane to turn right. + /// A straight arrow painted on the road surface indicating a lane to turn right. TYPE_RIGHT_TURN_ARROW = 5; - // A straight arrow painted on the road surface indicating a lane to turn left. + /// A straight arrow painted on the road surface indicating a lane to turn left. TYPE_LEFT_TURN_ARROW = 6; } - // Definition of road marking colors + /// Definition of road marking colors enum Color { - // Color of road marking is unknown. Value must not be used in ground truth. + /// Color of road marking is unknown. Value must not be used in ground truth. COLOR_UNKNOWN = 0; - // Marking with another (unspecified but known) color. + /// Marking with another (unspecified but known) color. COLOR_OTHER = 1; - // Marking with white color. + /// Marking with white color. COLOR_WHITE = 2; - // Marking with yellow / orange-yellow color. + /// Marking with yellow / orange-yellow color. COLOR_YELLOW = 3; - // Marking with blue color. + /// Marking with blue color. COLOR_BLUE = 5; } } diff --git a/osi_lane.proto b/osi_lane.proto index dff15f1a5..d117d89e4 100644 --- a/osi_lane.proto +++ b/osi_lane.proto @@ -6,228 +6,228 @@ import "osi_common.proto"; package osi; -/** - * A lane in the road network. - * - * A lane is part of a road and mainly characterized by its center line. It also knows about any adjacent lanes, - * antecessor and successor lanes. The following image will be referred to by later comments. We'll use the lane with id - * 3 as reference if not mentioned otherwise. - * - * \image html highway_exit.png - * - * For lane a to be the antecessor of lane b, the last point of a's center line has to be identical to the first point - * of b's center line (although both points might lie outside the simulated region, the relationship remains). Any lane - * starts or ends at such a split/merge point. No lane can ever keep its id after such a split point, i.e. lane 4 has to - * change its id after lane 6 splits off of lane 4, thus in the example it becomes a new lane with id 7. - */ +/// +/// A lane in the road network. +/// +/// A lane is part of a road and mainly characterized by its center line. It also knows about any adjacent lanes, +/// antecessor and successor lanes. The following image will be referred to by later comments. We'll use the lane with id +/// 3 as reference if not mentioned otherwise. +/// +/// \image html highway_exit.png +/// +/// For lane a to be the antecessor of lane b, the last point of a's center line has to be identical to the first point +/// of b's center line (although both points might lie outside the simulated region, the relationship remains). Any lane +/// starts or ends at such a split/merge point. No lane can ever keep its id after such a split point, i.e. lane 4 has to +/// change its id after lane 6 splits off of lane 4, thus in the example it becomes a new lane with id 7. +/// message Lane { - // The (global) id of the lane. - // Example: 3 (see reference picture) + /// The (global) id of the lane. + /// Example: 3 (see reference picture) optional Identifier id = 1; - // The type of the lane. - // Example: Lane::Type::NORMAL (see reference picture) + /// The type of the lane. + /// Example: Lane::Type::NORMAL (see reference picture) optional Type type = 2; - // The lane's center line. - // - // This is the line, that a typical vehicle is supposed to follow. Thus, if the road narrows (e.g. 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. - // - // \attention The points might be set at arbitrary distances, but must not be further appart than 5m. 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 - // - // Example: The yellow dotted line right of the blue 3. + /// The lane's center line. + /// + /// This is the line, that a typical vehicle is supposed to follow. Thus, if the road narrows (e.g. 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. + /// + /// \attention The points might be set at arbitrary distances, but must not be further appart than 5m. 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 + /// + /// Example: The yellow dotted line right of the blue 3. repeated Vector3d center_line = 3; - // The boundary of the lane. - // - // The lane boundaries describe the lane markings or other boundaries delimiting the lane as well as free lines that - // might be used e.g. in construction sites. The lane markings do not have to be parallel to the center_line, but - // they are the basis for calculating the width of the lane at any given distance. - // - // Example: The double solid line above the 3, and the dashed line below the 3. (see reference picture) There might - // also be additional free lanes. + /// The boundary of the lane. + /// + /// The lane boundaries describe the lane markings or other boundaries delimiting the lane as well as free lines that + /// might be used e.g. in construction sites. The lane markings do not have to be parallel to the center_line, but + /// they are the basis for calculating the width of the lane at any given distance. + /// + /// Example: The double solid line above the 3, and the dashed line below the 3. (see reference picture) There might + /// also be additional free lanes. repeated LaneBoundary lane_boundary = 4; - // The lane's left adjacent lanes (w.r.t. intended driving direction). - // Example: The lane id 2. + /// The lane's left adjacent lanes (w.r.t. intended driving direction). + /// Example: The lane id 2. repeated Identifier left_adjacent_lane_id = 5; - // The lane's right adjacent lanes (w.r.t. intended driving direction). - // Example: The lane ids 4 and 7. + /// The lane's right adjacent lanes (w.r.t. intended driving direction). + /// Example: The lane ids 4 and 7. repeated Identifier right_adjacent_lane_id = 6; - // The lane's antecessors (lanes that end in the same point that this lane's center line starts from). - // There might be multiple antecessors i.e. in road crossings. Antecessors might also come from a different Road. - // Example: Considering lane 6, its antecessor is the lane with id 4. + /// The lane's antecessors (lanes that end in the same point that this lane's center line starts from). + /// There might be multiple antecessors i.e. in road crossings. Antecessors might also come from a different Road. + /// Example: Considering lane 6, its antecessor is the lane with id 4. repeated Identifier antecessor_lane_id = 7; - // The lane's successors (lanes that start in the same point that this lane's center line ends in). - // There might be multiple successors i.e. in road crossings or highway exits. Successors might also come from a - // different Road. - // Example: Considering lane 4, its successors are the lanes with id 6 and 7. + /// The lane's successors (lanes that start in the same point that this lane's center line ends in). + /// There might be multiple successors i.e. in road crossings or highway exits. Successors might also come from a + /// different Road. + /// Example: Considering lane 4, its successors are the lanes with id 6 and 7. repeated Identifier successor_lane_id = 8; - // A lane framing describes the surrounding of the lane segment. + /// A lane framing describes the surrounding of the lane segment. optional LaneFraming lane_framing = 9; - // Definition of available lane types. + /// Definition of available lane types. enum Type { - // Lane of unknown type. Value must not be used in ground truth! + /// Lane of unknown type. Value must not be used in ground truth! TYPE_UNKNOWN = 0; - // Any other type of lane + /// Any other type of lane TYPE_OTHER = 1; - // A normal lane. - // E.g. lanes with ids 1, 2, 3, 4 and 7 of the highway_exit image. + /// A normal lane. + /// E.g. lanes with ids 1, 2, 3, 4 and 7 of the highway_exit image. TYPE_NORMAL = 2; - // A stop/emergency lane on highways/freeways. - // E.g. lane with id 5 of the highway_exit image. + /// A stop/emergency lane on highways/freeways. + /// E.g. lane with id 5 of the highway_exit image. TYPE_EMERGENCY = 3; - // A freeway/highway entry lane. + /// A freeway/highway entry lane. TYPE_ENTRANCE = 4; - // A freeway/highway exit lane. - // E.g. lane with id 6 of the highway_exit image. + /// A freeway/highway exit lane. + /// E.g. lane with id 6 of the highway_exit image. TYPE_EXIT = 5; - // A car pooling lane. + /// A car pooling lane. TYPE_HIGH_OCCUPANCY_VEHICLE = 6; - // A road area / lane reserved for parking. + /// A road area / lane reserved for parking. TYPE_PARKING = 7; } - // Definition of available lane framing types. + /// Definition of available lane framing types. enum LaneFraming { - // Lane of unknown framing. Value must not be used in ground truth! + /// Lane of unknown framing. Value must not be used in ground truth! LANE_FRAMING_UNKNOWN = 0; - // Other (unspecified but known) lane framing. + /// Other (unspecified but known) lane framing. LANE_FRAMING_OTHER = 1; - // The lane is not framed. + /// The lane is not framed. LANE_FRAMING_OPEN = 2; - // The lane segment is inside of a tunnel. + /// The lane segment is inside of a tunnel. LANE_FRAMING_TUNNEL = 3; - // The lane segment is on a bridge. + /// The lane segment is on a bridge. LANE_FRAMING_BRIDGE = 4; } } -/** - * A lane boundary defining the border of a lane. - * The left and right lane boundary define the width of the lane borders. Additionally, free markings can be defined, - * e.g. in construction sites. Free markings across multiple lanes may be defined multiple times by all affected - * lanes. - */ +/// +/// A lane boundary defining the border of a lane. +/// The left and right lane boundary define the width of the lane borders. Additionally, free markings can be defined, +/// e.g. in construction sites. Free markings across multiple lanes may be defined multiple times by all affected +/// lanes. +/// message LaneBoundary { - // The list of individual points defining the location of the lane boundary. - // - // Since a 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 BoundaryPoint in the sequence or set to default values if there is - // none or it was never set. For dashed lines, one BoundaryPoint has to be at the start and another at the end of - // each dashed line segment. - // - // \attention For BoundaryPoints the same rules apply as for Lane::center_line regarding maximum distance and - // approximation error. + /// The list of individual points defining the location of the lane boundary. + /// + /// Since a 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 BoundaryPoint in the sequence or set to default values if there is + /// none or it was never set. For dashed lines, one BoundaryPoint has to be at the start and another at the end of + /// each dashed line segment. + /// + /// \attention For BoundaryPoints the same rules apply as for Lane::center_line regarding maximum distance and + /// approximation error. repeated BoundaryPoint boundary_line = 1; - // The location of the lane boundary within the lane. + /// The location of the lane boundary within the lane. optional BoundaryLocation location = 2; - // The type of the lane boundary. + /// The type of the lane boundary. optional Type type = 3; - // The color of the lane boundary in case of lane markings. + /// The color of the lane boundary in case of lane markings. optional Color color = 4; - // The location of the lane boundary within the lane. + /// The location of the lane boundary within the lane. enum BoundaryLocation { - // The location of the boundary is unknown. Value must not be used in ground truth. + /// The location of the boundary is unknown. Value must not be used in ground truth. BOUNDARY_LOCATION_UNKNOWN = 0; - // Other (unspecified but known) boundary location. + /// Other (unspecified but known) boundary location. BOUNDARY_LOCATION_OTHER = 1; - // A left lane boundary. + /// A left lane boundary. BOUNDARY_LOCATION_LEFT = 2; - // A right lane boundary. + /// A right lane boundary. BOUNDARY_LOCATION_RIGHT = 3; - // A free lane boundary. + /// A free lane boundary. BOUNDARY_LOCATION_FREE = 4; } - // The lane boundary type. - // There are no double lines, e.g. solid solid or dashed solid, as each lane will define its own side of the lane - // boundary. + /// The lane boundary type. + /// There are no double lines, e.g. solid solid or dashed solid, as each lane will define its own side of the lane + /// boundary. enum Type { - // The type of lane boundary is unknown. Value must not be used in ground truth. + /// The type of lane boundary is unknown. Value must not be used in ground truth. TYPE_UNKNOWN = 0; - // Unspecified but known type of lane boundary. - // Consider proposing an additional type if using TYPE_OTHER. + /// Unspecified but known type of lane boundary. + /// Consider proposing an additional type if using TYPE_OTHER. TYPE_OTHER = 1; - // An invisible lane boundary (e.g. unmarked part of a dashed line). + /// An invisible lane boundary (e.g. unmarked part of a dashed line). TYPE_NO_LINE = 2; - // A solid line at the lane boundary. + /// A solid line at the lane boundary. TYPE_SOLID_LINE = 3; - // A dashed line at the lane boundary. + /// A dashed line at the lane boundary. TYPE_DASHED_LINE = 4; - // A lane boundary consisting of Botts' dots. + /// A lane boundary consisting of Botts' dots. TYPE_BOTTS_DOTS = 5; - // A lane boundary formed by the road's edge. - // The road edge is the end of the (paved) road surface. + /// A lane boundary formed by the road's edge. + /// The road edge is the end of the (paved) road surface. TYPE_ROAD_EDGE = 6; - // A lane boundary formed by a snow edge that may be on the road surface. + /// A lane boundary formed by a snow edge that may be on the road surface. TYPE_SNOW_EDGE = 7; - // A guard rail. + /// A guard rail. TYPE_GUARD_RAIL = 8; - // A curb. + /// A curb. TYPE_CURB = 9; - // A structure (e.g. building or tunnel wall). + /// A structure (e.g. building or tunnel wall). TYPE_STRUCTURE = 10; } - // The color of the lane boundary in case of a lane markings. - // Lane markings that change their color must be represented by individual Lane segments. + /// The color of the lane boundary in case of a lane markings. + /// Lane markings that change their color must be represented by individual Lane 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; - // Other (unspecified but known) color. + /// Other (unspecified but known) color. COLOR_OTHER = 1; - // Marking without color, used to represent logical boundaries without physical markings. - // Value may be used in ground truth only. + /// Marking without color, used to represent logical boundaries without physical markings. + /// Value may be used in ground truth only. COLOR_NONE = 2; - // Marking with white color. + /// Marking with white color. COLOR_WHITE = 3; - // Marking with yellow / orange-yellow color. + /// Marking with yellow / orange-yellow color. COLOR_YELLOW = 4; - // Marking with red color + /// Marking with red color COLOR_RED = 5; - // Marking with blue color. + /// Marking with blue color. COLOR_BLUE = 6; - // Marking with green color; + /// Marking with green color; COLOR_GREEN = 7; } } -/** - * One point of a lane boundary. - */ +/// +/// One point of a lane boundary. +/// message BoundaryPoint { - // The position of the BoundaryPoint. + /// The position of the BoundaryPoint. optional Vector3d position = 1; - // The overall width of the lane boundary at the position of the BoundaryPoint. - // Used for lines forming lane markings. + /// The overall width of the lane boundary at the position of the BoundaryPoint. + /// Used for lines forming lane markings. optional double boundary_width = 2; - // The overall height of the lane boundary at the position of the BoundaryPoint. - // Used for guard rails, curbstone, or similar + /// The overall height of the lane boundary at the position of the BoundaryPoint. + /// Used for guard rails, curbstone, or similar optional double boundary_height = 3; } diff --git a/osi_lowleveldata.proto b/osi_lowleveldata.proto index ce93618cc..543e10c19 100644 --- a/osi_lowleveldata.proto +++ b/osi_lowleveldata.proto @@ -6,109 +6,109 @@ import "osi_common.proto"; package osi; -/** - * Interface for low level sensor data, in contrast to high level data after object hypothesis and tracking. - * - * All information regarding the environment is given with respect to the sensor coordinate system specified in - * LowLevelData::mounting_position. When simulating multiple sensors, each sensor has an individual copy of LowLevelData - * in its own reference frame. This allows an independent treatment of the sensors. - */ +/// +/// Interface for low level sensor data, in contrast to high level data after object hypothesis and tracking. +/// +/// All information regarding the environment is given with respect to the sensor coordinate system specified in +/// LowLevelData::mounting_position. When simulating multiple sensors, each sensor has an individual copy of LowLevelData +/// in its own reference frame. This allows an independent treatment of the sensors. +/// message LowLevelData { - // The id of the sensor. + /// The id of the sensor. optional Identifier id = 1; - // The data timestamp of the simulation environment. Start time (zero) is arbitrary, but must remain fixed over the - // course of a simulation run. Recommended zero time is the starting time of the simulation. + /// The data timestamp of the simulation environment. Start time (zero) is arbitrary, but must remain fixed over the + /// course of a simulation run. Recommended zero time is the starting time of the simulation. optional Timestamp timestamp = 2; - // Mounting position of the sensor (origin and orientation of the sensor coordinate system); given relative to the - // middle of the rear axis of the host vehicle. + /// Mounting position of the sensor (origin and orientation of the sensor coordinate system); given relative to the + /// middle of the rear axis of the host vehicle. optional MountingPosition mounting_position = 3; - // Lidar point cloud. + /// Lidar point cloud. optional LidarPointCloud lidar_point_cloud = 4; - // Radar Reflection list. + /// Radar Reflection list. optional RadarReflectionList radar_reflection_list = 5; } -/** - * A generic lidar point cloud. - */ +/// +/// A generic lidar point cloud. +/// message LidarPointCloud { - // List of points constituting the point cloud. + /// List of points constituting the point cloud. repeated LidarPoint point = 1; } -/** - * A point in a lidar point cloud. - */ +/// +/// A point in a lidar point cloud. +/// message LidarPoint { - // Position of the point. + /// Position of the point. optional Vector3d position = 1; - // Intensity of echo received by sensor associated with the point. Unit: [W]. + /// Intensity of echo received by sensor associated with the point. Unit: [W]. optional double intensity = 2; - // Estimated type of target that caused the reflection. + /// Estimated type of target that caused the reflection. optional ReflectionType reflection_type = 3; - // The id of the (dynamic) object that caused the reflection (only set for corresponding ReflectionType, unset in - // other cases). + /// The id of the (dynamic) object that caused the reflection (only set for corresponding ReflectionType, unset in + /// other cases). optional Identifier reflection_object_id = 4; - // Echo number of the LidarPoint associated with a specific transmitted laser pulse. The echo number is 0 if the - // LidarPoint results from the closest reflection, 1 for the second closest, etc. + /// Echo number of the LidarPoint associated with a specific transmitted laser pulse. The echo number is 0 if the + /// LidarPoint results from the closest reflection, 1 for the second closest, etc. optional uint32 echo = 5; - // Duration of the echo pulse (above system noise cut-off threshold). Unit: [ns]. + /// Duration of the echo pulse (above system noise cut-off threshold). Unit: [ns]. optional double echo_pulse_duration = 6; - // Definition of reflection types. + /// Definition of reflection types. enum ReflectionType { - // Reflection type is unknown (must not be used in ground truth). + /// Reflection type is unknown (must not be used in ground truth). REFLECTION_TYPE_UNKNOWN = 0; - // Other (unspecified but known) type of reflection. + /// Other (unspecified but known) type of reflection. REFLECTION_TYPE_OTHER = 1; - // Invalid scan point, not to be used for object tracking, of unspecified type (none of the other types applies). + /// Invalid scan point, not to be used for object tracking, of unspecified type (none of the other types applies). REFLECTION_TYPE_INVALID = 2; - // Reflection from dynamic object. + /// Reflection from dynamic object. REFLECTION_TYPE_DYNAMIC_OBJECT = 3; - // Reflection from static object. + /// Reflection from static object. REFLECTION_TYPE_STATIC_OBJECT = 4; - // Reflection from ground. + /// Reflection from ground. REFLECTION_TYPE_GROUND = 5; - // Reflection from road marking. + /// Reflection from road marking. REFLECTION_TYPE_ROAD_MARKING = 6; } } -/** - * A list of radar reflections. - */ +/// +/// A list of radar reflections. +/// message RadarReflectionList { - // List of radar reflections constituting the radar reflection list. + /// List of radar reflections constituting the radar reflection list. repeated RadarReflection reflection = 1; } message RadarReflection { - // The id of the radar reflection. + /// The id of the radar reflection. optional Identifier id = 1; - // The position vector of the radar reflection, given in polar coordinates. + /// The position vector of the radar reflection, given in polar coordinates. optional Polar3d position = 2; - // The radar cross section (RCS) of the radar reflection. Unit: [dB sqm]. + /// The radar cross section (RCS) of the radar reflection. Unit: [dB sqm]. optional double rcs = 3; - // Radial speed of the radar reflection. - // Not be confused with the velocity vector! This is the absolute value of the radial component of the velocity - // vector as can be measured directly using the Doppler effect. + /// Radial speed of the radar reflection. + /// Not be confused with the velocity vector! This is the absolute value of the radial component of the velocity + /// vector as can be measured directly using the Doppler effect. optional double speed = 4; } diff --git a/osi_modelinternal.proto b/osi_modelinternal.proto index 765346926..fec4ade4b 100644 --- a/osi_modelinternal.proto +++ b/osi_modelinternal.proto @@ -7,63 +7,63 @@ import "osi_object.proto"; package osi; -/** - * Internal data and state flags for the sensor model, set and used during modification of the interface data. - * - * Content of all ModelInternal* messages may be cleared at the end of the sensor model processing chain and not sent - * with the final output of the sensor model. Receiving components must not expect values in ModelInternal* messages to - * be set. In particular, the message structures defined in this file must not be used by receiving components outside - * of the sensor model to read required input data. - */ +/// +/// Internal data and state flags for the sensor model, set and used during modification of the interface data. +/// +/// Content of all ModelInternal* messages may be cleared at the end of the sensor model processing chain and not sent +/// with the final output of the sensor model. Receiving components must not expect values in ModelInternal* messages to +/// be set. In particular, the message structures defined in this file must not be used by receiving components outside +/// of the sensor model to read required input data. +/// message ModelInternal { - // Low level data interface, for use by models performing statistical generation of such "low level data" before - // object hypothesis and tracking from object ground truth. - // Low Level data should be transferred to receiving components by means of a separate data stream. Therefore they - // are not part the top level SensorData message, as they are used only internally by some models. + /// Low level data interface, for use by models performing statistical generation of such "low level data" before + /// object hypothesis and tracking from object ground truth. + /// Low Level data should be transferred to receiving components by means of a separate data stream. Therefore they + /// are not part the top level SensorData message, as they are used only internally by some models. optional LowLevelData low_level_data = 1; - // Latency, time offset that should have been elapsed before the data is transmitted to the receiving component. - // Unit [ms]. + /// Latency, time offset that should have been elapsed before the data is transmitted to the receiving component. + /// Unit [ms]. optional double latency = 2; } -/** - * Additional internal data and state flags for SensorDataObjects. - */ +/// +/// Additional internal data and state flags for SensorDataObjects. +/// message ModelInternalObject { - // Specifies whether this vehicle is seen by the sensor; set by the field-of-view calculation. + /// Specifies whether this vehicle is seen by the sensor; set by the field-of-view calculation. optional bool is_seen = 1 [default = true]; - // The type of the original object in the ground truth. + /// The type of the original object in the ground truth. optional ObjectType ground_truth_type = 2; - // Ground truth vehicle type for object of ground_truth_type Vehicle, should not be set otherwise. + /// Ground truth vehicle type for object of ground_truth_type Vehicle, should not be set otherwise. optional Vehicle.Type vehicle_type = 3; - // Ground truth object type for object of ground_truth_type MovingObject, should not be set otherwise. + /// Ground truth object type for object of ground_truth_type MovingObject, should not be set otherwise. optional MovingObject.Type moving_object_type = 4; - // Ground truth object type for object of ground_truth_type StationaryObject, should not be set otherwise. + /// Ground truth object type for object of ground_truth_type StationaryObject, should not be set otherwise. optional StationaryObject.Type stationary_object_type = 5; - // Definition of object types in ground truth (see osi_object for definitions). + /// Definition of object types in ground truth (see osi_object for definitions). enum ObjectType { - // Object is a ghost object and does not exist in ground truth. + /// Object is a ghost object and does not exist in ground truth. OBJECT_TYPE_GHOST = 0; - // Other (unspecified but known) type of object. + /// Other (unspecified but known) type of object. OBJECT_TYPE_OTHER = 1; - // Object of type Vehicle. + /// Object of type Vehicle. OBJECT_TYPE_VEHICLE = 2; - // Object of type MovingObject. + /// Object of type MovingObject. OBJECT_TYPE_MOVING = 3; - // Object of type StationaryObject. + /// Object of type StationaryObject. OBJECT_TYPE_STATIONARY = 4; - // Object of type TrafficSign. + /// Object of type TrafficSign. OBJECT_TYPE_TRAFFIC_SIGN = 5; - // Object of type TrafficLight. + /// Object of type TrafficLight. OBJECT_TYPE_TRAFFIC_LIGHT = 6; } } diff --git a/osi_object.proto b/osi_object.proto index 16f59618d..3935f235e 100644 --- a/osi_object.proto +++ b/osi_object.proto @@ -6,206 +6,206 @@ import "osi_common.proto"; package osi; -/** - * A vehicle. - * - * This is basically a BaseObject with additional attributes, such as type and lights. Note that, if this vehicle is a - * simulated ego vehicle (i.e. ego_vehicle is set to true), relative_ego_origin has to be set, defining the offset from - * the ego vehicle's bounding box center to the center of the vehicle's rear axis. This defines the origin of the ego - * vehicle's rear axis coordinate system and allows calculation of quantities relative to this reference frame. The - * origin of the rear axis coordinate system in world coordinates is calculated as (base.position + relative_ego_origin) - * for the ego vehicle. For all vehicles, including ego vehicles, the position given in base.position points to the - * center of the vehicle's bounding box. - */ +/// +/// A vehicle. +/// +/// This is basically a BaseObject with additional attributes, such as type and lights. Note that, if this vehicle is a +/// simulated ego vehicle (i.e. ego_vehicle is set to true), relative_ego_origin has to be set, defining the offset from +/// the ego vehicle's bounding box center to the center of the vehicle's rear axis. This defines the origin of the ego +/// vehicle's rear axis coordinate system and allows calculation of quantities relative to this reference frame. The +/// origin of the rear axis coordinate system in world coordinates is calculated as (base.position + relative_ego_origin) +/// for the ego vehicle. For all vehicles, including ego vehicles, the position given in base.position points to the +/// center of the vehicle's bounding box. +/// message Vehicle { - // The id of the vehicle. + /// The id of the vehicle. optional Identifier id = 1; - // The base parameters of the vehicle. + /// The base parameters of the vehicle. optional BaseMoving base = 2; - // The type of the vehicle. + /// The type of the vehicle. optional Type type = 3; - // The light state of the vehicle. + /// The light state of the vehicle. optional LightState light_state = 4; - // Flag defining whether the vehicle is a simulated ego vehicle: True for ego vehicle(s), false for other vehicles. - // See the description above! + /// Flag defining whether the vehicle is a simulated ego vehicle: True for ego vehicle(s), false for other vehicles. + /// See the description above! optional bool ego_vehicle = 5; - // The position of the vehicle's reference point. - // See the description above! - // Field need not be set (or should be zero) if ego_vehicle is set to false. + /// The position of the vehicle's reference point. + /// See the description above! + /// Field need not be set (or should be zero) if ego_vehicle is set to false. optional Vector3d relative_ego_origin = 6; - // The ids of the lanes that this vehicle is assigned to. - // Might be multiple if the vehicle is switching lanes or moving from one lane into another following lane. + /// The ids of the lanes that this vehicle is assigned to. + /// Might be multiple if the vehicle is switching lanes or moving from one lane into another following lane. repeated Identifier assigned_lane = 7; - // Flag defining whether the vehicle has an attached trailer. + /// Flag defining whether the vehicle has an attached trailer. optional bool has_trailer = 8; - // Id of the attached trailer. - // Field need not be set if has_Trailer is set to false. + /// Id of the attached trailer. + /// Field need not be set if has_Trailer is set to false. optional Identifier trailer_id = 9; - // The id of the driver of the (ego) vehicle. - // Field need not be set if ego_vehicle is set to false. + /// The id of the driver of the (ego) vehicle. + /// Field need not be set if ego_vehicle is set to false. optional Identifier driver = 10; - // Definition of vehicle types. + /// Definition of vehicle types. enum Type { - // Type of vehicle is unknown (must not be used in ground truth). + /// Type of vehicle is unknown (must not be used in ground truth). TYPE_UNKNOWN = 0; - // Other (unspecified but known) type of vehicle. + /// Other (unspecified but known) type of vehicle. TYPE_OTHER = 1; - // Vehicle is a normal car. + /// Vehicle is a normal car. TYPE_CAR = 2; - // Vehicle is a truck, bus, or large van. + /// Vehicle is a truck, bus, or large van. TYPE_TRUCK = 3; - // Vehicle is a motorbike or moped. + /// Vehicle is a motorbike or moped. TYPE_MOTOR_BIKE = 4; - // Vehicle is a bicycle (without motor). + /// Vehicle is a bicycle (without motor). TYPE_BICYCLE = 5; - // Vehicle is a trailer (possibly attached to another vehicle). + /// Vehicle is a trailer (possibly attached to another vehicle). TYPE_TRAILER = 6; } - /** - * The state of the lights of a vehicle. - */ + /// + /// The state of the lights of a vehicle. + /// message LightState { - // State of the objects indicators. + /// State of the objects indicators. optional IndicatorState indicator_state = 1; - // State of the front fog light. + /// State of the front fog light. optional GenericLightState front_fog_light = 2; - // State of the rear fog light. + /// State of the rear fog light. optional GenericLightState rear_fog_light = 3; - // State of the head lights. + /// State of the head lights. optional GenericLightState head_light = 4; - // State of the high beam. + /// State of the high beam. optional GenericLightState high_beam = 5; - // State of the reversing light. + /// State of the reversing light. optional GenericLightState reversing_light = 6; - // State of the brake lights. + /// State of the brake lights. optional BrakeLightState brake_light_state = 7; - // State of the (rear) license plate illumination + /// State of the (rear) license plate illumination optional GenericLightState license_plate_illumination_rear = 8; - // Definition of indicator states. + /// Definition of indicator states. 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; - // Other (unspecified but known) state of indicator. + /// Other (unspecified but known) state of indicator. INDICATOR_STATE_OTHER = 1; - // Indicators are off. + /// Indicators are off. INDICATOR_STATE_OFF = 2; - // Left indicator is on. + /// Left indicator is on. INDICATOR_STATE_LEFT = 3; - // Right indicator is on. + /// Right indicator is on. INDICATOR_STATE_RIGHT = 4; - // Hazard/warning light, i.e. both indicators, are on. + /// Hazard/warning light, i.e. both indicators, are on. 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 { - // Light state is unknown (must not be used in ground truth). + /// Light state is unknown (must not be used in ground truth). GENERIC_LIGHT_STATE_UNKNOWN = 0; - // Other (unspecified but known) state of ligth. + /// Other (unspecified but known) state of ligth. GENERIC_LIGHT_STATE_OTHER = 1; - // Light is off. + /// Light is off. GENERIC_LIGHT_STATE_OFF = 2; - // Light is on. + /// Light is on. GENERIC_LIGHT_STATE_ON = 3; } - // Definition of brake light states. + /// Definition of brake light states. 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 = 0; - // Other (unspecified but known) state of brake light. + /// Other (unspecified but known) state of brake light. BRAKE_LIGHT_OTHER = 1; - // Brake lights are off. + /// Brake lights are off. BRAKE_LIGHT_OFF = 2; - // Brake lights are on with normal intensity. + /// Brake lights are on with normal intensity. BRAKE_LIGHT_NORMAL = 3; - // Brake lights are on with extra bright intensity (indicating stronger braking). + /// Brake lights are on with extra bright intensity (indicating stronger braking). BRAKE_LIGHT_STRONG = 4; } } } -/** - * A simulated object that is neither a vehicle, traffic sign or traffic light. - */ +/// +/// A simulated object that is neither a vehicle, traffic sign or traffic light. +/// message MovingObject { - // The id of the object. + /// The id of the object. optional Identifier id = 1; - // The base parameters of the vehicle. + /// The base parameters of the vehicle. optional BaseMoving base = 2; - // The type of the object. + /// The type of the object. optional Type type = 3; - // Definition of object types. + /// Definition of object types. enum Type { - // Type of the object is unknown (must not be used in ground truth). + /// Type of the object is unknown (must not be used in ground truth). TYPE_UNKNOWN = 0; - // Other (unspecified but known) type of moving object. + /// Other (unspecified but known) type of moving object. TYPE_OTHER = 1; - // Object is a pedestrian. + /// Object is a pedestrian. TYPE_PEDESTRIAN = 2; - // Object is an animal. + /// Object is an animal. TYPE_ANIMAL = 3; } } -/** - * A simulated object that is neither a vehicle, traffic sign or traffic light. - */ +/// +/// A simulated object that is neither a vehicle, traffic sign or traffic light. +/// message StationaryObject { - // The id of the object. + /// The id of the object. optional Identifier id = 1; - // The base parameters of the vehicle. + /// The base parameters of the vehicle. optional BaseStationary base = 2; - // The type of the object. + /// The type of the object. optional Type type = 3; - // Definition of object types. + /// Definition of object types. enum Type { - // Type of the object is unknown (must not be used in ground truth). + /// Type of the object is unknown (must not be used in ground truth). TYPE_UNKNOWN = 0; - // Other (unspecified but known) type of object. + /// Other (unspecified but known) type of object. TYPE_OTHER = 1; - // Object is a bridge. + /// Object is a bridge. TYPE_BRIDGE = 2; - // Object is a building. + /// Object is a building. TYPE_BUILDING = 3; - // Object is a pylon. + /// Object is a pylon. TYPE_PYLON = 4; - // Object is a reflector post. + /// Object is a reflector post. TYPE_REFLECTOR_POST = 5; - // Object is a delineator (e.g. at a construction site). + /// Object is a delineator (e.g. at a construction site). TYPE_DELINEATOR = 6; } } diff --git a/osi_occupant.proto b/osi_occupant.proto index 2d205143c..ed904c086 100644 --- a/osi_occupant.proto +++ b/osi_occupant.proto @@ -6,69 +6,69 @@ import "osi_common.proto"; package osi; -/** - * An occupant of an ego vehicle, especially the driver of the vehicle. - */ +/// +/// An occupant of an ego vehicle, especially the driver of the vehicle. +/// message Occupant { - // The id of the driver. + /// The id of the driver. optional Identifier id = 1; - // Flag determining whether the person is the driver of the vehicle or a passenger. + /// Flag determining whether the person is the driver of the vehicle or a passenger. optional bool is_driver = 2; - // Seat position of the vehicle occupant. + /// Seat position of the vehicle occupant. optional Seat seat = 3; - // Describes the state of the passengers hands related to the steering wheel (mostly driver). + /// Describes the state of the passengers hands related to the steering wheel (mostly driver). optional SteeringControl steering_control = 4; - // Definition of seat positions. + /// Definition of seat positions. enum Seat { - // Seat position is unknown. Value must not be used in ground truth. + /// Seat position is unknown. Value must not be used in ground truth. SEAT_UNKNOWN = 0; - // Other (unspecified but known) seat. + /// Other (unspecified but known) seat. SEAT_OTHER = 1; - // Seat position is in the front row, left seat. - // This is usually the driver's seat in right-hand traffic. + /// Seat position is in the front row, left seat. + /// This is usually the driver's seat in right-hand traffic. SEAT_FRONT_LEFT = 2; - // Seat position is in the front row, right seat. - // This is usually the driver's seat in left-hand traffic. + /// Seat position is in the front row, right seat. + /// This is usually the driver's seat in left-hand traffic. SEAT_FRONT_RIGHT = 3; - // Seat position is in the front row, middle seat. + /// Seat position is in the front row, middle seat. SEAT_FRONT_MIDDLE = 4; - // Seat position is in the back row, left seat. + /// Seat position is in the back row, left seat. SEAT_BACK_LEFT = 5; - // Seat position is in the back row, right right. + /// Seat position is in the back row, right right. SEAT_BACK_RIGHT = 6; - // Seat position is in the back row, middle seat. + /// Seat position is in the back row, middle seat. SEAT_BACK_MIDDLE = 7; - // Seat position is in the third row, left seat. + /// Seat position is in the third row, left seat. SEAT_THIRD_ROW_LEFT = 8; - // Seat position is in the third row, right seat. + /// Seat position is in the third row, right seat. SEAT_THIRD_ROW_RIGHT = 9; - // Seat position is in the third row, middle seat. + /// Seat position is in the third row, middle seat. SEAT_THIRD_ROW_MIDDLE = 10; } - // Definition of hands related to the steering wheel (mostly driver). + /// Definition of hands related to the steering wheel (mostly driver). enum SteeringControl { - // Hands state is unknown. Value must not be used in ground truth. + /// Hands state is unknown. Value must not be used in ground truth. STEERING_CONTROL_UNKNOWN = 0; - // Other (unspecified but known) hand positioning related to the steering wheel. + /// Other (unspecified but known) hand positioning related to the steering wheel. STEERING_CONTROL_OTHER = 1; - // Hands are not on the steering wheel. + /// Hands are not on the steering wheel. STEERING_CONTROL_NO_HAND = 2; - // One hand is on the steering wheel. Whether it is the left or right hand is unspecified or unknown. - // If there is no differentiation between one or both hands on the steering wheel, this value should be used. + /// One hand is on the steering wheel. Whether it is the left or right hand is unspecified or unknown. + /// If there is no differentiation between one or both hands on the steering wheel, this value should be used. STEERING_CONTROL_ONE_HAND = 3; - // Both hands are on the steering wheel. + /// Both hands are on the steering wheel. STEERING_CONTROL_BOTH_HANDS = 4; - // The left hand only is on the steering wheel. + /// The left hand only is on the steering wheel. STEERING_CONTROL_LEFT_HAND = 5; - // The right hand only is on the steering wheel. + /// The right hand only is on the steering wheel. STEERING_CONTROL_RIGHT_HAND = 6; } } diff --git a/osi_sensordata.proto b/osi_sensordata.proto index fdcb287ff..aa26e6d16 100644 --- a/osi_sensordata.proto +++ b/osi_sensordata.proto @@ -12,14 +12,14 @@ import "osi_modelinternal.proto"; package osi; -/** - * The virtual sensor information derived from osi::groundtruth and potentially processed by sensor-models. - * - * The virtual sensor information is supposed to imitate the output of a real sensor. All information regarding the - * environment is given with respect to the sensor coordinate system specified in SensorData::mounting_position.When - * simulating multiple sensors, each sensor has an individual copy of the SensorData interface. This allows an - * independent treatment of the sensors. - */ +/// +/// The virtual sensor information derived from osi::groundtruth and potentially processed by sensor-models. +/// +/// The virtual sensor information is supposed to imitate the output of a real sensor. All information regarding the +/// environment is given with respect to the sensor coordinate system specified in SensorData::mounting_position.When +/// simulating multiple sensors, each sensor has an individual copy of the SensorData interface. This allows an +/// independent treatment of the sensors. +/// message SensorData { // The id of the sensor. @@ -65,10 +65,10 @@ message SensorData optional ModelInternal model_internal = 12; } -/** - * Ground truth data with respect to two different reference frames (global and sensor) for use in the sensor model's - * data processing and comparison of sensor and ground truth data. - */ +/// +/// Ground truth data with respect to two different reference frames (global and sensor) for use in the sensor model's +/// data processing and comparison of sensor and ground truth data. +/// message SensorDataGroundTruth { // Ground truth w.r.t. global coordinate system (copy of GroundTruth message), diff --git a/osi_sensorspecific.proto b/osi_sensorspecific.proto index e3db3beb6..d1532ee59 100644 --- a/osi_sensorspecific.proto +++ b/osi_sensorspecific.proto @@ -4,26 +4,26 @@ option optimize_for = SPEED; package osi; -/** - * Message encapsulates all data for detected objects that is specific to radar sensors. - */ +/// +/// Message encapsulates all data for detected objects that is specific to radar sensors. +/// message RadarSpecificObjectData { // The radar cross section (RCS) of the detected object. Unit: [dB sqm]. optional double rcs = 1; } -/** - * Message encapsulates all data for detected objects that is specific to lidar sensors. - */ +/// +/// Message encapsulates all data for detected objects that is specific to lidar sensors. +/// message LidarSpecificObjectData { // currently no fields. } -/** - * Message encapsulates all data for detected objects that is specific to camera sensors. - */ +/// +/// Message encapsulates all data for detected objects that is specific to camera sensors. +/// message CameraSpecificObjectData { // currently no fields.