All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Namespaces | Classes | Typedefs | Enumerations | Enumerator | Functions | Variables
Path Optimization

Namespaces

 hpp::manipulation::pathOptimization
 

Classes

class  hpp::manipulation::GraphNodeOptimizer
 Path optimizer that recompute the edge parameter of the constraints. More...
 
class  hpp::manipulation::GraphOptimizer
 Path optimizer for paths created with the constraint graph. More...
 
struct  hpp::manipulation::pathOptimization::ConfigOptimizationTraits
 Optimize the waypoints of the path and optionally add the constraint::ConfigurationConstraint to the ConfigProjector of the path. More...
 
class  hpp::manipulation::pathOptimization::EnforceTransitionSemantic
 
class  hpp::manipulation::pathOptimization::Keypoints
 
class  hpp::manipulation::pathOptimization::SmallSteps
 Walking trajectory generator for paths created with the constraint graph. More...
 
class  hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >
 

Typedefs

typedef std::vector
< CollisionConstraintsResult > 
CollisionConstraintsResults_t
 
typedef Eigen::JacobiSVD
< matrix_t
Decomposition_t
 
typedef Eigen::LLT< matrix_t,
Eigen::Lower > 
LLT_t
 
typedef path::Spline
< PolynomeBasis, SplineOrder
Spline
 
typedef Spline::Ptr_t SplinePtr_t
 
typedef std::vector< SplinePtr_tSplines_t
 
typedef
SplineGradientBasedAbstract
< _PolynomeBasis, _SplineOrder > 
Base
 
typedef boost::shared_ptr
< SplineGradientBased
Ptr_t
 
typedef steeringMethod::Spline
< PolynomeBasis, SplineOrder
SSM_t
 
typedef std::vector< std::pair
< CollisionPathValidationReportPtr_t,
std::size_t > > 
Reports_t
 
typedef
constraints::ExplicitConstraintSet 
ExplicitConstraintSet
 
typedef Eigen::RowBlockIndices RowBlockIndices
 
typedef std::vector< bool > Bools_t
 
typedef std::vector< size_typeIndices_t
 
typedef std::vector
< SplineOptimizationData
SplineOptimizationDatas_t
 
typedef
core::pathOptimization::SplineGradientBased
< PolynomeBasis, SplineOrder
hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::Parent_t
 
typedef boost::shared_ptr
< SplineGradientBased
hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::Ptr_t
 
typedef
hpp::core::pathOptimization::LinearConstraint 
hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::LinearConstraint
 

Enumerations

enum  {
  hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::PolynomeBasis = _PolynomeBasis,
  hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::SplineOrder = _SplineOrder
}
 

Functions

static GradientBasedPtr_t create (const Problem &problem)
 
virtual PathVectorPtr_t optimize (const PathVectorPtr_t &path)
 
 GradientBased (const Problem &problem)
 
 QuadraticProgram (size_type inputSize)
 
 QuadraticProgram (const QuadraticProgram &QP, const LinearConstraint &lc)
 
 QuadraticProgram (const QuadraticProgram &QP)
 
 ~QuadraticProgram ()
 
void addRows (const std::size_t &nbRows)
 
 SplineGradientBasedAbstract (const Problem &problem)
 
 SplineOptimizationData ()
 
 SplineOptimizationData (size_type rDof)
 
PathVectorPtr_t buildPathVector (const Splines_t &splines) const
 
 SplineGradientBased (const Problem &problem)
 
virtual ~PathOptimizer ()
 
const Problemproblem () const
 
void interrupt ()
 
 PathOptimizer (const Problem &problem)
 
PathPtr_t steer (ConfigurationIn_t q1, ConfigurationIn_t q2) const
 
void reduced (const LinearConstraint &lc, QuadraticProgram &QPr) const
 
void decompose ()
 
void solve ()
 
void computeLLT ()
 
double solve (const LinearConstraint &ce, const LinearConstraint &ci)
 
static void copy (const Splines_t &in, Splines_t &out)
 
void updateSplines (Splines_t &spline, const vector_t &param) const
 
void updateParameters (vector_t &param, const Splines_t &spline) const
 
static void interpolate (const Splines_t &a, const Splines_t &b, const value_type &alpha, Splines_t &res)
 
void appendEquivalentSpline (const StraightPathPtr_t &path, Splines_t &splines) const
 
void appendEquivalentSpline (const InterpolatedPathPtr_t &path, Splines_t &splines) const
 
void appendEquivalentSpline (const PathVectorPtr_t &path, Splines_t &splines) const
 
virtual void initializePathValidation (const Splines_t &splines)
 
Reports_t validatePath (const Splines_t &splines, bool stopAtFirst) const
 
void jointBoundConstraint (const Splines_t &splines, LinearConstraint &lc) const
 
std::size_t addBoundConstraints (const Indices_t &bci, const LinearConstraint &bc, Bools_t &activeConstraint, LinearConstraint &constraint) const
 
Indices_t validateBounds (const Splines_t &splines, const LinearConstraint &lc) const
 
void addContinuityConstraints (const Splines_t &splines, const size_type maxOrder, const SplineOptimizationDatas_t &ess, LinearConstraint &continuity)
 
virtual void addProblemConstraints (const PathVectorPtr_t &init, const Splines_t &splines, LinearConstraint &lc, SplineOptimizationDatas_t &sods) const
 
void addProblemConstraintOnPath (const PathPtr_t &path, const size_type &idxSpline, const SplinePtr_t &spline, LinearConstraint &lc, SplineOptimizationData &sod) const
 
Eigen::RowBlockIndices computeActiveParameters (const PathPtr_t &path, const constraints::solver::BySubstitution &hs, const value_type &guessThr=-1, const bool &useExplicitInput=false) const
 
static Ptr_t hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::create (const Problem &problem)
 Return shared pointer to new object. More...
 
static Ptr_t hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::createFromCore (const core::Problem &problem)
 This is only for compatibility purpose (with ProblemSolver). More...
 
 hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::SplineGradientBased (const Problem &problem)
 
virtual void hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::initializePathValidation (const Splines_t &splines)
 Get path validation for each spline. More...
 
virtual void hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::addProblemConstraints (const core::PathVectorPtr_t &init, const Splines_t &splines, LinearConstraint &lc, SplineOptimizationDatas_t &sods) const
 
virtual void hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::constrainEndIntoState (const core::PathPtr_t &path, const size_type &idxSpline, const SplinePtr_t &spline, const graph::StatePtr_t state, LinearConstraint &lc) const
 
virtual void hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::constraintDerivativesAtEndOfSpline (const size_type &idxSpline, const SplinePtr_t &spline, LinearConstraint &lc) const
 

Variables

ConstraintSetPtr_t set
 
boost::shared_ptr
< ExplicitConstraintSet
es
 
RowBlockIndices activeParameters
 
DevicePtr_t robot_
 
bool checkOptimum_
 
bool interrupt_
 
matrix_t H
 
vector_t b
 
bool bIsZero
 
LLT_t llt
 
value_type trace
 
Eigen::VectorXi activeConstraint
 
int activeSetSize
 
Decomposition_t dec
 
vector_t xStar
 
SSM_t::Ptr_t steeringMethod_
 
std::vector< PathValidationPtr_tvalidations_
 

Detailed Description

Typedef Documentation

template<int _PolynomeBasis, int _SplineOrder>
typedef hpp::core::pathOptimization::LinearConstraint hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::LinearConstraint
protected
template<int _PolynomeBasis, int _SplineOrder>
typedef core::pathOptimization::SplineGradientBased<PolynomeBasis, SplineOrder> hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::Parent_t
template<int _PolynomeBasis, int _SplineOrder>
typedef boost::shared_ptr<SplineGradientBased> hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::Ptr_t

Enumeration Type Documentation

template<int _PolynomeBasis, int _SplineOrder>
anonymous enum
Enumerator
PolynomeBasis 
SplineOrder 

Function Documentation

template<int _PolynomeBasis, int _SplineOrder>
virtual void hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::addProblemConstraints ( const core::PathVectorPtr_t init,
const Splines_t splines,
LinearConstraint lc,
SplineOptimizationDatas_t sods 
) const
protectedvirtual
template<int _PolynomeBasis, int _SplineOrder>
virtual void hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::constrainEndIntoState ( const core::PathPtr_t path,
const size_type idxSpline,
const SplinePtr_t spline,
const graph::StatePtr_t  state,
LinearConstraint lc 
) const
protectedvirtual
template<int _PolynomeBasis, int _SplineOrder>
virtual void hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::constraintDerivativesAtEndOfSpline ( const size_type idxSpline,
const SplinePtr_t spline,
LinearConstraint lc 
) const
protectedvirtual
template<int _PolynomeBasis, int _SplineOrder>
static Ptr_t hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::create ( const Problem problem)
static

Return shared pointer to new object.

template<int _PolynomeBasis, int _SplineOrder>
static Ptr_t hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::createFromCore ( const core::Problem problem)
static

This is only for compatibility purpose (with ProblemSolver).

problem is statically casted to an object of type const manipulation::Problem& and method create(const Problem&) is called.

template<int _PolynomeBasis, int _SplineOrder>
virtual void hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::initializePathValidation ( const Splines_t splines)
protectedvirtual

Get path validation for each spline.

Parameters
splines,vectorof splines

for each spline in the input vector, retrieve the path validation method of the transition the spline comes from. If no edge is found, use path validation in problem.

Note
path validation methods are stored in member hpp::core::pathOptimization::SplineGradientBasedAbstract::validations_
template<int _PolynomeBasis, int _SplineOrder>
hpp::manipulation::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::SplineGradientBased ( const Problem problem)
protected