Template Class SolverBoxFDDPTpl
Defined in File box-fddp.hpp
Inheritance Relationships
Base Type
public crocoddyl::SolverFDDPTpl< _Scalar >(Template Class SolverFDDPTpl)
Class Documentation
-
template<typename _Scalar>
class SolverBoxFDDPTpl : public crocoddyl::SolverFDDPTpl<_Scalar> Public Types
-
typedef SolverFDDPTpl<Scalar> SolverFDDP
-
typedef BoxQPSolutionTpl<Scalar> BoxQPSolution
-
typedef ShootingProblemTpl<Scalar> ShootingProblem
-
typedef ShootingProblem::ActionModelAbstract ActionModelAbstract
-
typedef ShootingProblem::ActionDataAbstract ActionDataAbstract
-
typedef MathBaseTpl<Scalar> MathBase
Public Functions
-
virtual ~SolverBoxFDDPTpl() = default
-
virtual void computePolicy(const std::size_t t) override
Compute the feedforward and feedback terms (control policy) computed via a Cholesky decomposition.
To compute the feedforward \(\mathbf{k}_k\) and feedback \(\mathbf{K}_k\) terms, we use a Cholesky decomposition to solve \(\mathbf{Q}_{\mathbf{uu}_k}^{-1}\) term:
\[\begin{split}\begin{eqnarray}\mathbf{k}_k &=& \mathbf{Q}_{\mathbf{uu}_k}^{-1}\mathbf{Q}_{\mathbf{u}},\\ \mathbf{K}_k &=& \mathbf{Q}_{\mathbf{uu}_k}^{-1}\mathbf{Q}_{\mathbf{ux}}. \end{eqnarray}\end{split}\]Note that if the Cholesky decomposition fails, then we re-start the backward pass and increase the state and control regularization values.
-
template<typename NewScalar>
SolverBoxFDDPTpl<NewScalar> cast() const Cast the Box-FDDP solver to a different scalar type.
It is useful for operations requiring different precision or scalar types.
- Template Parameters:
NewScalar – The new scalar type to cast to.
- Returns:
SolverBoxFDDPTpl<NewScalar> An Box-FDDP solver with the new scalar type.
Public Members
- EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
Protected Functions
-
void allocateData()
-
virtual void resizeRunningData() override
Resize data associated with the running models of the shooting problem.
Protected Attributes
-
DynamicsSolverType dyn_solver_
Type of dynamics solver.
-
std::vector<MatrixXsRowMajor> K_
Feedback gains \(\mathbf{K}\).
-
EqualitySolverType term_solver_
Type of terminal solver.
-
Scalar th_noimprovement_
Threshold used to accept steps that cannot be be improved due to numerical errors
-
bool zero_upsilon_
True if we wish to set estimated penalty parameter (upsilon) to zero when solve is called.
-
typedef SolverFDDPTpl<Scalar> SolverFDDP