I study computer science at McGill and work on coordination between marine and aerial robots. Projects at MIT and Kongsberg Discovery have shaped my interest in how vehicles divide up work, adapt their plans, and support one another as conditions change. That has led me from integrating boats and aircraft to studying distributed task allocation.

I’m also interested in how AI is changing the way we develop software. My work with coding agents and automated testing grew out of my interest in anticipating the practical challenges and opportunities that come with such rapid change.

Charles Benjamin

Work

PEARL

2024–26

I helped create PEARL 3.5, MIT’s robotic boat and mobile docking platform. Alongside the boat’s autonomy and field operations, I led aircraft integration through a river landing and built coordination software for flying missions, finding PEARL, and returning to it.

Read more about PEARL
A drone flying over the PEARL platform in the Charles River

I built a continuous integration and delivery (CI/CD) pipeline for MOOS-IvP’s robot-autonomy software. It automates code checks, simulated mission tests, and macOS and Linux builds. Core developers have used it to test proposed changes, catching bugs in timing, coordinate conversion, and viewer configuration.

Read more about MOOS-IvP CI/CD
Five passing sets of simulated mission tests in the MOOS-IvP testing matrix

My aircraft work in Norway inspired a year-long McGill project: documenting and testing a fixed-wing drone platform that uses MOOS-IvP for mission decisions and ArduPilot for flight control. I also simulated aircraft bidding to replace one another as their range ran low. Parts now inform related master’s research at MIT.

Read more about MOOS-IvP UAV platform
A person hand-launching a fixed-wing drone in an open field

I’m interested in how marine robots divide up work when communication is unreliable. I implemented the Consensus-Based Bundle Algorithm (CBBA), which lets vehicles bid for tasks without a central planner, and related methods in MOOS-IvP to study how teams agree on a plan, carry it out, and confirm it’s complete.

Read more about Distributed task allocation
Recorded 12-task CBBA simulation with three vehicle tracks and labeled task regions

I built moos-map to make reliable map backgrounds for robot missions, extending earlier community tools with exact geographic cropping, viewer-compatible files, and automated output checks. It works through a browser interface or command line, and I published it on PyPI, the Python package index, for others to install and use.

Read more about moos-map
The moos-map interface selecting a region of the Charles River

I wanted to share MOOS-IvP runs without recording my desktop. I built and published alog2media to turn mission logs into videos, GIFs, and still images, making experiments easier to document, present, and inspect.

Read more about alog2media
An alog2media render of two vehicles and the regions they circle on open water

MAVROS services in MOOS

Fall 2026 · planned

I’m studying MAVROS, a bridge between drone autopilots and the Robot Operating System (ROS) framework, to design similar services for sending commands and receiving flight data through MOOS, MOOS-IvP’s messaging layer. The motivation comes from PEARL, Norway, and my fixed-wing aircraft project. Implementation is planned for this semester.

I also contribute to MOOS-IvP itself, including a viewer memory fix, a quadcopter viewer shape, and a viewer configuration fix.

Papers & talks

Selected talks

Writing

More on Medium