Go to file
mcarfagno 4b25c7c9b7 removing old jupyter files 2020-12-15 14:11:10 +00:00
img updated README with nicer gifs from latest implementation 2020-11-02 14:44:31 +00:00
mpc_pybullet_demo updated README with nicer gifs from latest implementation 2020-11-02 14:44:31 +00:00
notebooks removing old jupyter files 2020-12-15 14:11:10 +00:00
.gitignore update .gitignore 2020-12-10 21:11:37 +00:00
README.md updated README with nicer gifs from latest implementation 2020-11-02 14:44:31 +00:00
requirements.txt Added obstacle avoidance 2020-06-29 15:31:43 +01:00

README.md

mpc_python

Python implementation of a mpc controller for path tracking using CVXPY.

About

The MPC is a model predictive path following controller which does follow a predefined reference by solving an optimization problem. The resulting optimization problem is shown in the following equation:

The terns of the cost function are the sum of the reference tracking error, heading effort and actuaction rate of change.

Where R,P,Q are the cost matrices used to tune the response.

The vehicle model is described by the bicycle kinematics model using the state space matrices A and B:

The state variables (x) of the model are:

  • x coordinate of the robot
  • y coordinate of the robot
  • v velocuty of the robot
  • theta heading of the robot

The inputs (u) of the model are:

  • a linear acceleration of the robot
  • delta steering angle of the robot

Demo

The MPC implementation is tested using bullet physics simulator. Racing car model is from: https://github.com/erwincoumans/pybullet_robots.

Results:

To run the pybullet demo:

python3 mpc_demo/mpc_demo_pybullet.py

To run the simulation-less demo:

python3 mpc_demo/mpc_demo_pybullet.py

Requirements

pip3 install --user --requirement requirements.txt

References