Pool Test 03/30/2025

This was a relatively short pool test focused on resolving the DVL issues we encountered during the previous pool test. Specifically, we suspected that the DVL’s X and Y axes were swapped, leading to incorrect state data. Before heading to the pool, Denton and I attempted to fix this by modifying the DVL settings via EA commands on the lab desktop to rotate its coordinate frame accordingly.

At the pool, we first commanded the robot to submerge and hold its position underwater. However, we observed the same erratic behavior as in the last pool test. To diagnose the issue, we examined the position errors (which influenced control efforts) and then inspected the state data. We discovered that the X and Y positions were swapped, specifically:

  • Moving the robot forward increased the Y coordinate, and moving it backward decreased Y.
  • Moving the robot left decreased the X coordinate, and moving it right increased Y.

Upon further investigation of the DVL and IMU outputs, we confirmed that the issue originated from the DVL velocity data, which meant the DVL’s coordinate frame still hasn’t been corrected. Specifically:

  • The current Y-axis corresponded to the original X-axis.
  • The current X-axis corresponded to the negative Y-axis.

To temporarily fix this, we manually swapped the velocity values in dvl_to_odom.py. We then verified the fix by having Karstan manually move the robot in each direction while observing the corrected state data.

After addressing the DVL issue, we proceeded with depth hold. The robot remained level for about a minute, though slightly wobbly. However, over time, it gradually increased its roll in the negative direction (counterclockwise from the rear perspective). Eventually, the roll spiraled out of control, tilting the robot nearly 90 degrees before we disabled controls.

To further investigate, we repeated the test while monitoring the raw IMU outputs. Initially, the roll oscillated around 0 degrees, suggesting that the PID controls were functioning correctly. However, after drifting past -10 degrees, the roll continued deteriorating until it spiraled uncontrollably. When we disabled controls, the IMU reported approximately -30 degrees of roll, whereas Karstan visually estimated at least 45-50 degrees.

This behavior aligns with what Max observed in the previous Sunday’s pool test, indicating an ongoing issue with roll drift.

Action Items

  1. We need to permanently correct the DVL’s coordinate frame to match the robot’s coordinate frame before the next pool test.
  2. The battery capsule latch still needs to be fixed ASAP.