
Autonomy
The AI team writes the code for the autonomous decision making abilities of the boat. Their responsibilities include researching, developing, and testing algorithms for motion planning while brainstorming efficient strategies to tackle the competition tasks and transitions between tasks. This group works the most closely with our codebase, continuously improving it each year by focusing on great code quality, efficiency, and test coverage.
The job of the AI team can be seen from an input/output perspective: the AI node receives input from the sensors regarding where the boat is and what it sees, and outputs a path of waypoints. Waypoints can be thought of as GPS coordinates the boat should follow to accomplish the task at hand. Waypoints are selected with specialized task-specific algorithms.

A large part of the AI team’s work is testing their code. This includes unit testing our math-heavy functions, generating visualizations of static path planning examples, running the code in simulation frameworks, and observing the behavior of the boat during water testing.
Water Gun + Racquetball
The boat is equipped with a water gun and a Racquetball shooter, which are used to shoot stationary targets during certain tasks. We use our sensor suite to locate the targets, and then maneuver the boat to aim and fire.
- Calculate projectile trajectories while accounting for the movement of the boat.
- Make the system robust to real-life hardware variability.
- Technologies: LIDAR, Python, Control Theory, Physics
Next steps: We plan on implementing more complex motion planning algorithms for determining the trajectory of the payload.
Water Gun + Racquetball
The boat is equipped with a water gun and a Racquetball shooter, which are used to shoot stationary targets during certain tasks. We use our sensor suite to locate the targets, and then maneuver the boat to aim and fire.
- Calculating trajectory of the projectiles considering the movement of the boat
- Making the system robust to real-life hardware variability
- Technologies: LIDAR, Python, Control Theory, Physics
Next steps: We plan on implementing more complex motion planning algorithms for determining the trajectory of the payload.
Holonomic Controls
Traditionally, our boat uses two parallel thrusters, which limits our movement to two degrees of freedom. We plan on implementing two additional thrusters oriented diagonal to the centerline, which provides for a third degree of freedom, lateral movement.
- Defining closed-form equations for thrust allocation mapping to intended movement
- Testing and simulating hydrodynamic constants of the boat in motion
- Technologies: Python, C++, Raspberry Pi, Control Theory
Next steps: The addition of holonomic controls allows us to use a much wider range of pathing options. An open challenge that we currently face is creating algorithms which take advantage of holonomic motion, and integrating it with the rest of our boat's decision-making. Furthermore, efforts must be made to correctly evaluate and simulate holonomic motion.
Pathfinding
Based on the objects detected by our sensors, the boat calculates a path (a series of waypoints) using various algorithms specific to each task.
- Identifying tasks and moving between them
- On-the-fly scoring decision-making
- Technologies: Python
Next steps: Currently, we only have a static understanding of obstacles. We plan on using A* to dynamically avoid obstacles in the planned path. We also plan on investigating reinforcement learning to replace our handwritten pathfinding algorithms.