diff --git a/README.md b/README.md index f222946..3ebb6ab 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,9 @@

Tailored MPC

-Here you can find the main Autonomous Systems controller for CAT15x, the [BCN eMotorsport](https://bcnemotorsport.upc.edu) 2022-23 car. Within this repo you will find 3 different MPC controllers: time-variant, spatial-variant and lateral (also time-variant). The one used for the 2022-2023 season is the lateral approach, leaving the others for a future implementation as they demand much more testing time. +Here you can find the main Autonomous Systems controller for CAT15x, the [BCN eMotorsport](https://bcnemotorsport.upc.edu) 2022-23 car. Within this repo you will find 3 different MPC controllers: time-variant, spatial-variant and lateral (also time-variant). The one used for the 2022-2023 season is the lateral approach, leaving the others for a future implementation as they demand much more testing time, which we don't ever have :( + +If you want to see the performance of this controller watch [this trackdrive](https://youtu.be/mk9U0lRWr-0?si=S0-yVm7wfKk2jvPq).
Table of Contents @@ -32,7 +34,7 @@ If you use this control algorithm in a Formula Student competition the **only** # Dependencies * [Ubuntu](https://ubuntu.com/) 20.04 * [ROS](https://www.ros.org/) Noetic -* [Embotech](https://www.embotech.com/products/forcespro/overview/) FORCESPRO solver. A Hardware or Software Embotech license is mandatory. +* [Embotech](https://www.embotech.com/products/forcespro/overview/) FORCESPRO solver. A Hardware or Software Embotech's license is mandatory. * [Eigen3](https://eigen.tuxfamily.org) * ___as_msgs___: self-defined ROS msgs pkg. You may change it for yours, adapting the [necessary callbacks](include/mpc.hh). diff --git a/docs/KIT_lateral_MPC.pdf b/docs/KIT_lateral_MPC.pdf deleted file mode 100644 index 47f060c..0000000 Binary files a/docs/KIT_lateral_MPC.pdf and /dev/null differ diff --git a/docs/TRO.pdf b/docs/TRO.pdf deleted file mode 100644 index 3961b23..0000000 Binary files a/docs/TRO.pdf and /dev/null differ diff --git a/docs/curvature_MPC.pdf b/docs/curvature_MPC.pdf deleted file mode 100644 index 4f3ef94..0000000 Binary files a/docs/curvature_MPC.pdf and /dev/null differ diff --git a/include/forces.hh b/include/forces.hh index 81c54df..7a3120e 100644 --- a/include/forces.hh +++ b/include/forces.hh @@ -1,3 +1,20 @@ +/* + Copyright (c) 2023 Oriol Martínez @fetty31 + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ + #ifndef forcespro_MPC_HH #define forcespro_MPC_HH diff --git a/include/mpc.hh b/include/mpc.hh index 6104a35..f1def4f 100644 --- a/include/mpc.hh +++ b/include/mpc.hh @@ -1,3 +1,20 @@ +/* + Copyright (c) 2023 Oriol Martínez @fetty31 + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ + #ifndef MPC_HH #define MPC_HH diff --git a/include/utils/params.hh b/include/utils/params.hh index c4b0fd0..3c7abb7 100644 --- a/include/utils/params.hh +++ b/include/utils/params.hh @@ -1,3 +1,20 @@ +/* + Copyright (c) 2023 Oriol Martínez @fetty31 + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ + #ifndef PARAMS_MPC_HPP #define PARAMS_MPC_HPP diff --git a/include/utils/vis_tools.hh b/include/utils/vis_tools.hh index 234405e..98dd560 100644 --- a/include/utils/vis_tools.hh +++ b/include/utils/vis_tools.hh @@ -1,3 +1,20 @@ +/* + Copyright (c) 2023 Oriol Martínez @fetty31 + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ + #ifndef VIS_TOOLS_HH #define VIS_TOOLS_HH diff --git a/src/main.cpp b/src/main.cpp index 639f24e..0f718f8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -99,7 +99,6 @@ int main(int argc, char **argv) { std_msgs::Int32 exitflag_msg; ros::Rate r(mpc.Hz); - // launch-prefix="gdb -ex run --args" while(ros::ok()){ mpc.solve(); // Solve the NLOP diff --git a/src/mpc.cpp b/src/mpc.cpp index d7fbb0c..840fac3 100644 --- a/src/mpc.cpp +++ b/src/mpc.cpp @@ -1,3 +1,20 @@ +/* + Copyright (c) 2023 Oriol Martínez @fetty31 + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ + #include "mpc.hh" // Constructor diff --git a/src/utils/params.cpp b/src/utils/params.cpp index 2a09879..d653816 100644 --- a/src/utils/params.cpp +++ b/src/utils/params.cpp @@ -1,3 +1,20 @@ +/* + Copyright (c) 2023 Oriol Martínez @fetty31 + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ + #include "utils/params.hh" Params::Params(const ros::NodeHandle* nh) { diff --git a/src/utils/vis_tools.cpp b/src/utils/vis_tools.cpp index 048d997..54c0c40 100644 --- a/src/utils/vis_tools.cpp +++ b/src/utils/vis_tools.cpp @@ -1,3 +1,20 @@ +/* + Copyright (c) 2023 Oriol Martínez @fetty31 + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ + #include "utils/vis_tools.hh" VisualizationTools::VisualizationTools(MPC *mpc, const Params *params){