I have been a supervisor for Final Year Project students in Ngee Ann Polytechnic. One of the projects that has been useful for my personal understanding is one on AUV. Here we used Ardusub which is a microcontroller based firmware for AUV control which supports arbitrary thruster configurations. We are using a thruster position called the BlueROV2, which got refers to a popular opensource AUV design called the BlueROV. Ardusub therefore takes care of kinematics of the robot’s movement as well as position control; we just have to define the path. This assignment makes sense as the control loops will be faster if the kinematic is calculated in the microcontroller level instead of the PC level. The PC simply sends a path to the Ardsub which is calculated by its path-finding module.
The PC runs Robot Operating System (ROS) which gives command to Ardusub through a communication protocol MAVLink. ROS can even perform SLAM to acquire the AUV’s pose.