Abstract
We introduce the Control Toolbox (CT), an open-source C++ library for
efficient modelling, control, estimation, trajectory optimization and model
predictive control. The CT is applicable to a broad class of dynamic systems,
but features additional modelling tools specially designed for robotics. This
paper outlines its general concept, its major building blocks and highlights
selected application examples. The CT was designed for intuitive modelling of
systems governed by ordinary differential- or difference equations. It supports
rapid prototyping of cost functions and constraints and provides common
interfaces for different optimal control solvers. To date, we support Single
Shooting, the iterative Linear-Quadratic Regulator, Gauss-Newton Multiple
Shooting and classical Direct Multiple Shooting. We provide interfaces to
different NLP and linear-quadratic solvers, such as IPOPT, SNOPT, HPIPM, or a
custom Riccati solver. The CT was designed with performance for online control
in mind and allows to solve large-scale optimal control problems highly
efficiently. Some of the key features enabling fast run-time performance are
full support for Automatic Differentiation, derivative code generation and
thorough multi-threading. For robotics problems, the we offer an interface to a
fully auto-differentiable rigid-body dynamics modelling engine. In combination
with derivative code generation, this allows for an unprecedented performance
in solving optimal control problems for complex articulated robotic systems.
Description
[1801.04290] The Control Toolbox - An Open-Source C++ Library for Robotics, Optimal and Model Predictive Control
Links and resources
Tags
community