hpp-core  9.0.2
Implement basic classes for canonical path planning for kinematic chains.
hpp::core::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder > Class Template Reference

#include <hpp/core/path-optimization/spline-gradient-based.hh>

Inheritance diagram for hpp::core::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >:
Collaboration diagram for hpp::core::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >:

Public Types

enum  { PolynomeBasis = _PolynomeBasis , SplineOrder = _SplineOrder }
 
typedef SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder > Base
 
typedef shared_ptr< SplineGradientBasedPtr_t
 
typedef path::Spline< PolynomeBasis, SplineOrderSpline
 
typedef Spline::Ptr_t SplinePtr_t
 
typedef std::vector< SplinePtr_tSplines_t
 
- Public Types inherited from hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >
enum  { PolynomeBasis = _PolynomeBasis , SplineOrder = _SplineOrder }
 
typedef path::Spline< PolynomeBasis, SplineOrderSpline
 
typedef Spline::Ptr_t SplinePtr_t
 
typedef std::vector< SplinePtr_tSplines_t
 

Public Member Functions

virtual PathVectorPtr_t optimize (const PathVectorPtr_t &path)
 
- Public Member Functions inherited from hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >
void updateSplines (Splines_t &spline, const vector_t &param) const
 
void updateParameters (vector_t &param, const Splines_t &spline) const
 
- Public Member Functions inherited from hpp::core::PathOptimizer
virtual ~PathOptimizer ()
 
ProblemConstPtr_t problem () const
 Get problem. More...
 
void interrupt ()
 Interrupt path optimization. More...
 
void maxIterations (const unsigned long int &n)
 Set maximal number of iterations. More...
 
void timeOut (const double &timeOut)
 set time out (in seconds) More...
 

Static Public Member Functions

static Ptr_t create (const ProblemConstPtr_t &problem)
 
- Static Public Member Functions inherited from hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >
static void copy (const Splines_t &in, Splines_t &out)
 Copy a vector of Spline. More...
 
static void interpolate (const Splines_t &a, const Splines_t &b, const value_type &alpha, Splines_t &res)
 Returns res = (1 - alpha) * a + alpha * b. More...
 

Public Attributes

value_type alphaInit
 
bool alwaysStopAtFirst
 If true, consider only one (not all) collision constraint per iteration. More...
 
size_type costOrder
 
bool usePathLengthAsWeights
 If true, the initial path length is used to weight the splines. More...
 
bool reorderIntervals
 If true, intervals in collision are checked first at the next iteration. More...
 
bool linearizeAtEachStep
 If true, collision constraint will be re-linearized at each iteration. More...
 
bool checkJointBound
 If true, joint bounds are enforced. More...
 
bool returnOptimum
 
value_type costThreshold
 
value_type guessThreshold
 
value_type QPAccuracy
 Accuracy of QP solver (only used by proxqp). More...
 

Protected Types

typedef Eigen::RowBlockIndices RowBlockIndices
 
typedef std::vector< SplineOptimizationDataSplineOptimizationDatas_t
 
- Protected Types inherited from hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >
typedef steeringMethod::Spline< PolynomeBasis, SplineOrderSSM_t
 Spline steering method. More...
 
typedef std::vector< std::pair< PathValidationReportPtr_t, std::size_t > > Reports_t
 
typedef Eigen::RowBlockIndices RowBlockIndices
 
typedef std::vector< bool > Bools_t
 
typedef std::vector< size_typeIndices_t
 
typedef std::vector< SplineOptimizationDataSplineOptimizationDatas_t
 

Protected Member Functions

 SplineGradientBased (const ProblemConstPtr_t &problem)
 
Constraint creation
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
 
- Protected Member Functions inherited from hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >
 SplineGradientBasedAbstract (const ProblemConstPtr_t &problem)
 
PathVectorPtr_t buildPathVector (const Splines_t &splines) const
 
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, std::vector< std::size_t > &reordering, bool stopAtFirst, bool reorder) 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
 Unused. More...
 
Indices_t validateBounds (const Splines_t &splines, const LinearConstraint &lc) const
 Mostly for debugging purpose. More...
 
void addContinuityConstraints (const Splines_t &splines, const size_type maxOrder, const SplineOptimizationDatas_t &ess, LinearConstraint &continuity)
 Add the linear constraint to connect consecutive splines together. More...
 
- Protected Member Functions inherited from hpp::core::PathOptimizer
 PathOptimizer (const ProblemConstPtr_t &problem)
 
PathPtr_t steer (ConfigurationIn_t q1, ConfigurationIn_t q2) const
 
void monitorExecution ()
 
void endIteration ()
 
bool shouldStop () const
 
void initFromParameters ()
 

Protected Attributes

bool checkOptimum_
 
DevicePtr_t robot_
 
- Protected Attributes inherited from hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >
DevicePtr_t robot_
 
SSM_t::Ptr_t steeringMethod_
 
std::vector< PathValidationPtr_tvalidations_
 
- Protected Attributes inherited from hpp::core::PathOptimizer
bool interrupt_
 

Additional Inherited Members

- Static Protected Member Functions inherited from hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >
static PathVectorPtr_t cleanInput (const PathVectorPtr_t &input)
 Flatten path and remove path of zero length. More...
 

Member Typedef Documentation

◆ RowBlockIndices

template<int _PolynomeBasis, int _SplineOrder>
typedef Eigen::RowBlockIndices hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::RowBlockIndices
protected

◆ Spline

template<int _PolynomeBasis, int _SplineOrder>
typedef path::Spline<PolynomeBasis, SplineOrder> hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::Spline

◆ SplineOptimizationDatas_t

template<int _PolynomeBasis, int _SplineOrder>
typedef std::vector<SplineOptimizationData> hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::SplineOptimizationDatas_t
protected

◆ SplinePtr_t

template<int _PolynomeBasis, int _SplineOrder>
typedef Spline::Ptr_t hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::SplinePtr_t

◆ Splines_t

template<int _PolynomeBasis, int _SplineOrder>
typedef std::vector<SplinePtr_t> hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::Splines_t

Member Data Documentation

◆ robot_

template<int _PolynomeBasis, int _SplineOrder>
DevicePtr_t hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::robot_
protected

The documentation for this class was generated from the following file: