Skip to content

Commit 9fc2de1

Browse files
authored
Merge pull request #176 from OpenSimulationInterface/Suggestion/StationaryObject-as-Landmark
Replace Landmark messages with StationaryObject messages
2 parents 5a04df2 + fa69125 commit 9fc2de1

File tree

4 files changed

+142
-119
lines changed

4 files changed

+142
-119
lines changed

osi_detectedobject.proto

Lines changed: 106 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,12 @@ message DetectedObject
4040
// Base parameters of the object. object.position is the middle of the
4141
// bounding box of the target object.
4242
//
43-
optional BaseMoving object = 5;
43+
optional BaseMoving base = 5;
4444

4545
// The root mean squared error of the base parameters in object (cross
4646
// correlations are currently neglected).
4747
//
48-
optional BaseMoving object_rmse = 6;
48+
optional BaseMoving base_rmse = 6;
4949

5050
// Reference point location specification of the sensor measurement
5151
// (required to decouple sensor measurement, position and bounding box
@@ -110,7 +110,10 @@ message DetectedObject
110110

111111
// The estimated probabilities for the object to belong to a specific class.
112112
//
113-
optional ClassProbability class_probability = 16;
113+
// \note The probability for each class of object has to be provided.
114+
// \note OSI uses singular instead of plural for repeated field names.
115+
//
116+
repeated ClassProbability class_probability = 16;
114117

115118
// Pedestrian head pose for behavior prediction. Describes the head
116119
// orientation w.r.t. the host vehicle orientation.
@@ -254,109 +257,16 @@ message DetectedObject
254257
//
255258
message ClassProbability
256259
{
257-
// Probability that the object has unknown type.
258-
//
259-
// Range: [0,1]
260-
//
261-
optional double prob_unknown = 1;
262-
263-
// Probability that the object is unspecified but known.
264-
//
265-
// Range: [0,1]
266-
//
267-
optional double prob_other = 2;
268-
269-
// Probability that the object is a car.
270-
//
271-
// Range: [0,1]
272-
//
273-
optional double prob_car = 3;
274-
275-
// Probability that the object is a heavy truck.
276-
//
277-
// Range: [0,1]
278-
//
279-
optional double prob_heavy_truck = 4;
280-
281-
// Probability that the object is a van.
282-
//
283-
// Range: [0,1]
284-
//
285-
optional double prob_van = 5;
286-
287-
// Probability that the object is a bus.
288-
//
289-
// Range: [0,1]
290-
//
291-
optional double prob_bus = 6;
292-
293-
// Probability that the object is a trailer.
294-
//
295-
// Range: [0,1]
296-
//
297-
optional double prob_trailer = 7;
298-
299-
// Probability that the object is a semitrailer.
300-
//
301-
// Range: [0,1]
302-
//
303-
optional double prob_semitrailer = 8;
304-
305-
// Probability that the object is a tram.
306-
//
307-
// Range: [0,1]
308-
//
309-
optional double prob_tram = 9;
310-
311-
// Probability that the object is a train.
312-
//
313-
// Range: [0,1]
314-
//
315-
// \note Can also be used for underground railway.
316-
//
317-
optional double prob_train = 10;
318-
319-
// Probability that the object is a motorbike.
320-
//
321-
// Range: [0,1]
322-
//
323-
optional double prob_motorbike = 11;
324-
325-
// Probability that the object is a bicycle.
326-
//
327-
// Range: [0,1]
260+
// The class of object that has been estimated with a certain
261+
// probability.
328262
//
329-
optional double prob_bicycle = 12;
263+
optional Vehicle.Type class = 1;
330264

331-
// Probability that the object is a pedestrian.
265+
// Probability that the object is of that certain class.
332266
//
333267
// Range: [0,1]
334268
//
335-
optional double prob_pedestrian = 13;
336-
337-
// Probability that the object is a wheelchair.
338-
//
339-
// Range: [0,1]
340-
//
341-
optional double prob_wheelchair = 14;
342-
343-
// Probability that the object is an animal.
344-
//
345-
// Range: [0,1]
346-
//
347-
optional double prob_animal = 15;
348-
349-
// Probability that the object is a stationary object.
350-
//
351-
// Range: [0,1]
352-
//
353-
optional double prob_stationary = 16;
354-
355-
// Probability that the object is an unspecified but known vehicle.
356-
//
357-
// Range: [0,1]
358-
//
359-
optional double prob_other_vehicle = 17;
269+
optional double probability = 2;
360270
}
361271
}
362272

@@ -382,3 +292,98 @@ enum MeasurementState
382292
//
383293
MEASUREMENT_STATE_PREDICTED = 3;
384294
}
295+
296+
//
297+
// \brief A stationary object (e.g. landmark) in the environment as detected by
298+
// the sensor.
299+
//
300+
message DetectedStationaryObject
301+
{
302+
// Specific ID of the stationary object (e.g. landmark) as assigned by the
303+
// sensor internally.
304+
// Need not match with \c #ground_truth_id.
305+
//
306+
optional Identifier tracking_id = 1;
307+
308+
// The ID of the original stationary object (e.g. landmark) in the ground
309+
// truth.
310+
// In case of a ghost detection (no corresponding ground truth), this field
311+
// should be unset.
312+
//
313+
// \note OSI uses singular instead of plural for repeated field names.
314+
//
315+
repeated Identifier ground_truth_id = 2;
316+
317+
// A list of estimates for this stationary object (e.g. landmark) as
318+
// estimated by the sensor.
319+
//
320+
// \note OSI uses singular instead of plural for repeated field names.
321+
//
322+
repeated EstimatedStationaryObject stationary_object = 3;
323+
324+
// The estimated probability that this stationary object (e.g. landmark)
325+
// really exists, not based on history.
326+
//
327+
// \note Use as confidence measure where a low value means less confidence
328+
// and a high value indicates strong confidence.
329+
//
330+
optional double existence_probability = 4;
331+
332+
// A list of sensors which detected this detected entity.
333+
//
334+
// If \c SensorData has detected entities and all detections are missing,
335+
// then e.g. the number of sensors can confirm the #existence_probability.
336+
//
337+
// \note This information can be determined via the detected entities'
338+
// detections ( \c ...Detection::object_id = 'this detected entity' ) and
339+
// the sensors (their IDs) to which these detections belong.
340+
//
341+
// \note OSI uses singular instead of plural for repeated field names.
342+
//
343+
repeated Identifier sensor_id = 5;
344+
345+
//
346+
// \brief A candidate for a detected stationary object (e.g. landmark) as
347+
// estimated by the sensor.
348+
//
349+
message EstimatedStationaryObject
350+
{
351+
// A list of candidates for this stationary object as estimated by the
352+
// sensor.
353+
//
354+
// \note OSI uses singular instead of plural for repeated field names.
355+
//
356+
repeated CandidateStationaryObject candidate = 1;
357+
358+
// The root mean squared error of the base parameters of the detected
359+
// stationary object (e.g. landmark). \c StationaryObject::base has to be
360+
// identical for all \c #candidate stationary objects.
361+
//
362+
optional BaseStationary base_rmse = 2;
363+
364+
message CandidateStationaryObject
365+
{
366+
// The description of the stationary object (e.g. landmark).
367+
//
368+
optional StationaryObject stationary_object = 1;
369+
370+
// The estimated probability that this candidate is the true value.
371+
// The sum of all \c #probability must be one.
372+
//
373+
// Range: [0,1]
374+
//
375+
optional double probability = 2;
376+
377+
// The amount of time that this detected object has been currently
378+
// observed/tracked.
379+
//
380+
// Unit: [s]
381+
//
382+
optional double age = 3;
383+
384+
// The measurement state.
385+
//
386+
optional MeasurementState measurement_state = 4;
387+
}
388+
}
389+
}

osi_groundtruth.proto

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,6 @@ message GroundTruth
106106
//
107107
repeated LaneBoundary lane_boundary = 10;
108108

109-
// The list of landmarks.
110-
//
111-
// \note OSI uses singular instead of plural for repeated field names.
112-
//
113-
repeated Landmark landmark = 1000;
114-
115109
// The list of passengers in the (host) vehicle(s).
116110
//
117111
// \note OSI uses singular instead of plural for repeated field names.

osi_object.proto

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,10 @@ message StationaryObject
380380
// Object is a building.
381381
//
382382
TYPE_BUILDING = 3;
383+
384+
// Object is a pole (e.g. traffic light).
385+
//
386+
TYPE_POLE = 20;
383387

384388
// Object is a pylon.
385389
//
@@ -392,11 +396,7 @@ message StationaryObject
392396
// Object is a delineator (e.g. at a construction site).
393397
//
394398
TYPE_DELINEATOR = 6;
395-
396-
// Object is a pole.
397-
//
398-
TYPE_POLE = 2000;
399-
399+
400400
// Object is a tree.
401401
//
402402
TYPE_TREE = 2001;
@@ -416,5 +416,31 @@ message StationaryObject
416416
// Object is a wall.
417417
//
418418
TYPE_WALL = 2005;
419+
420+
// Landmarks corresponding to vertical structures in the environment,
421+
// like poles.
422+
//
423+
TYPE_VERTICAL_STRUCTURE = 12;
424+
425+
// Landmarks corresponding to rectangular structures in the environment,
426+
// like walls.
427+
//
428+
TYPE_RECTANGULAR_STRUCTURE = 13;
429+
430+
// Landmarks corresponding to overhead structures in the environment,
431+
// like sign bridges.
432+
//
433+
TYPE_OVERHEAD_STRUCTURE = 14;
434+
435+
// Landmarks corresponding to light sources or reflective structures in
436+
// the environment, like street lights or reflective poles on the road
437+
// boarder.
438+
//
439+
TYPE_REFLECTIVE_STRUCTURE = 15;
440+
441+
// Landmarks corresponding to construction site elements in the
442+
// environment, like cones or beacons.
443+
//
444+
TYPE_CONSTRUCTION_SITE_ELEMENT = 16;
419445
}
420446
}

osi_sensordata.proto

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -190,15 +190,13 @@ message SensorData
190190
//
191191
repeated DetectedLaneBoundary lane_boundary = 20;
192192

193-
// General information about the \c DetectedLandmark .
194-
//
195-
optional DetectedEntityHeader landmark_header = 21;
193+
// General information about the \c DetectedStationaryObject .
194+
//
195+
optional DetectedEntityHeader stationary_object_header = 1000;
196196

197-
// The list of landmarks detected by the sensor.
198-
//
199-
// \note OSI uses singular instead of plural for repeated field names.
197+
// The list of stationary objects (e.g. landmarks) detected by the sensor.
200198
//
201-
repeated DetectedLandmark landmark = 22;
199+
repeated DetectedStationaryObject stationary_object = 1001;
202200

203201
// General information about the \c DetectedOccupant .
204202
//

0 commit comments

Comments
 (0)