本代码是一个高效的C++库,用于机器人的控制、估计、优化和运动规划。
This is the Control Toolbox, an efficient C++ library for control, estimation, optimization and motion planning in robotics.
Link to the wiki, quickstart!
Find the detailed documentation here.
Overview
This is the ADRL 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 page outlines its general concept, its major building blocks and highlights selected application examples.
The library contains several tools to design and evaluate controllers, model dynamical systems and solve optimal control problems. The CT was designed with the following features in mind:
Systems and dynamics:
intuitive modelling of systems governed by ordinary differential or difference equations.
Trajectory optimization, optimal control and (nonlinear) model predictive control:
IPOPT (first and second order)
SNOPT
HPIPM
custom Riccati-solver
Classical Single Shooting
iLQR / iLQG (iterative Linear Quadratic Optimal Control)
Multiple-shooting iLQR
Gauss-Newton-Multiple-Shooting (GNMS)
Classical Direct Multiple Shooting (DMS)
intuitive modelling of cost functions and constraints
common interfaces for optimal control solvers and nonlinear model predictive control
currently supported algorithms:
standardized interfaces for the solvers
Performance:
solve large scale optimal control problems in MPC fashion.
Robot Modelling, Rigid Body Kinematics and Dynamics:
straight-forward interface to the state-of the art rigid body dynamics modelling tool RobCoGen.
implementation of a basic nonlinear-programming inverse kinematics solver for fix-base robots.
Automatic Differentiation:
first and second order automatic differentiation of arbitrary vector-valued functions including cost functions and constraints
automatic differentiation and code generation of rigid body dynamics
derivative code generation for maximum efficiency