Collaborative Swimming with modboats


MOTIVATION

The Modboats, which I describe in detail here, are a very capable system considering that they only have one motor. But the ocean is a pretty complicated place, and sometimes it’s good to bring a buddy along. The main Modboats project page already describes how Modboats have four magnetic docking points each and can dock together and undock from one another in a square lattice. But what do they do once they’re in the lattice? They can swim places, of course!

Why would we want to have a group of smaller robots swim together as a team? Because each module is a generalist robot (it can swim and connect with others), the groups can achieve the promise of modular self-reconfigurable robotic systems (MSRRs) and assemble and reconfigure into various specialist configurations. These specialist configurations could then perform complex tasks on the ocean surface, such as:

  1. Assemble into marine platforms for rescue vehicles or infrastructure.

  2. Build bridges and transport them where needed.

  3. Form mobile aquatic manipulators to move and install marine equipment.

  4. And plenty more!

A docked configuration of Modboats will break apart if two tails accidentally collide.

That’s why we want to have Modboats be able to swim collectively as a group, in addition to what they can do as individuals. The challenge is that - since we use each module’s tail to undock - they can’t all do whatever they want in order to swim. We have to find a way to make them swim without accidentally undocking…

Approach

The waveform we command each tail to execute.

How do we avoid collisions? It turns out that - for an arbitrary configuration of docked Modboats - a sufficient strategy for avoiding collisions is to restrict all the tails to:

The structural matrix P lets us determine the forces each boat in an arbitrary configuration has to execute to move the structure as a rigid body.

  • Thrust in phase with one another at the same frequency.

  • Choose the oscillation centerline (aka the average thrust direction) to be either straight forward or straight backwards.

  • Choose the same oscillation centerline as the other boats in the same vertical column.

Under these restrictions, we can guarantee that the tails of neighboring Modboats will never collide [1]. Then we can use a structural matrix to encode any arbitrary configuration and translate from forces we want to apply to the structure to the forces we need from each module.

This algorithm allows us to control the yaw angle and surge velocity for any arbitrary configuration of docked Modboats, and its performance is remarkably good and consistent across configurations. I invite anyone interested in the details to read the paper [1] for a full evaluation.

Three different configurations of docked Modboats demonstrate their capabilities, include some object manipulation.

Future Work

The method presented above allows groups of Modboats to move as a steerable vehicle. But we know that each Modboat can thrust in any direction, so with groups of 3 or more Modboats it should be possible to construct a holonomic vehicle, if we can avoid causing tail collisions. A new method to do just this is undergoing testing right now!

References

[1] G. Knizhnik and M. Yim, “Amplitude Control for Parallel Lattices of Docked Modboats”, 2022 IEEE International Conference on Robotics and Automation (ICRA). Philadelphia, PA. pp. 3027-3033, doi: 10.1109/ICRA46639.2022.9812381.