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

Extend Planning Pipeline to allow calling multiple planners in sequence #2408

Closed
9 tasks done
sjahr opened this issue Oct 6, 2023 · 5 comments · Fixed by #2457
Closed
9 tasks done

Extend Planning Pipeline to allow calling multiple planners in sequence #2408

sjahr opened this issue Oct 6, 2023 · 5 comments · Fixed by #2457
Assignees
Labels
enhancement New feature or request

Comments

@sjahr
Copy link
Contributor

sjahr commented Oct 6, 2023

Motiviation

In order to get better solutions
As a user
I want to to seed an optimizing planner with a solution from RRTConnect

In order to configure the pipeline easily
As a user
I want to determine the order in which certain pipeline components are being called

Current implementation and limitations

  • A planner plugin + a bunch of plan request adapters are configured and the call order is figured out by some logic of a class PlanningRequestAdapterChain + inside the plugins
  • It is currently not possible in MoveIt2 to chain planners and the CHOMP/ STOMP post processing adapters don't seem to work
  • PlanRequestAdapters are not taken into account for the configured maximum planning time
  • The component call order is very un-intuitive and apparently prone to errors

Proposed refactoring

@sjahr sjahr added the enhancement New feature or request label Oct 6, 2023
@sjahr sjahr self-assigned this Oct 6, 2023
@MarqRazz
Copy link
Contributor

@sjahr what is the status here? Could you please update the milestone and link any pending PR's?

@sjahr sjahr linked a pull request Oct 25, 2023 that will close this issue
11 tasks
@sjahr
Copy link
Contributor Author

sjahr commented Oct 25, 2023

Both PRs need to be merged in order to close this issue. I've linked the second one, so this is considered done once that issue is merged

@v4hn
Copy link
Contributor

v4hn commented Nov 3, 2023

You spent a lot of work on this, and it's definitely a good idea to get rid of the planning request adapter recursive call structure.

The main shortcoming I keep encountering with the recursive PRA structure is that it does not allow support for anytime planners that yield (over time improving) solutions continuously. It's a very nice feature of the tesseract GUI, for example.
When using any optimizing planner, they could yield the current best solution every few steps, which would have to be processed by all response adapters before being send, e.g., to RViz for visualization. That way (in theory) the user could stop plan refinement of, e.g., RRT*/PRM* with high timeouts once they think the current plan is nice enough.
I know this is out of scope for you now, but it's an interesting other motivation to accept a redesign of the PRAs.

Could you please also comment on why you think MTC wrappers are inadequate for chaining planners the way you want to do it? In theory they also provide an alternative for response adapters altogether - with the main advantage that you can introspect them at any point for debugging.

@sjahr
Copy link
Contributor Author

sjahr commented Nov 17, 2023

@v4hn I don't think that MTC wrappers are inadequate at all but it should be possible with the core MoveIt planning pipeline. For a single state to state motion planning problem MTC seems to be overkill.

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

Successfully merging a pull request may close this issue.

3 participants