Skip to content

Commit e33ab45

Browse files
committed
fixed merge conflicts with master
2 parents 672deb8 + cf17a7d commit e33ab45

File tree

7 files changed

+928
-513
lines changed

7 files changed

+928
-513
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ set(OSI_PROTO_FILES
6262
osi_object.proto
6363
osi_occupant.proto
6464
osi_sensordata.proto
65-
osi_sensorinputconfiguration.proto
65+
osi_sensorviewconfiguration.proto
6666
osi_sensorspecific.proto
6767
osi_sensorview.proto
6868
)

osi_environment.proto

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,22 @@ message EnvironmentalConditions
3232
//
3333
optional double temperature = 4;
3434

35+
// Relative humidity in at z=0.0 in world frame.
36+
//
37+
// Note that physically more relevant measures, like absolute or specific
38+
// humidity can be easily derived from relative_humidity, given that the
39+
// temperature and atmospheric_pressure are known.
40+
//
41+
// Unit: [%]
42+
optional double relative_humidity = 5;
43+
3544
// Description of the precipitation.
3645
//
37-
optional Precipitation precipitation = 5;
46+
optional Precipitation precipitation = 6;
3847

3948
// Description of the fog.
4049
//
41-
optional Fog fog = 6;
50+
optional Fog fog = 7;
4251

4352
// Definition of discretized precipitation states according to [1].
4453
// (I = Intensity of precipitation in mm per hour [mm/h])

osi_sensordata.proto

Lines changed: 99 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,44 @@ syntax = "proto2";
22

33
option optimize_for = SPEED;
44

5+
import "osi_version.proto";
56
import "osi_common.proto";
67
import "osi_detectedlandmark.proto";
78
import "osi_detectedlane.proto";
89
import "osi_detectedobject.proto";
910
import "osi_detectedoccupant.proto";
10-
import "osi_groundtruth.proto";
1111
import "osi_sensorview.proto";
1212
import "osi_featuredata.proto";
13-
import "osi_hostvehicledata.proto";
1413

1514
package osi;
1615

1716
//
18-
// \brief The virtual sensor information derived from \c GroundTruth and
19-
// potentially processed by sensor-models.
17+
// \brief The sensor information derived from \c GroundTruth and processed by
18+
// sensor-models.
2019
//
21-
// The virtual sensor information is supposed to imitate the output of a real
22-
// sensor. All information regarding the environment is given with respect to
23-
// the sensor coordinate system specified in \c SensorData::mounting_position.
24-
// When simulating multiple sensors, each sensor has an individual copy of the
25-
// \c SensorData interface. This allows an independent treatment of the sensors.
20+
// The sensor information is supposed to imitate the output of real sensors.
21+
// All information regarding the environment is given with respect to
22+
// the virtual sensor coordinate system specified in
23+
// \c SensorData::mounting_position, except for feature data, which is given
24+
// with respect to the physical sensor coordinate system specified in the
25+
// corresponding physical sensor's coordinate system.
26+
//
27+
// When simulating multiple distinct sensors, each sensor can produce an
28+
// individual copy of the \c SensorData interface. This allows an independent
29+
// treatment of the sensors.
30+
//
31+
// Sensor fusion models can consolidate multiple \c SensorData interfaces into
32+
// one consolidated \c SensorData interface. This can happen either in
33+
// seperate logical models, consuming and producing \c SensorData interfaces,
34+
// or it can happen as part of a combined sensor/logical model, that consumes
35+
// \c SensorView interfaces and directly produces one consolidated \c SensorData
36+
// output.
2637
//
2738
message SensorData
2839
{
29-
// The ID of the sensor at host vehicle's mounting_position.
30-
//
31-
// This ID can equal \c SensorDetectionHeader::sensor_id, if \c SensorData
32-
// holds only data from one sensor/sensor model.
40+
// The interface version used by the sender.
3341
//
34-
optional Identifier sensor_id = 1;
42+
optional InterfaceVersion version = 1;
3543

3644
// The timestamp of the sensor data. Zero time is arbitrary but must be
3745
// identical for all messages. Zero time does not need to coincide with
@@ -60,55 +68,50 @@ message SensorData
6068
//
6169
optional Timestamp timestamp = 2;
6270

63-
// Ground truth w.r.t. global coordinate system.
64-
//
65-
// This is the ground truth that is provided to the sensor model by the
66-
// simulation environment.
67-
// \note Should be used as constant in the sensor models.
68-
//
69-
optional GroundTruth global_ground_truth = 3;
70-
71-
// Sensor view w.r.t. the sensor coordinate system.
72-
//
73-
// This provides additional data to the sensor model as configured in
74-
// the sensor input configuration. All data is relative to the sensor
75-
// both in terms of the coordinate system, as well as the content.
76-
// \note Should be used as constant in the sensor models.
71+
// The ID of the sensor at host vehicle's mounting_position.
7772
//
78-
optional SensorView sensor_view = 4;
79-
80-
// The ID of the host vehicle in the ground_truth data.
73+
// This is the ID of the virtual sensor, to be used in its detected
74+
// object output; it is distinct from the IDs of its physical detectors,
75+
// which are used in the detected features.
8176
//
82-
optional Identifier host_vehicle_id = 5;
77+
optional Identifier sensor_id = 3;
8378

84-
// Mounting position of the sensor (origin and orientation of the sensor
85-
// frame). Both origin and orientation are given in and with respect to the
86-
// host vehicle coordinate system (see: \c Vehicle vehicle reference
87-
// point) [1].
79+
// The virtual mounting position of the sensor (origin and orientation
80+
// of the sensor coordinate system) given in vehicle coordinates [1].
81+
// The virtual position pertains to the sensor as a whole, regardless
82+
// of the actual position of individual physical detectors, and governs
83+
// the sensor-relative coordinates in detected objects of the sensor
84+
// as a whole. Individual features detected by individual physical
85+
// detectors are governed by the actual physical mounting positions
86+
// of the detectors, as indicated in the technology-specific sub-views
87+
// and sub-view configurations.
8888
//
89-
// The sensor frame's x-axis is pointing in the central viewing direction of
90-
// the sensor. It is the angle bisector of the sensor's horizontal and
91-
// vertical field of view. The terms horizontal and vertical must be
92-
// understood as names for the two principal planes of the sensor's field of
93-
// view (relative to the sensor frame's orientation), which do not have to
94-
// be horizontal or vertical in the strict sense of being parallel or
95-
// perpendicular to the local gravitational vector. The horizontal field
96-
// of view defines the sensor frame's xy-plane and the vertical field
97-
// of view defines the xz-plane. The sensor frame is right-handed and the
98-
// z-axis is pointing in an upward direction.
99-
//
100-
// The sensor frame uses cartesian coordinates. The sensor frame's origin is
101-
// identical to sensor detection frame's origin. Detections are defined in
102-
// the sensor detection frame which uses e.g. spherical coordinates.
89+
// \arg \b x-direction of sensor coordinate system: sensor viewing direction
90+
// \arg \b z-direction of sensor coordinate system: sensor (up)
91+
// \arg \b y-direction of sensor coordinate system: perpendicular to x and z right hand system
10392
//
10493
// \par References:
105-
// \li [1] DIN ISO 8855:2013-11
94+
// [1] DIN ISO 8855:2013-11
95+
//
96+
// \note This field is usually static during the simulation.
97+
// \note The origin of vehicle's coordinate system in world frame is
98+
// ( \c Vehicle::base.position + Inverse_Rotation_yaw_pitch_roll(\c Vehicle::base.orientation) * \c Vehicle::bbcenter_to_rear) .
99+
// The orientation of the vehicle's coordinate system is equal to the orientation
100+
// of the vehicle's bounding box \c Vehicle::base.orientation.
106101
//
107-
optional MountingPosition mounting_position = 6;
102+
optional MountingPosition mounting_position = 4;
108103

109104
// The root mean squared error of the mounting position.
110105
//
111-
optional MountingPosition mounting_position_rmse = 7;
106+
optional MountingPosition mounting_position_rmse = 5;
107+
108+
// Sensor view w.r.t. the sensor coordinate system
109+
//
110+
// This provides a copy of the \c SensorView data received by the sensor
111+
// for reference purposes. For complex sensors or logic models this
112+
// can be multiple copies.
113+
//
114+
repeated SensorView sensor_view = 6;
112115

113116
// The timestamp of the last real-world measurement (e.g. GT input) that
114117
// this set of sensor data takes into account. This in effect is the last
@@ -117,11 +120,11 @@ message SensorData
117120
// the upper bound to the \c DetectedObjectHeader::measurement_time and the
118121
// feature data \c SensorDetectionHeader::measurement_time fields.
119122
//
120-
optional Timestamp last_measurement_time = 8;
123+
optional Timestamp last_measurement_time = 7;
121124

122125
// General information about the \c DetectedObject .
123126
//
124-
optional DetectedEntityHeader object_header = 100;
127+
optional DetectedEntityHeader object_header = 8;
125128

126129
// The list of objects detected by the sensor as perceived by the sensor.
127130
//
@@ -131,95 +134,103 @@ message SensorData
131134

132135
// General information about the \c DetectedTrafficSign .
133136
//
134-
optional DetectedEntityHeader traffic_sign_header = 101;
137+
optional DetectedEntityHeader traffic_sign_header = 10;
135138

136139
// The list of traffic signs detected by the sensor.
137140
//
138141
// \note OSI uses singular instead of plural for repeated field names.
139142
//
140-
repeated DetectedTrafficSign traffic_sign = 10;
143+
repeated DetectedTrafficSign traffic_sign = 11;
141144

142145
// General information about the \c DetectedTrafficLight .
143146
//
144-
optional DetectedEntityHeader traffic_light_header = 102;
147+
optional DetectedEntityHeader traffic_light_header = 12;
145148

146149
// The list of traffic lights detected by the sensor.
147-
//
150+
//
148151
// \note OSI uses singular instead of plural for repeated field names.
149152
//
150-
repeated DetectedTrafficLight traffic_light = 11;
153+
repeated DetectedTrafficLight traffic_light = 13;
151154

152155
// General information about the \c DetectedRoadMarking .
153156
//
154-
optional DetectedEntityHeader road_marking_header = 103;
157+
optional DetectedEntityHeader road_marking_header = 14;
155158

156159
// The list of road markings detected by the sensor.
157160
// This excludes lane boundary markings.
158161
//
159-
// \note OSI uses singular instead of plural for repeated field names.
162+
// \note OSI uses singular instead of plural for repeated field names.
160163
//
161-
repeated DetectedRoadMarking road_marking = 12;
164+
repeated DetectedRoadMarking road_marking = 15;
162165

163166
// General information about the \c DetectedLane .
164167
//
165-
optional DetectedEntityHeader lane_header = 104;
168+
optional DetectedEntityHeader lane_header = 16;
166169

167-
// The list of lanes detected by the sensor.
170+
// The list of lane detected by the sensor
168171
//
169-
// \note OSI uses singular instead of plural for repeated field names.
172+
// \note OSI uses singular instead of plural for repeated field names.
173+
//
174+
repeated DetectedLane lane = 17;
175+
176+
// The ID of the lane the host vehicle travels on in the DetectedLane data,
177+
// relative to the sensor.
170178
//
171-
repeated DetectedLane lane = 13;
179+
optional Identifier host_vehicle_lane_id = 18;
172180

173181
// General information about the \c DetectedLaneBoundary .
174182
//
175-
optional DetectedEntityHeader lane_boundary_header = 105;
183+
optional DetectedEntityHeader lane_boundary_header = 19;
176184

177185
// The list of lane boundary markings detected by the sensor.
178186
//
179-
// \note OSI uses singular instead of plural for repeated field names.
187+
// \note OSI uses singular instead of plural for repeated field names.
180188
//
181-
repeated DetectedLaneBoundary lane_boundary = 14;
189+
repeated DetectedLaneBoundary lane_boundary = 20;
182190

183191
// General information about the \c DetectedLandmark .
184192
//
185-
optional DetectedEntityHeader landmark_header = 1000;
193+
optional DetectedEntityHeader landmark_header = 21;
186194

187195
// The list of landmarks detected by the sensor.
188196
//
189-
// \note OSI uses singular instead of plural for repeated field names.
197+
// \note OSI uses singular instead of plural for repeated field names.
190198
//
191-
repeated DetectedLandmark landmark = 1001;
199+
repeated DetectedLandmark landmark = 22;
192200

193201
// General information about the \c DetectedOccupant .
194202
//
195-
optional DetectedEntityHeader occupant_header = 106;
203+
optional DetectedEntityHeader occupant_header = 23;
196204

197-
// The list of occupants of the host vehicle.
205+
// The list of occupants of the host vehicle
198206
//
199-
// \note OSI uses singular instead of plural for repeated field names.
200-
//
201-
repeated DetectedOccupant occupant = 16;
202-
203-
// The ID of the lane the host vehicle travels on in the DetectedLane data,
204-
// relative to the sensor.
207+
// \note OSI uses singular instead of plural for repeated field names.
205208
//
206-
optional Identifier host_vehicle_lane_id = 15;
209+
repeated DetectedOccupant occupant = 24;
207210

208211
// Low level feature data interface.
209212
//
210213
// Low Level feature data is optionally provided by sensor models that
211214
// model sensors giving access to this low level data, i.e. data prior to
212215
// object hypothesis and tracking.
213216
//
214-
optional FeatureData feature_data = 17;
217+
optional FeatureData feature_data = 25;
218+
219+
// The sensors estimated location of the host vehicle
220+
//
221+
// \note This value is only set by sensors that are able to
222+
// provide an own estimation of the host vehicle location.
223+
// \note Note that dimension and base_polygon need not be set.
224+
//
225+
optional BaseMoving host_vehicle_location = 26;
215226

216-
// Host Vehicle Data.
227+
// The sensors estimated location error of the host vehicle
217228
//
218-
// Host vehicle data is data that the host vehicle knows about itself,
219-
// e.g. from location sensors, internal sensors and ECU bus data, etc.,
220-
// that is made available to sensors as input.
229+
// \note This value is only set by sensors that are able to
230+
// provide an own estimation of the host vehicle location.
231+
// \note Note that dimension and base_polygon need not be set.
221232
//
222-
optional HostVehicleData host_vehicle_data_id = 18;
233+
optional BaseMoving host_vehicle_location_rmse = 27;
223234
}
224235

225236
//

0 commit comments

Comments
 (0)