18 #ifndef HPP_CORE_PATH_OPTIMIZATION_SPLINE_GRADIENT_BASED_ABSTRACT_HH 19 # define HPP_CORE_PATH_OPTIMIZATION_SPLINE_GRADIENT_BASED_ABSTRACT_HH 36 namespace pathOptimization {
38 template <
int _PolynomeBasis,
int _SplineOrder>
43 PolynomeBasis = _PolynomeBasis,
44 SplineOrder = _SplineOrder
54 static void copy (
const Splines_t& in, Splines_t& out);
59 void updateSplines (Splines_t& spline,
const vector_t& param)
const;
64 void updateParameters (
vector_t& param,
const Splines_t& spline)
const;
67 static void interpolate (
const Splines_t&
a,
const Splines_t&
b,
95 void appendEquivalentSpline (
const StraightPathPtr_t& path, Splines_t& splines)
const;
113 void appendEquivalentSpline (
const PathVectorPtr_t& path, Splines_t& splines)
const;
127 virtual void initializePathValidation(
const Splines_t& splines);
139 Reports_t validatePath (
const Splines_t& splines,
140 std::vector<std::size_t>& reordering,
155 { activeParameters.addRow (0, rDof); }
160 boost::shared_ptr<constraints::ExplicitConstraintSet>
es;
168 void jointBoundConstraint (
const Splines_t& splines,
LinearConstraint& lc)
const;
171 std::size_t addBoundConstraints (
const Indices_t& bci,
const LinearConstraint& bc,
175 Indices_t validateBounds (
const Splines_t& splines,
const LinearConstraint& lc)
const;
178 void addContinuityConstraints (
const Splines_t& splines,
const size_type maxOrder,
const SplineOptimizationDatas_t& ess,
LinearConstraint& continuity);
199 #endif // HPP_CORE_PATH_OPTIMIZATION_SPLINE_GRADIENT_BASED_ABSTRACT_HH boost::shared_ptr< Spline > Ptr_t
Definition: spline.hh:100
std::vector< std::pair< PathValidationReportPtr_t, std::size_t > > Reports_t
Definition: spline-gradient-based-abstract.hh:130
pinocchio::DevicePtr_t DevicePtr_t
Definition: fwd.hh:114
DevicePtr_t robot_
Definition: spline-gradient-based-abstract.hh:185
Definition: problem.hh:48
RowBlockIndices activeParameters
Definition: spline-gradient-based-abstract.hh:164
boost::shared_ptr< ConstraintSet > ConstraintSetPtr_t
Definition: fwd.hh:110
Eigen::RowBlockIndices RowBlockIndices
Definition: spline-gradient-based-abstract.hh:149
pinocchio::size_type size_type
Definition: fwd.hh:156
steeringMethod::Spline< PolynomeBasis, SplineOrder > SSM_t
Spline steering method.
Definition: spline-gradient-based-abstract.hh:83
std::vector< bool > Bools_t
Definition: spline-gradient-based-abstract.hh:150
SplineOptimizationData()
Definition: spline-gradient-based-abstract.hh:153
std::vector< SplinePtr_t > Splines_t
Definition: spline-gradient-based-abstract.hh:48
Common base for optimization-based path optimizer with splines.
Definition: spline-gradient-based-abstract.hh:39
Spline::Ptr_t SplinePtr_t
Definition: spline-gradient-based-abstract.hh:47
std::vector< PathValidationPtr_t > validations_
Definition: spline-gradient-based-abstract.hh:122
boost::shared_ptr< StraightPath > StraightPathPtr_t
Definition: fwd.hh:182
boost::shared_ptr< constraints::ExplicitConstraintSet > es
A copy of the explicit solver included in set.
Definition: spline-gradient-based-abstract.hh:160
boost::shared_ptr< InterpolatedPath > InterpolatedPathPtr_t
Definition: fwd.hh:192
path::Spline< PolynomeBasis, SplineOrder > Spline
Definition: spline-gradient-based-abstract.hh:46
std::vector< size_type > Indices_t
Definition: spline-gradient-based-abstract.hh:151
Definition: path-optimizer.hh:32
pinocchio::vector_t vector_t
Definition: fwd.hh:201
pinocchio::value_type value_type
Definition: fwd.hh:157
boost::shared_ptr< Spline > Ptr_t
Definition: spline.hh:48
SSM_t::Ptr_t steeringMethod_
Definition: spline-gradient-based-abstract.hh:84
boost::shared_ptr< PathVector > PathVectorPtr_t
Definition: fwd.hh:176
boost::shared_ptr< PathValidationReport > PathValidationReportPtr_t
Definition: fwd.hh:298
SplineOptimizationData(size_type rDof)
Definition: spline-gradient-based-abstract.hh:154
std::vector< SplineOptimizationData > SplineOptimizationDatas_t
Definition: spline-gradient-based-abstract.hh:166
A linear constraint .
Definition: linear-constraint.hh:28
Definition: spline-gradient-based-abstract.hh:152