// the find
MiRoboticsLab/cyberdog_ros2
ROS 2 packages for CyberDog
ROS 2 package stack for Xiaomi's CyberDog quadruped robot, covering everything from motor control and BMS to camera pipelines, audio/voice assistant, and autonomous navigation. This is hardware-specific firmware-level code — it only runs on the actual CyberDog hardware (Jetson-based) and is not a general-purpose robotics framework. Useful if you own one of these robots or are studying how Xiaomi structured a production quadruped stack.
Uses ROS 2 lifecycle nodes throughout, which is the correct approach for managing stateful hardware components — most hobbyist ROS projects skip this entirely. The separation into distinct subsystems (cyberdog_ception for sensing, cyberdog_decision for autonomy, cyberdog_interaction for HRI) maps cleanly onto the robot's actual functional boundaries. BehaviorTree.CPP v3 for the decision layer is a solid choice over hand-rolled state machines. The bringup layer uses YAML-driven node configuration with explicit remappings, making the launch graph inspectable without reading C++.
Pinned to ROS 2 Galactic, which went EOL in November 2022 — this repo hasn't been touched since December 2023, so it's frozen on a dead distribution with no migration path. Xiaomi XiaoAI voice assistant integration is gated behind a closed-source SDK that's not included; you get compile stubs but not working voice features unless Xiaomi gives you access. Documentation is primarily in Chinese with patchy English READMEs, and the English versions lag behind the Chinese ones. The GRPC app bridge (cyberdog_grpc) exposes a single monolithic proto file with no versioning strategy, which will become a maintenance problem if anyone tries to evolve the API.