Oogway

We are proud to present Oogway, our advanced entry for RoboSub 2025.

This autonomous underwater vehicle (AUV) marks a major design evolution for our team, integrating new technologies and refining systems for enhanced performance. Oogway is built around a modular frame, supporting the independent integration of key components, with an accessible electrical stack for easier sensor expansion and integration. Its software includes cutting-edge computer vision integrated with all-new task planning and control systems allowing for precise object recognition and navigation. We’ve also implemented novel hardware to locate acoustic pings and an accurate marker dropper, enabling it to interact with its environment. Key to Oogway’s design is the seamless integration of its subsystems, enabling robust and reliable functionality. Each component was independently developed and tested, ensuring high performance and resilience under the demanding conditions of underwater missions. As it embarks on each task within the competition, Oogway demonstrates our team’s technical capabilities and our commitment to advancing the field of underwater robotics.

Come check out our Report!

Computer Science

Robot Controls, GUI, Computer Vision (CV), Sonar, and Task Planning are crucial for autonomous robotics. Robot controls manage movement and actions, while the GUI allows users to interact and monitor the robot. CV enables the robot to perceive and navigate its environment. Sonar sensors help with distance measurement and mapping, especially in low-visibility conditions. Task planning determines the optimal sequence of actions for achieving goals. Together, these systems enable robots to perform complex tasks autonomously in dynamic environments.


Controls

Our control system ensures precise and stable robot movement through a blend of feedforward and feedback control mechanisms. Feedforward control maximizes stability by counteracting persistent forces like buoyancy, while feedback control, implemented via Proportional-Integral-Derivative (PID) loops, ensures smooth navigation towards the target. 

Further enhancing performance, the thrust allocator solves a quadratic programming problem using advanced numerical optimization techniques to determine the necessary force for each thruster, enabling the robot to follow the desired trajectory while minimizing energy usage. These forces are then transformed into pulse widths via a nonlinear mapping and pulse width modulation is employed to spin the thrusters. This sophisticated approach guarantees precise maneuverability across diverse environments and conditions.


GUI

Built on top of Foxglove Studio using the React Material UI library, the Duke Robotics GUI features a modular and modern design and allows us to easily monitor and control our AUV during pool tests. We can receive real-time updates on the status of our onboard computer, sensors, thrusters, and battery. We can observe the performance of the czontrols system and tune PID constants on-the-fly. We can use a joystick to control the robot directly. Individual panels are organized into layouts and easily deployed using a custom CLI. The GUI also supports replaying recorded ROS bag files for offline debugging and analysis.


CV

Detection

The computer vision (CV) system uses stereo and monovision inputs from both our DepthAI and USB cameras to locate items underwater to complete our underwater tasks. For simpler prediction tasks, we employ HSV filtering and contour matching to identify the buoy, path markers, and bin. For more intricate images encountered in the gate, torpedo, and octagon tasks, we utilize YOLO object detection models. Our enhanced CV pipeline seamlessly integrates these methodologies, dynamically adjusting to optimize detection speed and accuracy for various tasks.

Simulation

Our CV Simulation, built using Unity Perception, allows rapid generation of large-scale, labeled synthetic datasets for model training. Environment randomizations such as rotations and lighting variations contribute to a robust model that generalizes to a variety of diverse pool conditions. We also incorporated a realistic 3D model of the Woollett Aquatics Center to closely match this year’s competition environment.


Sonar

Our sonar system has been upgraded to enhance its reliability and provide alternate task completion methods. The upgraded sonar now effectively avoids false positives caused by acoustic reflections and can detect when the target object is missing. Low-intensity values are filtered out, and the DBSCAN algorithm is used to identify clusters in the image. Clusters are categorized as gate, buoy, and unknown. The clusters are used to identify the distance to the objects as well as their surface normal angles. The sonar can also perform long-range scans to get an overview of the AUV’s environment, filtering objects based on area and circularity and removing similar-sized neighboring clusters.


Task Planning

The task planning system serves as the robot’s top decision-maker, orchestrating its actions and responses to varying scenarios encountered during competition. It interfaces with all other systems, leveraging data from the robot’s perception capabilities and its current state to strategize and execute tasks efficiently by moving the robot or manipulating objects. Built upon a framework of coroutines, the system exhibits agility and responsiveness, swiftly adjusting to environmental changes and dynamically selecting the most optimal course of action at any given moment. The framework also facilitates streamlined development, allowing developers to assemble small building blocks into intricate tasks with ease. An automated system continuously publishes updates at every step, offering real-time insights into the system’s behavior and performance.


Electrical

The Electrical Stack Capsule houses and protects the robot’s electronics, ensuring efficient power distribution. Component mounts secure hardware like sensors and boards, providing stability. Actuators convert electrical signals into motion, driving the robot’s actions. The Full Model Assembly integrates these elements, allowing the robot to function seamlessly and perform tasks autonomously.


Full Electrical System

The electrical stack is the heart of the robot. Its primary responsibility is twofold: power all components, and ensure all data gets to the right places. This includes everything from communicating with all sensors, powering the robot computer, and even ensuring a network connection to the GUIs running on our landside computers.

This year, we further refined our electrical system to align with the robot-agnostic architecture established on our other robot, Crush. These improvements ensure compatibility with our shared communication framework and modular codebase.


Sensors

Oogway relies on many sensors to track both external and internal conditions.

Our primary sensors determine the robot’s state, that being its 6 degrees of freedom: x, y, z, roll, pitch, yaw. Our IMU, DVL, gyroscope, and pressure sensor are fused in software to provide an accurate state. The IMU, DVL, and gyroscope all have their own direct UART serial connection to the PC, whereas the pressure sensor is read through an Arduino and sent to the main ROS node over USB.

Oogway has two sonars onboard, both of which are connected to the computer’s USB.

We also have an internal voltage sensor to monitor the battery and dynamically adjust thruster speed, a temperature sensor to monitor capsule heat, and a humidity sensor to detect water ingress. We also read data from these three internal sensors with an Arduino.


Cameras

Oogway has four cameras that we use for CV and monitoring. Two cameras are simple USB cameras rated for underwater, and two are sophisticated stereoscopic cameras with internal processing. These cameras represent a significant demand for both our power and data systems.

The stereoscopic cameras are used to run complex ML models that help us We also utilize downward-facing cameras to track path markers on the pool floor.


Thrusters + Servos

Oogway features eight thrusters, and the electrical team provides the hardware abstraction layer used by the controls system.

Each thruster requires a precise PWM signal from the PC, which is challenging due to hardware inconsistencies measured in our ESCs. To manage this, we communicate with an Arduino Nano Every over serial, which interfaces with an I2C multiplexer to control all eight thrusters. The ESC offsets are then handled through a software abstraction layer.

In addition to the thrusters, Oogway is equipped with two servos, one to control the marker dropper and one to control the torpedo launcher. When ROS sends the appropriate commands, we can independently deploy team markers and fire torpedoes as needed.


Inter-Vehicle Communication

This year, we newly integrated a Water Linked M16 acoustic modem into Oogway to enable underwater communication with other robots. The modem’s omnidirectional capabilities allow Oogway to send and receive data from anywhere in the pool without needing to reorient, making it ideal for collaborative, multi-robot tasks.

To support this integration, we developed a custom interface that links the modem to the onboard computer. This interface manages serial communication, publishing incoming messages to a ROS topic and sending outgoing data through a ROS service, as well as ensuring seamless operation within our modular, robot-agnostic system.


Mechanical

The Electrical Stack Capsule houses and protects the robot’s electronics, ensuring efficient power distribution. Component mounts secure hardware like sensors and boards, providing stability. Actuators convert electrical signals into motion, driving the robot’s actions. The Full Model Assembly integrates these elements, allowing the robot to function seamlessly and perform tasks autonomously.


Electrical Stack Capsule

Ensuring the watertightness of the electrical stack is one of the mechanical team’s top priorities. The stack is enclosed by an off-the-shelf Polycase capsule and a custom-machined aluminum plate with space for WetLink penetrators and SubConn connectors. The bottom plate is also anodized to ward off corrosion in saltwater environments. 

This year, we added a new custom-made titanium top plate in response to a number of small leaks during last year’s competition. The four brass inserts molded into the Polycase capsule began to fail due to wear and tear over a year of use. The new titanium plate bypasses this weak point and applies even pressure across the entire capsule, improving performance and decreasing deterioration.


Component Mounts

The primary goals for all component mounts on Oogway are flexibility and rapid prototyping. Oogway’s aluminum rails allow us to move components around easily to optimize for factors such as buoyancy and placement of sensors. This year, this came in handy for the hydrophone mounts, which underwent several different designs and locations as the acoustics subteam developed their code. 

We primarily use 3D-printed mounts to keep Oogway lightweight and allow for updated designs to be fabricated consistently and quickly. The battery mount, for example, broke frequently during last year’s competition. This year, we were able to quickly prototype and test new designs and print backups just in case. We also designed several new parts this year, such as a marker dropper, two new sonar mounts, three new camera mounts, and a new adjustable buoyancy system.


Actuators

We added actuators to Oogway for the first time this year. The marker dropper mechanism uses Blue Trail Engineering’s waterproof servo to hold up to two markers in place, and a rotation to either side allows these markers to be released. This gives us the flexibility to choose when the markers should be dropped and how many should be dropped at a time. 

While not yet on Oogway, we are also prototyping a torpedo launcher using the same waterproof servo, which will be responsible for releasing the torpedoes. Like with the marker dropper, we aim to use one servo to control both triggers independently to give us the most flexibility during a run. 


Full Model Assembly

As we add or update components on the robot, we also ensure that the full model assembly of Oogway remains up-to-date. The assembly allows us to visualize new components and identify conflicts before fabrication. This year, we also used the full model assembly to generate media materials for the website and paper to more effectively illustrate our prototyping process and final products. 

In the future, we hope to integrate the assembly into our simulation workflow. For instance, this would enable our task planning team to roughly tune movement constants before putting the robot in the pool.