Skip to content

Commit 52d2e7b

Browse files
authored
Merge pull request #170 from OpenSimulationInterface/feature/New-Landmark-Messages
Landmarks added (issue #166)
2 parents f762dbf + 91fe704 commit 52d2e7b

File tree

4 files changed

+172
-10
lines changed

4 files changed

+172
-10
lines changed

osi_detectedlandmark.proto

Lines changed: 96 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,10 @@ message CandidateSign
152152
//
153153
// Unit: [s]
154154
optional double age = 3;
155+
156+
// The measurement state.
157+
//
158+
optional MeasurementState measurement_state = 4;
155159
}
156160

157161
//
@@ -174,6 +178,10 @@ message CandidateSupplementarySign
174178
//
175179
// Unit: [s]
176180
optional double age = 3;
181+
182+
// The measurement state.
183+
//
184+
optional MeasurementState measurement_state = 4;
177185
}
178186

179187
//
@@ -217,10 +225,6 @@ message DetectedTrafficLight
217225
// and a high value indicates strong confidence.
218226
//
219227
optional double existence_probability = 8;
220-
221-
// The measurement state.
222-
//
223-
optional MeasurementState measurement_state = 9;
224228

225229
// A list of sensors which detected this detected entity.
226230
//
@@ -287,6 +291,16 @@ message CandidateTrafficLight
287291
// The sum of all candidate_probabilities must be one.
288292
//
289293
optional double candidate_probability = 2;
294+
295+
// The amount of time that this detected object has been currently
296+
// observed/tracked.
297+
//
298+
// Unit: [s]
299+
optional double age = 3;
300+
301+
// The measurement state.
302+
//
303+
optional MeasurementState measurement_state = 4;
290304
}
291305

292306
//
@@ -334,10 +348,6 @@ message DetectedRoadMarking
334348
// Links to the corresponding lanes.
335349
//
336350
repeated RelevantLane relevant_lane = 6;
337-
338-
// The measurement state.
339-
//
340-
optional MeasurementState measurement_state = 7;
341351

342352
// The root mean squared error of the base parameters of the detected road
343353
// marking.
@@ -375,4 +385,82 @@ message CandidateRoadMarking
375385
//
376386
// Unit: [s]
377387
optional double age = 3;
388+
389+
// The measurement state.
390+
//
391+
optional MeasurementState measurement_state = 4;
392+
}
393+
394+
//
395+
// \brief A landmark in the environment as detected by the sensor.
396+
//
397+
message DetectedLandmark
398+
{
399+
// Specific ID of the landmark as assigned by the sensor internally.
400+
// Need not match with \c #ground_truth_id_list.
401+
//
402+
optional Identifier tracking_id = 1;
403+
404+
// The ID of the original landmark in the ground truth.
405+
// In case of a ghost detection (no corresponding ground truth), this field
406+
// should be unset.
407+
//
408+
repeated Identifier ground_truth_id_list = 2;
409+
410+
// A list of candidates for this landmark as estimated by the sensor.
411+
//
412+
repeated CandidateLandmark candidate_landmarks = 3;
413+
414+
// The estimated probability that this landmark really exists, not based
415+
// on history.
416+
//
417+
// \note Use as confidence measure where a low value means less confidence
418+
// and a high value indicates strong confidence.
419+
//
420+
optional double existence_probability = 4;
421+
422+
// The root mean squared error of the base parameters of the detected
423+
// landmark. \c RoadMarking::base has to be identical for
424+
// all \c #candidate_landmarks landmarks.
425+
//
426+
optional BaseStationary base_rmse = 5;
427+
428+
// A list of sensors which detected this detected entity.
429+
//
430+
// If \c SensorData has detected entities and all detections are missing,
431+
// then e.g. the number of sensors can confirm the #existence_probability.
432+
//
433+
// \note This information can be determined via the detected entities'
434+
// detections ( \c ...Detection::object_id = 'this detected entity' ) and
435+
// the sensors (their IDs) to which these detections belong.
436+
//
437+
repeated Identifier sensor_id_list = 6;
438+
}
439+
440+
//
441+
// \brief A candidate for a detected landmark as estimated by the sensor.
442+
//
443+
message CandidateLandmark
444+
{
445+
// The description of the landmark.
446+
//
447+
optional Landmark landmark = 1;
448+
449+
// The estimated probability that this candidate is the true value.
450+
// The sum of all \c #candidate_probability must be one.
451+
//
452+
// Range: [0,1]
453+
//
454+
optional double candidate_probability = 2;
455+
456+
// The amount of time that this detected object has been currently
457+
// observed/tracked.
458+
//
459+
// Unit: [s]
460+
//
461+
optional double age = 3;
462+
463+
// The measurement state.
464+
//
465+
optional MeasurementState measurement_state = 4;
378466
}

osi_groundtruth.proto

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ message GroundTruth
8787
//
8888
repeated LaneBoundary lane_boundary = 10;
8989

90+
// The list of landmarks.
91+
//
92+
repeated Landmark landmarks = 1000;
93+
9094
// The list of passengers in the (host) vehicle(s).
9195
//
9296
repeated Occupant occupant = 11;

osi_landmark.proto

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,3 +1172,65 @@ message RoadMarking
11721172
COLOR_VIOLET = 8;
11731173
}
11741174
}
1175+
1176+
//
1177+
// \brief A landmark.
1178+
//
1179+
// Landmarks for example the pole of a traffic light or traffic sign.
1180+
//
1181+
// All coordinates and orientations are relative to the global ground truth
1182+
// coordinate system.
1183+
//
1184+
message Landmark
1185+
{
1186+
// The ID of the road marking.
1187+
//
1188+
optional Identifier id = 1;
1189+
1190+
// The base parameters of the landmark.
1191+
//
1192+
optional BaseStationary base = 2;
1193+
1194+
// The type of the landmark.
1195+
//
1196+
optional Type type = 3;
1197+
1198+
// Definition of landmark types.
1199+
//
1200+
enum Type
1201+
{
1202+
// Type of landmark is unknown (must not be used in ground truth).
1203+
//
1204+
TYPE_UNKNOWN = 0;
1205+
1206+
// Other (unspecified but known) type of landmark.
1207+
//
1208+
TYPE_OTHER = 1;
1209+
1210+
// Landmarks corresponding to vertical structures in the environment,
1211+
// like poles.
1212+
//
1213+
TYPE_VERTICAL_STRUCTURE = 2;
1214+
1215+
// Landmarks corresponding to rectangular structures in the environment,
1216+
// like walls.
1217+
//
1218+
TYPE_RECTANGULAR_STRUCTURE = 3;
1219+
1220+
// Landmarks corresponding to overhead structures in the environment,
1221+
// like sign bridges.
1222+
//
1223+
TYPE_OVERHEAD_STRUCTURE = 4;
1224+
1225+
// Landmarks corresponding to light sources or reflective structures in
1226+
// the environment, like street lights or reflective poles on the road
1227+
// boarder.
1228+
//
1229+
TYPE_REFLECTIVE_STRUCTURE = 5;
1230+
1231+
// Landmarks corresponding to construction site elements in the
1232+
// environment, like cones or beacons.
1233+
//
1234+
TYPE_CONSTRUCTION_SITE_ELEMENT = 6;
1235+
}
1236+
}

osi_sensordata.proto

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,15 @@ message SensorData
160160
// The list of lane boundary markings detected by the sensor.
161161
//
162162
repeated DetectedLaneBoundary lane_boundary = 14;
163-
163+
164+
// General information about the \c DetectedLandmark .
165+
//
166+
optional DetectedEntityHeader landmarks_header = 1000;
167+
168+
// The list of landmarks detected by the sensor.
169+
//
170+
repeated DetectedLandmark landmarks = 1001;
171+
164172
// General information about the \c DetectedOccupant .
165173
//
166174
optional DetectedEntityHeader occupant_header = 106;
@@ -207,7 +215,7 @@ message DetectedEntityHeader
207215

208216
// Continuous up counter to identify the cycle.
209217
//
210-
optional uint32 cycle_counter = 2;
218+
optional uint64 cycle_counter = 2;
211219

212220
// Data Qualifier expresses to what extent the content of this event can be
213221
// relied on.

0 commit comments

Comments
 (0)