§ 3.3 夹爪关节标定
0. 概要
本文讲解了如何进行夹爪关节标定,将舵机原始角度映射为夹爪关节角度。
需要注意的是,这个步骤不是必须的,因为夹爪在安装时,都会做对齐。如果你发现在后续测试案例中,设置夹爪张开宽度与实际的宽度差异比较大,则需要重新进行标定。
1. 导入依赖
import numpy as np
# 从阿凯机器人工具箱导入二指夹爪
from kyle_robot_toolbox.end_effector import Gripper2FUart
2. 创建舵机对象
# 创建夹爪对象
gripper = Gripper2FUart(config_path="./config")
# 舵机卸力
gripper.disable()
3. 采集样本1
记录夹爪闭合时刻的舵机原始位置
alpha_close = gripper.get_servo_position()
print(f"alpha_close={alpha_close}")
输出日志:
alpha_close=-0.4
4. 采集样本2
让夹爪尽量张大,测量此时的夹爪间距,以及舵机原始位置。
# 夹爪张开距离, 尺子测量得到
width_1 = 68.0
alpha_1 = gripper.get_servo_position()
print(f"alpha_1={alpha_1} 夹爪张开距离: {width_1} mm")
输出日志:
alpha_1=54.8 夹爪张开距离: 68.0 mm
5. 计算标定系数
result = gripper.calib_gripper_joint(alpha_close, width_1, alpha_1)
k_joint2servo, b_joint2servo = result
print(f"k_joint2servo: {k_joint2servo:.4f}")
print(f"b_joint2servo: {b_joint2servo:.4f}")
输出日志:
k_joint2servo: 49.7614 b_joint2servo: 7.4522
完成标定后,修改
config/gripper_2f.yaml
里面的配置文件。
# 夹爪关节(rad)转换为夹爪舵机角度(deg)
k_joint2servo: 57.8658
b_joint2servo: 9.3310