-
Notifications
You must be signed in to change notification settings - Fork 224
Added support for MPPI Controller to adjust wz_std parameter based on linear speed #711
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
base: master
Are you sure you want to change the base?
Changes from all commits
ade41de
46e6929
8b8288f
fa9f529
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -305,6 +305,42 @@ MPPI Parameters | |
Description | ||
Whether to regenerate noises each iteration or use single noise distribution computed on initialization and reset. Practically, this is found to work fine since the trajectories are being sampled stochastically from a normal distribution and reduces compute jittering at run-time due to thread wake-ups to resample normal distribution. | ||
|
||
Advanced Parameters | ||
------------------- | ||
|
||
| **WARNING**: These parameters are experimental and subject to change; **use them at your own risk** as they may lead to unpredictable behavior in certain configurations. | ||
| ``wz_std_decay_strength`` and ``wz_std_decay_to`` defines a function that 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 the speed of the robot solves both problems, which these parameters enable. | ||
| Suggested values to start with are: ``wz_std = 0.4, wz_std_decay_to = 0.05, wz_std_decay_strength = 3.0`` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove suggested values here |
||
|
||
| 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`` | ||
|
||
`Visualize the decay function here (a=wz_std, b=wz_std_decay_to, c=wz_std_decay_strength) <https://www.wolframalpha.com/input?i=plot+%5B%28a-b%29+*+e%5E%28-c+*+x%29+%2B+b%5D+with+a%3D0.5%2C+b%3D0.05%2C+c%3D3>`_ | ||
|
||
:advanced.wz_std_decay_strength: | ||
|
||
============== =========================== | ||
Type Default | ||
-------------- --------------------------- | ||
double -1.0 (disabled) | ||
============== =========================== | ||
|
||
Description | ||
Defines the strength of the reduction function. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add the suggested 3.0 here |
||
|
||
:advanced.wz_std_decay_to: | ||
|
||
============== =========================== | ||
Type Default | ||
-------------- --------------------------- | ||
double 0.0 | ||
============== =========================== | ||
|
||
Description | ||
Target wz_std value while linear speed goes to infinity. Must be between 0 and wz_std. Has no effect if ``advanced.wz_std_decay_strength <= 0.0`` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add the suggested 0.05 here |
||
|
||
Trajectory Visualization | ||
------------------------ | ||
|
||
|
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.
We shouldn't be merging this into mainline until its tested so that it is not experimental - so we should both have that testing done and also remove this warning