Distributed Algorithm Library

The goal of this project is to design a library of practical, well-abstracted, multi-robot distributed algorithms, suitable for many applications. One example application was searching a building for an item of interest. Videos of some of the primitive behaviors are below, videos of the building search application are near the bottom of the page.

Primitive Behaviors
The behaviors described below are primitive building blocks for building more complicated swarm applications. Their inner workings are described in detail in my Master's Thesis.

Match Orientation: This video shows the matchHeadingToRobot behavior in action. The robot with the antenna is the reference robot, all other robots are active robots.

Beacon Navigation: This video shows how a long-range ISIS beacon can be used with the matchHeadingToRobot behavior to guide the robots in along global heading. The robots are trying to move "north". As the beacon is rotated, all the robots change their direction accordingly. If the heading of the beacon is kept constant, the robots can use it like a compass to determine their absolute heading. Multiple beacons can be used to cover the entire workspace.

Orbit Robot: This video clip shows a group of robots orbiting a reference robot. The reference robot is the one with the tall black antenna.

Disperse From Source: This video clip shows the disperseFromSource behavior in action.

Disperse Uniformly 1 2: These video clips show the disperseUniformly behavior in action. For the keen of eye, robots that are near walls are flashing their blue light; robots in the interior are flashing their green light.

Follow The Leader: This video clip shows the followTheLeader behavior in action. Constant handshaking between successive robots keeps the line robust. If a robot does not respond, another is recruited to take its place. The chain breaks in image four, re-forms in image five, and is stable in the final image.

Navigate Gradient: This video clip shows the navigateGradient behavior in action. The source robot is wearing a small flag and is highlighted in green in the bottom center of the images. The active robot is highlighted in red.

Cluster On Source: This video clip shows the clusterOnSource behavior in action.

Cluster Into Groups: This video clip shows the clusterIntoGroups behavior in action. There are three groups, red, green, and blue. Each group elects a leader, and robots use the navigateGradient behavior to move towards the leader of each group. Once robots are grouped, entire groups move away from other nearby groups.

Counting: This video clip shows the counting behavior in action.

Dock To Charger: This video clip shows the dockToCharger behavior in action.

Bubble Sort: This video clip shows the bubble line physical bubble sort algorithm arranging the swarm into a line. The video is approximately 10x actual speed

Directed Dispersion:

Swarm Trek - Dark Room: This video clip shows the Swarm dispersing into a large room.

Swarm Trek - Walk Through: This video clip shows a walk-through of a dispersed Swarm.

Swarm Trek - Cluster With Bread Crumbs: This video clip shows the clusterWithBreadCrumbs behavior pulling the swarm out of the large room.

Current Researchers: James McLurkin
Project Status: Active

Papers: 
Dynamic Task Assignment in Robot Swarms
Distributed Algorithms for Dispersion in Indoor Environments using a Swarm of Autonomous Mobile Robots
Stupid Robot Tricks: A Behavior-Based Distributed Algorithm Library for Programming Swarms of Robots
Project Type: