update .gitignore

master
mcarfagno 2020-12-10 21:11:37 +00:00
parent 697e194d12
commit 819de117e0
4 changed files with 4 additions and 67 deletions

BIN
.DS_Store vendored

Binary file not shown.

3
.gitignore vendored
View File

@ -1,4 +1,3 @@
*.pyc *.pyc
*.DS_Store *.DS_Store
/notebook/.ipynb_checkpoints *.ipynb_checkpoints
.ipynb_checkpoints

View File

@ -1,62 +0,0 @@
# mpc_python
Python implementation of a mpc controller for path tracking using **[CVXPY](https://www.cvxpy.org/)**.
## 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:
![](img/quicklatex_equation.png)
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:
![](img/quicklatex2.png)
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](https://pybullet.org/wordpress/)** physics simulator. Racing car model is from: *https://github.com/erwincoumans/pybullet_robots*.
![](img/f10.png)
Results:
![](img/demo.gif)
To run the pybullet demo:
```bash
python3 mpc_demo/mpc_demo_pybullet.py
```
To run the simulation-less demo:
```bash
python3 mpc_demo/mpc_demo_pybullet.py
```
## Requirements
```bash
pip3 install --user --requirement requirements.txt
```
## References
* [mpc paper](https://borrelli.me.berkeley.edu/pdfpub/IV_KinematicMPC_jason.pdf)
* [pythonrobotics](https://github.com/AtsushiSakai/PythonRobotics/)
* [pybullet](https://pybullet.org/wordpress/)

View File

@ -1203,9 +1203,9 @@
], ],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "Python [conda env:.conda-jupyter] *", "display_name": "Python 3",
"language": "python", "language": "python",
"name": "conda-env-.conda-jupyter-py" "name": "python3"
}, },
"language_info": { "language_info": {
"codemirror_mode": { "codemirror_mode": {
@ -1217,7 +1217,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.8.5" "version": "3.7.6"
} }
}, },
"nbformat": 4, "nbformat": 4,