Repository navigation
Software Subsystems (Nodes)
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++.
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 |
Z (vertical) | Absolute |
| IMU | Inertial Measurement Unit that tracks orientation and movement | Linear acceleration |
X, Y, Z, Roll, Pitch, Yaw | Absolute (orientation), Relative (acceleration) |
| Front Camera | Forward-facing camera for obstacle detection and navigation | Visual data, Linear acceleration |
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.
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.
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.
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.