The overall objective of the project is to develop a fully functioning underwater robot capable of autonomous operation in a swimming pool. My role will be to write a program in C to allow the robot to determine its location in real time. Our approach will use a Kalman filter to fuse exteroceptive (external) measurements of visual features in images taken by the robot's camera with proprioceptive (internal) measurements from an on-board inertial measurement unit (IMU). I will begin by assuming that a map containing the locations of the visual features is known in advance. In this case, the Kalman filter will be used to estimate the robot pose (position and orientation). If time allows, I will relax the known map assumption and attempt to solve the problem of simultaneous localization and mapping (SLAM). Signal processing may also be used to filter out noise from images so that they are clear enough to identify features. I will be working with a team of people from mechanical engineering, computer science, robotics and ece backgrounds to ensure all our individual parts successfully complement one another well in order for the project objective to be reached.