From da53faa1547ee3198c4386f4518c9812531e1df0 Mon Sep 17 00:00:00 2001 From: "Pierre R. Mai" Date: Wed, 28 Mar 2018 10:20:12 +0200 Subject: [PATCH 1/2] Add a generic sensor view for physical sensors This is intended for physical sensors not matching any of the currently specified sensor technologies (or not wanting to make use of those views). --- osi_sensorview.proto | 26 ++++++++-- osi_sensorviewconfiguration.proto | 85 +++++++++++++++++++++++++++++-- 2 files changed, 103 insertions(+), 8 deletions(-) diff --git a/osi_sensorview.proto b/osi_sensorview.proto index 8f0e285b3..dcc3ca991 100644 --- a/osi_sensorview.proto +++ b/osi_sensorview.proto @@ -111,29 +111,47 @@ message SensorView // optional Identifier host_vehicle_id = 8; + // Generic SensorView(s). + // + // \note OSI uses singular instead of plural for repeated field names. + // + repeated GenericSensorView generic_sensor_view = 1000; + // Radar-specific SensorView(s). // // \note OSI uses singular instead of plural for repeated field names. // - repeated RadarSensorView radar_sensor_view = 1000; + repeated RadarSensorView radar_sensor_view = 1001; // Lidar-specific SensorView(s). // // \note OSI uses singular instead of plural for repeated field names. // - repeated LidarSensorView lidar_sensor_view = 1001; + repeated LidarSensorView lidar_sensor_view = 1002; // Camera-specific SensorView(s). // // \note OSI uses singular instead of plural for repeated field names. // - repeated CameraSensorView camera_sensor_view = 1002; + repeated CameraSensorView camera_sensor_view = 1003; // Ultrasonic-specific SensorView(s). // // \note OSI uses singular instead of plural for repeated field names. // - repeated UltrasonicSensorView ultrasonic_sensor_view = 1003; + repeated UltrasonicSensorView ultrasonic_sensor_view = 1004; +} + +// +// \brief Definition of the generic sensor view. +// +// Generic sensor view data. +// +message GenericSensorView +{ + // Generic view configuration valid at the time the data was created. + // + optional GenericSensorViewConfiguration view_configuration = 1; } // diff --git a/osi_sensorviewconfiguration.proto b/osi_sensorviewconfiguration.proto index fa56e1421..84f2510c5 100644 --- a/osi_sensorviewconfiguration.proto +++ b/osi_sensorviewconfiguration.proto @@ -181,29 +181,101 @@ message SensorViewConfiguration // Unit: [s] optional double simulation_start_time = 10; + // Generic SensorView Configuration(s). + // + // \note OSI uses singular instead of plural for repeated field names. + // + repeated GenericSensorViewConfiguration generic_sensor_view_configuration = 1000; // Radar-specific SensorView Configuration(s). // // \note OSI uses singular instead of plural for repeated field names. // - repeated RadarSensorViewConfiguration radar_sensor_view_configuration = 1000; + repeated RadarSensorViewConfiguration radar_sensor_view_configuration = 1001; // Lidar-specific SensorView Configuration(s). // // \note OSI uses singular instead of plural for repeated field names. // - repeated LidarSensorViewConfiguration lidar_sensor_view_configuration = 1001; + repeated LidarSensorViewConfiguration lidar_sensor_view_configuration = 1002; // Camera-specific SensorView Configuration(s). // // \note OSI uses singular instead of plural for repeated field names. // - repeated CameraSensorViewConfiguration camera_sensor_view_configuration = 1002; + repeated CameraSensorViewConfiguration camera_sensor_view_configuration = 1003; // Ultrasonic-specific SensorView Configuration(s). // // \note OSI uses singular instead of plural for repeated field names. // - repeated UltrasonicSensorViewConfiguration ultrasonic_sensor_view_configuration = 1003; + repeated UltrasonicSensorViewConfiguration ultrasonic_sensor_view_configuration = 1004; +} + +// +// \brief The configuration settings for the Generic Sensor View to be provided +// by the environment simulation. +// +message GenericSensorViewConfiguration +{ + // The ID of the sensor at host vehicle's mounting_position. + // + // This is the ID of the physical sensor, to be used in its detected + // features output; it is distinct from the ID of its virtual sensor. + // + // The ID is to be provided by the environment simulation, the sensor + // model is not in a position to provide a useful default value. + // + optional Identifier sensor_id = 1; + + // The physical mounting position of the sensor (origin and orientation + // of the sensor coordinate system) given in vehicle coordinates [1]. + // The physical position pertains to this detector individually, and + // governs the sensor-relative coordinates in features detected by this + // detector. + // + // \arg \b x-direction of sensor coordinate system: sensor viewing direction + // \arg \b z-direction of sensor coordinate system: sensor (up) + // \arg \b y-direction of sensor coordinate system: perpendicular to x and z + // right hand system + // + // \par References: + // [1] DIN ISO 8855:2013-11 + // + // \note The origin of vehicle's coordinate system in world frame is + // ( \c Vehicle::base.position + Inverse_Rotation_yaw_pitch_roll( + // \c Vehicle::base.orientation) * \c Vehicle::bbcenter_to_rear ). + // The orientation of the vehicle's coordinate system is equal to the + // orientation of the vehicle's bounding box \c Vehicle::base.orientation. + // \note A default position can be provided by the sensor model (e.g. to + // indicate the position the model was validated for), + // but this is optional; the environment simulation must provide a valid + // mounting position (based on the vehicle configuration) when setting the + // view configuration. + // + optional MountingPosition mounting_position = 2; + + // The root mean squared error of the mounting position. + // + optional MountingPosition mounting_position_rmse = 3; + + // Field of View in horizontal orientation of the physical sensor. + // + // Viewing range: [-field_of_view_horizontal/2, field_of_view_horizontal/2] + // azimuth in the sensor frame as defined in \c Spherical3d. + // + // Unit: [rad] + optional double field_of_view_horizontal = 4; + + // Field of View in vertical orientation of the physical sensor. + // + // Viewing range: [-field_of_view_vertical/2, field_of_view_vertical/2] + // elevation in the sensor frame at zero azimuth as defined in + // \c Spherical3d. + // + // Unit: [rad] + optional double field_of_view_vertical = 5; + + // TBD: Generic sensor specific configuration. } // @@ -257,6 +329,7 @@ message RadarSensorViewConfiguration // // Viewing range: [-field_of_view_horizontal/2, field_of_view_horizontal/2] // azimuth in the sensor frame as defined in \c Spherical3d. + // // Unit: [rad] optional double field_of_view_horizontal = 4; @@ -388,6 +461,7 @@ message LidarSensorViewConfiguration // // Viewing range: [-field_of_view_horizontal/2, field_of_view_horizontal/2] // azimuth in the sensor frame as defined in \c Spherical3d. + // // Unit: [rad] optional double field_of_view_horizontal = 4; @@ -483,6 +557,7 @@ message CameraSensorViewConfiguration // // Viewing range: [-field_of_view_horizontal/2, field_of_view_horizontal/2] // azimuth in the sensor frame as defined in \c Spherical3d. + // // Unit: [rad] optional double field_of_view_horizontal = 4; @@ -520,6 +595,7 @@ message CameraSensorViewConfiguration // be one of the values the sensor model requested - or there // must be no value, indicating that the simulation environment // cannot provide image data in one of the requested formats. + // repeated ChannelFormat channel_format = 8; enum ChannelFormat { @@ -639,6 +715,7 @@ message UltrasonicSensorViewConfiguration // // Viewing range: [-field_of_view_horizontal/2, field_of_view_horizontal/2] // azimuth in the sensor frame as defined in \c Spherical3d. + // // Unit: [rad] optional double field_of_view_horizontal = 4; From febcb0de57383d07829c0412f998c67b83245615 Mon Sep 17 00:00:00 2001 From: "Pierre R. Mai" Date: Wed, 28 Mar 2018 10:22:01 +0200 Subject: [PATCH 2/2] Switch configuration times to use Timestamp --- osi_sensorviewconfiguration.proto | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/osi_sensorviewconfiguration.proto b/osi_sensorviewconfiguration.proto index 84f2510c5..c5dfbd271 100644 --- a/osi_sensorviewconfiguration.proto +++ b/osi_sensorviewconfiguration.proto @@ -150,7 +150,7 @@ message SensorViewConfiguration // Unit: [s] // \note In the case of FMU packaging this will correspond to the // communication step size. - optional double update_cycle_time = 8; + optional Timestamp update_cycle_time = 8; // Initial update cycle offset of the sensor model. // @@ -170,7 +170,7 @@ message SensorViewConfiguration // simulation start times, e.g. for partial resimulation. // // Unit: [s] - optional double update_cycle_offset = 9; + optional Timestamp update_cycle_offset = 9; // Simulation Start time // @@ -179,7 +179,7 @@ message SensorViewConfiguration // the sensor model. // // Unit: [s] - optional double simulation_start_time = 10; + optional Timestamp simulation_start_time = 10; // Generic SensorView Configuration(s). //