hpp-core 9.0.2
Implement basic classes for canonical path planning for kinematic chains.
Loading...
Searching...
No Matches
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< SplineGradientBased > Ptr_t
typedef path::Spline< PolynomeBasis, SplineOrder > Spline
typedef Spline::Ptr_t SplinePtr_t
typedef std::vector< SplinePtr_t > Splines_t
Public Types inherited from hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >
enum  { PolynomeBasis = _PolynomeBasis , SplineOrder = _SplineOrder }
typedef path::Spline< PolynomeBasis, SplineOrder > Spline
typedef Spline::Ptr_t SplinePtr_t
typedef std::vector< SplinePtr_t > Splines_t

Public Member Functions

virtual PathVectorPtr_t optimize (const PathVectorPtr_t &path)
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.
void interrupt ()
 Interrupt path optimization.
void maxIterations (const unsigned long int &n)
 Set maximal number of iterations.
void timeOut (const double &timeOut)
 set time out (in seconds)

Static Public Member Functions

static Ptr_t create (const ProblemConstPtr_t &problem)
static void copy (const Splines_t &in, Splines_t &out)
 Copy a vector of Spline.
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.

Public Attributes

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

Protected Types

typedef Eigen::RowBlockIndices RowBlockIndices
typedef std::vector< SplineOptimizationData > SplineOptimizationDatas_t
typedef steeringMethod::Spline< PolynomeBasis, SplineOrder > SSM_t
 Spline steering method.
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_type > Indices_t
typedef std::vector< SplineOptimizationData > SplineOptimizationDatas_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.
Indices_t validateBounds (const Splines_t &splines, const LinearConstraint &lc) const
 Mostly for debugging purpose.
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.
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_t > validations_
Protected Attributes inherited from hpp::core::PathOptimizer
bool interrupt_

Additional Inherited Members

static PathVectorPtr_t cleanInput (const PathVectorPtr_t &input)
 Flatten path and remove path of zero length.

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: