| 1 |  |  | /////////////////////////////////////////////////////////////////////////////// | 
    
    | 2 |  |  | // BSD 3-Clause License | 
    
    | 3 |  |  | // | 
    
    | 4 |  |  | // Copyright (C) 2019-2020, University of Edinburgh | 
    
    | 5 |  |  | // Copyright note valid unless otherwise stated in individual files. | 
    
    | 6 |  |  | // All rights reserved. | 
    
    | 7 |  |  | /////////////////////////////////////////////////////////////////////////////// | 
    
    | 8 |  |  |  | 
    
    | 9 |  |  | #ifndef CROCODDYL_CORE_SOLVERS_BOX_FDDP_HPP_ | 
    
    | 10 |  |  | #define CROCODDYL_CORE_SOLVERS_BOX_FDDP_HPP_ | 
    
    | 11 |  |  |  | 
    
    | 12 |  |  | #include <Eigen/Cholesky> | 
    
    | 13 |  |  | #include <vector> | 
    
    | 14 |  |  |  | 
    
    | 15 |  |  | #include "crocoddyl/core/solvers/box-qp.hpp" | 
    
    | 16 |  |  | #include "crocoddyl/core/solvers/fddp.hpp" | 
    
    | 17 |  |  |  | 
    
    | 18 |  |  | namespace crocoddyl { | 
    
    | 19 |  |  |  | 
    
    | 20 |  |  | class SolverBoxFDDP : public SolverFDDP { | 
    
    | 21 |  |  |  public: | 
    
    | 22 |  |  |   EIGEN_MAKE_ALIGNED_OPERATOR_NEW | 
    
    | 23 |  |  |  | 
    
    | 24 |  |  |   explicit SolverBoxFDDP(boost::shared_ptr<ShootingProblem> problem); | 
    
    | 25 |  |  |   virtual ~SolverBoxFDDP(); | 
    
    | 26 |  |  |  | 
    
    | 27 |  |  |   virtual void allocateData(); | 
    
    | 28 |  |  |   virtual void computeGains(const std::size_t t); | 
    
    | 29 |  |  |   virtual void forwardPass(const double steplength); | 
    
    | 30 |  |  |   virtual void resizeData(); | 
    
    | 31 |  |  |  | 
    
    | 32 |  |  |   const std::vector<Eigen::MatrixXd>& get_Quu_inv() const; | 
    
    | 33 |  |  |  | 
    
    | 34 |  |  |  protected: | 
    
    | 35 |  |  |   BoxQP qp_; | 
    
    | 36 |  |  |   std::vector<Eigen::MatrixXd> Quu_inv_; | 
    
    | 37 |  |  |   std::vector<Eigen::VectorXd> du_lb_; | 
    
    | 38 |  |  |   std::vector<Eigen::VectorXd> du_ub_; | 
    
    | 39 |  |  | }; | 
    
    | 40 |  |  |  | 
    
    | 41 |  |  | }  // namespace crocoddyl | 
    
    | 42 |  |  |  | 
    
    | 43 |  |  | #endif  // CROCODDYL_CORE_SOLVERS_BOX_FDDP_HPP_ |