@@ -3,7 +3,6 @@ syntax = "proto2";
33option optimize_for = SPEED ;
44
55import "osi_common.proto" ;
6- import "osi_modelinternal.proto" ;
76import "osi_object.proto" ;
87import "osi_sensorspecific.proto" ;
98
@@ -88,6 +87,55 @@ message DetectedItemHeader
8887 }
8988}
9089
90+ //
91+ // \brief A stationary object (e.g. landmark) in the environment as detected by
92+ // the sensor.
93+ //
94+ message DetectedStationaryObject
95+ {
96+ // Common information of one detected item.
97+ //
98+ optional DetectedItemHeader header = 1 ;
99+
100+ // The base parameters of the stationary object.
101+ //
102+ optional BaseStationary base = 2 ;
103+
104+ // The root mean squared error of the base parameters of the detected
105+ // stationary object (e.g. landmark). \c StationaryObject::base has to be
106+ // identical for all \c #candidate stationary objects.
107+ //
108+ optional BaseStationary base_rmse = 3 ;
109+
110+ // A list of candidates for this stationary object as estimated by the
111+ // sensor.
112+ //
113+ // \note OSI uses singular instead of plural for repeated field names.
114+ //
115+ repeated CandidateStationaryObject candidate = 4 ;
116+
117+ //
118+ // \brief A candidate for a detected stationary object as estimated
119+ // by the sensor.
120+ //
121+ message CandidateStationaryObject
122+ {
123+ // The estimated probability that this candidate is the true value.
124+ //
125+ // \note The sum of all \c #probability must be one. This probability is
126+ // given under the condition of
127+ // \c #DetectedItemHeader.existence_probability.
128+ //
129+ // Range: [0,1]
130+ //
131+ optional double probability = 1 ;
132+
133+ // The description of the stationary object (e.g. landmark).
134+ //
135+ optional StationaryObject.StationaryObjectClassification classification = 2 ;
136+ }
137+ }
138+
91139//
92140// \brief Moving object in the environment as detected and perceived by
93141// the sensor.
@@ -98,12 +146,17 @@ message DetectedMovingObject
98146 //
99147 optional DetectedItemHeader header = 1 ;
100148
101- // A list of candidates for this moving object as estimated by the
102- // sensor (e.g. pedestrian, car).
149+ // The base parameters of the moving object.
103150 //
104- // \note OSI uses singular instead of plural for repeated field names.
151+ // \note The bounding box does NOT includes mirrors for vehicles.
152+ //
153+ optional BaseMoving base = 2 ;
154+
155+ // The root mean squared error of the base parameters of the detected
156+ // moving object (e.g. car). \c MovingObject::base has to be
157+ // identical for all \c #candidate moving objects.
105158 //
106- repeated CandidateMovingObject candidate = 2 ;
159+ optional BaseMoving base_rmse = 3 ;
107160
108161 // Reference point location specification of the sensor measurement
109162 // (required to decouple sensor measurement, position and bounding box
@@ -113,13 +166,7 @@ message DetectedMovingObject
113166 // object.position, which always references the center of the object /
114167 // bounding box.
115168 //
116- optional ReferencePoint reference_point = 3 ;
117-
118- // The root mean squared error of the base parameters of the detected
119- // moving object (e.g. car). \c MovingObject::base has to be
120- // identical for all \c #candidate moving objects.
121- //
122- optional BaseStationary base_rmse = 4 ;
169+ optional ReferencePoint reference_point = 4 ;
123170
124171 // Actual movement state w.r.t. the moving object history.
125172 //
@@ -136,6 +183,13 @@ message DetectedMovingObject
136183 // Percentage value of the object width in the corresponding lane.
137184 //
138185 optional double percentage_side_lane_right = 7 ;
186+
187+ // A list of candidates for this moving object as estimated by the
188+ // sensor (e.g. pedestrian, car).
189+ //
190+ // \note OSI uses singular instead of plural for repeated field names.
191+ //
192+ repeated CandidateMovingObject candidate = 8 ;
139193
140194 // Additional data that is specific to radar sensors.
141195 //
@@ -165,15 +219,6 @@ message DetectedMovingObject
165219 //
166220 optional UltrasonicSpecificObjectData ultrasonic_specifics = 103 ;
167221
168- // Additional internal data and state flags required and used by the
169- // sensor-models, should not be used by subscribers to \c SensorData.
170- // Generally this field should be cleared after internal processing.
171- //
172- // \note optional. List of used detections to recognize this object.
173- // Detections have also an identifier to reference to the detected object.
174- //
175- optional ModelInternalObject model_internal_object = 1000 ;
176-
177222 //
178223 // \brief A candidate for a detected moving object as estimated by the
179224 // sensor.
@@ -192,7 +237,15 @@ message DetectedMovingObject
192237
193238 // The description of the moving object (e.g. car).
194239 //
195- optional MovingObject moving_object = 2 ;
240+ optional MovingObject.Type type = 2 ;
241+
242+ // Specific information about the classification of the vehicle.
243+ //
244+ //
245+ // \note This field is mandatory if the \c CandidateMovingObject.type is
246+ // #TYPE_VEHICLE .
247+ //
248+ optional MovingObject.VehicleClassification vehicle_classification = 3 ;
196249
197250 // Pedestrian head pose for behavior prediction. Describes the head
198251 // orientation w.r.t. the host vehicle orientation.
@@ -202,10 +255,13 @@ message DetectedMovingObject
202255 //
203256 // <tt>View_normal_base_coord_system = Inverse_Rotation(#head_pose)*Unit_vector_x</tt>
204257 //
258+ // \note This field is mandatory if the \c CandidateMovingObject.type is
259+ // #TYPE_PEDESTRIAN
260+ //
205261 // \par References:
206262 // \li [1] https://en.wikipedia.org/wiki/Anatomical_terms_of_location
207263 //
208- optional Orientation3d head_pose = 3 ;
264+ optional Orientation3d head_pose = 4 ;
209265
210266 // Pedestrian upper body pose for behavior prediction. Describes the
211267 // upper body orientation w.r.t. the host vehicle orientation.
@@ -216,10 +272,13 @@ message DetectedMovingObject
216272 //
217273 // <tt>View_normal_base_coord_system = Inverse_Rotation(#upper_body_pose)*Unit_vector_x</tt>
218274 //
275+ // \note This field is mandatory if the \c CandidateMovingObject.type is
276+ // #TYPE_PEDESTRIAN
277+ //
219278 // \par References:
220279 // \li [2] https://en.wikipedia.org/wiki/Anatomical_terms_of_location
221280 //
222- optional Orientation3d upper_body_pose = 4 ;
281+ optional Orientation3d upper_body_pose = 5 ;
223282 }
224283
225284 // Definition of available reference points. Left/middle/right and
@@ -305,49 +364,4 @@ message DetectedMovingObject
305364 //
306365 MOVEMENT_STATE_STOPPED = 4 ;
307366 }
308- }
309-
310- //
311- // \brief A stationary object (e.g. landmark) in the environment as detected by
312- // the sensor.
313- //
314- message DetectedStationaryObject
315- {
316- // Common information of one detected item.
317- //
318- optional DetectedItemHeader header = 1 ;
319-
320- // A list of candidates for this stationary object as estimated by the
321- // sensor.
322- //
323- // \note OSI uses singular instead of plural for repeated field names.
324- //
325- repeated CandidateStationaryObject candidate = 2 ;
326-
327- // The root mean squared error of the base parameters of the detected
328- // stationary object (e.g. landmark). \c StationaryObject::base has to be
329- // identical for all \c #candidate stationary objects.
330- //
331- optional BaseStationary base_rmse = 3 ;
332-
333- //
334- // \brief A candidate for a detected stationary object as estimated
335- // by the sensor.
336- //
337- message CandidateStationaryObject
338- {
339- // The estimated probability that this candidate is the true value.
340- //
341- // \note The sum of all \c #probability must be one. This probability is
342- // given under the condition of
343- // \c #DetectedItemHeader.existence_probability.
344- //
345- // Range: [0,1]
346- //
347- optional double probability = 1 ;
348-
349- // The description of the stationary object (e.g. landmark).
350- //
351- optional StationaryObject stationary_object = 2 ;
352- }
353367}
0 commit comments