Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

689 add raytracerview config #699

Open
wants to merge 15 commits into
base: master
Choose a base branch
from

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!

Signed-off-by: @lukas.elster <[email protected]>
Signed-off-by: @lukas.elster <[email protected]>
…perate physical interface and rendering based interface

Signed-off-by: @lukas.elster <[email protected]>
Signed-off-by: @lukas.elster <[email protected]>
Signed-off-by: @lukas.elster <[email protected]>
Signed-off-by: @lukas.elster <[email protected]>
Signed-off-by: @lukas.elster <[email protected]>
@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.

osi_common.proto Outdated Show resolved Hide resolved
osi_sensorview.proto Outdated Show resolved Hide resolved
osi_sensorview.proto Outdated Show resolved Hide resolved
osi_common.proto Outdated Show resolved Hide resolved
osi_common.proto Outdated Show resolved Hide resolved
osi_sensorview.proto Outdated Show resolved Hide resolved
osi_sensorviewconfiguration.proto Outdated Show resolved Hide resolved
osi_sensorviewconfiguration.proto Outdated Show resolved Hide resolved
osi_sensorviewconfiguration.proto Outdated Show resolved Hide resolved
osi_sensorviewconfiguration.proto Show resolved Hide resolved
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...

//
// \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

osi_sensorviewconfiguration.proto Show resolved Hide resolved
//
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?

//
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.

osi_sensorview.proto Show resolved Hide resolved
//
// 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

// Different predefined ray tracer formats
//
enum RayTracerFormat
Copy link
Contributor

Choose a reason for hiding this comment

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

I do not agree to have a raytracer format for every project. What's next? GaiaX format, Pegasus format? We need to come to an agreement here

Choose a reason for hiding this comment

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

I fully agree. Wouldn't it be possible to merge the four different raytracer types?
“unknown” and “other” have no attributes anyway. Usage of those types will incorporate ambiguities and doesn't contribute to harmonization.
The approaches of DIVP and Vivaldi largely overlap:

  • distance (which should be further elaborated) may coincide or be calculated form intersection_path_length + hitpoints
  • relative_speed is included in both approaches
  • polarized_attenuation can be calculated (afaik) from the Jones Vector
  • independent (optional?) parameters incorporate angles of incidence/reflection as well as first/last hit points...

Shouldn't it be possible to reach an agreement here?

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.


// Different predefined ray tracer formats
//
enum RayTracerFormat

Choose a reason for hiding this comment

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

I fully agree. Wouldn't it be possible to merge the four different raytracer types?
“unknown” and “other” have no attributes anyway. Usage of those types will incorporate ambiguities and doesn't contribute to harmonization.
The approaches of DIVP and Vivaldi largely overlap:

  • distance (which should be further elaborated) may coincide or be calculated form intersection_path_length + hitpoints
  • relative_speed is included in both approaches
  • polarized_attenuation can be calculated (afaik) from the Jones Vector
  • independent (optional?) parameters incorporate angles of incidence/reflection as well as first/last hit points...

Shouldn't it be possible to reach an agreement here?

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
None yet
Development

Successfully merging this pull request may close these issues.

RaytracerView_Config
6 participants