Skip to content

meco-group/fatrop

Repository files navigation

FATROP

Fatrop is a constrained nonlinear optimal control problem solver that is fast and achieves a high numerical robustness.

$$ \begin{align} \underset{\mathbf{x}_k, \mathbf{u}_k}{\min} \quad & \sum_{k=0}^{K-1} l_k(\mathbf{u}_k, \mathbf{x}_k) \\ \text{subject to} \quad & \mathbf{x}_{k+1} = \mathbf{f}_k(\mathbf{u}_k, \mathbf{x}_k), \quad k = 0, \dots, K-2 \\ & \mathbf{L}_k \leq \mathbf{g}_k(\mathbf{u}_k, \mathbf{x}_k) \leq \mathbf{U}_k \\ & \mathbf{h}_k(\mathbf{u}_k, \mathbf{x}_k) = \mathbf{0}, \quad k = 0, \dots, K-1 \end{align} $$

The main features of the solver are:

  • high numerical robustness thanks to advanced numerical optimization techniques, inspired by Ipopt
  • fast by exploiting the optimal control problem structure through a specialized linear solver, based on a generalized Riccati recursion
  • high performance linear algebra through integration of BLASFEO
  • effective handling of path equality and inequality constraints, without relying on penalty methods
  • ability to incorporate exact Lagrangian Hessian information
  • ability to be initialized from any, possibly infeasible, solution estimate

Getting Started

Refer to the Fatrop GitHub Pages as a reference to help getting started.

Usage

  • Fatrop can be used using the "low-level" interface by implementing an OcpAbstract class. See include/fatrop/ocp/ocp_abstract.hpp
  • Fatrop is also interfaced with CasADi. A usage example can be found here
  • usage examples of both interfaces can be found in the examples folder

Getting Started

Refer to github pages as a reference to help getting started.

Citing

To cite Fatrop in your academic work, please use the following reference of the fatrop paper:

@inproceedings{vanroye2023fatrop,
  title={Fatrop: A fast constrained optimal control problem solver for robot trajectory optimization and control},
  author={Vanroye, Lander and Sathya, Ajay and De Schutter, Joris and Decr{\'e}, Wilm},
  booktitle={2023 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  pages={10036--10043},
  year={2023},
  organization={IEEE}
}

About

Fatrop is a nonlinear optimal control problem solver that aims to be fast, support a broad class of optimal control problems and achieve a high numerical robustness.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors