ROB 530: Visual Underwater SLAM
This project implements underwater visual inertial SLAM, as the final project for UM Robotics’ ROB 530: Mobile Robotics.
Abstract
This work improves upon previous implementations of underwater simultaneous localization and mapping by incorporating visual data into the robot state estimation. Previous works primarily rely on sensor measurements and control inputs to acquire an estimate of an ROV’s position due to the sparsity of landmarks in an underwater environment; however, problems such as drift commonly occur in these environments which can cause the estimation to become inaccurate. Our method utilizes Graph SLAM coupled with an ORB feature detector for landmark recognition in order to better localize the robot in a contained environment. This was accomplished using the BlueROV2 robot platform. This platform affords the use of an Inertial Measurement Unit (IMU), Doppler Velocity Logger (DVL), Depth sensor, and a stereoscopic camera as part of its sensor package. These sensor readings contribute the factors to our graph solution. The BlueROV2’s internal odometry estimates are used as nodes in the factor graph to provide starting point for optimization. The graph SLAM optimization is undertaken using the GTSAM python library and compared against the original odometry data for verification.
An example of a portion of the graph is shown below:

Our data was collected on a BlueROV2 robot, which unfortunately cannot be public at this time. You can see more details in the GitHub repo, report, and video linked below.
Links:
