-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
[Graceful Controller] Additional Controller Techniques - Experimentation #4865
Comments
A couple notes on the above ideas:
Some other notes that I had sitting around:
A few remaining features that exist in the older graceful controller, but not the nav2:
|
Great ideas above, good to see improvements to Graceful controller which is my favorite so far.
|
We actually do this in the docking stuff.. but for some reason I've never actually experimented with doing it for general navigation. |
From my extremely superficial testing of the controller, this seemed to cause some uncommitted action/wobbling, but also I was testing when the orientations weren't being computed correctly, so this may be moot now. I could easily also see with path point interpolation this being discarded too. Its worth toying with, but I agree with you, it could unnecessary / not particularly useful.
This is a great insight, thanks!
I don't think this has to be only a lightweight controller, I think we can offer a heavier-weight option that leverages the smooth control law to do more sampling or optimization-based solutions. Kind of like the Smac Planner sharing a common-A*, the Graceful Controller package could be a set of Controllers based on the shared spiral smooth control law. The current controller would always remain, but have some other additional options.
Agreed and added both!
Is the action item to use the current velocity instead? Yeah, that would be very easy, I think we even provide that Twist to the controller when it computes its velocity. That's a |
@VArt3m see the RPP controller, we actually do that already for these exact same reasons. I'd love if you contributed that here!
@VArt3m see the RPP controller, we actually do that already for these exact same reasons. I'd love if you contributed that here! (wow, copy paste 😆 )
This is worth some testing. I would counter by saying that this controller really doesn't follow paths very precisely since it creates its own curve of its own design based on its own selection of a lookahead point on the path. I'm not sure this is the best controller algorithm if you want accurate path tracking in turns. However, if the behavior of that 180 turn is really bad, then I agree we should make some special arrangements. We could look at the orientations of the path points and use those as part of the calculation of the distance along the path (not just X,Y, but X,Y,Yaw distances with some yaw scale). I think that would probably work smashingly and also reduce the lookahead when doing normal turns to be more conservative as well. Either way, we'd make this a parameterized option so folks could turn it off/on as they saw fit. @VArt3m open to some contributions? These sound like they're all pretty analog to other things we have, so that should make the implementation and review much more straight forward. |
Right now the Graceful Controller computes a smooth spiral curve from the control law from the robot's current state to a pose on the path to track. The path pose is based on a lookahead distance that is shortened up if there is a collision in the trajectory's spiral curve on the way. Getting out some ideas / thoughts so we can collaborate on this as a community instead of staying in some notes document
Linking @ajtudela @mikeferguson for visibility (feel free to mute & sorry to ping you if you don't care 😉 )
There are quite a few other ways, I think that this control law could be utilized that are worth experimenting with for improvements or different behaviors:
Current controller improvements
New Graceful motion model controller - probably good
Uncertainty Robot Navigation with MPEPC in Dynamic and Uncertain
Environments: From Theory to Practice Robot Navigation with Model Predictive Equilibrium Point Control dissertation
Some things we can score:
New Graceful motion model controller - probably dumb?
The text was updated successfully, but these errors were encountered: