Model Predictive Contouring Controller (MPCC) for Autonomous Racing
Here is a fork of original MPCC from Alex Liniger.
In this fork MPCC has Matlab and C++ implementations. Matlab implementation is developed for creating one of the control approaches for the Formula Student Driverless car of Bauman Racing Team.
In the current Matlab version new cost function, constraints functions were suggested. Moreover Matlab version does not use hpipm solver anymore, acados and ipopt solvers with CasADi interface for automatic equations differentiation are used instead.
Now a primary version uses acados, because it has lots of benefits for solving OCPs in a real time applications. ipopt version is used as a reference and on the current version have some problems, which will be solved soon.
Clone this rep in your folder:
git clone https://github.com/Bauman-Racing-Team/MPCC.git
- Ubuntu (Tested on Ubuntu 22.04);
- Matlab (Tested on Matlab R2022a);
- CasADi for automatic differentiation and ipopt solver, which comes with CasADi;
- acados for solving OCP in a real time.
- Ubuntu (Tested on Ubuntu 22.04);
- HPIPM for solving OCP QP and BLASFEO (HPIPM dependency);
- Other dependencies from <C++/README.md>.
Requirements installation with a script, which will install all requirenments for both versions Matlab and C++
- Open the terminal and navigate inside this rep:
cd MPCC
- run install.sh script to install acados and CasADi with ipopt for the Matlab version and HPIPM and BLASFEO for the C++ version:
./install.sh
All necessary instrictions for running C++ and Matlab versions could be found in their respective directories.