// the find
ros-controls/ros2_control_demos
This repository aims at providing examples to illustrate ros2_control and ros2_controllers
A set of 17 example packages showing how to write hardware interfaces and controllers for ros2_control, using two fake robots (RRBot, a fixed arm, and DiffBot, a differential-drive base) to walk through everything from basic position control to multi-robot setups. It's aimed at ROS 2 developers who need to write or integrate a ros2_control hardware component and want a working reference instead of the API docs alone.
Each example is a complete, buildable package with launch files, xacro/URDF descriptions, and actual launch-test files (test_rrbot_launch.py etc.), not just code snippets in a README. Coverage goes well beyond basics: controller chaining, GPIO interfaces, transmissions, multiple controller managers, and multi-robot lifecycle management are all separate worked examples. It's maintained per ROS 2 distro with its own CI badges per branch (rolling, jazzy, humble), so you can tell at a glance whether the version you care about is actually green.
The repo's own README tells you not to copy its package layout for a real robot, so the thing you'd naturally clone as a starting template is explicitly the wrong structure. Everything here runs against simulated RRBot/DiffBot fakes with no real actuator or sensor driver example, so the hardest part of a real integration — talking to actual hardware over CAN, EtherCAT, serial, etc. — isn't shown at all. The 'Python' language tag is misleading: the actual hardware and controller implementations are C++ (hardware/*.cpp, controllers/*.cpp), Python only shows up in the test launch scripts.