9 #ifndef CROCODDYL_CORE_SOLVERS_IPOPT_HPP_
10 #define CROCODDYL_CORE_SOLVERS_IPOPT_HPP_
13 #include <IpIpoptApplication.hpp>
14 #include <IpSolveStatistics.hpp>
17 #include "crocoddyl/core/solver-base.hpp"
18 #include "crocoddyl/core/solvers/ipopt/ipopt-iface.hpp"
32 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
39 SolverIpopt(boost::shared_ptr<crocoddyl::ShootingProblem> problem);
42 bool solve(
const std::vector<Eigen::VectorXd>& init_xs = DEFAULT_VECTOR,
43 const std::vector<Eigen::VectorXd>& init_us = DEFAULT_VECTOR,
44 const std::size_t maxiter = 100,
const bool is_feasible =
false,
45 const double reg_init = 1e-9);
64 void set_th_stop(
const double th_stop);
67 Ipopt::SmartPtr<IpoptInterface> ipopt_iface_;
68 Ipopt::SmartPtr<Ipopt::IpoptApplication> ipopt_app_;
69 Ipopt::ApplicationReturnStatus ipopt_status_;
71 virtual void computeDirection(
const bool recalc);
72 virtual double tryStep(
const double steplength = 1);
73 virtual double stoppingCriteria();
74 virtual const Eigen::Vector2d& expectedImprovement();
Abstract class for optimal control solvers.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW SolverIpopt(boost::shared_ptr< crocoddyl::ShootingProblem > problem)
Initialize the Ipopt solver.
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 reg_init=1e-9)
Compute the optimal trajectory as lists of and terms.
void setStringIpoptOption(const std::string &tag, const std::string &value)
Set a string ipopt option.
virtual void resizeData()
Resizing the solver data.
void setNumericIpoptOption(const std::string &tag, Ipopt::Number value)
Set a string ipopt option.