-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Turning angles with continuous lane changes and lcSigma #11882
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
Conversation
Signed-off-by: Dominik Salles <[email protected]>
Signed-off-by: Dominik Salles <[email protected]>
Signed-off-by: Dominik Salles <[email protected]>
I just recognized that my last commit
does something similar, that is already done a few lines later (was implemented a long time ago: 33d7c91):
At this point, I am not sure which implementation works better. |
Was your last commit added in response to a test case where my old code didn't work? If so, attach the test case and I'll check. |
Something else: so far the relationship between lateral position and lateral speed was the same as for longitudinal position and longitudinal speed (for the default non-ballistic update): |
FYI: I don't think i'll manage to merge this into the 1.15.0 release but would like to merge post-release |
Thanks for your feedback and sorry for the late response, I took a few days off.
It corresponds to issue #5879, which has the test sumo\bugs\5xxx\ticket5879. You can change
You are absolutely right. I thought the same when changing this. The issue I am having is: When the lane change ends, SpeedLat and the Angle get calculated one last time in the LC-part of the Code. In the next step, SpeedLat is still "active" in the Angle calculation, because the Angle gets updated in the CF-part and SpeedLat gets updated after that in the LC-part of the Code. computeAngle() could be added to the LC-part. But then it would always be calculated twice (or we delete it from the CF-part).
I actually used that test as reference myself. The differences we see come from:
I do not know what happened the last commits, but my results look different:
There should be improvements for most of the tests. You could also add the tests posted in #8529. Independent of the previous questions, I found another issue:
Please tell me how/where I can help for a fast integration. |
@namdre: a short reminder, if this got stuck in the stack :) I can also divide this issue into smaller ones. Anything that helps getting this fixed |
Hi @Domsall, indeed the issue got buried in the stack and since it has quite a big impact on many tests it's not easily squeezed into my work queue. If you can separate out different aspects into distinct PRs that would probably help. (i.e.
To answer at least an easy question:
Right now the sublane model does update the angle a second time and I'd prefer it if the continuous model would do the same (with a final calculation once the maneuver is completed). PS: I'm also aware of #11583 ... |
From what I understand, the angle already gets updated a second time in both models, but only during the LC-maneuver. When the maneuver finishes, the angle does not get updated in the LC Code part anymore (in both models).
The solution from my previous post: computeAngle() could be added to the LC-part. But then it would always be calculated twice (or we delete it from the CF-part). |
I have another idea: we can delay the call to
in the next step when the angle is being computed, we can simp |
yes, that is a good idea and brings me to the last issue: The sublane-model does not update the variable I will create a new issue for this one. |
This is because the sublane model can dynamically change the direction and distance while conducting a maneuver. Correspondingly it doesn't use a completion value but only tracks the remaining maneuver distance |
I fully understand this, but how should the previous if-clause look to also work for the sublane model?! What is the sublane counterpart? |
|
This pull request belongs to #8529.
The "new" Code part is the geometric calculation in calcAngleOffset and works as described in the last image.
As it uses speedLat, I needed to make sure that it always gets calculated.
I did not want to update all the tests that now change because of the fcd-output, so please do some tests before integrating.