ros2_control
CommonThe standard ROS 2 control framework that connects control algorithms to real motor hardware.
ros2_control is the official control framework in the ROS 2 ecosystem, maintained by the ros-controls community as the successor to ROS 1's ros_control. It splits a system into three layers: the hardware interface (written once per robot, unifying a motor's position, velocity, and torque reads and writes into a standard interface), the controller manager (which runs a fixed-frequency control loop), and controllers themselves (such as a joint trajectory controller or a differential-drive controller). The benefit is that control algorithms are decoupled from specific hardware — switching to a new robot only requires rewriting the hardware interface, while controllers can be reused directly. Trajectories planned by MoveIt are typically handed off to it for execution, and the Gazebo simulator has a matching plugin.
ExampleWrite a hardware_interface plugin for a custom robot arm, declare its joint interfaces in the URDF, then load a joint_trajectory_controller so trajectories planned by MoveIt can drive the real motors.
- Also called
- ros_control
- Related
- Robot Operating System 2 · Hardware Abstraction Layer (HAL) · MoveIt Motion Planning Framework · Unified Robot Description Format · Real-Time Control · Proportional-Derivative Control
- Sources
- ros2_control 官方文档 (Chinese)
ros-controls/ros2_control (GitHub)