Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR solves the long-lasting problem of making Plexe-controlled platoons change lane atomically (#14623). It does so by slightly changing
MSLaneChanger
enabling to have a custom lane change model. The changes to core files are backward compatible and do not affect "standard" SUMO simulations. A summary of the changes is listed below:checkChangeBeforeCommitting
method to re-evaluate the blocking state. If not implemented, this method simply returns 0 (so not blocked) and thus have no effect.MSCFModel_CC
the lane change model has no effect, but in any case people not using platooning features would not even instantiate that.We tested the changes running several simulations with hundreds of vehicles and platoons that can autonomously change lane and verified that no collisions occur. In fact, the test campaign revealed another bug, that is, an invalid reference to a pointer when the leader vehicle leaves the simulation. We fixed this in this commit.
The last commit is another issue related to the realistic engine model which caused platooning vehicles not to converge to the desired distance due to friction forces. The commit now uses friction forces only to compute the physical limits of the vehicle.