当前数据 (基于机器人基坐标系):
R = -
T = -

机械臂工具标定 (TCP) 通俗讲解

目的:标定工具中心点(TCP)是为了告诉机械臂:“你手上拿着的工具,它的针尖到底在哪里?” 只有知道了针尖的位置,机械臂才能精确控制针尖去干活。

基础知识探索

如果你对“坐标系”、“矩阵”和“向量”等基础概念还不太熟悉,可以点击下方链接查看基础知识补充:

👉 查看基础知识:坐标系与矩阵向量

步骤 0: 原理介绍 (四点法)

怎么做? 我们让机械臂拿着工具,用针尖去碰空间中同一个固定不动的点。为了算得准,我们需要从至少 4 个不同的方向(姿态)去碰这个点。

每次碰这个点时,机械臂内部都能读到它法兰盘(也就是装工具的那个圆盘)的位置和旋转角度。

核心公式(数学原理):

\[ R_i \cdot P_{TCP} + T_i = P_{Fixed} \]

如果你想自己动手算算看矩阵和向量的乘法过程,可以 👉 点击这里使用矩阵计算工具

符号详细解释(参数怎么来的,怎么用):

  • \( P_{TCP} \):工具针尖在“法兰坐标系”下的位置(未知数)。这就是我们要标定的结果。它就像是法兰盘的“手长”。
  • \( P_{Fixed} \):空间中固定参考点在“基坐标系”下的位置(未知数)。虽然不知道具体在哪,但它是不动的。
  • \( R_i \):第 i 次触碰时,法兰盘在“基坐标系”下的旋转矩阵。来源:由机械臂控制器直接读取关节角度计算得出。作用:把 \( P_{TCP} \) 从法兰盘自己的坐标系,转换到世界中心(基坐标系)的方向。
  • \( T_i \):第 i 次触碰时,法兰盘中心在“基坐标系”下的位置向量。来源:同上,由控制器读取。作用:加上这段位移,最终算出针尖在基坐标系里的绝对位置。

公式的意思就是:在基坐标系下看,针尖的位置 = 把针尖在法兰盘里的位置 (\( P_{TCP} \)) 转到世界方向 (\( R_i \cdot P_{TCP} \)),再加上法兰盘本身的位置 (\( T_i \))。这个算出来的位置,刚好就是那个固定点 (\( P_{Fixed} \))。

步骤 1: 姿态 1

机械臂移动到第一个姿态,使针尖对准固定点。我们记录下此时法兰盘在基坐标系下的数据:旋转 \( R_1 \),位置 \( T_1 \)。

步骤 2: 姿态 2

换个姿势,再次让针尖对准同一点。记录第二组数据:旋转 \( R_2 \),位置 \( T_2 \)。

步骤 3: 姿态 3

再换个姿势,记录第三组数据:旋转 \( R_3 \),位置 \( T_3 \)。

步骤 4: 姿态 4

最后换个姿势,记录第四组数据:旋转 \( R_4 \),位置 \( T_4 \)。

步骤 5: 开始计算!

怎么算出 \( P_{TCP} \) 呢?

1. 消去固定点: 因为不管怎么碰,固定点 \( P_{Fixed} \) 是同一个。所以我们可以把上面得到的方程两两相减,比如用第 2 次减去第 1 次,这样等号右边的 \( P_{Fixed} \) 就被减没了:

\[ (R_1 - R_2) P_{TCP} = T_2 - T_1 \]

2. 列出大方程: 用4组数据可以组合出3个独立的等式。把它们拼成一个矩阵形式的大方程 \( A \cdot P_{TCP} = B \)。其中 A 是由多次旋转矩阵相减得到的,B 是由多次位置向量相减得到的。

3. 求得结果: 因为手工去碰总有误差,我们使用一种叫最小二乘法的数学工具来求解,它能找到一个最能满足所有误差条件的解,这样算出来的结果最准:

进阶知识探索

如果你想深入了解完整的 TCP 是如何包含方向(欧拉角 A,B,C)的,以及底层的 $4 \times 4$ 齐次变换矩阵是如何进行计算和控制机械臂运动的,请点击下方链接查看详细的进阶内容:

👉 查看进阶知识:TCP 的完整变换矩阵与欧拉角