Interior Point OPTimizer (Ipopt)
IpoptAdvancedCOIN-OR's open-source large-scale nonlinear solver, based on the interior-point method, commonly used for trajectory optimization.
Ipopt is a nonlinear programming solver maintained by the COIN-OR open-source community, with its core algorithm proposed by Andreas Wächter and Lorenz Biegler, using the interior-point method (stepping toward the optimum from inside the feasible region, guided by a “barrier function”) to solve large-scale problems with both equality and inequality constraints. Trajectory optimization and nonlinear model predictive control in robotics repeatedly need to solve exactly this type of problem: the variables are the states and controls over a time horizon, and the constraints are the dynamics equations, joint limits, friction cones, and so on. Ipopt usually isn't called directly on its own but rather through a modeling tool such as CasADi, Drake, or Pyomo, and it needs to be paired with a linear-system solver such as MUMPS or HSL.
ExampleWrite out a direct-collocation formulation of a quadruped's jump in CasADi, then call nlpsol('solver', 'ipopt', nlp) to solve for a takeoff trajectory that satisfies the dynamics and friction constraints.
- Also called
- IPOPT
- Related
- Trajectory Optimization · Nonlinear Model Predictive Control · CasADi · Direct Collocation · Sequential Quadratic Programming · acados (fast embedded optimal control solver)
- Sources
- coin-or/Ipopt (GitHub)
Ipopt 官方文档 (Chinese)