diff --git a/osi_detectedlandmark.proto b/osi_detectedlandmark.proto index cfb7012c4..c74f6b4c6 100644 --- a/osi_detectedlandmark.proto +++ b/osi_detectedlandmark.proto @@ -152,6 +152,10 @@ message CandidateSign // // Unit: [s] optional double age = 3; + + // The measurement state. + // + optional MeasurementState measurement_state = 4; } // @@ -174,6 +178,10 @@ message CandidateSupplementarySign // // Unit: [s] optional double age = 3; + + // The measurement state. + // + optional MeasurementState measurement_state = 4; } // @@ -217,10 +225,6 @@ message DetectedTrafficLight // and a high value indicates strong confidence. // optional double existence_probability = 8; - - // The measurement state. - // - optional MeasurementState measurement_state = 9; // A list of sensors which detected this detected entity. // @@ -287,6 +291,16 @@ message CandidateTrafficLight // The sum of all candidate_probabilities must be one. // optional double candidate_probability = 2; + + // The amount of time that this detected object has been currently + // observed/tracked. + // + // Unit: [s] + optional double age = 3; + + // The measurement state. + // + optional MeasurementState measurement_state = 4; } // @@ -334,10 +348,6 @@ message DetectedRoadMarking // Links to the corresponding lanes. // repeated RelevantLane relevant_lane = 6; - - // The measurement state. - // - optional MeasurementState measurement_state = 7; // The root mean squared error of the base parameters of the detected road // marking. @@ -375,4 +385,82 @@ message CandidateRoadMarking // // Unit: [s] optional double age = 3; + + // The measurement state. + // + optional MeasurementState measurement_state = 4; +} + +// +// \brief A landmark in the environment as detected by the sensor. +// +message DetectedLandmark +{ + // Specific ID of the landmark as assigned by the sensor internally. + // Need not match with \c #ground_truth_id_list. + // + optional Identifier tracking_id = 1; + + // The ID of the original landmark in the ground truth. + // In case of a ghost detection (no corresponding ground truth), this field + // should be unset. + // + repeated Identifier ground_truth_id_list = 2; + + // A list of candidates for this landmark as estimated by the sensor. + // + repeated CandidateLandmark candidate_landmarks = 3; + + // The estimated probability that this landmark really exists, not based + // on history. + // + // \note Use as confidence measure where a low value means less confidence + // and a high value indicates strong confidence. + // + optional double existence_probability = 4; + + // The root mean squared error of the base parameters of the detected + // landmark. \c RoadMarking::base has to be identical for + // all \c #candidate_landmarks landmarks. + // + optional BaseStationary base_rmse = 5; + + // A list of sensors which detected this detected entity. + // + // If \c SensorData has detected entities and all detections are missing, + // then e.g. the number of sensors can confirm the #existence_probability. + // + // \note This information can be determined via the detected entities' + // detections ( \c ...Detection::object_id = 'this detected entity' ) and + // the sensors (their IDs) to which these detections belong. + // + repeated Identifier sensor_id_list = 6; +} + +// +// \brief A candidate for a detected landmark as estimated by the sensor. +// +message CandidateLandmark +{ + // The description of the landmark. + // + optional Landmark landmark = 1; + + // The estimated probability that this candidate is the true value. + // The sum of all \c #candidate_probability must be one. + // + // Range: [0,1] + // + optional double candidate_probability = 2; + + // The amount of time that this detected object has been currently + // observed/tracked. + // + // Unit: [s] + // + optional double age = 3; + + // The measurement state. + // + optional MeasurementState measurement_state = 4; } diff --git a/osi_groundtruth.proto b/osi_groundtruth.proto index 439270220..b04d8cd77 100644 --- a/osi_groundtruth.proto +++ b/osi_groundtruth.proto @@ -87,6 +87,10 @@ message GroundTruth // repeated LaneBoundary lane_boundary = 10; + // The list of landmarks. + // + repeated Landmark landmarks = 1000; + // The list of passengers in the (host) vehicle(s). // repeated Occupant occupant = 11; diff --git a/osi_landmark.proto b/osi_landmark.proto index 3aaa9aee1..b44934a58 100644 --- a/osi_landmark.proto +++ b/osi_landmark.proto @@ -1172,3 +1172,65 @@ message RoadMarking COLOR_VIOLET = 8; } } + +// +// \brief A landmark. +// +// Landmarks for example the pole of a traffic light or traffic sign. +// +// All coordinates and orientations are relative to the global ground truth +// coordinate system. +// +message Landmark +{ + // The ID of the road marking. + // + optional Identifier id = 1; + + // The base parameters of the landmark. + // + optional BaseStationary base = 2; + + // The type of the landmark. + // + optional Type type = 3; + + // Definition of landmark types. + // + enum Type + { + // Type of landmark is unknown (must not be used in ground truth). + // + TYPE_UNKNOWN = 0; + + // Other (unspecified but known) type of landmark. + // + TYPE_OTHER = 1; + + // Landmarks corresponding to vertical structures in the environment, + // like poles. + // + TYPE_VERTICAL_STRUCTURE = 2; + + // Landmarks corresponding to rectangular structures in the environment, + // like walls. + // + TYPE_RECTANGULAR_STRUCTURE = 3; + + // Landmarks corresponding to overhead structures in the environment, + // like sign bridges. + // + TYPE_OVERHEAD_STRUCTURE = 4; + + // Landmarks corresponding to light sources or reflective structures in + // the environment, like street lights or reflective poles on the road + // boarder. + // + TYPE_REFLECTIVE_STRUCTURE = 5; + + // Landmarks corresponding to construction site elements in the + // environment, like cones or beacons. + // + TYPE_CONSTRUCTION_SITE_ELEMENT = 6; + } +} diff --git a/osi_sensordata.proto b/osi_sensordata.proto index b55b70130..ad15dbd14 100644 --- a/osi_sensordata.proto +++ b/osi_sensordata.proto @@ -160,7 +160,15 @@ message SensorData // The list of lane boundary markings detected by the sensor. // repeated DetectedLaneBoundary lane_boundary = 14; - + + // General information about the \c DetectedLandmark . + // + optional DetectedEntityHeader landmarks_header = 1000; + + // The list of landmarks detected by the sensor. + // + repeated DetectedLandmark landmarks = 1001; + // General information about the \c DetectedOccupant . // optional DetectedEntityHeader occupant_header = 106; @@ -207,7 +215,7 @@ message DetectedEntityHeader // Continuous up counter to identify the cycle. // - optional uint32 cycle_counter = 2; + optional uint64 cycle_counter = 2; // Data Qualifier expresses to what extent the content of this event can be // relied on.