Electrical · 2 months · CMU Build18

Trash Collection Robot

A robot designed to identify and collect trash autonomously, with a focus on water-bottle retrieval.

Raspberry Pi CVArduino control9V quad H-bridge

Overview

Built for CMU's Build18 competition, our team developed an autonomous trash-collection robot that identifies and retrieves discarded items, specifically water bottles. The system combines a Raspberry Pi running machine-learning computer vision with an Arduino Uno for motor control and physical manipulation.

As the lead for electronics and power systems, I focused on hardware reliability, power delivery, and hardware-firmware integration across the robot's subsystems.

Trash collection robot chassis with Raspberry Pi, robotic arm, and quad H-bridge motor drive system
Collection robot chassis

System Overview

The robot continuously scans its environment with a camera feed processed by a machine-learning model on the Raspberry Pi. When a bottle is localized, the Pi calculates the trajectory and sends movement commands to the Arduino, which drives the robot and actuates a motorized robotic arm to pick it up.

This split architecture kept the heavy vision processing separate from the real-time hardware control needed for navigation and pickup.

Power Systems

I engineered a custom 9V quad-motor H-bridge drive system for the robot's mobility. The power distribution network had to provide stable current to the motors and H-bridges while preventing brownouts on the logic boards during high-torque movements and arm actuation.

Firmware

I designed a bidirectional UART serial protocol between the Raspberry Pi and Arduino. The Pi streamed direction commands from the ML model's bounding boxes, while the Arduino acknowledged commands and reported execution status. Frames used a start byte, a command, an argument, and a checksum.

Pi → Arduino command frame
StartCommandArgumentChecksumMeaning
AA010EA5BRG +14° (bearing offset)
AA020CA0FWD 12in (distance)
AA0301A8ARM CLOSE (grab)
AA0000AASTOP

The simulator below reconstructs that sensing-to-actuation loop end to end: place a bottle, watch the CV confidence lock on, and follow the live command frames as the robot turns, drives, and grabs.

Click the scene or the button to place a bottle

Results

On the competition course, the vision stack held about a 90% bottle detection rate, enough for the UART bridge to keep issuing bearing, drive, and grab frames while the custom power path kept motors and logic boards stable through high-torque moves and arm actuation.

Detection rate
~90% bottle detections
Control path
Checksummed Pi → Arduino UART frames
Power
9V quad H-bridge without logic brownouts