diff --git a/.github/spelling_custom_words_en_US.txt b/.github/spelling_custom_words_en_US.txt index e1dbe552b..2ffdd3768 100644 --- a/.github/spelling_custom_words_en_US.txt +++ b/.github/spelling_custom_words_en_US.txt @@ -40,10 +40,12 @@ bggr Biblio bicyclesback bildgebendes +bmatrix bool boolean Botts bp +Brem br britannica candela @@ -95,6 +97,7 @@ ECE edn edu egm +Eibert eilvterm ein Einheiten @@ -105,6 +108,7 @@ Encyclopaedia endcode Ende Endeninch +endian endlink endrules engl @@ -161,7 +165,10 @@ haben Hafengebiet Hagen halten +hh hier +Hitpoint +hitpoint Hochwasser hoverboards href @@ -170,6 +177,7 @@ htm html http https +hv hypot ietf illuminance @@ -187,6 +195,7 @@ io IRI iso itu +jones jpg Karamihas Karlsruhe @@ -225,6 +234,7 @@ Nebenstrecke neuer nicht Nicolaus +nm noao NONDRIVING Normung @@ -260,6 +270,7 @@ Parkstände Paulat pdf png +polarisation Polizeikontrolle polyline positionally @@ -295,6 +306,7 @@ Sa SAE sae samstags +SBR Schienenfahrzeuge Schleudergefahr Schlupf @@ -362,9 +374,11 @@ Verkehrsführung Verkehrstechnik verkehrszeichen Verschmutzte +vh Vorfahrt Vorschriftzeichen Vorweg +vv vz VzKat vzkat diff --git a/osi_sensorviewconfiguration.proto b/osi_sensorviewconfiguration.proto index 48bfd8f8c..67852661b 100644 --- a/osi_sensorviewconfiguration.proto +++ b/osi_sensorviewconfiguration.proto @@ -236,6 +236,10 @@ message SensorViewConfiguration // repeated UltrasonicSensorViewConfiguration ultrasonic_sensor_view_configuration = 1004; + + // Ray tracer-specific View Configuration(s). + // + repeated RayTracerViewConfiguration ray_tracer_view_configuration = 1005; } // @@ -973,3 +977,196 @@ message UltrasonicSensorViewConfiguration // TBD: Ultrasonic Sensor specific configuration. // } + + +// +// \brief The configuration settings for the \c RayTracerView to be +// provided by the environment simulation. +// +message RayTracerViewConfiguration +{ + // The ID of the sensor origin at host vehicle's mounting_position. + // + // This is the ID of the simulated sensor, to be used in its detected + // features output. + // + // 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 Reference: + // [1] DIN Deutsches Institut fuer Normung e. V. (2013). DIN ISO 8855 Strassenfahrzeuge - Fahrzeugdynamik und Fahrverhalten - Begriffe. (DIN ISO 8855:2013-11). Berlin, Germany. + // + // \note The origin of vehicle's coordinate system in world frame is + // ( \c MovingObject::base . \c BaseMoving::position + + // Inverse_Rotation_yaw_pitch_roll( \c MovingObject::base . \c + // BaseMoving::orientation) * \c + // MovingObject::VehicleAttributes::bbcenter_to_rear) . The orientation of + // the vehicle's coordinate system is equal to the orientation of the + // vehicle's bounding box \c MovingObject::base . \c + // BaseMoving::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. + // + // All ray tracing results e.g. Hitpoint positions are given in this + // sensor coordinate system. + // + optional MountingPosition mounting_position = 2; + + // Position of the ray tracer's receiver in the sensor coordinate system. + // + repeated MountingPosition receiver_position = 3; + + // Position of the ray tracer's transmitter in the sensor coordinate system. + // + repeated MountingPosition transmitter_position = 4; + + // The wavelength of the transmitted ray in the simulation. + // + // Unit: nm + // + optional double emitter_wavelength = 5; + + // When reaching the maximum signal loss during ray tracing further + // ray tracing is aborted. The maximum signal loss is the relation between + // current calculated signal strength and the emitted signal strength at the + // ray generation. + // + // Unit: dB + // + optional double maximum_signal_loss = 6; + + // The maximum path length describes the ray's maximum overall distance. If + // the maximum path length is reached during simulation no further + // interaction is calculated. + // + // Unit: m + // + optional double max_path_length = 7; + + // The maximum number of interaction describes the ray's maximum hits with + // surfaces. If the maximum number of interaction is reached during + // simulation no further interaction is calculated. + // + optional uint32 max_number_of_interactions = 8; + + // Format of ray tracer data (includes number, kind and format of channels). + // + // The \c RayTracerFormat is used to facilitate information exchange between + // different modules within a shared context. The ray tracing provider + // communicates the location of the data on the GPU to the consumer. + // Additionally, the \c RayTracerFormat defines how this data should be + // interpreted, enabling the consumer to correctly process it during + // GPU-based post-processing. This configuration ensures that the consumer + // understands the structure and semantics of the data, allowing for + // efficient and accurate interpretation in the post-processing. + // + // In the message provided by the sensor model, this field can + // be repeated and all values are acceptable to the model, with + // the most acceptable value being listed first, and the remaining + // values indicating alternatives in descending order of preference. + // + // In the message provided to the sensor model, this field must + // contain exactly one value, indicating the format of the image + // data being provided by the simulation environment - which must + // be one of the values the sensor model requested - or there + // must be no value, indicating that the simulation environment + // cannot provide ray tracer data in one of the requested formats. + // + repeated RayTracerFormat ray_tracer_format = 9; + + // Different predefined ray tracer formats + // + enum RayTracerFormat + { + // Type of channel format is unknown (must not be used). + // + RAY_TRACER_FORMAT_UNKNOWN = 0; + + // Unspecified but known channel format. + // Consider proposing an additional format if using + // \c #RAY_TRACER_FORMAT_OTHER. + // + RAY_TRACER_FORMAT_OTHER = 1; + + // Ray tracer format for Shoot and Bounce Approach (adapted for + // electromagnetic wave propagation) [1] + // + // The 64-byte message consists of the fields in the described order, + // with all values as 32-bit IEEE-754 floats (float32) stored in + // little-endian (least-significant byte first). + // + // * \c intersection_path_length - float32 (meters) + // + // Path length of the ray between First_Hitpoint and Last_Hitpoint. + // + // Offset: 0 (4 bytes) + // + // * \c relative_speed - float32 (meters/second) + // + // Summed relative speed due to interaction points with moving + // surfaces. + // + // Offset: 4 (4 bytes) + // + // * \c jones_matrices - float32[8] (V/m complex components) + // + // Contains the 2x2 Jones matrix (complex entries) of the ray with + // information of the electromagnetic wave's phase, signal strength + // and polarisation, which additionally provides the projection to the + // subset of the Jones vectors. + // + // Layout (in this order): + // vv[re], vv[im], vh[re], vh[im], hv[re], hv[im], hh[re], hh[im] + // + // \f[ + // J = \begin{bmatrix} + // vv & vh \\ + // hv & hh + // \end{bmatrix} + // \f] + // + // Offset: 8 (32 bytes) + // + // * \c direction_of_arrival_hitpoint - float32[3] (meters): + // + // Coordinates of the DoA (last hitpoint) in the ray tracer's + // coordinate system defined by the mounting position. + // + // Order: x, y, z + // + // Coordinate system: right-handed (see OSI coordinate system definition) + // + // Offset: 40 (12 bytes) + // + // * \c direction_of_departure_hitpoint - float32[3] (meters): + // + // Coordinates of the DoD (first hitpoint) in the ray tracer's + // coordinate system defined by the mounting position. + // + // Order: x, y, z + // + // Coordinate system: right-handed (see OSI coordinate system definition) + // + // Offset: 52 (12 bytes) + // + // /par Reference + // [1] Brem, R., & Eibert, T. F. (2015, August). A Shooting and Bouncing Ray (SBR) Modeling Framework Involving Dielectrics and Perfect Conductors. IEEE Transactions on Antennas and Propagation, 63(8), 3599-3609. https://doi.org/10.1109/TAP.2015.2438318 + // + RAY_TRACER_FORMAT_SBR = 2; + } +}