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
35 typedef Ipopt::Number Scalar;
40 typedef typename MathBase::VectorXs VectorXs;
41 typedef typename MathBase::Vector3s Vector3s;
54 const std::vector<VectorXs>& init_xs = DefaultVector<Scalar>::value,
55 const std::vector<VectorXs>& init_us = DefaultVector<Scalar>::value,
56 const std::size_t maxiter = 100,
const bool is_feasible =
false,
57 const Scalar reg_init = Scalar(1e-9))
override;
76 void set_th_stop(
const Scalar th_stop);
79 Ipopt::SmartPtr<IpoptInterface> ipopt_iface_;
80 Ipopt::SmartPtr<Ipopt::IpoptApplication> ipopt_app_;
81 Ipopt::ApplicationReturnStatus ipopt_status_;
83 virtual void computeDirection(
const bool recalc)
override;
84 virtual Scalar tryStep(
const Scalar steplength = Scalar(1.))
override;
101#include "crocoddyl/core/solvers/ipopt.hxx" Class for interfacing a crocoddyl::ShootingProblem with IPOPT.
This class encapsulates a shooting problem.
virtual void resizeData()
virtual Vector3s expectedImprovement()=0
std::shared_ptr< ShootingProblem > problem_
SolverAbstractTpl(std::shared_ptr< ShootingProblem > problem)
std::vector< VectorXs > xs_
std::vector< VectorXs > us_
virtual void setCandidate(const std::vector< VectorXs > &xs_warm=DefaultVector< Scalar >::value, const std::vector< VectorXs > &us_warm=DefaultVector< Scalar >::value, const bool is_feasible=false)
virtual Scalar stoppingCriteria()=0
SolverIpopt(std::shared_ptr< ShootingProblem > problem)
Initialize the Ipopt solver.
virtual void resizeData() override
Resizing the solver data.
void setStringIpoptOption(const std::string &tag, const std::string &value)
Set a string ipopt option.
void setNumericIpoptOption(const std::string &tag, Ipopt::Number value)
Set a string ipopt option.