A Model Predictive Contouring Controller (MPCC) for autonomous racing, enabling high-speed path following and obstacle avoidance.
MPCC is a Model Predictive Contouring Controller developed for autonomous racing, enabling vehicles to follow reference paths at high speeds while minimizing errors and avoiding obstacles. It formulates path following as an optimization problem that maximizes progress along the path, penalizes contouring and lag errors, and enforces track constraints. The controller uses nonlinear vehicle dynamics and efficient solvers to achieve real-time performance in simulation and experimental platforms.
Researchers and engineers working on autonomous vehicle control, particularly in racing or high-performance path-following applications. It is also suitable for academic institutions and labs focusing on model predictive control, robotics, and optimization-based control systems.
MPCC provides a specialized, open-source implementation of a contouring controller tailored for racing, with support for obstacle avoidance and realistic vehicle dynamics. Its dual C++ and Matlab implementations offer flexibility for simulation and deployment, backed by research from ETH Zurich and proven in real-world autonomous racing systems like the AMZ Driverless car.
Model Predictive Contouring Controller (MPCC) for Autonomous Racing
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Incorporates a nonlinear bicycle model with Magic Formula tire models, accurately simulating high-speed racing behavior as detailed in the formulation section.
Provides both C++ and Matlab code, allowing for research simulation in Matlab and deployment-ready implementations in C++, based on the README's separate instructions.
Supports efficient solvers like hpipm, Yalmip, CVX, and QuadProg, enabling real-time performance by approximating the nonlinear problem as a quadratic program.
Backed by ETH Zurich research and used in real-world systems like AMZ Driverless, with multiple cited papers validating its effectiveness in autonomous racing.
Obstacle avoidance is only available in the Matlab implementation, not in C++, limiting deployment options for full autonomous systems as noted in the README.
Requires installation of specific solvers and tools, with separate instructions for C++ and Matlab, making it challenging for users unfamiliar with optimization software.
Focused primarily on autonomous racing with a specific vehicle model, so adapting it to other autonomous driving scenarios requires significant modification and expertise.