From e9d44f80224c4a3f25dd105f42210df558d19190 Mon Sep 17 00:00:00 2001 From: Joseph Mirabel <jmirabel@laas.fr> Date: Wed, 25 Feb 2015 21:31:13 +0100 Subject: [PATCH] Update documentation. --- CMakeLists.txt | 1 + doc/Doxyfile.extra.in | 3 +- doc/main.hh | 56 +++++++++++++++---------- include/hpp/manipulation/graph/graph.hh | 5 ++- 4 files changed, 39 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f6c1dd9..a01e6fc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,6 +40,7 @@ SET (TEST_UR5 FALSE CACHE BOOL "Activate tests using ur5") SEARCH_FOR_BOOST() ADD_DOC_DEPENDENCY(hpp-model >= 3.0.0) +ADD_DOC_DEPENDENCY(hpp-manipulation-urdf) ADD_REQUIRED_DEPENDENCY(hpp-core >= 3.0.0) ADD_REQUIRED_DEPENDENCY(hpp-constraints >= 3.0.0) ADD_REQUIRED_DEPENDENCY(hpp-statistics >= 0.1) diff --git a/doc/Doxyfile.extra.in b/doc/Doxyfile.extra.in index 38db5b7..84b50d8 100644 --- a/doc/Doxyfile.extra.in +++ b/doc/Doxyfile.extra.in @@ -4,7 +4,8 @@ INPUT = @CMAKE_SOURCE_DIR@/doc \ TAGFILES = @HPP_MODEL_DOXYGENDOCDIR@/hpp-model.doxytag=@HPP_MODEL_DOXYGENDOCDIR@ \ @HPP_CORE_DOXYGENDOCDIR@/hpp-core.doxytag=@HPP_CORE_DOXYGENDOCDIR@ \ - @HPP_CONSTRAINTS_DOXYGENDOCDIR@/hpp-constraints.doxytag=@HPP_CONSTRAINTS_DOXYGENDOCDIR@ + @HPP_CONSTRAINTS_DOXYGENDOCDIR@/hpp-constraints.doxytag=@HPP_CONSTRAINTS_DOXYGENDOCDIR@ \ + @HPP_MANIPULATION_URDF_DOXYGENDOCDIR@/hpp-manipulation-urdf.doxytag=@HPP_MANIPULATION_URDF_DOXYGENDOCDIR@ HTML_EXTRA_FILES = @CMAKE_SOURCE_DIR@/doc/ObjectManipulation_MasterThesis_JosephMirabel.pdf diff --git a/doc/main.hh b/doc/main.hh index b502ca4..91d88c7 100644 --- a/doc/main.hh +++ b/doc/main.hh @@ -6,42 +6,52 @@ namespace hpp { \section sec_intro_hpp_manipulation Introduction - This package implements a solver for manipulation planning problems. A manipulation planning problem - is defined by: - \li Robot Build a \LModel{Device} from several \LModel{Device} and Object, - \li Object A \LModel{Device} with Handle, - \li Graph A graph of constraints defining the rules of a manipulation problem, - \li ManipulationPlanner Implements a RRT-based algorithm to solve manipulation planning problems. + This package implements a solver for manipulation planning problems. A + manipulation planning problem is defined by: + \li Device: a collection of several \LModel{Device} with \ref Gripper + "grippers" and \ref Handle "handles", + \li Graph: A graph of constraints defining the rules of a manipulation + problem. + + To build a Device, have a look at the package \ref hpp_manipulation_urdf + "hpp-manipulation-urdf". + ManipulationPlanner implements a RRT-based algorithm to solve manipulation + planning problems. \section sec_graph_hpp_manipulation 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: + The graph of constraint, also referred to as constraint graph, represents the + rules of a manipulation problem. The component of the graph are: \li Node represents a state of the Robot with constraints, \li Edge represents a transition between two Node with parametric constraints. - Node contains a set of \LHPP{core,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 Node are - ordered in a NodeSelector. The method NodeSelector::getNode(ConfigurationIn_t) const returns a - pointer to the first Node for which Node::contains(ConfigurationIn_t) const returns true. - For optimization only, another set of \LHPP{core,Constraint} is used for \LHPP{core,StraightPath} lying in this Node. + Node contains a set of \LHPP{core,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 Node are ordered in a NodeSelector. + The method NodeSelector::getNode(ConfigurationIn_t) const returns a pointer to + the first Node for which Node::contains(ConfigurationIn_t) const returns true. + For optimization only, another set of \LHPP{core,Constraint} is used for + \LHPP{core,StraightPath} lying in this Node. - Edge has methods Edge::isInNodeFrom, to tell if a corresponding path lyes in Edge::from() or Edge::to(), - and Edge::node(), to retrive this Node. + Edge has methods Edge::isInNodeFrom, to tell if a corresponding path lyes in + Edge::from() or Edge::to(), and Edge::node(), to retrive this Node. Edge also contains two sets of \LHPP{core,Constraint}: - \li Edge::configConstraint() returns a \LHPP{core,ConstraintSet} used to generate a configuration lying in Edge::to() - and respecting the rightHandSide (previsously set using hpp::core::ConfigProjector::leftHandSideFromConfig), - \li Edge::pathConstraint() returns a \LHPP{core,ConstraintSet} to be inserted in \LHPP{core,Path} represented - by this Edge. - + \li Edge::configConstraint() returns a \LHPP{core,ConstraintSet} used to + generate a configuration lying in Edge::to() and respecting the + \LHPP{core,ConfigProjector::rightHandSide}, + \li Edge::pathConstraint() returns a \LHPP{core,ConstraintSet} to be inserted + in \LHPP{core,Path} represented by this Edge. + \note For implementation details, see graph::Graph. - For more information about parametric and non-parametric constraints, see \LHPP{core,DifferentiableFunction} - and \LHPP{core,ConfigProjector} + For more information about parametric and non-parametric constraints, see + \LHPP{core,DifferentiableFunction} and \LHPP{core,ConfigProjector} \section sec_solver_hpp_manipulation Manipulation planner ManipulationPlanner class implements an algorithm based on RRT. See - <a href="ObjectManipulation_MasterThesis_JosephMirabel.pdf">this master thesis</a> for details about the algorithm. + <a href="ObjectManipulation_MasterThesis_JosephMirabel.pdf">this master + thesis</a> for details about the algorithm. + **/ } } diff --git a/include/hpp/manipulation/graph/graph.hh b/include/hpp/manipulation/graph/graph.hh index 5c147ed..bcbb3b5 100644 --- a/include/hpp/manipulation/graph/graph.hh +++ b/include/hpp/manipulation/graph/graph.hh @@ -25,10 +25,11 @@ namespace hpp { namespace manipulation { namespace graph { - /// Description of the constraint graph + /// Description of the constraint graph. + /// /// This class contains a graph representing a robot with several /// end-effectors. - /// + /// /// One must make sure not to create loop with shared pointers. /// To ensure that, the classes are defined as follow: /// - A Graph owns (i.e. has a shared pointer to) the NodeSelector s -- GitLab