The problem
The robot had to visit four targets in a set order inside the Stevens Smart Arena, avoid walls and obstacles, and finish in under three minutes with no one touching it. The rules: at least three ultrasonic sensors, an OLED, a 3D printed body under five hours of print time, an ArUco marker the overhead camera could track, and no glue or tape anywhere.
What I did
I designed the printed body in SolidWorks, wired the power and sensor harness, and wrote the navigation code. I ran the team of three.
- Body. Seven revisions. Each one fixed something testing showed me: a loose sensor holder, a holder dragging on the wheels, a tight OLED slot, then slots for the ArUco tower and the power switch.
- Sensor layout. I compared three concepts in a weighted decision matrix. The winner kept all three HC-SR04s on one plane, front sensor straight ahead and the side sensors splayed about 50 degrees, so every reading comes from the same height.
- Wiring. A shared 5 V and ground bus, a switch on the positive line, and a color code (red power, black ground, colors for signals) so debugging took minutes, not hours.


How it works
The arena camera tracks the ArUco marker and publishes x, y and heading over MQTT. The robot computes the angle to the next target with atan2, takes the shortest turn, and picks a gentle steer or a full pivot depending on how far off it is. It slows down near a target and holds for two seconds when it gets there.
Ultrasonic readings handle obstacles. If the front stays blocked for more than a second, it switches into a wall-follow recovery mode for 2.5 seconds instead of bumping the same box forever. The OLED shows target, position, heading and all three distances live, which made testing much faster.

Result
In the final run it reached all four targets in about one minute against a three minute limit. It bumped one obstacle, recovered, and earned full marks for the demonstration.
What I’d change
A fourth sensor to cover the blind spots, the switch mount designed in from the start, and a small custom board instead of jumper wires.