Software


Simulation

To optimize testing time in the pool, a simulation of the course was used using the Gazebo software. This allows us to test the state machine logic and vision algorithms without needing to be physically in the pool.

This simulation is essential in helping us achieve our goals.

Vision

To detect different objects underwater, PIGEON is equipped with two cameras: a forward-facing stereo camera and a downward-facing camera to identify objects beneath the submarine.

A YOLO (You Only Look Once) detection algorithm is then used to identify objects during missions. Vision algorithms are also integrate to estimate object angles and depths to ensure smooth and accurate control of the submarine.

A colorful, pixelated digital image of a window with a purple and yellow color scheme.
Underwater image showing UAV parts detection with labels and confidence scores, including SOS safety, gate leg center, compass hammer, and gate leg right.

Software Architecture

A custom decision tree was developed. The Nautilus team first identified the tasks they wanted to complete (Gate, Slalom, Torpedo, and Dropper), which then allowed them to determine an optimal path for PIGEON.

The decision tree can be seen in the diagram shown alongside.

The software architecture is designed for reliable underwater autonomy through vision-based control. A Pixhawk running ArduSub handles low-level stabilization and thruster control, while an NVIDIA Jetson Orin Nano manages high-level autonomy and mission logic using ROS 2.

Flowchart illustrating a robotic alignment and object detection process with steps such as alignment to center, moving in arc, centering table, surface detection, and identifying the next object, with decision points and different colored pathways.

You can find all the code on the team’s GitHub!