What it was
Cheddar can crab sideways, spin on the spot and climb stairs. It has a 3D-printed rocker-bogie chassis with a drive motor and steering servo for every wheel, so there's quite a lot going on underneath it. The Raspberry Pi runs the video and web controls. An ESP32 handles the motors and servos, and I drive it from a browser with a gamepad over WebRTC. It's finished and alive and well. I'd still like to give it an arm and have it dispense dog treats at some point.
Build
- I printed an open rocker-bogie chassis design from Printables, originally made for the DTU RoboCup. The suspension is what lets it pick its way up stairs.
- There are 12 actuators, 6 drive motors and 6 steering servos. Every wheel steers independently.
- A Raspberry Pi 3B runs the video pipeline, networking and browser controls. The ESP32 does the motor and servo timing.
- Live video comes over WebRTC and the controls work with a gamepad. You just open the control page in a browser.
Key decisions
The Pi and ESP32
The Pi can do the video and web work comfortably. Servo timing needs to be more predictable though, so that went on the ESP32.
Adding to it later
Autonomous navigation, an arm and a treat dispenser are still things I want to try. The chassis, controls and compute are separate enough that I can work on those without rebuilding the rover.
Lesson learned
A year later I tried a USB cable. It worked immediately.the rest of it ↓fold it back up ↑
I shelved this for the best part of a year over a serial connection. I was set on using the Pi's GPIO pins to talk to the ESP32. It worked perfectly in isolation, Pi to ESP32 to drivers to motors and servos, then fell apart every time I put it all together. When I came back to it I tried a USB cable instead. It worked immediately. I'd spent weeks trying to get the GPIO version working and hadn't even tried USB.