-
Notifications
You must be signed in to change notification settings - Fork 1.5k
[MPPI] Question on Motion model Lag Compensation #5214
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
Comments
all controllers in Nav2 assume that your robot has properly setup robot controllers to be able to execute commands given. If that is not the case, you would need to change your control system to better be able to handle load changes and/or use the new loaded-robot model to change the dynamic characteristics to represent the dynamics of what the robot can accomplish in the loaded state so the controllers can operate on what the robot is actually capable of accomplishing. Its obviously important that the controllers know about what the robot can actually do. Your other option is to create your own controller that considers lag and the fact that the robot doesn't actually have the dynamic characteristics you tuned (perhaps tries to estimate these parameters in real-time). Though, its probably easier to either improve your motor control system so that you have better reaction times in the loaded state and/or set the Nav2 controller's dynamic parameters properly for dynamics in the loaded state that require some more time to accelerate / decelerate. |
Hi @SteveMacenski ,
About implementation steps:
How do you think about this ? I have implemented a prototype new motion model and tested on my real system and seems to work with ~250kg load. |
Interesting. Yes, I'd be happy to review / merge a PR introducing that feature! I'm a little surprised something that simple works all that well, but I love the K.I.S.S. principle so if you've tested it and it works well, that's enough for me. I'd just like to hear a few more details about what you saw before vs after this change to sanity check in my mind that this works well enough. But, from your desciption it sounds perfect. If you don't want to share those details publicly, I would understand that and you can email me at steve@opennav.org to chat privately. Can you open a draft PR? I can see about the build issues. I can probably just handle that for you. I'm curious: do you think this could be applied to other controllers in Nav2 like RPP? That is also common on heavy equipment that would (I imagine) have non-trivial actuation delay. If it can be applied to RPP, then it could be applied to any of them. Perhaps this could even become a shared Controller Utility that is used in the various controllers to abstract the detail |
Hi @SteveMacenski |
@chanhhoang99 I took a look and left some comments. I think we can simplify this more and have the lag compensation feature always available but just default disabled.
Sure! Showing some plots along with that improved path tracking would be nice. |
Hi @SteveMacenski , |
Uh oh!
There was an error while loading. Please reload this page.
Hi there,
Currently, I am working on carrier robot that carries a heavy load.
I witnessed that when the load increase, MPPI controller motion model seems to not take into account the lag in motor and assume the motor can reach desired command velocity instantaneously, isn't it ?
The text was updated successfully, but these errors were encountered: