Skip to content

Commit

Permalink
Readme updated
Browse files Browse the repository at this point in the history
  • Loading branch information
fetty31 committed Apr 3, 2024
1 parent 96c278e commit d889972
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 6 deletions.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,17 @@ Here you can find the main Autonomous Systems controller for CAT15x, the [BCN eM
If you want to see the performance of this controller watch [THIS TRACKDRIVE](https://youtu.be/mk9U0lRWr-0?si=S0-yVm7wfKk2jvPq).

<div align="center">
<a> <img src="docs/mpc_black.png" alt="Logo" width="855"> </a>
<a> <img src="docs/autocross_short.gif" alt="Logo" width="855"> </a>
<!-- <h3 align="center">Tailored MPC</h3> -->
</div>
<br />

This software is shared as part of my [Final Degree Thesis](docs/tfg_oriolmartinez.pdf). The controller actually used for competing during the 2022-2023 Formula Student season has been the `lateral` approach, so it's the one explained in the thesis (and the one that is driving the car in the [trackdrive video](https://youtu.be/mk9U0lRWr-0?si=S0-yVm7wfKk2jvPq)).
This software is shared as part of my [Final Degree Thesis](http://hdl.handle.net/2117/405362). The controller actually used for competing during the 2022-2023 Formula Student season has been the `lateral` approach, so it's the one explained in the thesis (and the one that is driving the car in the [trackdrive video](https://youtu.be/mk9U0lRWr-0?si=S0-yVm7wfKk2jvPq)).

Both other architectures were left apart due to the added tuning complexity of coupled NMPCs. However, the `master` approach is ready to drive :). The `spatial` approach is the one I found the most difficult to tune so it's not really fine tuned at the moment.

## Disclaimer
This is a tailored control solution made for the CAT15x Formula Student vehicle. In order to make a proper use of this algorithm, it's the user duty to make sure the dynamic model (presented [here](docs/tfg_oriolmartinez.pdf)) actually approximates the behaviour of the car.
This is a tailored control solution made for the CAT15x Formula Student vehicle. In order to make a proper use of this algorithm, it's the user duty to make sure the dynamic model (presented [here](http://hdl.handle.net/2117/405362)) actually approximates the behaviour of the car.

If you use this control algorithm in a Formula Student competition the **only** thing I ask for is to **ALWAYS REFERENCE** the team ___BCN eMotorsport___.

Expand All @@ -51,7 +51,7 @@ If you use this control algorithm in a Formula Student competition the **only**

## Approach

For specific information on how the lateral controller work read [Tailored MPC](docs/tfg_oriolmartinez.pdf)'s paper.
For specific information on how the lateral controller work read [Tailored MPC](http://hdl.handle.net/2117/405362)'s paper.

For the sake of simplicity the different controllers are named after their more important characteristic. However, all the specified MPC controllers are curvature-based and follow a simplified non linear bicycle model.

Expand Down Expand Up @@ -129,4 +129,4 @@ Explanation of all parameters from the lateral branch:


## Results
The technical performance of the controller is discussed [here](docs/tfg_oriolmartinez.pdf).
The technical performance of the controller is discussed [here](http://hdl.handle.net/2117/405362).
Binary file added docs/autocross_short.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ int main(int argc, char **argv) {
mpc.solve(); // Solve the NLOP

mpc.msgCommands(&msg);
if(mpc.forces.exit_flag == 1 /*|| mpc.forces.exit_flag == 0*/ ) pubCommands.publish(msg); // publish car commands
if(mpc.forces.exit_flag == 1 || mpc.forces.exit_flag == 0 ) pubCommands.publish(msg); // publish car commands

// DEBUG
float_msg.data = mpc.elapsed_time.count()*1000;
Expand Down

0 comments on commit d889972

Please sign in to comment.