3. ABB机器人工作站工件坐标系三点法建立与调用

ABB机器人工作站工件坐标系三点法建立与调用 学习卡片

三点法建立工件坐标系的几何原理

三点法(3-Point Method)通过工件上的三个特征点确定一个工件坐标系:原点 P1、X 轴方向点 P2、Y 轴方向点 P3。ABB 控制器据此计算:

  • X 轴:由 P1 指向 P2 的单位向量。
  • Z 轴:由 (P2−P1) × (P3−P1) 的叉积方向确定(右手定则,指向工件表面法向)。
  • Y 轴:由 Z × X 补全右手坐标系。

三个点必须不共线,且 P3 不能落在 P1→P2 的直线上,否则叉积为零、姿态无法求解。三点法只确定坐标系姿态与原点位置,不改变工具坐标系(TCP)的定义。

三点法确定工件坐标系(右手定则) 工件表面(示例平面) P1 原点 P2 X方向点 P3 Y方向点 X 轴 Y 轴 Z 轴(法向) Z = (P2−P1) × (P3−P1) Y = Z × X(右手系补全) ⚠ P1、P2、P3 不可共线

示教器操作流程

  1. 进入 ABB 菜单 → 手动操纵 → 工件坐标,点击新建,命名为 wobj_plate。
  2. 选择三点法定义方式,依次示教 P1、P2、P3。示教时用单轴点动将 TCP 对准特征点,避免姿态突变。
  3. 确认后控制器自动计算坐标系,示教器显示 wobj_plate 的 X/Y/Z 方向与原点位置。
  4. 在手动操纵界面将当前工件坐标系切换为 wobj_plate,观察示教器坐标系指示变化。

RAPID 程序:同一示教点在不同工件坐标系下的验证

以下程序在 wobj0(基坐标系)和 wobj_plate 下分别移动到同一示教点 pVerify,通过观察机器人实际到达位置差异验证坐标系切换效果。

MODULE WobjVerify
  ! 工件坐标系声明
  PERS wobjdata wobj_plate := [FALSE, TRUE, "", [[0,0,0],[1,0,0,0]], [[0,0,0],[1,0,0,0]]];
  ! 同一示教点(在 wobj0 下示教)
  CONST robtarget pVerify := [[400, 0, 300], [1, 0, 0, 0], [0, 0, 0, 0], [9E9, 9E9, 9E9, 9E9, 9E9, 9E9]];

  PROC main()
    ! 在基坐标系 wobj0 下移动
    MoveJ pVerify, v500, fine, tool0 \WObj:=wobj0;
    WaitTime 1;

    ! 切换到工件坐标系 wobj_plate 下移动同一示教点
    MoveJ pVerify, v500, fine, tool0 \WObj:=wobj_plate;
    WaitTime 1;

    ! 切回基坐标系,确认位置恢复
    MoveJ pVerify, v500, fine, tool0 \WObj:=wobj0;
  ENDPROC
ENDMODULE
验证要点:若 wobj_plate 的原点与 wobj0 原点不重合,则同一 pVerify 在两种坐标系下机器人实际到达的物理位置不同。切换坐标系后,机器人会按新坐标系重新解释 pVerify 的坐标值,从而移动到不同位置——这正是坐标系切换生效的直接证据。
常见错误:三点共线会导致叉积为零,示教器报“无法计算坐标系”。此时应重新选取 P3,使其明显偏离 P1→P2 连线。另外,P1、P2、P3 的示教顺序不可颠倒,否则 X/Y 轴方向会反向。

验证与判读

观察项预期现象判读依据
坐标系切换后机器人位置同一 pVerify 到达不同物理位置坐标系原点/姿态不同,坐标解释不同
示教器坐标系指示显示 wobj_plate 而非 wobj0当前激活工件坐标系已切换
切回 wobj0机器人回到初始位置坐标系恢复,坐标解释一致
三点共线时示教器报错,无法生成坐标系叉积为零,姿态不可解