hpp-manipulation  4.9.0
Classes for manipulation planning.
hpp-manipulation documentation

Introduction

This package implements a solver for manipulation planning problems. A manipulation planning problem is defined by:

  • Device: a collection of several Device with grippers and handles,
  • Graph: A graph of constraints defining the rules of a manipulation problem.

ManipulationPlanner implements a RRT-based algorithm to solve manipulation planning problems.

Constraint graph
The graph of constraint, also referred to as constraint graph, represents the rules of a manipulation problem. The component of the graph are: graph::State contains a set of Constraint that a configuration of the Robot should satisfy to be in the represented state. To ensure that a configuration is in only one state, the graph::State are ordered in a graph::StateSelector. The method graph::StateSelector::getState(ConfigurationIn_t) const returns a pointer to the first graph::State for which graph::State::contains(ConfigurationIn_t) const returns true. For optimization only, another set of Constraint is used for StraightPath lying in this graph::State.

graph::Edge has methods graph::Edge::state() to tell in which graph::State a corresponding path lyes graph::Edge also contains two sets of Constraint:

Note
For implementation details, see graph::Graph. For more information about parametric and non-parametric constraints, see DifferentiableFunction and ConfigProjector
Manipulation planner

ManipulationPlanner class implements an algorithm based on RRT. See this master thesis for details about the algorithm.