配置 ROS 2 控制器参数¶
控制器与驱动层参数写在哪里、如何查看,以及本栈如何区分仅启动 vs 运行时变更。逐参数表:控制器 ROS 2 参数。驱动层 <param> 表在各公开驱动页 — 驱动层。
话题列表和 FSM 整数值仍写在各控制器页面——本指南讲参数,以及若干控制器共用的机制。
参数写在哪里¶
位置 |
是什么 |
常见内容 |
|---|---|---|
|
由 |
控制器插件类型、 |
|
运行中节点上的 ROS 2 参数 API |
节点起来后,名称与 YAML 中相同 |
URDF / xacro |
驱动层插件参数,不是 |
CAN 设备、话题名、 |
|
OCS2 任务文件 |
|
OCS2 Arm Controller README 写的是 config/ocs2_arm_controller.yaml。在 arms_ros2_control 9a1da3ba 该目录只有 demo.rviz。机型取值在描述包 YAML(例如 cr5_description/.../ros2_controllers.yaml)。
arms_target_manager 还会读取 command/arms_target_manager/config/default.yaml,或机型的 config/ocs2/target_manager.yaml。
表上的 仅启动 / 运行时 标记与 arms_ros2_control #120 的公开控制器 README 一致(分支提交 e1b7a147;main 上的代码仍钉在 9a1da3ba)。该 PR 合并后,main 上的措辞相同。
查看运行中的取值¶
控制器插件是以控制器命名的 ROS 2 节点。启动后:
ros2 param list
ros2 param list /ocs2_arm_controller
ros2 param get /ocs2_arm_controller movel_duration
ros2 param get /left_gripper_controller force_threshold
多数驱动层 <param> 不会出现在 ros2 param list 上 — xacro 运行时已写入 /robot_description。部分公开驱动层插件也会把同名项 declare_parameter 成节点参数(ARX、HighTorque、Marvin、部分灵巧手);这些行在对应驱动页标为 运行时 — 驱动层。用 ros2 control list_hardware_interfaces 和 xacro/ros2_control/ 下的 xacro 确认插件。
仅启动 vs 运行时¶
YAML 中的值在控制器或驱动层插件启动时总会生效。之后 ros2 param set 会不会改行为,使用与包 README 相同的标记:
标记 |
含义 |
|---|---|
运行时 |
|
仅启动 |
在 |
未核实 |
已声明,但没有回调也没有清晰的重读路径。#120 的 README 没有把此前已文档化的键标成这一类。 |
这些运行时路径不是即时回调。
框架共性参数¶
Basic Joint Controller 与 OCS2 Arm Controller 共用同一套 ros2_control ControllerInterface / controller_manager 键。此处只列一次。各控制器表只保留包专有键。
Adaptive Gripper Controller 不用 joints:它声明单数 joint 并绑定 {joint}/position。arms_target_manager 是命令节点,不是 ControllerInterface。
参数 |
常见类型 / 默认值 |
含义 |
|---|---|---|
|
string[] |
命令/状态接口的关节名 |
|
int(Basic Joint README 示例 |
Hz;常取 |
|
string[] / |
命令接口名。仅启动。OCS2 Arm 还用该集合判断位置 vs 力/MIX — 本栈中的 ros2_control。 |
|
string[] / |
状态接口名 |
|
string / 空 |
命令接口名的可选前缀 |
修改这些键需要卸载并重新加载控制器。