mirror of
https://github.com/moveit/moveit_task_constructor.git
synced 2025-11-04 14:49:57 +08:00
The PROPAGATE concept BOTH declared the stages *will* propagate solutions in either direction. ANY, on the other hand, only means the propagation direction is *not resolved yet* (but will be at planning time). BOTH was originally described to support a more general control flow than was eventually decided to support. The four exclusive Stage interfaces CONNECT, PROPAGATE_FORWARDS, PROPAGATE_BACKWARDS, and GENERATOR do not allow for BOTH as a valid setup anymore, unless you setup a very convolved task like `Alternatives(GEN, PROP) - Alternatives(PROP, GEN)` which would be very complex to inspect. The same functionality can still be achieved more readable as `Alternatives(Seq(GEN, PROP), Seq(PROP, GEN))`. The confusion between BOTH (propagator *will* send in both directions) and ANY (propagator will send in *either* direction, decided during init) led to a lot of confusion with users and was not fully accounted throughout the pipeline. Adjust tests. Notice the difference between ANY (unresolved propagator) and UNKNOWN (a container before introspecting its children). propagators still report UNKNOWN as requiredInterface though to simplify control flow. The simplification enables a much simpler linear inference of the connective structure of a task, as the first interface direction is always given. Additionally, unify the resource setup for static interfaces to run in the constructor, and for dynamic initialization in `pruneInterface`, getting rid of partial initializations in `init`. |
||
|---|---|---|
| .. | ||
| CMakeLists.txt | ||
| gtest_value_printers.cpp | ||
| gtest_value_printers.h | ||
| models.cpp | ||
| models.h | ||
| pick_pa10.cpp | ||
| pick_pa10.test | ||
| pick_pr2.cpp | ||
| pick_pr2.test | ||
| pick_ur5.cpp | ||
| pick_ur5.test | ||
| test_container.cpp | ||
| test_cost_queue.cpp | ||
| test_interface_state.cpp | ||
| test_properties.cpp | ||
| test_stage.cpp | ||
| test_stage.launch | ||