ros-controls/ros2_control_demos

This repository aims at providing examples to illustrate ros2_control and ros2_controllers

What it solves

This repository provides a set of practical examples to help users understand and implement the functionalities and capabilities of the ros2_control framework. It bridges the gap between theoretical documentation and actual implementation for robot control in ROS 2.

How it works

The project is organized into several numbered examples (Example 1 through 17) that demonstrate specific robotic control concepts. These examples use simplified, imaginary robots like the RRBot (a Revolute-Revolute Manipulator) and DiffBot (a Differential Mobile Robot) to isolate and test specific features. Each example package contains folders for bringup (launch files and configs), descriptions (URDF/XACRO files), hardware interfaces, and sometimes custom controllers.

Who it’s for

Developers and robotics engineers using ROS 2 who need to implement hardware interfaces and controllers for their own robots.

Highlights

  • Diverse Control Scenarios: Covers everything from simple position control and differential drive to complex 6-DOF robots and car-like steering.
  • Hardware Interface Demos: Examples of handling multiple interfaces, integrated vs. external sensors, and GPIO interfaces.
  • Advanced Control Logic: Demonstrations of controller chaining, switching between different controllers, and managing multiple robots within a single controller manager.
  • Simulation Integration: Includes examples showing how to switch between real hardware and Gazebo simulation.

Related

  • Project
  • Project
  • Project
  • Project
  • Project