Go to file
Mats Steinweg 16aff350bf
Update README.md
2020-01-01 21:24:47 +01:00
.idea Create .gitignore 2019-11-23 22:27:19 +01:00
.gitattributes Initial commit 2019-11-23 16:42:01 +01:00
.gitignore Create .gitignore 2019-11-23 22:27:19 +01:00
MPC.py Update MPC.py 2019-11-25 09:07:02 +01:00
MPC_Framework.png Add files via upload 2020-01-01 21:12:27 +01:00
README.md Update README.md 2020-01-01 21:24:47 +01:00
map.py Create map.py 2019-11-23 16:46:19 +01:00
map_floor2.png Add map images 2019-11-23 22:27:46 +01:00
map_race.png Add map images 2019-11-23 22:27:46 +01:00
reference_path.py Create reference_path.py 2019-11-23 16:46:07 +01:00
simulation.py Update simulation.py 2019-11-23 22:56:09 +01:00
spatial_bicycle_models.py Update spatial_bicycle_models.py 2019-11-23 22:55:20 +01:00

README.md

Multi-Purpose MPC

  1. Introduction
  2. Implementation Details
    1. Map
    2. Reference Path
    3. Spatial Bicycle Model
    4. Model Predictive Controller (MPC)
  3. How-To
  4. Limitations and Outlook

Introduction

In this repository you find an implementation of a multi-purpose Model Predictive Controller. The controller was implemented as a contribution to the Automatic Control Project Course (EL2425) at KTH Royal Institute of Technology, Stockholm. The developed algorithm was tested on a 1:10 RC car provided by KTH Smart Mobility Lab. The test scenarios comprised the following three tasks:

  1. Reference Path Tracking
  2. Time-Optimal Driving
  3. Obstacle Avoidance

The controller is implemented in a way that enables its application to all three tasks by merely tuning the weight matrices of the underlying optimization problem. The illustration below shows the obstacle avoidance task in simulation.

The rest of this readme is structured as follows. In Section 2 we will present an overview of the entire system and discuss all fundamental components of the implementation in detail. In Section 3 we will provide guidelines for using the implementation in simulation and practice. Section 4 will be dedicated to analyzing limitations of the current version of the controller and outline potential extensions of the implementation.

Implementation Details

The multi-purpose control framework presented in this repository consists of four main components. These components are intended to make the implementation as modular as possible, facilitating extensions to certain components without having to alter the overall structure of the framework. An illustration of the components and their interaction is displayed below.

Map

Reference Path

Spatial Bicycle Model

Model Predictive Controller

How-To

Limitations and Outlook