Path optimization algorithms derive from class hpp::core::PathOptimizer.
More...
|
typedef steeringMethod::Spline
< PolynomeBasis, SplineOrder > | hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::SSM_t |
| Spline steering method. More...
|
|
SSM_t::Ptr_t | hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::steeringMethod_ |
|
void | hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::appendEquivalentSpline (const StraightPathPtr_t &path, Splines_t &splines) const |
|
void | hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::appendEquivalentSpline (const InterpolatedPathPtr_t &path, Splines_t &splines) const |
| If the interpolated path as only two waypoint, treat it as a straight path. More...
|
|
void | hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::appendEquivalentSpline (const PathVectorPtr_t &path, Splines_t &splines) const |
| For each subpath of path, cast it to a know path and calls appropriate appendEquivalentSpline. More...
|
|
|
typedef constraints::ExplicitSolver | hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::ExplicitSolver |
|
typedef Eigen::RowBlockIndices | hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::RowBlockIndices |
|
typedef std::vector< bool > | hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::Bools_t |
|
typedef std::vector< size_type > | hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::Indices_t |
|
typedef std::vector
< SplineOptimizationData > | hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::SplineOptimizationDatas_t |
|
void | hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::jointBoundConstraint (const Splines_t &splines, LinearConstraint &lc) const |
|
std::size_t | hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::addBoundConstraints (const Indices_t &bci, const LinearConstraint &bc, Bools_t &activeConstraint, LinearConstraint &constraint) const |
| Unused. More...
|
|
Indices_t | hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::validateBounds (const Splines_t &splines, const LinearConstraint &lc) const |
| Mostly for debugging purpose. More...
|
|
void | hpp::core::pathOptimization::SplineGradientBasedAbstract< _PolynomeBasis, _SplineOrder >::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...
|
|
|
virtual void | hpp::core::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::addProblemConstraints (const PathVectorPtr_t &init, const Splines_t &splines, LinearConstraint &lc, SplineOptimizationDatas_t &sods) const |
| Compute a conservative linear representation of the constraints. More...
|
|
void | hpp::core::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::addProblemConstraintOnPath (const PathPtr_t &path, const size_type &idxSpline, const SplinePtr_t &spline, LinearConstraint &lc, SplineOptimizationData &sod) const |
|
Eigen::RowBlockIndices | hpp::core::pathOptimization::SplineGradientBased< _PolynomeBasis, _SplineOrder >::computeActiveParameters (const PathPtr_t &path, const constraints::HybridSolver &hs, const value_type &guessThr=-1, const bool &useExplicitInput=false) const |
|
Path optimization algorithms derive from class hpp::core::PathOptimizer.
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
Enumerator |
---|
PolynomeBasis |
|
SplineOrder |
|
template<int _PolynomeBasis, int _SplineOrder>
Enumerator |
---|
PolynomeBasis |
|
SplineOrder |
|
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
Add the linear constraint to connect consecutive splines together.
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
Compute a conservative linear representation of the constraints.
It determines:
- which DoFs can be computed explicitely. These DoFs are removed from the variables and computed explicitely.
- which DoFs are constrained implicitely. These DoFs are removed from the variables and are set constant.
- which DoFs are not constrained. These DoFs are kept as variables for optimization.
void hpp::core::pathOptimization::QuadraticProgram::addRows |
( |
const std::size_t & |
nbRows | ) |
|
|
inline |
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
If the interpolated path as only two waypoint, treat it as a straight path.
Otherwise, throw an exception.
template<int _PolynomeBasis, int _SplineOrder>
For each subpath of path, cast it to a know path and calls appropriate appendEquivalentSpline.
- Parameters
-
splines | the output will be pushed back into this vector. |
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
- Parameters
-
guessThr | Threshold used to check whether the Jacobian contains rows of zeros, in which case the corresponding DoF is considered passive. |
void hpp::core::pathOptimization::QuadraticProgram::computeLLT |
( |
| ) |
|
template<int _PolynomeBasis, int _SplineOrder>
static GradientBasedPtr_t hpp::core::pathOptimization::GradientBased::create |
( |
const Problem & |
problem | ) |
|
|
static |
Return shared pointer to new object.
Default cost is path length.
template<int _PolynomeBasis, int _SplineOrder>
Return shared pointer to new object.
Default cost is path length.
void hpp::core::pathOptimization::QuadraticProgram::decompose |
( |
| ) |
|
hpp::core::pathOptimization::GradientBased::GradientBased |
( |
const Problem & |
problem | ) |
|
|
protected |
template<int _PolynomeBasis, int _SplineOrder>
Initialize validations_.
Store a pointer to the path validation of the problem for each spline.
template<int _PolynomeBasis, int _SplineOrder>
Returns res = (1 - alpha) * a + alpha * b.
void hpp::core::PathOptimizer::interrupt |
( |
| ) |
|
|
inline |
Interrupt path optimization.
template<int _PolynomeBasis, int _SplineOrder>
virtual PathVectorPtr_t hpp::core::pathOptimization::GradientBased::optimize |
( |
const PathVectorPtr_t & |
path | ) |
|
|
virtual |
virtual PathVectorPtr_t hpp::core::PathOptimizer::optimize |
( |
const PathVectorPtr_t & |
path | ) |
|
|
pure virtual |
template<int _PolynomeBasis, int _SplineOrder>
Optimize path 1* - Transform straight paths into splines 2* - Add continuity constraints 3 - Add problem constraints 4* - Make cost function 5* - Compute explicit representation of linear constraints.
6* : 1 - Compute cost hessian 2 - Compute optimum 3 - Check path for collision. If no collision, return solution 4 - add collision constraint 5 - re-compute explicit representation of linear constraints. 7* - Build result path.
Implements hpp::core::PathOptimizer.
hpp::core::PathOptimizer::PathOptimizer |
( |
const Problem & |
problem | ) |
|
|
inlineprotected |
const Problem& hpp::core::PathOptimizer::problem |
( |
| ) |
const |
|
inline |
hpp::core::pathOptimization::QuadraticProgram::QuadraticProgram |
( |
size_type |
inputSize | ) |
|
|
inline |
hpp::core::pathOptimization::QuadraticProgram::QuadraticProgram |
( |
const QuadraticProgram & |
QP | ) |
|
|
inline |
void hpp::core::pathOptimization::QuadraticProgram::solve |
( |
| ) |
|
|
inline |
Compute solution using quadprog.
- Parameters
-
ce | equality constraints |
ci | inequality constraints: \( ci.J * x \ge ci.b \) |
- Note
- computeLLT must have been called before.
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
Sets the parameters each spline.
- Todo:
- make this function static (currently, it only needs the robot number dof.
template<int _PolynomeBasis, int _SplineOrder>
Mostly for debugging purpose.
template<int _PolynomeBasis, int _SplineOrder>
Calls each validations_ on the conresponding spline.
- Parameters
-
stopAtFirst | if true, then return only at most one report correponding to the first encountered collision. |
virtual hpp::core::PathOptimizer::~PathOptimizer |
( |
| ) |
|
|
inlinevirtual |
hpp::core::pathOptimization::QuadraticProgram::~QuadraticProgram |
( |
| ) |
|
Eigen::VectorXi hpp::core::pathOptimization::QuadraticProgram::activeConstraint |
template<int _PolynomeBasis, int _SplineOrder>
Variable on which we can optimize.
Other variables are fully constrained.
int hpp::core::pathOptimization::QuadraticProgram::activeSetSize |
vector_t hpp::core::pathOptimization::QuadraticProgram::b |
bool hpp::core::pathOptimization::QuadraticProgram::bIsZero |
template<int _PolynomeBasis, int _SplineOrder>
Decomposition_t hpp::core::pathOptimization::QuadraticProgram::dec |
template<int _PolynomeBasis, int _SplineOrder>
A copy of the explicit solver included in set.
matrix_t hpp::core::pathOptimization::QuadraticProgram::H |
bool hpp::core::PathOptimizer::interrupt_ |
|
protected |
Whether to interrupt computation Set to false at start of optimize method, set to true by method interrupt.
LLT_t hpp::core::pathOptimization::QuadraticProgram::llt |
template<int _PolynomeBasis, int _SplineOrder>
template<int _PolynomeBasis, int _SplineOrder>
The set of constraint of the corresponding path.
template<int _PolynomeBasis, int _SplineOrder>
value_type hpp::core::pathOptimization::QuadraticProgram::trace |
template<int _PolynomeBasis, int _SplineOrder>
Path validation Its size is the number of spline paths.
vector_t hpp::core::pathOptimization::QuadraticProgram::xStar |