§ 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