机器人工具坐标系标定原理

本文介绍了机器人工具坐标系的标定原理,包括直接输入法、四点法和重点讲解的六点法。六点法通过六个特定姿态的标定点确定TCP位置和姿态,涉及最小二乘法和广义逆计算。此外,还讨论了工具坐标系姿态(TCF)标定过程和实际应用中的注意事项。
摘要由CSDN通过智能技术生成

工具坐标系
默认的工具坐标系是以法兰中心点为原点,XYZ方向固定的一个坐标系。其他任何安装在末端法兰上的工具,TCP点的位置相对于法兰中心点是固定的,以这个TCP为原点建立工具坐标系其实就可以看做相对于末端的平移和旋转。
标定
工业机器人使用过程中经常在机器人末端法兰面安装不同的工具来满足实际生产需求,为了准确控制工具运动的位置与姿态,需要对工具所在坐标系进行标定。我使用的协作臂机器人提供了三种方法:直接输入法、四点法和六点法。四点法适用于只改变了工具坐标系原点TCP的位置,仅进行了默认工具坐标系平移的场合。即当新的工具相对于默认的坐标系只是TCP位置(即X、Y、Z)发生变换,而姿态(即W、P、R)没变时,可通过四点标定法建工具坐标系在实际使用中,六点法适用于工具坐标系原点(TCP)的位置和姿态均改变了,不仅进行了默认工具坐标系平移又进行了旋转的场合。即当TCP和姿态都发生变换时,则需要采用六点法建立新的工具坐标系。

重点介绍一下“六点法”
1.标定步骤
(1)在机器人动作范围内找一个非常精确的固定点作为参考点;
(2)在工具上确定一个参考点(最好是工具中心点Tool Center Point, TCP);
(3)手动操纵机器人的方法移动TCP,以四种不同的工具姿态与固定点刚好碰上。
  前三个点任意姿态,第四点是用工具的参考点垂直于固定点,第五点是工具参考点从固定点向将要设定的TCP的x方向移动,第六点是工具参考点从固定点向将要设定的TCP的在z方向移动,(姿态取点时有x,y方向的

以下是使用四点法实现机器人工具坐标系TCP标定的Python函数API: ```python import numpy as np def tcp_calibration(p1, p2, p3, p4): """ 使用四点法实现机器人工具坐标系TCP标定 :param p1: 机器人坐标系中第一个参考点的位置 [x, y, z] :param p2: 机器人坐标系中第二个参考点的位置 [x, y, z] :param p3: 机器人坐标系中第三个参考点的位置 [x, y, z] :param p4: 机器人坐标系中第四个参考点的位置 [x, y, z] :return: TCP相对于机器人工具坐标系的变换矩阵 [4x4] """ # 将四个参考点组成矩阵 P = np.vstack((p1, p2, p3, p4)) # 计算4个参考点两两之间的距离 d12 = np.linalg.norm(p1 - p2) d13 = np.linalg.norm(p1 - p3) d14 = np.linalg.norm(p1 - p4) d23 = np.linalg.norm(p2 - p3) d24 = np.linalg.norm(p2 - p4) d34 = np.linalg.norm(p3 - p4) # 确定参考点顺序 if d12 < d13 and d12 < d14 and d12 < d23 and d12 < d24 and d12 < d34: P12 = (p1 + p2) / 2 P34 = (p3 + p4) / 2 elif d13 < d14 and d13 < d23 and d13 < d24 and d13 < d34: P12 = (p1 + p3) / 2 P34 = (p2 + p4) / 2 elif d14 < d23 and d14 < d24 and d14 < d34: P12 = (p1 + p4) / 2 P34 = (p2 + p3) / 2 elif d23 < d24 and d23 < d34: P12 = (p2 + p3) / 2 P34 = (p1 + p4) / 2 elif d24 < d34: P12 = (p2 + p4) / 2 P34 = (p1 + p3) / 2 else: P12 = (p3 + p4) / 2 P34 = (p1 + p2) / 2 # 计算TCP相对于机器人工具坐标系的变换矩阵 T = np.eye(4) T[:3, 3] = P34 - P12 z = np.cross(p1 - p2, p1 - p3) z = z / np.linalg.norm(z) y = (p1 - p2) / d12 x = np.cross(y, z) x = x / np.linalg.norm(x) y = np.cross(z, x) T[:3, :3] = np.stack((x, y, z)).T return T ``` 其中,p1、p2、p3和p4分别是机器人坐标系中的四个参考点的位置,函数返回的是TCP相对于机器人工具坐标系的变换矩阵。这个函数的实现过程如下: 1. 将四个参考点组成矩阵P; 2. 计算4个参考点两两之间的距离; 3. 确定参考点顺序,即找到距离最小的两个点P12和距离最大的两个点P34; 4. 计算TCP相对于机器人工具坐标系的变换矩阵: 1. 通过P12和P34的中点计算平移向量; 2. 计算TCP z轴方向; 3. 计算TCP x轴方向; 4. 计算TCP y轴方向; 5. 将平移向量和旋转矩阵组合成变换矩阵返回。 可以使用该函数来进行机器人工具坐标系TCP标定
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值