You're reading the documentation for a version of ROS 2 that has reached its EOL (end-of-life), and is no longer officially supported. If you want up-to-date information, please have a look at Iron.


GitHub Repository


The ros2_control framework uses namespaces to sort controller according to the type of command interface they are using. The controllers are using common hardware interface definitions. The controllers’ namespaces are commanding 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_EFFORT


The following standard controllers are implemented:

  • Joint Trajectory Controller - provided a list of waypoints or target point defined with position, velocity and acceleration, the controller interpolates joint trajectories through it.

  • … <the list is not complete> …

Guidelines and Best Practices

Available Controllers

Available Broadcasters