diff --git a/README.md b/README.md index f6cb9de..1feef8c 100644 --- a/README.md +++ b/README.md @@ -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).
- Logo + Logo

-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___. @@ -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. @@ -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). \ No newline at end of file +The technical performance of the controller is discussed [here](http://hdl.handle.net/2117/405362). \ No newline at end of file diff --git a/docs/autocross_short.gif b/docs/autocross_short.gif new file mode 100644 index 0000000..3439deb Binary files /dev/null and b/docs/autocross_short.gif differ diff --git a/src/main.cpp b/src/main.cpp index 0f718f8..5db0ff7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -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;