-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Add new calcAngleOffset() with known isChangingLanes()-bug #12201
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]>
Some updates:
I'm looking at angle over time in My assumption would be that the curve keeps some kind of symmetry with respect to the midpoint of the maneuver. The next plots are from Again the new plots are less symmetrical (especially the second maneuver). The common feature for both tests seems to be that the new code produces a smooth start of the maneuver but a rather sharp angular change at the end of the maneuver. The smoothness looks like an improvement but the asymmetry makes me wonder whether there is still a bug somewhere. I also looked at the test lcSigma case you provided in #8529 and the angle plots look indeed much better than before: As a side not: The junction collision reported the #8529 test (when activating tracking) is rather due to an invalid internal junction position that can be fixed be saving the network in netedit again. Though I can image that the angle "flips" were causing all kinds of problems in other context. |
Thank you very much for extensively testing the new Code! The first issue with the continuous lane change model comes from the way speedLat is calculated.
The asymmetry of the angle is a bit expected.
Whats happens with the new Code, if I compare the first angle and last angle of a lane change: It takes a bit longer to "straighten" out. I hope this makes sense. |
If you look at the second picture, (lc_model/continuous_lanechange/basic with steplength 0.2) you can see that the weirdness is not something that happens in the last step of the lane change (the final part is nice and smooth). Instead it's somewhere in the "middle" of the maneuver where the angle starts to reverse direction. So frankly, I still don't understand the shape of the curve. It's not really worse than the old behavior though and the lcSigma behavior is much better. So I don't really mind merging this. any comments from your side @behrisch ? |
No, just go ahead |
oh, you mean that part. I already tried to explain it here: #11882 (comment). The lane change shall be completed in
Should one of the suggested solutions be further pursued? |
For this to work correctly:
isChangingLanes()
incomputeAngle()
needs to be changed.--> Done, does not need to be changed. I checked, if this Code part changes any test and it does not.
isChangingLanes()
ingetBackPosition()
needs to be changed. getBackPosition() uses LC-model-dependent function #12146--> Done
See #11882 for reference. Part 3 of 3.