Skip to content

Model Predictive Contouring Controller (MPCC) for Autonomous Racing

License

Notifications You must be signed in to change notification settings

Bauman-Racing-Team/MPCC

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MPCC

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.

racing lap on the FSG track racing lap on the FSI track racing lap on the thin track

Installation

Clone this rep in your folder:

git clone https://github.com/Bauman-Racing-Team/MPCC.git

Requirements to run Matlab version of MPCC

  1. Ubuntu (Tested on Ubuntu 22.04);
  2. Matlab (Tested on Matlab R2022a);
  3. CasADi for automatic differentiation;
  4. acados for solving OCP in a real time.

Requirements to run C++ version of MPCC

  1. Ubuntu (Tested on Ubuntu 22.04);
  2. acados for solving OCP in a real time, which contains HPIPM for solving OCP QP and BLASFEO (HPIPM dependency);
  3. nlohmann/json for reading parameters from the json file .
  4. matplotlib-cpp for plotting the result of the program.
  1. eigen for linear algebra operations.

Requirements installation with a script, which will install all requirenments for both versions Matlab and C++

  1. Open the terminal and navigate inside this rep:
cd MPCC
  1. 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

Running (Tested on Ubuntu 22.04 only!)

All necessary instrictions for running C++ and Matlab versions could be found in their respective directories.

About

Model Predictive Contouring Controller (MPCC) for Autonomous Racing

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 62.1%
  • MATLAB 21.6%
  • C++ 14.6%
  • CMake 1.2%
  • Shell 0.5%