MORA: Miniature Oscillating Robot Agent

MORA is a robot designed to be small and low-cost for use in swarms. Swarms of these tiny robots could be used to study fragile ecosystems like coral reefs or fish's schooling behaviors. It's biomimetic design could enable it to blend in with the environment and harness the efficiency of fish's excellent swimming performance.
The initial phase of this project was started at Harvard's Self-Organizing Systems Research Lab in 2017. I participated in the Student Poster Competition at the IEEE/MTS OCEANS 2018 Charleston conference to present my work. In fall of 2018, I continued as the project manager. I also did some design work, check it out here!

MORA's Development Evolution

Proof-of-concept multi-jointed motion with the LOVE fish.

Clinky's jerky wiggle illustrated the necessity of smoothing the joints' motion.

MORA's first tethered swim was so exciting, I had to cut out the sound not to damage your ears :).

MORA was highly susceptible to the pull of its tethers and disturbed water, often drifting to one side.

The final video of MORA's swimming at the end of May 2018, forming the basis for our paper.

On final demo day, we had one robot attached to a power supply and another on battery power. Both had all other electronics on-board and used a foam float for buoyancy.

A straight-line swim by MORA, free of any tethers restricting her motion. Look at her go!

The first fish, LOVE fish, tested the limits of the actuators with its large size (25 cm) and weight.

Clinky fish, the second prototype, was much smaller than the LOVE fish, ~11 cm nose to tail.

MORA was redesigned to be printable on a Markforged, with built-in actuator holders and foam and weight compartments.

Blue pins were mounted along MORA's spine to track its oscillatory movement.

Hall effect sensors were successfully integrated to get position feedback from the joints, significantly adding to the number of wires.

At the end of December 2018, MORA had all electronics on-board with a custom PCB, although we ran into some power issues. A better printing procedure gave our robot a much better finish as well.


Sketches for potential designs for transferring the motion of the actuator to a compliant skin.

A two-part mold for creating one side of a compliant skin to smooth out the robot's motion.

The Frankenfish wiggle, demonstrating the potential for the two-part half skin mold. I ended up resorting to needle and thread to put the two parts together.

The second multi-hinged skeleton iteration was twice as small as the intial proof-of-concept.

Achieving buoyancy in an easily-manufacturable way took me through many paths, including injecting copious amounts of expandable foam.

The full system connecting MORA to its H-bridges (to switch the current through the coils), Arduino, and external battery and power supply.

A fantastically improvised testing rig suspended a camera above an aquarium to record videos. They were subsequently processed in MATLAB to generate motion plots.

In our new goal of bringing all electronics on-board (as opposed to sitting in a box outside of the water), we would need to tackle miniaturizing this beast of a protoboard.

A few tethered generations of MORA.

Our final prototype on December 2018, with a battery on-board, generating lots of bubbles. (Photo - Colin Snow).

Multiple rigid joint approximation of Lighthill's model for ideal carangiform swimming, based on Liu and Hu's algorithm.

Mold idea for rapidly manufacturing robots, with all electronics encased in a silicone skin.

Testing a tree-like fin to stretch a thin (~1.5mm) skin around an actuator. This design was too heavy to move.

Working at relatively small scale, it is amazing how complicated it is to get something moving reliably!

The hinges at the top and bottom secure the magnet in the middle of the coil to allow full rotation and maximum force.

Version 1 of MORA was meticulously designed to be fully defined by sketches in one part file. Each segment was then exported as a separate body.

MORA's motion was characterized by tracking blue pins along its spine. The tethers were attached to some foam to reduce their effect on the robot's motion.

MORA, Nemo-edition, began to feature some positional feedback using Hall effect sensors placed next to the coils. Plus, more members joined the team, bringing a burst of enthusiasm!

Electronics miniaturization was solved by creating a custom PCB board, just the shape that would fit inside of the body.

Teammate testing the new PCB's functionality.

Electronics were waterproofed with a Corrosion X coating, leaving the fish hanging for 24 hours.