Robotics Competition
Peter Gregson Robotics Design Competition
Placed 3rd out of 33 teams. Autonomous robot that mapped a maze, detected and defused mock mines, and hauled them to a drop-off zone using ROS, Gazebo, LiDAR, and a Raspberry Pi + Arduino stack running Python and C++.

Overview
For the 2022 Peter Gregson Robotics Design Competition, our three-person team built a Roomba-style rover to navigate a maze, detect mines, defuse them with a specific LED pulse, and carry them to a drop-off zone--fully autonomously.
I owned navigation and control: mapping the grid, setting waypoints at tile centers, and coordinating the claw with the mine-handling flow. When a mine was detected, we rerouted to the drop-off, released it, backed away, and resumed the sweep where we left off.
Key Features
Autonomous navigation
Grid-based internal map built with LiDAR, visiting every tile without human input.
Mine detection & defusal
Identifies mines, fires a specific LED frequency to disarm, then transports safely.
3D-printed claw
Custom CAD designed and 3D printed claw on the Pi-controlled bus to grab and release payloads.
ROS + Gazebo stack
Simulation and control with ROS nodes handling localization, motor control, and sensing.
Mixed-language control
C++ and Python nodes on the Pi handling navigation and claw, with Arduino handling LED pulsing.
Ruggedized chassis
Protected wiring, tuned wheel traction, and sufficient battery to stay unplugged.
Architecture & Tech
Our stack combined off-the-shelf hardware with ROS for autonomy:
- Raspberry Pi brain running ROS nodes for localization, path planning, and motor control.
- LiDAR + Gazebo for sensing and simulation, giving the robot a 2D map of the maze.
- Arduino companion driving the defusal LEDs at the required frequency while the Pi managed navigation.
- Grid-based sweep that set target coordinates, taking a path that ensured full coverage without collisions.
- Mine-handling routine that rerouted to the drop-off when a mine was picked, released it, backed away, then resumed the sweep.
- Mixed C++/Python nodes depending on familiarity and libraries, prioritizing ease of use.
Challenges and Obstacles
- Faulty power banks during testing forced us to isolate power issues before debugging navigation.
- Limited 3D printer access constrained claw iteration--we would start earlier next time to secure print time.
- Balancing speed with traction: tuning motors so the robot moved quickly without slipping on the smooth flooring.
- The network over which we SSH'd into the Pi was spotty, leading to frustrating delays while transferring files and testing.
What I Learned
- Programming autonomous robotics with ROS and Gazebo, including path planning and sensor setup.
- Using SSH for headless control and file transfer between machines in the lab.
- Coordinating modules to cooperate in real time.