ros-navigation / navigation2

ROS 2 Navigation Framework and System
https://nav2.org/
Other
2.35k stars 1.22k forks source link

graceful_controller: implement iterative selection of control point #4115

Open mikeferguson opened 5 months ago

mikeferguson commented 5 months ago

I'm already working on this - just ticketing it for visibility

SteveMacenski commented 4 months ago

From the wobbling in https://youtu.be/QHdrfadFhRg I was thinking about how to potentially address it. I believe you mentioned that your aim would be to back out the control point on the path for collision avoidance reasons -- which my understanding would also help with turns in confined environments where going too far ahead isn't possible. I believe that makes the controller wholesale more functional, but doesn't help with the wobbling caused by recomputing the curves constantly.

So my initial thoughts last night over a notepad:

While not related to wobbling, something I want to try and thus documenting here: Either use gradient descent or sample different spiral parameters given the anchors of the boundary conditions and use the best by some scoring metric (distance to path, cost-distance metric, etc), My preference would be gradient descent so its not something tuned on the window sizes and such -- and thus falling into less of the traps of DWA.

SteveMacenski commented 4 months ago

Smoothing out path before execution (greedy, spline?) -- changing gains.