====== Self-Tuning Gain Depth Controller for an AUV with a Mass Shifting Mechanism ====== A self-tuning gain depth controller was developed and implemented in this project. The Light Autonomous Underwater Vehicle (LAUV) was used as the model for developing the controller.\\ \\ Please kindly clone the following packages to your workspace: \\ * [[https://github.com/Liquid-ai/Plankton.git|Plankton]] * [[https://gitlab.com/amarr_lab/marine-gnc-course/project-2021/6210550614/lauv_descriptions.git|LAUV]] * [[https://gitlab.com/amarr_lab/marine-gnc-course/project-2021/6210550614/mass_shifter_auv.git|Mass-shifter plugin]] * [[https://gitlab.com/amarr_lab/marine-gnc-course/project-2021/6210550614/mass_shifter_controller.git|Controller]] \\ (see the project for more information: [[https://gitlab.com/amarr_lab/marine-gnc-course/project-2021/6210550614|Project]]) ==== 1. Launching the simulation world ==== On a terminal, type the following command: ros2 launch uuv_gazebo_worlds ocean_waves.launch \\ \\ \\ ==== 2. Launching the LAUV model to the simulation ==== Open a new terminal, then type the following command: ros2 launch lauv_descriptions lauv_upload_default.launch.py \\ \\ \\ \\ {{:project2021:6210550614:lauv_model.png?600|}} \\ \\ \\ ==== 3. Run the surge speed controller ==== Type the following command in a new terminal: ros2 run mass_shifter_controller surge_speed_control \\ \\ \\ \\ By publishing a desired speed, the AUV will be hovering at that surge speed. \\ \\ \\ ==== 4. Run the mass-shifter controller ==== On a new terminal, type the following command: ros2 run mass_shifter_controller mass_shifter_control \\ \\ \\ \\ When the desired depth is published, the AUV will eventually go to the commanded position.