You're reading the documentation for an older, but still supported, version of ROS 2. For information on the latest version, please have a look at Iron.


Commonly used and generalized controllers for ros2_control framework that are ready to use with many robots, MoveIt2 and Nav2.

Link to GitHub Repository

Guidelines and Best Practices

Controllers for Wheeled Mobile Robots

Controllers for Manipulators and Other Robots

The controllers are using common hardware interface definitions, and may use namespaces depending on the following command interface types:

  • position_controllers: hardware_interface::HW_IF_POSITION

  • velocity_controller: hardware_interface::HW_IF_VELOCITY

  • effort_controllers: hardware_interface::HW_IF_ACCELERATION

  • effort_controllers: hardware_interface::HW_IF_EFFORT


Broadcasters are used to publish sensor data from hardware components to ROS topics. In the sense of ros2_control, broadcasters are still controllers using the same controller interface as the other controllers above.