Unmanned Marine Vehicle Autonomy

Development of autonomous decision-making algorithms for marine vehicles applications

 

Overview

During the Spring of 2022, I attended 2.680 - Unmanned Marine Vehicle Autonomy, Sensing, and Communications. The course covered topics in autonomous marine vehicles, focusing mainly on software and algorithms for decision-making by surface and underwater vehicles operating in ocean environments. Throughout the course, I developed waypoint-based integrated sensing, modeling, and control solutions for various ocean observation problems by using simulation environments and a field testbed with a small autonomous surface craft on the Charles River.

Course Objectives (modified from the class website)

  • Understand the relationship between autonomy, sensing, navigation, and control on an unmanned marine vehicle.

  • Field an autonomous system, including the mission and software configuration planning, mission monitoring of activities, launch and recovery of the vehicle, and post-mission analysis and debugging techniques.

  • Understand common vehicle sensors and sensor processing algorithms, and how mission autonomy affects the quality of sensor-gathering algorithms.

  • Use several modes of inter-vehicle communications, and understand the strengths and weaknesses of each mode in terms of latency, bandwidth, reliability, and cost.

  • Strengthen programming skills in C++ and learn how to develop algorithms within MOOS-IvP, a middle-ware mission-oriented operating suite for marine autonomy.

  • Understand the tools (e.g., GitLab, Visual Studio, etc.) needed to effectively develop software for robotic platforms in a group environment, resolve conflicts and adhere to group goals in the software cycle.

Several of the photos are courtesy of 2.680 faculty and staff.

 

A scout boat searches for unregistered swimmers. As swimmers are identified, the rescue boat updates its path to rescue swimmers in the most strategically optimal way… The scout-rescue boat duo competes against a competitor team to gather as many swimmers as possible. (source)

Final Project

In the final project, a swimmer rescue competition, fellow student Megan Flynn and I developed a search-and-rescue algorithm utilizing two autonomous boats. 

The scout boat strategically searched the operating area for lost swimmers, relaying the information to the rescue boat for retrieval. The scout initially went to the center of the operating area, scanning the map in a sweeping spiral pattern. As the scout identified swimmers and mapped the location of the team and competitor boats, the scout traveled to and searched an area of the map further from any previously investigated locations.  

As the rescue boat received swimmer locations, it followed a modified k nearest neighbor (k-NN) algorithm to save as many swimmers as possible. In the algorithm, the rescue boat prioritized swimmers in the following order:

  1. Swimmers very close to itself (<10m)

  2. Swimmers nearly equidistant between itself and the competitor rescue boat

  3. Swimmers significantly closer to itself than the competitor but >10m away

  4. Swimmers significantly closer to the competitor

It then used the k-NN algorithm with k=2 to plan its flight path. The rescue boat would recalculate its path once the first boat in the order was found.

Video tracking software to measure tail deflection