Arduino

Fetch: An Arduino UNO Q Robot That Plays Ball With You

Fetch: An Arduino UNO Q Robot That Plays Ball With You

Can a 2-wheeled robot with two arms and a camera actually play fetch without driving in circles? SECTOR 07’s Fetch does, and the build is documented in this Hackster write-up.

What is Fetch, exactly?

Fetch is a boxy little bot with a 1990s portable-TV head, big expressive eyes, and a WALL-E attitude. It spots a ball, rolls over, scoops it up with its arms, finds a human hand, and hands the ball back. The wobbly gait is part of the charm, and small supports stop it from tipping over.

Why does the Arduino UNO Q fit this job?

The UNO Q pairs a Qualcomm Dragonwing processor running Linux with an STM32 microcontroller. Python on the Linux side runs the camera code and a custom vision model trained on balls and hands in different lighting, backgrounds, and angles. The STM32 side drives the motors, servos, and audio playback. Splitting the work this way keeps the real-time pin control away from the heavy inference.

The vision code reads the position and size of each bounding box to decide which way to steer and roughly how far away the target is. Early builds spun in circles, and the camera lost the ball once it got too close. The fix was a gotcha-proof trick: use vision for the approach, then lower the arms and drive forward for a fixed time to finish the scoop.

The mechanical side is just as instructive. A belt-driven arm with several joints kept slipping, so SECTOR 07 swapped it for single rotating linkages with enough torque. The head is a foldable shell, so you can solder with the panels flat before folding them into a box.

Try it on your own bench

Start small: train a detector on one ball in your classroom lighting, print the bounding box width over serial, and map it to a distance guess before you wire any motors. Then add the fixed-time final approach. Grab an Arduino board from circuit.rocks and follow the build video linked from the source article.

Frequently Asked Questions

What does Fetch use to find the ball?

A camera feeds a custom computer vision model running in Python on the UNO Q’s Linux side. It tracks bounding boxes around balls and hands to steer and judge distance.

Why did the first versions fail?

Fetch drove in circles and lost sight of the ball when it got too close. The fix was vision for the approach, then a fixed-time forward drive with the arms lowered.

What will I learn if I build this?

You will practice training an object detector, splitting work between a Linux processor and an STM32 microcontroller, controlling servos and motors, and designing foldable enclosures in CAD.

This article was inspired by reporting from Hackster. Find the parts and modules to build it at Circuitrocks.

// written by Ann Arandia

Ann Arandia covers community projects and maker events for the Circuitrocks blog. She writes about local workshops, kid-friendly electronics, and the Philippine maker scene — the people, the meet-ups, the projects that come out of them.