Adaptive Gripper Controller¶
夹爪控制器(adaptive_gripper_controller)及相关遥操作命令节点。
仓库: fiveages-sim/arms_ros2_control
adaptive_gripper_controller¶
launch 栈没有 gripper:=。用 robot_common_launch 的 type / left_type / right_type(以及可选的 robot_profile / use_profile_eef)挂载末端。本控制器能加载的手/夹爪由这些末端键拉起,而不是单独的 gripper 参数。
钉选:9a1da3ba。如何刷新钉选(并重算 :start-line: / :end-line:):文档构建。
三条命令通道¶
每条通道立即生效。关节限位与开合位置来自 /robot_description(距初始值更近的 URDF 限位 = 关闭)。示例名称:控制器 left_gripper_controller,关节 left_gripper_joint。
话题 |
类型 |
力反馈 |
典型用途 |
|---|---|---|---|
|
|
关 |
直接行程(弧度或米),截断到 URDF 限位 |
|
|
关闭( |
|
|
|
自动:关闭时启用,打开时关闭 |
关闭↔打开线性混合 |
README 话题汇总(中文原文,同一提交):
以下假设控制器名称为 left_gripper_controller,关节名称为 left_gripper_joint:
话题 |
消息类型 |
方向 |
说明 |
|---|---|---|---|
|
|
订阅 |
直接位置控制(无力反馈) |
|
|
订阅 |
开关控制(0=关/力反馈,1=开) |
|
|
订阅 |
比例控制(0.0~1.0,自动力反馈) |
|
|
订阅 |
自动解析限位和初始值 |
力反馈¶
仅当同时满足以下条件时生效(README):
命令走的是开关或比例通道(不是直接
position_command)use_effort_interface: true且硬件 effort 接口已绑定运动方向为关闭
本条命令尚未触发过力反馈(新命令会重置该标志)
触发:|current_effort| > force_threshold。新目标 = 当前位置 +(原始目标 − 当前位置)× force_feedback_ratio。0.0 停在此处;1.0 继续到原始目标;默认 0.5。
README 中的 YAML 键:joint、use_effort_interface(默认 true)、force_threshold(默认 0.1)、force_feedback_ratio(默认 0.5)。启动时 vs 运行时:控制器 ROS 2 参数。
Python:left_gripper_handler.send_joint_positions(直接行程,无力反馈)、send_target_command(0/1)、send_position_percent(0–1)。灵巧手上同名的 target_command / target_percent 走 Basic Joint Controller 的 Home 构型混合,而不是这条力反馈路径。对照表:ros2_robot_interface。
遥操作命令节点¶
同一仓库的 command 包在 command/(arms_target_manager、arms_teleop 等)。没有 arms_teleop_controller / target_manager_controller。当 enable_arms_target_manager 为 true 时,演示 launch 会启动 arms_target_manager。
arms_target_manager 拥有 /left_target / /stamped / /twist / /relative(以及右侧 / 双臂 / WBC 身体-头部)。表格:FSM 与话题。README:arms_target_manager。WBC 身体/头部笛卡尔话题需要 ocs2_wbc_controller 以及全身启动/配置——不是默认 mock / 分体。