// the find
legubiao/quadruped_ros2_control
ROS2-Control implementations for Quadruped robots, include sim2real
ROS2-control controllers, hardware interfaces, and robot descriptions for quadruped robots, centered on the Unitree Go2 and run in MuJoCo, Gazebo Harmonic, and on the real robot. It suits people who want to compare a classic FSM gait controller, an OCS2 MPC controller, and an RL policy controller on one shared ros2_control stack, and who are willing to work through ROS2 and DDS setup to get there.
The four controllers (unitree_guide, ocs2_quadruped, rl_quadruped, leg_pd) all sit behind the ros2_control interface, which is the point of that framework: switching controllers should be a launch and configuration change, not a rewrite. The same stack is documented against MuJoCo, Gazebo Harmonic, and a real Go2 through hardware_unitree_sdk2, so the sim-to-real path is shown rather than only claimed. Upstream projects are credited in the README and their licenses are kept in LICENSES/ per origin (legged_control, unitree_guide), which matters when the code mixes several sources.
The default branch targets ROS2 Jazzy and Humble lives on a separate branch, and the Gazebo install line is Jazzy-specific, so the quick start only fully covers one distro. The CycloneDDS warning is a real trap: the README's recommended fix is to switch the RMW to FastDDS, which means the simulator depends on an environment change the quick start does not make for you. The MuJoCo path also depends on an external fork (legubiao/unitree_mujoco) with its own setup, and the perceptive locomotion demo is still unchecked in the todo list. The last push was February 2026, and the README says nothing about tests or CI, so check the issue tracker and whether the sim launch files still run on your distro before you build on it.