Skip to content

Commit 0c65e35

Browse files
LukasElsterpmai
authored andcommitted
First version of RaytracerView/Config
Signed-off-by: @lukas.elster <lukas.elster@tu-darmstadt.de>
1 parent d7640ca commit 0c65e35

File tree

2 files changed

+190
-0
lines changed

2 files changed

+190
-0
lines changed

osi_sensorview.proto

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,10 @@ message SensorView
163163
// Ultrasonic-specific SensorView(s).
164164
//
165165
repeated UltrasonicSensorView ultrasonic_sensor_view = 1004;
166+
167+
// Raytracer-specific View(s).
168+
//
169+
repeated RaytracerView raytarcer_view = 1005;
166170
}
167171

168172
//
@@ -347,3 +351,44 @@ message UltrasonicSensorView
347351
//
348352
optional UltrasonicSensorViewConfiguration view_configuration = 1;
349353
}
354+
355+
//
356+
// \brief Definition of the raytracer view.
357+
//
358+
// Raytracer specific view data.
359+
//
360+
message RaytracerView
361+
{
362+
// Raytracer view configuration valid at the time the data was created.
363+
//
364+
optional RaytracerViewConfiguration view_configuration = 1;
365+
366+
// Raw raytracer data.
367+
//
368+
// The raw raytracer data in the memory layout and order specified by the
369+
// raytracer input configuration.
370+
//
371+
optional bytes raytarcer_data = 2;
372+
373+
// Device type defines the device where the data is located.
374+
//
375+
optional DeviceType device_type = 3;
376+
377+
// Enum consits of different predefined device types.
378+
//
379+
enum DeviceType
380+
{
381+
// Type of device type is unknown (must not be used).
382+
//
383+
DEVICE_TYPE_UNKNOWN = 0;
384+
385+
// The data is located on the GPU.
386+
//
387+
DEVICE_TYPE_GPU = 1;
388+
389+
// The data is located on the CPU.
390+
//
391+
DEVICE_TYPE_CPU = 2;
392+
393+
}
394+
}

osi_sensorviewconfiguration.proto

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,11 @@ message SensorViewConfiguration
236236
//
237237
repeated UltrasonicSensorViewConfiguration
238238
ultrasonic_sensor_view_configuration = 1004;
239+
240+
// Raytracer-specific View Configuration(s).
241+
//
242+
repeated RaytracerViewConfiguration
243+
raytracer_view_configuration = 1005;
239244
}
240245

241246
//
@@ -973,3 +978,143 @@ message UltrasonicSensorViewConfiguration
973978
// TBD: Ultrasonic Sensor specific configuration.
974979
//
975980
}
981+
982+
983+
//
984+
// \brief The configuration settings for the Raytracer View to be
985+
// provided by the environment simulation.
986+
//
987+
message RaytracerViewConfiguration
988+
{
989+
// The ID of the sensor origin at host vehicle's mounting_position.
990+
//
991+
// This is the ID of the simulated sensor, to be used in its detected
992+
// features output.
993+
//
994+
// The ID is to be provided by the environment simulation, the sensor
995+
// model is not in a position to provide a useful default value.
996+
//
997+
optional Identifier sensor_id = 1;
998+
999+
// The physical mounting position of the sensor (origin and orientation
1000+
// of the sensor coordinate system) given in vehicle coordinates [1].
1001+
// The physical position pertains to this detector individually, and
1002+
// governs the sensor-relative coordinates in features detected by this
1003+
// detector.
1004+
//
1005+
// \arg \b x-direction of sensor coordinate system: sensor viewing direction
1006+
// \arg \b z-direction of sensor coordinate system: sensor (up)
1007+
// \arg \b y-direction of sensor coordinate system: perpendicular to x and z
1008+
// right hand system
1009+
//
1010+
// \par Reference:
1011+
// [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.
1012+
//
1013+
// \note The origin of vehicle's coordinate system in world frame is
1014+
// ( \c MovingObject::base . \c BaseMoving::position +
1015+
// Inverse_Rotation_yaw_pitch_roll( \c MovingObject::base . \c
1016+
// BaseMoving::orientation) * \c
1017+
// MovingObject::VehicleAttributes::bbcenter_to_rear) . The orientation of
1018+
// the vehicle's coordinate system is equal to the orientation of the
1019+
// vehicle's bounding box \c MovingObject::base . \c
1020+
// BaseMoving::orientation. \note A default position can be provided by the
1021+
// sensor model (e.g. to indicate the position the model was validated for),
1022+
// but this is optional; the environment simulation must provide a valid
1023+
// mounting position (based on the vehicle configuration) when setting the
1024+
// view configuration.
1025+
//
1026+
// All raytracing results e.g. Hitpoint positions are given in this
1027+
// sensor coordinate system.
1028+
//
1029+
optional MountingPosition mounting_position = 2;
1030+
1031+
// Position of the raytracer`s receiver in the sensor coordinate system.
1032+
//
1033+
repeated MountingPosition receiver_position = 3;
1034+
1035+
// Position of the raytracer`s transmitter in the sensor coordinate system.
1036+
//
1037+
repeated MountingPosition transmitter_position = 4;
1038+
1039+
// The wavelength of the transmitted ray in the simulation.
1040+
//
1041+
// Unit: nm
1042+
optional double emitter_wavelength = 5;
1043+
1044+
// When reaching the maximmum signal loss during raytracing further raytracing is aborted.
1045+
// The maximum signal loss is the relation between current calculated signal strength and the emitted signal
1046+
// strength at the ray generation.
1047+
//
1048+
// Unit: dB
1049+
optional double maximum_signal_loss = 6;
1050+
1051+
// The maximum path length desribes the ray's maximum overall distance.
1052+
// If the maximum path length is reached during simulation no further interaction is calculated.
1053+
//
1054+
// Unit: m
1055+
optional double max_path_length = 7;
1056+
1057+
// The maximum number of interaction desribes the ray's maximum hits with surfaces.
1058+
// If the maximum number of interaction is reached during simulation no further interaction is calculated.
1059+
//
1060+
// Unit: -
1061+
optional uint32 max_number_of_interactions = 8;
1062+
1063+
// Format of raytracer data (includes number, kind and format of channels).
1064+
//
1065+
// In the message provided by the sensor model, this field can
1066+
// be repeated and all values are acceptable to the model, with
1067+
// the most acceptable value being listed first, and the remaining
1068+
// values indicating alternatives in descending order of preference.
1069+
//
1070+
// In the message provided to the sensor model, this field must
1071+
// contain exactly one value, indicating the format of the image
1072+
// data being provided by the simulation environment - which must
1073+
// be one of the values the sensor model requested - or there
1074+
// must be no value, indicating that the simulation environment
1075+
// cannot provide raytracer data in one of the requested formats.
1076+
//
1077+
repeated RaytracerFormat raytracer_format = 9;
1078+
1079+
// Different predefined raytracer formats
1080+
//
1081+
enum RaytracerFormat
1082+
{
1083+
// Type of channel format is unknown (must not be used).
1084+
//
1085+
RAYTRACER_FORMAT_UNKNOWN = 0;
1086+
1087+
// Unspecified but known channel format.
1088+
// Consider proposing an additional format if using
1089+
// \c #RAYTRACER_FORMAT_OTHER.
1090+
//
1091+
RAYTRACER_FORMAT_OTHER = 1;
1092+
1093+
// Radar raytracer format used in the Japanese DIVP project.
1094+
//
1095+
// The message consists of the following fields in the described order.
1096+
// In brackets the data type, the unit and a short description is given.
1097+
// distance (float; in m; path length of the ray)
1098+
// relative_speed (float; in m/s; summed relative speed due to interaction points with moved surfaces)
1099+
// propagation_attenuation_h_pol (float; in W; attenuation of signal strength of horizontal polarisation)
1100+
// propagation_attenuation_v_pol (float; in W; attenuation of signal strength of vertical polarisation)
1101+
// direction_of_arrival_azimuth (float; in rad; direction of arrival of the ray in the configured raytracer coordinate system in azimuth direction)
1102+
// direction_of_arrival_elevation (float; in rad; direction of arrival of the ray in the configured raytracer coordinate system in elevation direction)
1103+
// direction_of_departure_azimuth (float; in rad; direction of departure of the ray in the configured raytracer coordinate system in azimuth direction)
1104+
// direction_of_departure_elevation (float; in rad; direction of departure of the ray in the configured raytracer coordinate system in elevation direction)
1105+
//
1106+
RAYTRACER_FORMAT_DIVP_RADAR = 2;
1107+
1108+
// Radar raytracer format used in the German VIVALDI project.
1109+
//
1110+
// The message consists of the following fields in the described order.
1111+
// In brackets the data type, the unit and a short description is given.
1112+
// intersection_path_length (float; in m; path length of the ray between the First_Hitpoint and the Last_Hitpoint)
1113+
// relative_speed (float; in m/s; summed relative speed due to interaction points with moved surfaces)
1114+
// jones_vector (float4; in V/m; jones vector of the ray with information of the electromagnetic wave`s phase, signal strength and polarisation)
1115+
// last_hitpoint (float3; in m; coordinates of the last hitpoint in the raytracer's coordinate system defined by the mounting position)
1116+
// first_hitpoint (float3; in m; coordinates of the first hitpoint in the raytracer's coordinate system defined by the mounting position)
1117+
//
1118+
RAYTRACER_FORMAT_VIVALDI_RADAR = 3;
1119+
}
1120+
}

0 commit comments

Comments
 (0)