The project
A six-wheeled rocker-bogie rover on a 3D-printed chassis. Every wheel has its own drive motor and its own steering servo, so it can crab sideways, spin in place and pick its way up a staircase. A Raspberry Pi handles video and the web UI, an ESP32 does the real-time motor work, and you fly it from a browser with a gamepad over WebRTC. It is finished, and alive and well.
How it fits together
- A rocker-bogie chassis printed from an open Printables design originally built for the DTU RoboCup, which is what makes the stair climbing work at all.
- Twelve actuators to coordinate: six drive motors and six steering servos, each wheel independently steerable.
- A Raspberry Pi 3B runs the video pipeline and web control UI; an ESP32 handles the hard real-time motor and servo timing.
- Control is a browser page over WebRTC with live video and gamepad input, so there is no client app to install.
The trade-offs that mattered
Two boards, split by timing requirement
The Pi is comfortable doing video, networking and web serving but is a poor fit for jitter-sensitive servo timing. Handing the real-time work to an ESP32 removed a whole category of problems rather than tuning around them.
USB serial, eventually
The link between the two boards was supposed to run over the GPIO pins. It tested fine and integrated badly, and I lost a year to it. USB serial was always sitting there as the option I had dismissed as inelegant.
A test bed, not a finished thing
It is built to have autonomous navigation, an arm and a dog treat dispenser hung off it later, so the interfaces between chassis, control and compute are kept deliberately loose.
What I took from it
I shelved this for the best part of a year over a serial connection. I was set on running it over the GPIO pins, and it worked perfectly in isolation - Pi to ESP32 to drivers to motors and servos - and fell apart every single time it was integrated. I came back a year later, plugged in a USB cable instead, and it worked immediately. Weeks of pain resolved by the most boring option available. Keep it simple, stupid rang very true that day.