-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Added support for MPPI Controller to adjust wz_std parameter based on linear speed #5294
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
Open
vahapt
wants to merge
7
commits into
ros-navigation:main
Choose a base branch
from
vahapt:experimental_adaptive_std_support
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Added support for MPPI Controller to adjust wz_std parameter based on linear speed #5294
vahapt
wants to merge
7
commits into
ros-navigation:main
from
vahapt:experimental_adaptive_std_support
+242
−70
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
… linear speed Signed-off-by: V. Oguz TOKMAK <[email protected]>
… linear speed Signed-off-by: Vahap Oguz TOKMAK <[email protected]>
… linear speed Signed-off-by: Vahap Oguz TOKMAK <[email protected]>
Codecov ReportAll modified and coverable lines are covered by tests ✅
... and 2 files with indirect coverage changes 🚀 New features to boost your workflow:
|
… linear speed Added test cases Signed-off-by: Vahap Oguz TOKMAK <[email protected]>
SteveMacenski
requested changes
Jun 26, 2025
nav2_mppi_controller/include/nav2_mppi_controller/models/constraints.hpp
Outdated
Show resolved
Hide resolved
nav2_mppi_controller/include/nav2_mppi_controller/models/constraints.hpp
Outdated
Show resolved
Hide resolved
nav2_mppi_controller/include/nav2_mppi_controller/models/constraints.hpp
Outdated
Show resolved
Hide resolved
… linear speed - Refactored the code to simplify flow - Merged to latest `main` branch Signed-off-by: Vahap Oguz TOKMAK <[email protected]>
… linear speed - Code cleanup & bugfix Signed-off-by: Vahap Oguz TOKMAK <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Basic Info
Description of contribution in a few bullet points
Added feature enables dynamic modification of wz_std (angular deviation) based on linear velocity of the robot.
When a robot with high inertia (e.g. 500kg) is moving fast and if wz_std is above 0.3, oscillation behavior can be observed.
Lowering wz_std stabilizes the robot but then the maneuvers take more time.
Dynamically reducing wz_std as vx, vy increase (speed of the robot) solves both problems.
Suggested values to start with: wz_std = 0.3, wz_std_decay_to = 0.05, wz_std_decay_strength = 5.0
The following is used as the decay function
f(x) = (wz_std - wz_std_decay_to) * e^(-wz_std_decay_strength * v_linear) + wz_std_decay_to
Description of documentation updates required from your changes
2 new parameters are added to nav2_mppi_controller, README.md updated accordingly
advanced.wz_std_decay_strength
advanced.wz_std_decay_to
Description of how this change was tested
On both physical and simulated robots, changes deployed and parameters changed through live parameter update.
Robot behavior change and oscillation effects observed and confirmed.
It should be noted that tests are performed with a differential drive robot setup, thus holonomic behavior or potential anomalies with ackermann control are not tested yet.
Unit tests created to test new computeAdaptiveStds function
Future work that may be required in bullet points
For Maintainers:
backport-*
.