Skip to content

Software Subsystems (Nodes)

jennifervlaar edited this page Oct 18, 2026 · 3 revisions

The software architecture for the current AUV is broken into 4 main “nodes” (Estimation, Control, Autonomy, Vision), described below, with each representing a distinct process necessary for the operation of the AUV. The framework that underlies this architecture is Robot Operating System 2 (ROS2), which handles each of the 4 nodes as well as communication between them. The software for this project is primarily written in C++.

Estimation

The state estimator node takes data from several sensors. The table below describes each sensor being used and the data that it collects.

Sensor Description Data Axes Absolute/Relative
Depth Sensor Measures water pressure to determine depth Depth $(m)$ Z (vertical) Absolute
IMU Inertial Measurement Unit that tracks orientation and movement Linear acceleration $(m/s^2)$, Orientation $(rad)$ X, Y, Z, Roll, Pitch, Yaw Absolute (orientation), Relative (acceleration)
Front Camera Forward-facing camera for obstacle detection and navigation Visual data, Linear acceleration $(m/s^2)$, Angular velocity $(rad/s)$ X, Y, Z, Roll, Pitch, Yaw Relative

The state estimator takes this data and fuses it together to provide the position and orientation of the AUV.

Control

The controller node takes high-level instructions from the planner node and determines how to execute them. PID loops are used for each axis (X, Y, Z, Yaw, Pitch, Roll), as well as state estimation from the state estimator node to maintain a steady position and orientation if no command is received, and to handle movement when a command is received.

Autonomy (Planner Node)

The planner node is responsible for all high-level operations of the AUV. It takes in data about its surroundings and makes decisions on where to move and when to activate external devices.

Vision

The computer vision node processes image data from both the front and bottom cameras. Computer vision models will be trained on each object within the competition course and used for image recognition while the AUV is in the water. These image classifications as well as their screen positions are then sent to the planner for high-level decision-making.

Drivers

Launch

Clone this wiki locally