PuzzleBots Research
Languages: Arduino, MATLAB, Python
PuzzleBots are an existing swarm robotic platform. Measuring about 5 cm x 5 cm x 4 cm in size, each robot is equipped with a passive coupling mechanism, so that multiple robots can chain together to create one long robot. They were originally tele-operated with velocity commands. When connected, multiple PuzzleBots act as a single rigid body, allowing the centimeter scale robots to cross gaps larger than themselves, a very useful ability in search and rescue applications.

My research focused on equipping these cuboid robots with sensors, so that the robots can move towards autonomy. My thesis was interdisciplinary, focusing on sensor implementation and also software components such as motion planning and mapping.
The primary goal was to allow the robot to identify and map where gaps are in the environment.
​
These robots are designed with search and rescue applications in mind. Because of this, they are designed to be low cost and low in voltage consumption. Low cost, allows them to be abandoned without concern for cost if they ever get lost in the field. Low voltage keeps the battery small, which keeps the robots small and light.
​
For sensing obstacles (or in this case, negative obstacles), robots often use LIDAR for sensing. However, LIDAR is costly and large. Because of the voltage and size constraints, I chose to use the combination of an ultrasonic sensor and a photoresistor. The ultrasonic sensor measures distance, and the photoresistor measures the amount of ambient light.
​
I first tested these sensors on an Arduino, to characterize them. The characterization tests gave me insight into how I can best orient and mount the sensors onto the robot. The ultrasonic sensor is pointed 10 degrees down from horizontal, so that it will always ideally measure the same distance to the ground until there is a gap. The photoresistor is pointed 30 degrees outward from the ground so that more light will reach it as it gets closer and closer to a gap.
​
After the characterizations tests, I integrated the sensor electronics onto a custom PCB.
​
The second phase of this research was writing and testing motion planning and mapping algorithms utilizing the sensor data.
​
In order to aid algorithm development, we built a simulation environment that interfaces with ROS. Simulation was done in CoppeliaSim.
I developed three different algorithms of varying complexity and safety. Each algorithm uses sensor data to identify gaps in the environment to determine what the best next motion is while avoiding the gap. In order to map the gaps, the algorithms use occupancy grid mapping.
​
A thorough description of the algorithms can be read in the thesis document here.
​
​
A video of my thesis defense can be seen here.
​
​
​
​
​
​
​