Johannes Koechling logo

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++.

Timeline: Jun-Jul 2022Status: Completed
Maze-solving robot photo

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.