-
Notifications
You must be signed in to change notification settings - Fork 155
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
MultiPlanner #429
MultiPlanner #429
Conversation
The timeout parameter was essentially ignored and the check was always true.
a planner that tries multiple planners in sequence
The MultiPlanner requires to set individual timeouts for its planners.
730cd74
to
db6d90a
Compare
Codecov ReportBase: 58.85% // Head: 58.63% // Decreases project coverage by
Additional details and impacted files@@ Coverage Diff @@
## master #429 +/- ##
==========================================
- Coverage 58.85% 58.63% -0.21%
==========================================
Files 89 90 +1
Lines 8386 8419 +33
==========================================
+ Hits 4935 4936 +1
- Misses 3451 3483 +32
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
Sorry for leaving this specifically hanging. There's clearly no harm in supporting the new mechanism in MTC now that it's upstream, but I still think this whole project should actually be handled as a variation of the Fallback container within the MTC framework instead of having its own opaque implementation as a single planner. The other fixes/cleanups make sense too. |
As discussed in the initial comment, I don't see how this feature could be implemented as a Fallback container. |
Not without support for running multiple children at the same time, that's what I said.
I definitely do not consider it out of scope though, but clearly out of current functionality.
|
Even if you can run multiple children in parallel, the semantics is different: Fallback containers run their children to exhaustion before switching to the next child/method, while the |
Sorry, I meant to write a variation of *ParallelContainer*, not Fallback. I am well aware of the differences.
|
MultiPlanner
This introduces
MultiPlanner
, a new meta planner implementing thePlannerInterface
, that runs multiple alternative planners in sequence and returns the first found solution.This is useful to sequence different planning strategies of increasing complexity, e.g. Cartesian or joint-space interpolation first, then OMPL, ...
This is (slightly) different from the Fallbacks container, as the MultiPlanner directly applies its planners to each individual planning job. In contrast, the Fallbacks container first runs the active child to exhaustion before switching to the next child, which possibly applies a different planning strategy.
As the children planners should be able to use different timeouts (than the stage employing
MultiPlanner
), I also introduced atimeout
property for all planners.Doing so, I noticed and fixed a bug in the
timeout
handling ofJointInterpolation
.