There are multiple ends of the roads that are approaching for the CS team. It’s the end of the semester, so the end of some projects, and the end of my time providing you updates for this academic year.
In the interest of maintaining a consistent storyline and brevity, most of my detailed updates will focus on the same projects as my previous blog post.
Robot Reliability
Between swapping out some components, hardware enhancements, and component/capsule redesigns (for more details on those, read the Electrical and Mechanical updates!), Oogway is working much better today (for proof, see my pool test update posts!). On the CS side of things, that meant a lot of reconfiguration, and working with Electrical/Mechanical on more reliable designs and their impacts on CS (e.g., flipping the USB camera upside down to put less torsional strain on the cable means some software trickery on our end).
Jetson Nano Characterization / Supervised CV Models
We’re making great strides on this! We temporarily put a fork on the characterization part of the project since CPU and RAM are our biggest resource constraints on using the Jetson Nano as the primary computer (and we are not that concerned about GPU usage since it is currently fully un-utilized and is what the Nano is supposed to be good at). During this fork, Electrical has made significant strides in the bot-on-a-board with the Nano (see their blog post for more details!), which is great for both sub teams for testing purposes.
We’ve then moved our members towards running a YOLOv7-tiny model on the Jetson Nano, of which we have been making good progress towards. The biggest change required is moving away from the .blob files from the DepthAI ecosystem and towards the .pt weights files of the more standard, open-source YOLO models. This should help to simplify our training pipeline, so we look forward to that. Good progress is being made and we have a working detector; we just now need to integrate said detector with ROS and our repo writ large. We hope to have this completed by the end of the semester.
Foxglove Updates
Thankfully, we had our resident UI legend (and legacy project) and President Emeritus Max return from the depths and submit 2 PRs (!) for Foxglove changes, so our panels are now working better than ever. Among the updates include a sensors status panel that no longer flickers for no good reason (along with some larger refactoring). We are still working towards the WASD panel, but our development pipeline is also much more streamlined now that we have made some configuration changes within the repository to allow for autocomplete functionality when developing with Foxglove.
Sonar
The sonar team has also been doing some fantastic work, and has been able to characterize the raw data very well. The output is also mostly integrated into our repository, although we do have a bit more work to do. This is no small feat, given the previous state of sonar tasks in task-planning (and the sonar code in offboard comms writ large). We are optimistic about having sonar functionality integrated by the first team time, which will allow us to enter task development with sonar functionality fully implemented and augmenting our CV to ensure more accurate and faster movements to objects (especially the torpedo banner).
Other Updates
I also wanted to briefly want to touch on some other updates — we are working hard towards our end of Crush moving from 6 to 8 thrusters. This change actually isn’t as scary as it sounds due to our robot-agnostic codebase, so minimizing tech debt is paying off! Also, organization writ large is much better in that our project boards are now much more updated, we receive updates on each issue weekly, and are pushing code much more consistently so everybody on the team knows what’s going on and can pick up somebody else’s work.
Hung also picked up a lot of work on the task-planning that we have been trying to do for years — that is, utilize inheritance properly, and not rewrite functions such as depth (or any of the 6 axes) correction separately for every specific tasks, and have a base competition task that we can use. This has turned out really well, and is a part of our Comp 2025 PR.
Finally, a celebratory message to the entire CS team for getting the Comp 2025 PR merged in! With over 10,000 lines of code changed, it was a massive one, touched all our packages, and spanned multiple semesters and one competition. Here’s the link to that PR: https://github.com/DukeRobotics/robosub-ros2/pull/82. We now have a great starting point for all future commits, and are very happy about finally merging in the massive amount of work there.
Looking Forward
The CS team will wrap up some loose threads moving forward, and look to be fully prepared to go all-in on tasks and associated code changes once the tasks ideas is released and the first team time occurs. I will personally be signing off for this academic year, as I go to Copenhagen, Denmark for a semester. Mathew Chu (CS Lead) and Patrick Zheng (Co-President) will return from Tokyo, Japan, and they will take over my responsibilities. Thank you for taking the time to read my CS updates! I of course place my full faith in them, and look forward to reading along with you on the tremendous progress that our sub team will make under their leadership.
