Home

Awesome

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.

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:

The important files to check in each example are:

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 DistroBranchBuild statusDocumentation
RollingmasterRolling Binary Build <br /> Rolling Semi-Binary Build <br />Documentation <br /> API Reference
JazzymasterRolling Binary Build <br /> Rolling Semi-Binary Build <br />Documentation <br /> API Reference
HumblehumbleHumble Binary Build <br /> Humble Semi-Binary Build <br />Documentation <br />API Reference

Explanation of different build types

NOTE: There are three build stages checking current and future compatibility of the package.

  1. Binary builds - against released packages (main and testing) in ROS distributions. Shows that direct local build is possible.

    Uses repos file: src/$NAME$/$NAME$-not-released.<ros-distro>.repos

  2. Semi-binary builds - against released core ROS packages (main and testing), but the immediate dependencies are pulled from source. Shows that local build with dependencies is possible and if fails there we can expect that after the next package sync we will not be able to build.

    Uses repos file: src/$NAME$/$NAME$.repos

  3. Source build - also core ROS packages are build from source. It shows potential issues in the mid future.