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
| Detail | Description |
|---|---|
| Intended users | ROS 2 developers implementing or integrating robot hardware drivers Editorial assessment [S001] · Checked 2026-09-30 |
| Required software | Matching 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 |
| Installation | Rolling 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 |
| Uses | Describe 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 formats | URDF XML with ros2_control tags; ROS 2 YAML controller parameters Reported by source [S005] [S006] · Checked 2026-09-30 |
| Development status | Documented 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.
| Layer | Availability / license |
|---|---|
| software | available · Apache-2.0 Repository license; robot vendor drivers and external dependencies remain separate. [S001] [S003] |
| documentation | available · 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.
- S001 · ros-controls / project contributors
Upstream project overview
Accessed 2026-09-30 · README.mdSource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- S002 · ros-controls / project contributors
Repository revision and release metadata
Accessed 2026-09-30 · a3c9d4df3a917a58149fd71e0a744d8684e6a9bbSource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- S003 · ros-controls / project contributors
Repository license
Accessed 2026-09-30 · LICENSESource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- S004 · ros-controls / project contributors
Pinned repository artifact inventory
Accessed 2026-09-30 · a3c9d4df3a917a58149fd71e0a744d8684e6a9bb archive file inventorySource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- S005 · ros-controls / project contributors
Pinned ros2_control: controller_manager/doc/userdoc.rst
Accessed 2026-09-30 · a3c9d4df3a917a58149fd71e0a744d8684e6a9bb / controller_manager/doc/userdoc.rstSource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- 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.rstSource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- 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.rstSource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- 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.rstSource notes
Source text inspected for the cited scoped claims; see profile claim notes.
- S009 · ros-controls / project contributors
Current Rolling getting-started guide
Accessed 2026-09-30 · Rolling documentation retrieved 2026-09-30Source notes
Source text inspected for the cited scoped claims; see profile claim notes.
Correction guidance · Discussion is not enabled · Profile format 0.6.0-draft.1