Implementation of visual odometry estimation for underwater robot on ROS by using RaspberryPi 2

Autonomous underwater vehicle (AUV) is being widely researched in order to achieve superior performance when working in hazardous environments. This research focuses on an implementation of a visual odometry estimation algorithm into the RaspberryPi 2. Robot Operating System (ROS) is deployed to the RaspberryPi 2 in order to handle messages between processes. Visual Odometry Estimation can be done by using image processing techniques to estimate the AUV's egomotion and the changes in orientation, based on image frames from different time frames captured from a single high-definition web camera attached to the bottom of the AUV. A visual odometry is integrated with an inertia measurement unit (IMU) and a depth sensor in order to correct robot's odometry. IMU is used to determine a correct set of answers corresponding to the homography motion equation. A pressure sensor is used to resolve the image scale ambiguity. An uncertainty estimation is computed to correct the drift that occurs in the system by using the Jacobian, singular value decomposition, and backward and forward error propagation methods. Results show that the RaspberryPi 2 is able to calculate the sophisticated algorithm proposed.