主题
夹爪
高层夹爪控制使用开口 mm 和力矩上限 N·m。夹爪与七个臂关节可以分别运动和保持。
接口
| 调用形式 | 行为 / 返回值 |
|---|---|
arm.move_gripper(width_mm, torque_limit_nm, speed_percent=30, blocking=True) | 开口+力矩上限,仅切夹爪力位模式,不切臂关节模式 |
arm.get_gripper_width() | 当前估算开口 mm,缺反馈为 None |
arm.get_gripper_state() | 独立夹爪 MotorState,单位 rad、rad/s、N·m |
dual_arm.move_gripper(left_width_mm, right_width_mm, torque_limit_nm, speed_percent=30, blocking=True) | 双夹爪运动,共同时间轴 |
dual_arm.get_gripper_width() | 左右开口 mm 元组,缺反馈/未连接侧为 None |
dual_arm.get_gripper_state() | 左右夹爪 MotorState 元组;未连接侧为缺反馈状态 |
参数与前提
width_mm 为 0~89 mm:0 为闭合,89 为完全张开。torque_limit_nm 必填,范围为大于 0 且不超过 6 N·m。speed_percent 为 1~100,默认 30。运动前须使能,所需位置和速度反馈须有效。
move_gripper() 使用受力矩限制的位置模式,不改变七个臂关节的模式。双臂形式共用力矩上限,分别设置时使用 .left 与 .right。
完成与保持
默认阻塞调用成功返回 True;非阻塞调用返回 ArmMotion,等待与取消见 运动任务。
闭合时也可在力矩达到设定上限的 90% 且速度足够低、持续稳定后完成,实际开口可能仍大于目标。该条件不证明物体已可靠夹住,张开动作不会按力矩条件提前完成。
到位或接触后持续发送受限最终目标。stop() / cancel() 改为当前位置保持但不移除力矩限制,不保证原夹持力。受限位置模式在 state.mode 中标为 "pos_vel"。
开口与力矩的含义
get_gripper_width() 返回按开合端点估算的开口,不是独立传感器测得的距离。torque_limit_nm 限制夹爪电机输出力矩,不等于指尖夹持力。缺反馈返回 None。验证范围见 使用限制。
示例
python
arm.move_gripper(width_mm=40.0, torque_limit_nm=1.5, speed_percent=20)
print(arm.get_gripper_width())以上片段在已连接、使能且反馈有效的 arm 上调用。完整脚本见 夹爪开口与力矩上限,原始角度周期控制见 MIT 与周期控制。