-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Implementation of Dynamic Window Pure Pursuit (DWPP) #5783
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
Implementation of Dynamic Window Pure Pursuit (DWPP) #5783
Conversation
Signed-off-by: Decwest <fumiyaonishi1016@gmail.com>
Codecov Report❌ Patch coverage is
... and 28 files with indirect coverage changes 🚀 New features to boost your workflow:
|
SteveMacenski
left a comment
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.
@mini-1235 please review in particular dynamic_window_pure_pursuit_functions.hpp and the reference paper. I think it would be both good for you to understand this later on for maintenance and for you to validate these as correctly implemented (and generally you find it useful).
I will do the same
...ler/include/nav2_regulated_pure_pursuit_controller/dynamic_window_pure_pursuit_functions.hpp
Outdated
Show resolved
Hide resolved
Signed-off-by: Decwest <fumiyaonishi1016@gmail.com>
|
@mini-1235 |
|
Thanks @decwest, I have received it. I will take a look at the PR shortly |
...ler/include/nav2_regulated_pure_pursuit_controller/dynamic_window_pure_pursuit_functions.hpp
Show resolved
Hide resolved
...ler/include/nav2_regulated_pure_pursuit_controller/dynamic_window_pure_pursuit_functions.hpp
Show resolved
Hide resolved
...ler/include/nav2_regulated_pure_pursuit_controller/dynamic_window_pure_pursuit_functions.hpp
Show resolved
Hide resolved
Signed-off-by: Decwest <fumiyaonishi1016@gmail.com>
Signed-off-by: Decwest <fumiyaonishi1016@gmail.com>
mini-1235
left a comment
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.
Thanks for the detailed explanations! This PR looks good to me
|
docs PR: ros-navigation/docs.nav2.org#802 |
|
This pull request is in conflict. Could you fix it @decwest? |
Signed-off-by: Decwest <fumiyaonishi1016@gmail.com>
Signed-off-by: Decwest <fumiyaonishi1016@gmail.com>
Signed-off-by: Decwest <fumiyaonishi1016@gmail.com>
nav2_regulated_pure_pursuit_controller/src/regulated_pure_pursuit_controller.cpp
Show resolved
Hide resolved
SteveMacenski
left a comment
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.
Otherwise LGTM
...ler/include/nav2_regulated_pure_pursuit_controller/dynamic_window_pure_pursuit_functions.hpp
Outdated
Show resolved
Hide resolved
Signed-off-by: Decwest <fumiyaonishi1016@gmail.com>
...ler/include/nav2_regulated_pure_pursuit_controller/dynamic_window_pure_pursuit_functions.hpp
Outdated
Show resolved
Hide resolved
Signed-off-by: Decwest <fumiyaonishi1016@gmail.com>
Signed-off-by: Decwest <fumiyaonishi1016@gmail.com>
7f601fa to
fc05330
Compare
SteveMacenski
left a comment
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.
LGTM!
Last steps:
- I'd like you to put together a demo video / gif for this feature. This should be put into the migration guide and I think it would be nice to highlight this in an announcement to the community so something graphic is always nice
- Do some final testing to validate that the performance you expect is still happening after this refactor (like whatever you used to generate that gif in your README). Actually that gif itself might be nice to use for the graphic - just as a video and sped up a bit 🙃
|
@SteveMacenski Here are the experiment videos: Simulation results: Real-robot experiment results: Regarding the GIF, I am thinking of using the DWPP result on Path C from the videos above, where the difference is especially clear. Which do you think would be better to use, the simulation video or the real-robot video? |
Makes sense! I'm going to merge this now just to meet your deadline, but please follow up with another docs PR including that video as a gif in the migration guide entry & embedding the actual youtube link into the configuration guide page (then I can also use that video to promote 😉 ) |
|
@SteveMacenski I’ve also opened a PR for the docs: ros-navigation/docs.nav2.org#856
|
|
I have one more thing I'd like to discuss. |
|
This PR changes key configuration parameters / names so I don't think this can be backported into existing distributions unfortunately :( |
|
That makes sense, I understand. Thank you for your consideration. |
| This controller also implements the Dynamic Window Pure Pursuit (DWPP) algorithm, developed by [Fumiya Ohnishi](https://www.linkedin.com/in/fumiya-ohnishi-23b124202). | ||
| Unlike the standard Pure Pursuit, DWPP enables the consideration of velocity and acceleration constraints when computing velocity commands. | ||
| An overview of the algorithm can be found here: [DWPP Algorithm*](https://github.com/Decwest/nav2_dynamic_window_pure_pursuit_controller/blob/main/algorithm.md). | ||
| *Fumiya Ohnishi, Masaki Takahashi, "Dynamic Window Pure Pursuit for Robot Path Tracking Considering Velocity and Acceleration Constraints", Proceedings of the 19th International Conference on Intelligent Autonomous Systems (IAS-19), Genoa, Italy, 2025. |
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.
I would like to update this description to reflect the latest paper published on arXiv.
May I create a new pull request for this?
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.
Sure :-)
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.
Thank you very much!
I created a PR, I would appreciate it if you could take a look at it.
Basic Info
Description of contribution in a few bullet points
Description of documentation updates required from your changes
Added Parameters
Description of how this change was tested
Simulation video
DWPP_simulation.mp4
Future work that may be required in bullet points
For Maintainers:
backport-*.