这是ros2_controllers官方提供的标准控制器,全部开箱即用,是机械臂、移动机器人、关节控制的工业标准插件。
我给你整理成一看就懂、直接能用的版本:分类 + 功能 + 用途 + 话题接口。
一、先记住:官方控制器都在这个包
plaintext
ros2_controllers所有下面的插件,都是它提供的,不用自己写。
二、官方控制器插件大全(最核心 10 个)
1.Joint State Broadcaster(必用!)
插件类型:状态广播控制器
plaintext
joint_state_broadcaster/JointStateBroadcaster功能
- 从硬件读取所有关节的position / velocity / effort
- 转换成 ROS 标准话题
/joint_states - 给 RViz2、MoveIt2、TF2 提供关节状态
作用
没有它,机器人在 RViz 里完全动不起来!所有机器人第一个必启动的控制器。
输出话题
/joint_states
2.Joint Trajectory Controller(机械臂核心)
插件类型:轨迹跟踪控制器
plaintext
joint_trajectory_controller/JointTrajectoryController功能
- 接收多点连续轨迹(位置、速度、加速度)
- 控制多关节平滑跟踪轨迹
- 支持位置 / 速度 / 力矩控制
作用
机械臂官方标准控制器MoveIt2 输出的轨迹就是发给它。
输入话题
/joint_trajectory_controller/joint_trajectory
常用工具
rqt_joint_trajectory_controller图形化拖动机械臂
3.Diff Drive Controller(差速底盘核心)
插件类型:移动底盘控制器
plaintext
diff_drive_controller/DiffDriveController功能
- 输入:
Twist线速度 + 角速度 - 输出:左右轮目标转速
- 自动做差速运动学解算
- 发布 Odometry (里程计) 和 TF
作用
两轮差速小车、ROS 机器人底盘标配Navigation2 的/cmd_vel就是发给它。
输入
/cmd_vel
输出
/odom/tf
4.Forward Command Controller(直接指令控制器)
plaintext
forward_command_controller/ForwardCommandController功能
- 最简单的控制器
- 直接把话题收到的数据转发给硬件
- 不做任何 PID、滤波、解算
作用
调试、简单测试、自定义控制用。
5.Position Controllers(单关节位置控制)
plaintext
position_controllers/JointGroupPositionController功能
- 控制每个关节目标位置
- 适用于舵机、机械臂关节
作用
单独控制某个关节转到指定角度。
6.Velocity Controllers(单关节速度控制)
plaintext
velocity_controllers/JointGroupVelocityController功能
控制关节转速
7.Effort Controllers(力矩 / 力控制器)
plaintext
effort_controllers/JointGroupEffortController功能
直接输出力矩 / 电流指令用于力控、柔性关节、机械臂力控制
8.Imu Sensor Broadcaster(IMU 数据广播)
plaintext
imu_sensor_broadcaster/ImuSensorBroadcaster功能
读取 ros2_control IMU 硬件插件的数据发布成标准 ROS IMU 话题
输出
/imu
9.Force Torque Sensor Broadcaster(力传感器广播)
plaintext
force_torque_sensor_broadcaster/ForceTorqueSensorBroadcaster功能
发布力 / 力矩传感器话题
10.Steer Drive Controller(阿克曼转向底盘)
plaintext
steer_drive_controller/SteerDriveController功能
用于无人车、阿克曼底盘、智能车前轮转向 + 后轮驱动
三、最常用 5 个官方控制器(你 90% 会用到)
| 控制器 | 用途 | 机器人类型 |
|---|---|---|
| JointStateBroadcaster | 发关节状态(必用) | 全部机器人 |
| JointTrajectoryController | 轨迹跟踪 | 机械臂 |
| DiffDriveController | 差速运动 | 两轮小车 |
| ForwardCommandController | 直接指令 | 调试 |
| ImuBroadcaster | 发布 IMU | 带 IMU 机器人 |
四、超简记忆口诀
- 看状态 → JointStateBroadcaster
- 机械臂 → JointTrajectoryController
- 差速小车 → DiffDriveController
- 直接发指令 → ForwardController
- 传感器 → ImuBroadcaster