-
Notifications
You must be signed in to change notification settings - Fork 129
Fix sensordata reference frame definitions #721
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
Fix sensordata reference frame definitions #721
Conversation
I think ISO23150 demands for detected objects to be in vehicle frame. @PhRosenberger we need to crosscheck this |
Since the OSI definition is a strict superset, I don't think this is an issue: If the virtual mounting position is 0,0,0, then you get the vehicle frame (as defined via bbcenter to rear axle); if you use a different virtual mounting position, you get something else... So if ISO 23150 is so restricted, then people who care will use virtual mounting position of 0,0,0 (which will be the most common vmp anyways, at least for cars - e.g. trucks are very different at least for some sensors). |
I agree to @pmai as long as we can support the way ISO23150 demands it, we are fine. However, OSI is and should stay more flexible than that, as simulation can do more than the actual sensor. |
I just want to note here that at least how I personally understand this it is NOT a bug but the currently desired defintion which initially came from ISO. For that reason it was mentioned that I understand that apparently I was the only person who was ok with having two different refernece frames for objects and detections (which were always in sensor frame). If we merge this it is breaking backwards compatibility. Otherwise we have to make a poll if every OSI user did see it your way? |
In my opinion the current documentation in itself is not backwards (or forwards) compatible because it is confusing and some parts contradict others of the same documentation. Therefore this needs to be changed and unified asap. |
Sorry, the poll comment was with "sarcasm on". Can you state where the documentation contradicts regarding this reference frame for detected objects? |
Also Clemens and I noticed that the terms (host) vehicle coordinate or (host) vehicle coordinate system are used all around the OSI docs while never being defined properly anywhere. As Clemens said it is quite hard to understand the used coordinate system from reading the documentation. I'm currently working on clarifying things (and also fixing some minor errors) in this chapter of the OSI documentation. For example, the image of the example at the end of chapter 2.2.4 is showing a different (probably wrong?) parent frame of the physical mounting position. |
I just checked it internally and at BMW we are doing it "correctly" in accordance with the main branch documentation:
|
I think, if you're not setting a virtual mounting position/orientation (= SensorView::mounting_position) this should be ok. Though, IMO this is still not strictly based on the "main branch documentation". The OSI documentation itself is quite clear on this (see https://opensimulationinterface.github.io/osi-documentation/#_sensor_data). It is just the class reference doc that was probably forgotten to be adapted at some time. I fixed another contradiction for logical detection reference frames. Within the message LogicalDetection the attribute "position" was defined to be with respect to the host vehicle coordinate system while the higher-level description of the LogicalDetection message itself referred to the virtual sensor coordinate system for contained attributes. I assumed, the latter is the correct definition and adapted it accordingly. |
As I am not to deep into the coodinate systems... I understood, that there is the object coordinate system -> leading to the host vehicle coordinate system -> leading tho the (virtual) sensor coordinate system. For me it is sometimes hard to distinguish between the actual and virtual mounting position. In total, the clarification makes sense for me.
For the position and velocity, the changes will be breaking, yes. |
I would agree on renaming the SensorData::mounting_position field for OSI 4.0 to emphasize that it is not the mounting position of a physical sensor (e.g. virtual_mounting_position). I will create a github issue for that. I also agree on adding the /note tag. I will add this change soon and then add the ReadyForCCB label as discussed in today's meeting.
It only fixes a contradiction/bug in the documentation. So I suppose it is not a breaking change but a bug fix. |
CCB 2023-05-22: Merge as-is, @pmai to resolve conflicts. |
- Remove incorrect parent frame definition for detected moving object - Clarify definition of parent frame for all sensordata objects Signed-off-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de>
- Add keyword "physical" for mounting position in SensorDetectionHeader - Remove outdated reference to vehicle reference point - Rephrase reference frame definition for virtual mounting position Signed-off-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de>
Signed-off-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de>
Signed-off-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de>
8cd9ca1
to
8fb64c1
Compare
Resolves #712