Pool Tests 03/28/2026 & 03/29/2026

Welcome back to another pool test blog! This past weekend, we continued to test Oogway and began refining task algorithms from last competition and integrating several new changes to old tasks.

03/28/2026

In previous pool test blogs, we mentioned that Oogway has issues moving in a straight line. We suspect that part of this issue is due to inaccurate state measurements, or the robot’s estimate of where it is in the pool relative to where it started. To fix this issue, our team has been working on reconfiguring our DVL with the help of its vendor, Teladyne. After several weeks of communication and configuration, we were able to test out some changes at the pool.

We first had the robot complete some simple movements to specified relative positions, such as moving in a square. We observed that the robot moved relatively smoothly, and was more accurately able to move distances within our defined tolerances. Previously, the robot would often time out, due to inaccuracies in measured position.

We then moved on to retest previous tasks, starting with coin flip. Confirming that this still worked, we then moved on to testing our new yaw to cv object algorithm on the torpedo banner. Having success with this, we finally moved on to testing new move to cv object code. As this code is a work in progress, we did find some issues. One main issue was that the bounding boxes of the cv object was too inconsistent, causing the algorithm based on distance to the bounding box to be inconsistent. We will work on revising this with a moving average and test again in the future weeks.

03/29/2026

For Sunday’s pool test, we worked on retesting and confirming the previous pool test’s DVL configuration changes. After fixing some git corruption issues at the pool, and changing some constants, we were unfortunately not able to confirm the success that the previous pool test had. When moving forward, the robot still drifted significantly to the left, in addition, the robot would end any forward movement yawed 15-20 degrees counterclockwise. Therefore, when moving in a square, the following left strafe would cause the robot to be completely off of the track of the square, which resulted in the next movement of the robot hitting the left wall of the pool. We plan to record bag files of the robot and analyze not only the position but also the rotation of the robot coming from the onboard gyro.

We also worked heavily on finishing up sonar task planning code. After discovering library dependency issue with rclpy at a previous, undocumented pool test, we worked on adapting our code to the new syntax required. At this pool test, we were able to use sonar to reliably detect the wall and rotate to an angle relative to the wall face. We found that, when testing at close range (0.5-1.5 meters), we were successful in rotating to the wall 3/4 times. The one unsuccessful attempt was due to the robot being almost parallel to the wall. We also tested the sonar alignment at a further distance (5-6 meters), and observed success there as well.

Finally, we worked on collecting camera footage of the robot for our upcoming team video, with footage above the water during testing, as well as below water. Be on the lookout for this team video as we prepare for competition!

Post-Pool Test Thoughts

Overall, it was a successful pool test for us. We made progress on our movement inconsistencies, and are also finishing up refining two crucial competition functions: yaw to cv object and sonar. We plan to merge sonar changes into main soon, and finish up work on move to cv object to get yaw and move to cv object merged in soon. Stay tuned for an upcoming CS blog, and next week’s pool test blog!