Inspiration
Litter on campus isn’t usually a “nobody cares” problem — it’s a logistics problem. Trash collects in the same spots every day: under benches, beside overflowing bins, along walkways between classes. We wanted something small that could actually go to those spots, see the litter, and pick it up, without needing a warehouse robot budget. SBUHacks was the push to turn that idea into hardware that moves.
What it does
Batman is an autonomous trash-pickup robot. A camera looks for litter, a mecanum base drives toward it, and a 2-servo claw grabs it. Vision runs on a Windows laptop with a YOLO trash-detection model. An iPhone streams the live camera feed. An Arduino UNO Q handles the four drive motors (two HW-166 drivers) and the arm. The laptop sends simple drive and grab commands over Wi‑Fi so detect → move → pick up happens in one loop.
How we built it
- Drive: mecanum chassis, four motors, two HW-166 (TB6612) dual drivers, 7.4V LiPo for motors
- Arm: lift + gripper servos on a 5V buck from the same LiPo, signals from the UNO Q
- Brain: Arduino UNO Q MCU for PWM and direction; laptop (RTX 5060) runs Ultralytics YOLO11
- Camera: iPhone as IP / virtual webcam into the PC detector
- Link: laptop → UNO Q over TCP on a shared hotspot (
M vx vy w, stop, arm commands) - Software: MCU sketch for motors + soft-PWM servos; Python bridge on the Q; detector script for YOLO + control
We wired and tested motors and servos separately before merging them with the model so each piece was known-good.
Challenges we ran into
Getting UNO Q App Lab to flash cleanly (library / FQBN / flash_mode issues) ate time. Logic power sagged until we fixed USB supply and kept VCC/STBY on a solid 3.3V rail. Servo.h isn’t available on the stock Zephyr core, so we wrote soft 50 Hz pulses. Campus Wi‑Fi (eduroam) was a poor fit for the board, so we moved laptop, phone, and UNO Q onto one hotspot. Aligning pin maps across two drivers and servos without frying anything took careful continuity checks.
Accomplishments that we're proud of
We have a real mecanum base under closed-loop vision intent, not just a simulation. Motors and arm are driven from the same controller we plan to use in the full demo. The YOLO model is trained on trash and runs on the laptop GPU. End-to-end architecture is clear: see → decide → move → grab, on parts we already owned and could afford.
What we learned
Split compute beats forcing vision onto a tiny board under a deadline. Power and ground matter as much as code — cold drivers were almost always a supply or STBY issue. Soft PWM and Bridge RPC are workable patterns on the UNO Q when classic Arduino libraries aren’t there. Testing motors alone, then servos alone, then merging with YOLO is faster than debugging everything at once.
What's next for Batman
Tune the grab sequence so the claw reliably closes on detections. Improve driving so the robot centers on the bounding box before reaching. Optional ultrasonics for bump avoidance. Longer runs on battery with a tidier harness. If we keep going past the hackathon: a small onboard compute option later, and cleaner packaging so it can do short outdoor campus routes without a tethered laptop.
Built With
- hardware
- physics
Log in or sign up for Devpost to join the conversation.