Skip to content

Conversation

@LukasElster
Copy link
Contributor

Reference to a related issue in the repository

#689

Add a description

PR adds RaytracerViewConfig to SensorView fpr raytracinf interfaces and changes Lidar/RadarSensorView in interfaces without rendering techniques related fields. Changes in Lidar and RadarSensorView are not backward compatible.

Take this checklist as orientation for yourself, if this PR is ready for the Change Control Board:

If you can’t check all of them, please explain why.
If all boxes are checked or commented and you have achieved at least one positive review, you can assign the label ReadyForCCBReview!

@LukasElster LukasElster added the SensorModeling The Group in the ASAM development project working on sensor modeling topics. label Jan 12, 2023
@LukasElster LukasElster added this to the V4.0.0 milestone Jan 12, 2023
@LukasElster LukasElster self-assigned this Jan 12, 2023
@LukasElster LukasElster linked an issue Jan 12, 2023 that may be closed by this pull request
Copy link
Contributor

@PhRosenberger PhRosenberger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would not merge before clarifying if we write "ray tracer" or "raytracer" and we should correct the other small typos.

Additionally, I raised some additional questions to be answered before merging.


// Raytracer-specific View(s).
//
repeated RaytracerView raytarcer_view = 1005;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo. Should be raytracer_view

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As more as I think about it, I even assume repeated RayTracerView ray_tracer_view would be correct.

And if this is correct, this would mean to write ray tracing and ray tracer separated all over the file, not?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Absolutely right. Changes done in osi_sensorviewconfiguration and osi_sensorview

// The raw raytracer data in the memory layout and order specified by the
// raytracer input configuration.
//
optional bytes raytarcer_data = 2;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo. This should be raytracer_data

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As written in the comment above, we should clarify whether ray tracing should be written separately or not.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected and changed to ray_tracer_data

Copy link
Contributor

@PhRosenberger PhRosenberger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, I guess, it's fine.

Copy link
Contributor

@thomassedlmayer thomassedlmayer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should probably rewrite the section between line 34 to 46 in osi_sensorviewconfiguration.proto as the number of rays is not included in any of the configurations anymore? Were these number_of_rays fields removed on purpose? In the current OSI version they are marked as raytracer specific characteristic, so I was just wondering where they went...

// \brief The radar antenna diagram.
// emitter_power must be considered together with tx_antenna_diagram for absolute power calculation.
//
// \note Rotation is defined analog Spherical3d
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This note on the rotation got lost in the new SpatialSignalGain message which replaces the AntennaDiagramEntry message. Maybe we should add it again just to be clear?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then we should add this note it in the osi_common, where the message is defined. What is not completly clear is the note itself, because we dont have the type Spherical3d here and one dimension less. Therefore the rotation can't be analog to Spherical3d. What do you think, @thomassedlmayer ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it should be added in osi_common. I just added the note to the removed line.
You're right, we have one dimension less. But we should still determine the direction of the angles, right? E.g. right hand rule

// Unit: rad
//
optional uint32 max_number_of_interactions = 8;
optional double beam_divergence_horizontal = 7;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe also rename the field of view-fields in RadarSensorViewConfiguration/Ultrasonic to beam divergence then? Does this make sense there too?

Also, the note that the rotation is as defined in Spherical3d is missing again.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

beam_divergence is typically a parameter in the datasheet of the lidar sensor. In the case of radar the continious character of the electromagnetic wave together with the antenna diagramm characteristics define the beam_divergence. Therefore this field should not be added to radar. In case of ultrasonic I'm not shure. Can you help @PhRosenberger?

// Pose of the receiver unit in the sensor coordinate system.
//
repeated Vector3d directions = 11;
optional MountingPosition receiver_pose = 10;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could maybe be consistent with the naming. In RayTracerSensorViewConfig these fields are called receiver_position/transmitter_position. Maybe also move these position fields up to the mounting position if we already move fields around anyway?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good suggestion. I also added als explanation in transmitter_position // In case of lidar sensors this could be e.g. a mirror position. and for receiver_position // In case of lidar sensors this could be e.g. a photodiode.

//
// The signal can be received from a different angle than it has been emitted to.
//
// \note Data is in sensor coordinate system.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Specify that it is the physical sensor coordinate system and not the virtual sensor coordinate system

@ClemensLinnhoff
Copy link
Contributor

The corresponding issue #689 is assigned to milestone 3.6.0. This will not work as this PR breaks backwards compatibility. Can the PR be split into a compatible part for 3.6.0 and an incompatible part for 4.0?

@jdsika jdsika added the OpenMSL Required to enable sub-libraries in OpenMSL. label Mar 3, 2023
Copy link

@LudwigFriedmann LudwigFriedmann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As commented, I'd suggest to merge the four proposed RayTracerFormats.

@pmai pmai force-pushed the 689-add_raytracerview_config branch 2 times, most recently from 0c65e35 to 70d4dea Compare May 28, 2025 14:33
@pmai
Copy link
Contributor

pmai commented May 28, 2025

I've refactored to only contain the raytracerview-specific content.

Likely the device-type enum should move to the configuration to take part in auto-negotiation. This can be handled via further commits going forward - spell-check-changes etc. will also go in later commits.

Copy link

@SandroReith SandroReith left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a good and short description of the format and the expected data.

@thomassedlmayer thomassedlmayer added the ReadyForCCBReview Indicates that this MR is ready for a final review and merge by the CCB. label Sep 25, 2025
@thomassedlmayer thomassedlmayer modified the milestones: V4.0.0, V3.8.0 Sep 25, 2025
@AsamDiegoSanchez
Copy link

OSI CCB meeting 25.09.2025: further discussions and feedback needed.

//
optional DeviceType device_type = 3;

// Enum consits of different predefined device types.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Enum consits of different predefined device types.
// Enum consists of different predefined device types.

Copy link
Contributor

@pmai pmai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also raytracer terms need to be added to spellcheck dictionary, to make this build.

@ClemensLinnhoff
Copy link
Contributor

Also raytracer terms need to be added to spellcheck dictionary, to make this build.

I think ray tracing is two words in English.

@thomassedlmayer thomassedlmayer removed the ReadyForCCBReview Indicates that this MR is ready for a final review and merge by the CCB. label Oct 16, 2025
LukasElster and others added 6 commits October 23, 2025 14:33
Signed-off-by: @lukas.elster <lukas.elster@tu-darmstadt.de>
Reformatted to utilize the ray tracing approach. Offers a generic description, independent of tool provider or sensor technology


Signed-off-by: SandroReith <40294694+SandroReith@users.noreply.github.com>
updated enum for RAYTRACER_FORMAT_SBR 3 -> 2

Signed-off-by: SandroReith <40294694+SandroReith@users.noreply.github.com>
Signed-off-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de>
Signed-off-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de>
Signed-off-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de>
@pmai pmai force-pushed the 689-add_raytracerview_config branch from 06a9d52 to d88aaaa Compare October 23, 2025 12:34
Signed-off-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de>
Signed-off-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de>
Signed-off-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de>
Signed-off-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de>
@thomassedlmayer thomassedlmayer force-pushed the 689-add_raytracerview_config branch from e0aa59b to 920568a Compare October 30, 2025 07:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OpenMSL Required to enable sub-libraries in OpenMSL. SensorModeling The Group in the ASAM development project working on sensor modeling topics.

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

RaytracerView_Config

10 participants