PANOC  v0.2 (alpha) Fast nonlinear MPC
PANOC: Fast nonlinear model predictive control

PANOC in a nutshell

This is a C implementation of PANOC, a Proximal Averaged Newton-type method for Optimal Control.

PANOC is a fast solver for nonlinear optimal control problems which arise in nonlinear model predictive control (NMPC) and other applications.

Features of the method:

• Very fast convergence, sub-millisecond-fast MPC
• Low memory requirements
• Suitable for embedded applications
• Global convergence properties
• Not sensitive to ill conditioning
• Unlike SQP, does not require inner iterative procedures

Features of the implementation:

• Dependency-free C implementation (no libraries, C89 standard)
• Very easy to install
• Unit-tested (very high coverage)
• Memory-leak-free (checked with valgrind)
• Detailed documentation
• MEX interface for testing/simulation purposes (work in progress)

The main API with which end-users interact is provided in panoc.h.

Obstacle avoidance

PANOC comes with a MATLAB toolbox that allows the design of obstacle avoidance controllers based on nonlinear model predictive control while it produces C code (following the C89 standard) which can be used on embedded devices.

Below we see a collection of trajectories from different initial points $$(x_0, y_0)$$ and different initial headings $$\theta_0$$ towards the target point $$(x_r, y_r, \theta_r) = (3.5, 0.5, 0)$$.

The associated nonlinear model predictive problem consists in solving the following optimization problem:

Here is a video of PANOC in action:

See some more obstacle avoidance examples here.