Skip to content

This repository aims at providing examples to illustrate ros2_control and ros2_controllers

License

Notifications You must be signed in to change notification settings

ros-controls/ros2_control_demos

This branch is 2 commits ahead of master.

Folders and files

NameName
Last commit message
Last commit date
Apr 13, 2025
Mar 25, 2025
Mar 25, 2025
Apr 19, 2025
Apr 12, 2025
Apr 23, 2025
Apr 2, 2025
Mar 30, 2025
Apr 17, 2025
Apr 19, 2025
Mar 26, 2025
Mar 26, 2025
Mar 26, 2025
Apr 12, 2025
Apr 11, 2025
Mar 26, 2025
Mar 26, 2025
Mar 26, 2025
Mar 29, 2025
Apr 23, 2025
Oct 31, 2024
May 28, 2023
Jul 30, 2024
Apr 2, 2025
May 6, 2020
Apr 13, 2025
May 1, 2023
May 8, 2024
Jun 19, 2023
Jan 15, 2025
Mar 26, 2025
Mar 26, 2025
Mar 29, 2025

Repository files navigation

ros2_control Demos

License

This repository provides examples for functionalities and capabilities of ros2_control framework. It consists of simple implementations that demonstrate different concepts. Choose the right branch of this repository matching you ROS 2 distribution as well as the full documentation on control.ros.org, see this table.

If you want to have rather step by step manual how to do things with ros2_control checkout the ros-control/roscon2022_workshop repository.

Contributing

As an open-source project, we welcome each contributor, regardless of their background and experience. Pick a PR and review it, or create your own! If you are new to the project, please read the contributing guide for more information on how to get started. We are happy to help you with your first contribution.

Getting Started

Follow the steps provided in the documentation to install ros2_control_demos.

Content

The following examples are part of this demo repository:

Structure

The repository is structured into example_XY folders that fully contained packages with names ros2_control_demos_example_XY.

The packages have following structure of subfolders:

  • bringup - stores launch files and runtime configurations for demo robots.
  • description - stores URDF (and XACRO) description files, rviz configurations and meshes for the example robots.
  • hardware - stores implementations of example hardware components (interfaces).
  • controllers (optional) - stores implementation of example controllers.

The important files to check in each example are:

  • bringup/launch/<example_name>.launch.py - launch file for the example
  • bringup/config/<example_name>_controllers.yaml - parameters with controllers' setup for the example.
  • description/<example_name>.ros2_control.xacro - XACRO file with ros2_control-URDF-tag with hardware setup and parameters.
  • description/<example_name>.urdf.xacro - the main description for for the example used to generate URDF on the fly that is published on the /robot_description topic.
  • hardware/<example_name>.hpp - header file of the example hardware component implementation.
  • hardware/<example_name>.cpp - source file with the example hardware component implementation.
  • controllers/<example_name>.hpp - header file of the example controller implementation.
  • controllers/<example_name>.cpp - source file with the example controller implementation.

NOTE - The structure of packages, folders and files given in this repository is not recommended to be used for your robot. Usually you should have all of the above folders defined as separate packages with naming convention <robot_name_or_type>/[bringup|description|hardware|controllers]. More standard structure can be found in ros_control_boilerplate repository from Dave Coleman or documentation on ros_team_workspace from Stogl Robotics.

The concepts in this package are demonstrated on the examples of RRBot and DiffBot. Those two world-known imaginary robots are trivial simulations to demonstrate and test ros2_control concepts.

Build status

ROS 2 Distro Branch Build status Documentation
Rolling master Rolling Binary Build
Rolling Semi-Binary Build
Documentation
API Reference
Jazzy master Rolling Binary Build
Rolling Semi-Binary Build
Documentation
API Reference
Humble humble Humble Binary Build
Humble Semi-Binary Build
Documentation
API Reference

Acknowledgements

The project has received major contributions from companies and institutions listed on control.ros.org