Open Source RoboticsRobots, software & field notes

ros2_control

Based on published sources · Not tested by us ·

Overview

ROS 2 framework for managing controllers and hardware interfaces, with mock components for checking integration before physical hardware trials. [S001]

ros2_control connects controller management to robot-specific hardware interfaces. Its controller manager handles controller lifecycles and access to those interfaces, while hardware components are described as System, Sensor or Actuator types. This review preserves a development commit and separately captures the current Rolling getting-started guide; the chosen ROS distribution still determines the installation and compatible branch. [S001] [S002] [S005] [S008] [S009]

Specifications

DetailDescription
Intended usersROS 2 developers implementing or integrating robot hardware drivers
Editorial assessment [S001] · Checked 2026-09-30
Required softwareMatching ROS 2 distribution and ros2_control branch/packages; ros2_controllers for the documented packaged controller route; Robot-specific hardware plugin, URDF and controller configuration
Reported by source [S001] [S005] [S006] [S009] · Checked 2026-09-30
InstallationRolling guide provides Ubuntu apt and RHEL dnf packages for ros2_control plus ros2_controllers; source route imports distribution-specific repositories, resolves dependencies with rosdep and builds with colcon.
Reported by source [S009] · Checked 2026-09-30
UsesDescribe hardware and interfaces in URDF; Configure and activate controller plugins; Check launch/controller integration with mock hardware; Integrate real hardware and measure timing under its actual workload
Editorial workflow based on documented component architecture; physical timing not measured.
Editorial assessment [S005] [S006] [S007] · Checked 2026-09-30
File formatsURDF XML with ros2_control tags; ROS 2 YAML controller parameters
Reported by source [S005] [S006] · Checked 2026-09-30
Development statusDocumented setup available
Research classification from documented artifacts/workflow, not our reproduction or production qualification.
Editorial assessment [S001] · Checked 2026-09-30

3D preview

A robot-part preview is not applicable to this software project profile.

Installation and use

Describe the robot and select the software route

The Rolling guide describes Ubuntu and RHEL binary packages for both ros2_control and ros2_controllers. Its source route imports a distribution-specific repository set, resolves dependencies with rosdep and builds with colcon. These instructions were inspected but not run here. The repository README also lists separate branches and documentation for several ROS distributions, so a user should choose the matching set before combining examples. [S001] [S009]

Hardware is described in URDF using ros2_control tags, a hardware plugin and command/state interfaces. Controller parameters use ROS 2 YAML. Every joint named in those control tags must also exist in the URDF received by the controller manager. The manager documentation states that reloading the URDF is not yet supported in this snapshot. [S005] [S006]

Mock hardware checks integration, not the mechanism

mock_components/GenericSystem supplies idealized hardware behavior, including mirroring commands into states. This is useful for checking controllers, broadcasters, launch files and integrations without access to the real robot. It can reveal configuration errors, but it does not establish the physical mechanism's response, electrical behavior or timing. [S007]

When moving to hardware, the controller-manager guide discusses loop jitter, scheduling permissions and kernel choices. The main thread attempts FIFO scheduling at priority 50, which ordinary users may not be permitted to request. Neither the presence of that setting nor a working mock configuration proves that a particular host and driver meet the application's timing requirements. No timing measurement was performed in this review. [S005] [S007]

Fallback controllers also need the required state and command interfaces to be available. The upstream guide recommends testing the fallback strategy in simulation before using it on a physical robot. Treat lifecycle and failure behavior as part of the integration, alongside normal command flow. [S005]

Scope of the open source

The reviewed repository declares Apache-2.0. That covers the selected framework source and repository documentation; it does not automatically establish the licensing, completeness or performance of an independently supplied robot driver. This profile provides a documented integration route, not a qualified hardware-control installation. [S001] [S003]

Source files and licenses

Available project sources support research coverage; complete build and commercial qualification remain separate.

LayerAvailability / license
softwareavailable · Apache-2.0
Repository license; robot vendor drivers and external dependencies remain separate. [S001] [S003]
documentationavailable · Apache-2.0
Pinned repository documentation; external website is separately captured as evidence. [S003] [S005] [S006] [S007]

Control framework profile does not select a trained policy or training dataset.

References

Links identify the documentation and revisions used in this profile. Access dates record when each source was retrieved.

  1. S001 · ros-controls / project contributors
    Upstream project overview
    Accessed 2026-09-30 · README.md
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  2. S002 · ros-controls / project contributors
    Repository revision and release metadata
    Accessed 2026-09-30 · a3c9d4df3a917a58149fd71e0a744d8684e6a9bb
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  3. S003 · ros-controls / project contributors
    Repository license
    Accessed 2026-09-30 · LICENSE
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  4. S004 · ros-controls / project contributors
    Pinned repository artifact inventory
    Accessed 2026-09-30 · a3c9d4df3a917a58149fd71e0a744d8684e6a9bb archive file inventory
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  5. S005 · ros-controls / project contributors
    Pinned ros2_control: controller_manager/doc/userdoc.rst
    Accessed 2026-09-30 · a3c9d4df3a917a58149fd71e0a744d8684e6a9bb / controller_manager/doc/userdoc.rst
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  6. S006 · ros-controls / project contributors
    Pinned ros2_control: hardware_interface/doc/hardware_interface_types_userdoc.rst
    Accessed 2026-09-30 · a3c9d4df3a917a58149fd71e0a744d8684e6a9bb / hardware_interface/doc/hardware_interface_types_userdoc.rst
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  7. S007 · ros-controls / project contributors
    Pinned ros2_control: hardware_interface/doc/mock_components_userdoc.rst
    Accessed 2026-09-30 · a3c9d4df3a917a58149fd71e0a744d8684e6a9bb / hardware_interface/doc/mock_components_userdoc.rst
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  8. S008 · ros-controls / project contributors
    Pinned ros2_control: hardware_interface/doc/hardware_components_userdoc.rst
    Accessed 2026-09-30 · a3c9d4df3a917a58149fd71e0a744d8684e6a9bb / hardware_interface/doc/hardware_components_userdoc.rst
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

  9. S009 · ros-controls / project contributors
    Current Rolling getting-started guide
    Accessed 2026-09-30 · Rolling documentation retrieved 2026-09-30
    Source notes

    Source text inspected for the cited scoped claims; see profile claim notes.

Research and review details

Source research only; no installation, physical build or performance test performed. No affiliate links added.

Profile edited 2026-09-30 · Sources checked 2026-09-30 · Next review target 2026-10-30

Revision: a3c9d4df3a917a58149fd71e0a744d8684e6a9bb (commit snapshot; no published stable release found). Software repository activity recorded 2026-09-29 [S002]

Correction guidance · Discussion is not enabled · Profile format 0.6.0-draft.1

Change history