Projects

Murphy

Murphy’s Law: Anything that can go wrong will go wrong.

The Fall 2024 ME EN 3230 Competition, inspired by the sci-fi classic Dune, challenged teams to design and build autonomous robots capable of navigating a desert-themed playing field to harvest "spice" blocks within a five-minute time limit.

The goal was to collect as many blocks as possible and deliver them to a refinery at the team's base while avoiding simulated "sandworms," which were triggered by the robot’s movements and visualized through LED indicators. Robots had to operate autonomously after an initial wireless command.

Points were awarded based on the type of spice collected, with blue blocks worth 1 point, red blocks worth 3 points, yellow blocks worth 0 points, and magnetic blocks penalizing teams with -2 points.

The competition required robots to start within a 12" x 12" area and utilize various sensors, such as reflectance arrays and color sensors, to navigate, detect blocks, and retreat to safety.

The playing field featured two sides separated by a central dune containing four spice deposits, each stocked with blocks of random types. Robots followed black lines and used proximity sensors to reach the deposits while monitoring LED warnings to avoid worm attacks.

Our approach was Murphy.

Navigation:
The robot uses a reflectance array located under the chassis, positioned between the drive wheels, to follow lines accurately. A PID controller was implemented to enhance precision and ensure smooth navigation.

As the robot approaches a deposit station, a rangefinder mounted at the front measures the distance to the deposit wall. The robot halts when the rake is just a few centimeters away from the block, ensuring precise sensing and manipulation.

Block Manipulators:
We developed two custom mechanisms for block harvesting and depositing: a conveyor and a rake.

At a deposit station, the rake, equipped with color and Hall effect sensors, detects the color of blocks and whether they are magnetic. If a desirable block is identified, the rake rotates clockwise, reaching over the block to pull it in. If the block is undesirable, the rake rotates counterclockwise, pushing it off the deposit area.

The conveyor system operates continuously in a counterclockwise direction while at a station, automatically turning off after accepting four blocks. At the refinery, the conveyor reverses direction, moving clockwise for a few seconds to unload all collected blocks.

Electrical System:
A 9.6 V battery connects to a switch and a 5 A fuse on the power distribution board. This board feeds into a buck converter chip that reduces the voltage as needed. The converter’s output powers 5 V and 9.6 V rails, which supply power to the robot’s sensors and motors respectively.

A hardware stack is mounted on the side of the robot, consisting of two motor driver shields and an Xbee receiver module stacked on an Arduino Mega 2560. The bottom driver shield, powered by the 9.6 V rail, controls the drive wheel motors, while the top shield manages the manipulator motors.

Manufacturing:
Many components of the robot, such as the board mounts, motor mounts, sensor mounts, battery mounts, pulleys for the conveyor, and the rake system, were 3D-printed. Additionally, the acrylic components were precision laser-cut to meet design specifications.

Initially, the battery was positioned at the bottom, nestled between the conveyor walls, and secured with light pressure using a flat plate with bolt attachment tabs. Over the course of the semester, we continuously explored ways to improve the tensioning of the conveyor belt. Eventually, we decided to relocate the battery to the space between the conveyor and designed a custom case that not only housed the battery securely but also served to prevent the conveyor belt from sagging.

Communication:
The Xbee module atop the hardware stack receives instructions from a transmitter module connected to an Arduino Uno. These instructions dictate the sequence of stations the robot visits. For instance, inputting ‘1234’ directs the robot to navigate to stations 1, 2, 3, and 4 in that order. By default, the robot starts at station 1 and continues harvesting until no more blocks are detected before moving to the next station.

Why Murphy?
Our project earned the name “Murphy” because it embodied Murphy’s Law: anything that could go wrong, did go wrong—especially in the electrical systems. Throughout the semester, we encountered and overcame numerous challenges, refining our design and improving functionality along the way.

In the end, the project was incredibly rewarding despite the setbacks. I had the opportunity to apply every concept I learned in the class to the robot’s design and construction.