§ 3.5 夹爪 - 控制张开的距离

1. 导入依赖

import numpy as np
# 从阿凯机器人工具箱导入二指夹爪
from kyle_robot_toolbox.end_effector import Gripper2FUart

2. 创建夹爪对象

# 创建夹爪对象
gripper = Gripper2FUart(config_path="./config")

3. 夹爪张开距离查询

# 电机进入阻尼模式
gripper.disable()
# 查询当前夹爪张开宽度
width = gripper.get_gripper_width()
print(f"夹爪张开宽度: {width}")

输出日志

夹爪张开宽度: 27.782705432665008

4. 逆向运动学

joint_angle = gripper.inverse_kinematics(width=25)
print(f"关节角度: {np.degrees(joint_angle)}")

输出日志

关节角度: 11.536959032815489

5. 设置夹爪张开距离

注意:夹爪空载可以不指定夹持功率,如果夹爪抓取物品时,必须设置 power ,且 power 不能过小。否则会出现舵机功率保护掉线的问题。

# 设定夹爪张开距离
gripper.set_gripper_width(80)
# 设定夹爪张开距离
gripper.set_gripper_width(0)
# 设定夹爪张开距离
# @power: 最大夹持功率 mW
# @interval: 运动周期 ms
gripper.set_gripper_width(0, power=3000, interval=500)

控制夹爪张开/闭合,可以直接调用 open close 函数。

# 夹爪张开
gripper.open()
# 夹爪闭合
gripper.close()

同时也可以修改默认的夹爪张开/闭合的宽度。

# 修改默认的夹爪张开宽度
gripper.GRIPPER_OPEN_WIDTH = 40
gripper.open()
# 修改默认的夹爪闭合的宽度
gripper.GRIPPER_CLOSE_WIDTH = 0
gripper.close()
# 修改默认的夹爪张开宽度
gripper.GRIPPER_OPEN_WIDTH = 80
gripper.open()

6. 夹爪夹持状态查询

# 设定夹爪张开距离
gripper.set_gripper_width(0)
# 查询夹爪是否在夹持物体
is_empty = gripper.is_empty()

print(f"当前夹爪是否空置: {is_empty}")

输出日志

当前夹爪是否空置: True