-
Notifications
You must be signed in to change notification settings - Fork 129
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
Adapt ReferenceLine ST definition to avoid transformation ambiguity and discontinuities #651
Adapt ReferenceLine ST definition to avoid transformation ambiguity and discontinuities #651
Conversation
@tbleher @ThomasNaderBMW @jdsika Here is our proposal regarding the discussed issue with computation of s-t-coordinates. |
osi_referenceline.proto
Outdated
// and two points (P1 and P2) not part of the reference line. | ||
// | ||
// Calculation of ST for P1: | ||
// - Calculate the instersection point I of the T axes of R0 and R1. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/instersection/intersection/
osi_referenceline.proto
Outdated
// | ||
// Calculation of ST for P1: | ||
// - Calculate the instersection point I of the T axes of R0 and R1. | ||
// - As P1 lies in the sector defined by these T axes it is considered part |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change removes the \c formatting markers. I found these helpful for readability when reading the rendered document (as will be displayed on the website). I suggest you check how it looks in Doxygen, and probably re-add the \c formatting markers.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree, these should be added again.
2a4de50
to
a99c45c
Compare
Change looks good to me. |
As discussed in the ASAM OSI Other Models Workgroup meeting on Monday, we updated the PR to clarify the constraints on the T axis. |
After reading the documentation and having a look at the provided diagrams i have a question: |
You can always define the t-axis to be the line perpendincular to the segment. In this case your point, which is perpendicular to the last point lies exactly on this t-axis and therefore has the same s coordinate (the t-axis consists of all points with equal s coordinate). Furthermore all s coordinates are valid (even negative values). |
@ThomasNaderBMW |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't have time to participate in the discussion, so the following review is purely based on reading the patchset. This seems fine for keeping backward compatibility (but also means that all the old documentation will have to be kept), but also means that for agent models, it now becomes MUCH harder to support this, since they will have to implement TWO modes for ST calculations instead of one (simulation environments need only support one, but agent models need to support two). So I don't really like this idea.
Personally, I would be OK with breaking backward compatibility here (considering this is a very new feature, and probably noone has implemented it fully), but I don't know if this will gain consensus.
If the two modes are kept, then please at least mark one of the modes as deprecated, and advise agent models to only support the newer modes. If some agent models only support the first mode, and some only support the second mode, then no interoperability is achieved!
OSI_s-t_calculation.pdf |
From WG Harmonization: Please add a hint at the beginning, that the ST coordinate definition should not be misunderstood as the ST definition in OpenDRIVE and OpenSCENARIO 1.x. The current proto definition for the enum fields "other" and "unknown" are missing, so it does not follow the coding convention guidelines: https://opensimulationinterface.github.io/osi-documentation/#_contributing_changes |
@thempen Added a note as discussed. Should this be tagged as ReadyForCCBReview again? |
OSI CCB 2022-11-21: Can be merged as is with necessary changes to resolve technical conflicts. Merge and cleanup done by @pmai. |
…d discontinuities Also-by: Weiss David <david.weiss@in-tech.com> Signed-off-by: Reinhard Biegel <reinhard.biegel@in-tech.com>
Signed-off-by: Reinhard Biegel <reinhard.biegel@in-tech.com>
Signed-off-by: Reinhard Biegel <reinhard.biegel@in-tech.com>
Also-by: Weiss David <david.weiss@in-tech.com> Signed-off-by: Reinhard Biegel <reinhard.biegel@in-tech.com>
e85fedb
to
8d41af2
Compare
The type of a reference line will determine how S and T coordinates have to be calculated. Type POLYLINE is equal to the previous ST definition. A new type POLYLINE_WITH_T_AXIS is introduced for improved ST handling. Signed-off-by: Weiss David <david.weiss@in-tech.com> Signed-off-by: Reinhard Biegel <reinhard.biegel@in-tech.com>
Signed-off-by: Reinhard Biegel <reinhard.biegel@in-tech.com>
Signed-off-by: Reinhard Biegel <reinhard.biegel@in-tech.com>
Also-by: Weiss David <david.weiss@in-tech.com> Signed-off-by: Reinhard Biegel <reinhard.biegel@in-tech.com>
Also-by: Weiss David <david.weiss@in-tech.com> Signed-off-by: Reinhard Biegel <reinhard.biegel@in-tech.com>
8d41af2
to
79e3994
Compare
This addresses #645
Current definition of s,t coordinates has some (well documented) downsides, which we would like to mitigate with this proposed change. With the updated s,t definition, x,y <-> s,t associations are unique inside the lane geometries and there are no gaps in the s coordinate anymore.
This approach is used and tested by openPASS .
Checks will follow (but the links to
howtocontribute.html
seem to be dead... where to get this information?)