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。

话题

类型

力反馈

典型用途

/left_gripper_joint/position_command

std_msgs/Float64

关

直接行程(弧度或米),截断到 URDF 限位

/left_gripper_controller/target_command

std_msgs/Int32

关闭(0)时启用

0 fully closed; 1 fully open (no feedback)

/left_gripper_controller/target_percent

std_msgs/Float64 (0.0–1.0)

自动:关闭时启用,打开时关闭

关闭↔打开线性混合

README 话题汇总(中文原文,同一提交):

以下假设控制器名称为 left_gripper_controller,关节名称为 left_gripper_joint:

话题

消息类型

方向

说明

/left_gripper_joint/position_command

Float64

订阅

直接位置控制(无力反馈)

/left_gripper_controller/target_command

Int32

订阅

开关控制(0=关/力反馈,1=开)

/left_gripper_controller/target_percent

Float64

订阅

比例控制(0.0~1.0,自动力反馈)

/robot_description

String

订阅

自动解析限位和初始值


力反馈

仅当同时满足以下条件时生效(README):

  1. 命令走的是开关或比例通道(不是直接 position_command)

  2. use_effort_interface: true 且硬件 effort 接口已绑定

  3. 运动方向为关闭

  4. 本条命令尚未触发过力反馈(新命令会重置该标志)

触发:|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 / 分体。