Store the set of joints involved in a received trajectories and
use this set to constrain serialization of solutions for execution to those joints only.
If this is not done, all joints of the RobotModel are considered for the trajectory,
but we might not have controllers defined for all joints, so execution will fail.
Maybe, a better approach might be to just ask the MTC planner to execute a specific solution id.
However, this requires that the planner node is still available.
- to allow solution wrappers (WrappedSolution, SolutionSequence)
to transmit their comment and markers as well
- introduced new SolutionInfo.msg,
which is the info common to solution wrappers and actual SubTrajectories
- code simplification
- allow slider interaction at any time
- keep last frame visible if animation finished
- animating_ is true iff animation is running
(previously it was also used to indicate the end of an animation cycle)
- renamed showMarkers() -> addMarkers()
- MarkerVisualizationProperty: renamed visible_markers_ -> hosted_markers_
Hosted markers are not neccessarily visible,
only if the corresponding namespace group is enabled.
- store "failure" solutions to facilitate debugging
- Introspection assigns solution IDs as soon as they are created in a stage
Thus, solution IDs represent their creation order.
In contrast, the order of publishing (in StageStatistics) should
represent the cost order.
- Storing failures is disabled if Introspection is not available.
- locking: suppress interrupting current solution display when navigating solutions
- display end scene at the end of a solution display
- allow to display multiple solutions (its markers)
All scene nodes are hidden if
- there is no solution to display
- or if animation finished and neither the panel nor the trail are enabled
Hiding scene nodes is done by detaching them from their parent