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 and C++ version new cost function, constraints functions were suggested. Moreover Matlab version does not use hpipm solver anymore, acados with CasADi interface for automatic equations differentiation are used instead.Ipopt solver is no longer supported.
Now a primary version uses acados, because it has lots of benefits for solving OCPs in a real time applications.
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;
- acados for solving OCP in a real time.
- Ubuntu (Tested on Ubuntu 22.04);
- acados for solving OCP in a real time, which contains HPIPM for solving OCP QP and BLASFEO (HPIPM dependency);
- nlohmann/json for reading parameters from the json file .
- matplotlib-cpp for plotting the result of the program.
- Note that
matplotlib-cpp
does also requirePython-2.7
orPython-3
andmatplotlib
, for more details see (https://github.com/lava/matplotlib-cpp).
- eigen for linear algebra operations.
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 acados,matplotlib-cpp,eigen and nlohmann/json for the C++ version:
./install.sh
All necessary instrictions for running C++ and Matlab versions could be found in their respective directories.