This blog will recap the progress we have made on the previous two pool tests.
02/21/2026
Pre-Qualifying
During the 02/08/2026 pool test, we found that we had difficulty making it down the length of the pool. Often, the robot would yaw counterclockwise, causing it to deviate from the course and into the adjacent lane. To adjust for this, we decided to add a yaw correction using the onboard gyro to counteract this issue. When testing, we found the robot could navigate to the end of the pool without issue.
Unfortunately, the adjacent lane was occupied, and we once again could not complete this crucial step for the competition. During the upcoming pool tests, we hope to either occupy or reserve the adjacent lane for temporary use to prequalify.
Yaw to CV Object
During the 02/15/2026 pool test, we had some issues with our movement tasks, which interfered with the new logic that yaw to CV object implemented. With some async usage, the robot was supposed to modify its movement set point consistently based on where the object was in the frame. This pool test, we worked to debug some of the movement issues, discovering a new issue with our specified depth level. Since competition, we have been aware of the existence of two conventions for depth, with some methods requiring positive values (ex. the top-level task), and some methods requiring negative values (ex. the movement tasks). As different tasks call each other and call utility functions, depth values are edited and passed around, causing confusion in debugging. After some careful tracing, we were able to ensure that consistent and correct depth values are passed into their respective functions.
With the async step logic, we had some issues trying to debug when certain steps and how much of each step was being executed. With some carefully placed print statements and eventually some “sleeps” in the code, we found that most of the issues had been resolved. The new method will search for the object, and then edit the yaw setpoint while the object changes its position in the camera view, ensuring that the robot will not yaw past the object when trying to center it. We did run into a small error with the ending of the task planning node that will have to be debugged later, but overall, we are excited about the progress of this crucial part of task planning.
02/22/2026
In this pool test, we had hoped that Crush would join Oogway in the water for the first time this semester. However, continual issues pushed this back once more. Please look forward to future pool test blogs to see Crush back in action! Now, back to Oogway.
Yaw to CV Object
We continued to debug the issue we had when the task itself actually completes. After some additional tests, we found that this bug only triggers when the task planning list ends, causing it to not exit cleanly. It seems to be an issue with the task planning node itself, and requires future debugging at upcoming meetings.
Sonar
Over the past few pool tests, we have been working to finish testing our sonar integration into our codebase. While this is progressing, there are still instances where the code will unexpectedly crash, mirroring issues from last week where sonar code could hang and block the rest of task planning. We hope to iron out these bugs and get this code pushed soon.
HSV Rewriting
We then tested some minor rewriting of our lane marker HSV detector into the new HSV modularization framework that was written last year. While the new node works, some HSV values may need to be retuned. For the sake of efficiency, we may continue to use older code for HSV as needed.
Foxglove Bounding Boxes
In our previous CS blog, we mentioned a project to have Foxglove draw bounding boxes, instead of the onboard computer, which would help offload some computations. We attempted to test this at the pool test, but unfortunately, after setup noticed we did not have a depth-ai object to test the bounding boxes on. We hope to test this again at a future pool test.

Post-Pool Test Thoughts
This weekend, we made some big progress, especially on the new Yaw to CV Object method that is crucial to so many of our competition tasks. We hope to continue this progress with consistent, twice-weekend pool tests. Stay tuned for an upcoming CS blog where we detail some progress made out of the pool!
