Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/spelling_custom_words_en_US.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -40,10 +40,12 @@ bggr
Biblio
bicyclesback
bildgebendes
bmatrix
bool
boolean
Botts
bp
Brem
br
britannica
candela
Expand DownExpand Up@@ -95,6 +97,7 @@ ECE
edn
edu
egm
Eibert
eilvterm
ein
Einheiten
Expand All@@ -105,6 +108,7 @@ Encyclopaedia
endcode
Ende
Endeninch
endian
endlink
endrules
engl
Expand DownExpand Up@@ -161,7 +165,10 @@ haben
Hafengebiet
Hagen
halten
hh
hier
Hitpoint
hitpoint
Hochwasser
hoverboards
href
Expand All@@ -170,6 +177,7 @@ htm
html
http
https
hv
hypot
ietf
illuminance
Expand All@@ -187,6 +195,7 @@ io
IRI
iso
itu
jones
jpg
Karamihas
Karlsruhe
Expand DownExpand Up@@ -225,6 +234,7 @@ Nebenstrecke
neuer
nicht
Nicolaus
nm
noao
NONDRIVING
Normung
Expand DownExpand Up@@ -260,6 +270,7 @@ Parkstände
Paulat
pdf
png
polarisation
Polizeikontrolle
polyline
positionally
Expand DownExpand Up@@ -295,6 +306,7 @@ Sa
SAE
sae
samstags
SBR
Schienenfahrzeuge
Schleudergefahr
Schlupf
Expand DownExpand Up@@ -362,9 +374,11 @@ Verkehrsführung
Verkehrstechnik
verkehrszeichen
Verschmutzte
vh
Vorfahrt
Vorschriftzeichen
Vorweg
vv
vz
VzKat
vzkat
Expand Down
197 changes: 197 additions & 0 deletions osi_sensorviewconfiguration.proto
Original file line numberDiff line numberDiff line change
Expand Up@@ -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;
}

//
Expand DownExpand Up@@ -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). <em>DIN ISO 8855 Strassenfahrzeuge - Fahrzeugdynamik und Fahrverhalten - Begriffe</em>. (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 (<a href="https://opensimulationinterface.github.io/osi-antora-generator/asamosi/latest/interface/usecases/transforming_coordinate_systems.html">see OSI coordinate system definition</a>)
//
// 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 (<a href="https://opensimulationinterface.github.io/osi-antora-generator/asamosi/latest/interface/usecases/transforming_coordinate_systems.html">see OSI coordinate system definition</a>)
//
// 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;
}
}