Quadruped Robot on ROS2 (Doge)
A 3D-printed robot dog running ROS2 on a Raspberry Pi Zero 2W, with an inverse-kinematics node driving twelve servos.
This project is under development and may be incomplete or subject to change.
Project Overview
A third generation of my quadruped robot work, moving the whole stack onto ROS2: an accessible, low-cost robot dog built from 3D-printed parts, running ROS2 Humble on a Raspberry Pi Zero 2W. It follows on from the Quadruped Spider Robot’s Arduino and Raspberry Pi Pico generations, this time built around ROS2’s node-based architecture instead of a single monolithic firmware.
Hardware
- Raspberry Pi Zero 2W as the onboard computer
- PCA9685 PWM driver controlling twelve SG90 servos (three per leg)
- A 4C15 DC-DC step-down converter and two 18650 Li-ion batteries for power
- 3D-printed frame, based on Gleb Devyatkin’s parts on Thingiverse
Technical Details
- Servo Driver Node: A dedicated ROS2 node talks to the PCA9685 to drive all twelve servos.
- Inverse Kinematics Node: Solves each leg’s servo angles from a target foot position, worked through plane by plane in the project’s kinematics notes.
- Constrained Deployment: With only 512 MB of RAM on the Pi Zero 2W, ROS2 Humble is installed directly on the host rather than in Docker, and development/cross-compilation happens on a more powerful machine.

Status
The 3D-printed parts, servo driver node, and IK node are complete. Fine-tuning the servos, implementing a trot gait, gamepad control, and a proper testing setup are still in progress.