Before the Test:

Everything in the lab was good before the test. The battery capsule is still disconnected so we zip tied it down. This needs to be fixed before next weekend. When we arrived at the pool we recalibrated the IMU to see if calibrating it in the pool area helped.


We continued testing the yaw issue and noticed that the issue still persisted. For the next 2 hours we changed parameters in the sensor_fusion/params/main.yaml to see if they could fix the issues with the IMU. While holding the robot steady underwater we noticed that the IMU angular position was constantly drifting even though the robot was remaining still. This indicated to us that there was an issue with the internal IMU orientation. The IMU uses its own Kallman filter internally to estimate the angular position from the angular velocity so based off our observations, there is error in the IMUs calculations. We changed the sensor fusion package to ignore the angular position of the IMU and only use the angular velocity. This fixed most of the yaw problems but it still drifted some and in either the left or right direction.

To combat this we added some other changes to the sensor fusion package listed below:

  • Increased the imu queue size to 20
  • Lowered the frequency to 20Hz
  • Set the differential mode for the DVL and IMU to true
  • Set smooth lagged data to true with a history of 0.3s
  • Set the initial state of the robot to all 0
  • Set dynamic pose covariance to true

All of these changes got rid of the yaw oscillations entirely as shown in the video above. Therefore the yaw oscillation is no longer an issue! We then tuned PID for the rest of the test. If you want to know more about sensor fusion parameters read this. We also realized that the IMU calibration made the IMU angular position worse so we removed it. We also replaced the IMU which helped a little.

After the Test:

At the end the humidity sensor was at 80% suggesting a leak. We took the capsule off and noticed a little water, so there is still a leak in the capsule. I don’t know why it’s there but it’s small and needs to be fixed before the summer.


  • Robot yaw is fixed
  • Robot PID is better tuned
  • Robot leak is better but not fixed


  • Robot still leaky a little
  • Battery mount is broken
  • 1D sonar not wired
  • Marker dropper needs fixing