Skip to content
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

Feature Request | Dynamic planner selection in runtime #3563

Closed
nakai-omer opened this issue May 8, 2023 · 3 comments
Closed

Feature Request | Dynamic planner selection in runtime #3563

nakai-omer opened this issue May 8, 2023 · 3 comments

Comments

@nakai-omer
Copy link
Contributor

nakai-omer commented May 8, 2023

Feature request

Feature description

Currently the planner server supports configuring multiple planners, nevertheless the default bt tree only supports a single planner, which is also hard-coded with id: GridBased. So, if you want to enjoy the awesome bt_navigator server with NavigateToPose, or NavigateThroughPoses, actions and select the planner you want in runtime, you can't. There have been previous discussions on how to enable multiple planners (open-navigation/docs.nav2.org#147, #3000), but they require changing the behavior tree, writing new bt nodes, or creating multiple action servers, etc.
Here I would like to propose a backward compatible, minimum changes required, that will easily add the option to control which planner is used in runtime, either from the simple commander api, or via the NavigateToPose or NavigateThroughPoses actions.

Example use case for this:
Running a coverage path planner, and once the path is over running a planner to plan the way back to the docking station.

Implementation considerations

Implemented in #3565 and #3566

This will also be a step towards a super easy fix for: #3269

@SteveMacenski
Copy link
Member

Empty ticket... closing

@nakai-omer
Copy link
Contributor Author

nakai-omer commented May 9, 2023

@SteveMacenski A glitch while writing the feature request, I have updated it with the details, may you please reopen?

@nakai-omer nakai-omer changed the title Feature Request Feature Request | Dynamic planner selection in runtime May 9, 2023
@SteveMacenski
Copy link
Member

SteveMacenski commented May 9, 2023

See the planner selector (or other selector) BT nodes. You can change them at runtime however you like. That "hardcode" is just the default BT. You can make that a BT blackboard variable like {path} which can pass the planner any ID you like. Its then on you to decide for your application how to populate / change that variable. The selector BT nodes are one way, but there are many options if there's a more natural API for your application. If there's another general way that would be interesting to have, I'd be happy to chat about a new set of selector nodes via a different communication or decision logic method!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants