crocoddyl  1.3.0
Contact RObot COntrol by Differential DYnamic programming Library (Crocoddyl)
SolverDDP Class Reference
Inheritance diagram for SolverDDP:
Collaboration diagram for SolverDDP:

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW SolverDDP (boost::shared_ptr< ShootingProblem > problem)
 
virtual void allocateData ()
 
virtual void backwardPass ()
 
virtual double calcDiff ()
 
virtual void computeDirection (const bool &recalc=true)
 
virtual void computeGains (const std::size_t &t)
 
void decreaseRegularization ()
 
virtual const Eigen::Vector2d & expectedImprovement ()
 
virtual void forwardPass (const double &stepLength)
 
const std::vector< double > & get_alphas () const
 
const std::vector< Eigen::VectorXd > & get_fs () const
 
const std::vector< Eigen::MatrixXd > & get_K () const
 
const std::vector< Eigen::VectorXd > & get_k () const
 
const std::vector< Eigen::VectorXd > & get_Qu () const
 
const std::vector< Eigen::MatrixXd > & get_Quu () const
 
const std::vector< Eigen::VectorXd > & get_Qx () const
 
const std::vector< Eigen::MatrixXd > & get_Qxu () const
 
const std::vector< Eigen::MatrixXd > & get_Qxx () const
 
const double & get_regfactor () const
 
const double & get_regmax () const
 
const double & get_regmin () const
 
const double & get_th_grad () const
 
const double & get_th_stepdec () const
 
const double & get_th_stepinc () const
 
const std::vector< Eigen::VectorXd > & get_Vx () const
 
const std::vector< Eigen::MatrixXd > & get_Vxx () const
 
void increaseRegularization ()
 
void set_alphas (const std::vector< double > &alphas)
 
void set_regfactor (const double &reg_factor)
 
void set_regmax (const double &regmax)
 
void set_regmin (const double &regmin)
 
void set_th_grad (const double &th_grad)
 
void set_th_stepdec (const double &th_step)
 
void set_th_stepinc (const double &th_step)
 
virtual bool solve (const std::vector< Eigen::VectorXd > &init_xs=DEFAULT_VECTOR, const std::vector< Eigen::VectorXd > &init_us=DEFAULT_VECTOR, const std::size_t &maxiter=100, const bool &is_feasible=false, const double &regInit=1e-9)
 
virtual double stoppingCriteria ()
 
virtual double tryStep (const double &steplength=1)
 
- Public Member Functions inherited from SolverAbstract
EIGEN_MAKE_ALIGNED_OPERATOR_NEW SolverAbstract (boost::shared_ptr< ShootingProblem > problem)
 
const double & get_cost () const
 
const Eigen::Vector2d & get_d () const
 
const double & get_dV () const
 
const double & get_dVexp () const
 
const bool & get_is_feasible () const
 
const std::size_t & get_iter () const
 
const boost::shared_ptr< ShootingProblem > & get_problem () const
 
const double & get_steplength () const
 
const double & get_stop () const
 
const double & get_th_acceptstep () const
 
const double & get_th_stop () const
 
const double & get_ureg () const
 
const std::vector< Eigen::VectorXd > & get_us () const
 
const double & get_xreg () const
 
const std::vector< Eigen::VectorXd > & get_xs () const
 
const std::vector< boost::shared_ptr< CallbackAbstract > > & getCallbacks () const
 
void set_th_acceptstep (const double &th_acceptstep)
 
void set_th_stop (const double &th_stop)
 
void set_ureg (const double &ureg)
 
void set_us (const std::vector< Eigen::VectorXd > &us)
 
void set_xreg (const double &xreg)
 
void set_xs (const std::vector< Eigen::VectorXd > &xs)
 
void setCallbacks (const std::vector< boost::shared_ptr< CallbackAbstract > > &callbacks)
 
void setCandidate (const std::vector< Eigen::VectorXd > &xs_warm=DEFAULT_VECTOR, const std::vector< Eigen::VectorXd > &us_warm=DEFAULT_VECTOR, const bool &is_feasible=false)
 

Protected Attributes

std::vector< double > alphas_
 Set of step lengths using by the line-search procedure.
 
double cost_try_
 Total cost computed by line-search procedure.
 
std::vector< Eigen::VectorXd > dx_
 
std::vector< Eigen::VectorXd > fs_
 Gaps/defects between shooting nodes.
 
Eigen::VectorXd fTVxx_p_
 
std::vector< Eigen::MatrixXd > FuTVxx_p_
 
Eigen::MatrixXd FxTVxx_p_
 
std::vector< Eigen::MatrixXd > K_
 Feedback gains.
 
std::vector< Eigen::VectorXd > k_
 Feed-forward terms.
 
std::vector< Eigen::VectorXd > Qu_
 Gradient of the Hamiltonian.
 
std::vector< Eigen::MatrixXd > Quu_
 Hessian of the Hamiltonian.
 
std::vector< Eigen::LLT< Eigen::MatrixXd > > Quu_llt_
 
std::vector< Eigen::VectorXd > Quuk_
 
std::vector< Eigen::VectorXd > Qx_
 Gradient of the Hamiltonian.
 
std::vector< Eigen::MatrixXd > Qxu_
 Hessian of the Hamiltonian.
 
std::vector< Eigen::MatrixXd > Qxx_
 Hessian of the Hamiltonian.
 
double regfactor_
 Regularization factor used to decrease / increase it.
 
double regmax_
 Maximum allowed regularization value.
 
double regmin_
 Minimum allowed regularization value.
 
double th_grad_
 Tolerance of the expected gradient used for testing the step.
 
double th_stepdec_
 Step-length threshold used to decrease regularization.
 
double th_stepinc_
 Step-length threshold used to increase regularization.
 
std::vector< Eigen::VectorXd > us_try_
 Control trajectory computed by line-search procedure.
 
std::vector< Eigen::VectorXd > Vx_
 Gradient of the Value function.
 
std::vector< Eigen::MatrixXd > Vxx_
 Hessian of the Value function.
 
bool was_feasible_
 Label that indicates in the previous iterate was feasible.
 
Eigen::VectorXd xnext_
 
std::vector< Eigen::VectorXd > xs_try_
 State trajectory computed by line-search procedure.
 
- Protected Attributes inherited from SolverAbstract
std::vector< boost::shared_ptr< CallbackAbstract > > callbacks_
 Callback functions.
 
double cost_
 Total cost.
 
Eigen::Vector2d d_
 LQ approximation of the expected improvement.
 
double dV_
 Cost reduction obtained by tryStep.
 
double dVexp_
 Expected cost reduction.
 
bool is_feasible_
 Label that indicates is the iteration is feasible.
 
std::size_t iter_
 Number of iteration performed by the solver.
 
boost::shared_ptr< ShootingProblemproblem_
 optimal control problem
 
double steplength_
 Current applied step-length.
 
double stop_
 Value computed by stoppingCriteria.
 
double th_acceptstep_
 Threshold used for accepting step.
 
double th_stop_
 Tolerance for stopping the algorithm.
 
double ureg_
 Current control regularization values.
 
std::vector< Eigen::VectorXd > us_
 Control trajectory.
 
double xreg_
 Current state regularization value.
 
std::vector< Eigen::VectorXd > xs_
 State trajectory.
 

Detailed Description

Definition at line 19 of file ddp.hpp.


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