3. 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)的定义。
示教器操作流程
- 进入 ABB 菜单 → 手动操纵 → 工件坐标,点击新建,命名为
wobj_plate。 - 选择三点法定义方式,依次示教 P1、P2、P3。示教时用单轴点动将 TCP 对准特征点,避免姿态突变。
- 确认后控制器自动计算坐标系,示教器显示
wobj_plate的 X/Y/Z 方向与原点位置。 - 在手动操纵界面将当前工件坐标系切换为
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 | 机器人回到初始位置 | 坐标系恢复,坐标解释一致 |
| 三点共线时 | 示教器报错,无法生成坐标系 | 叉积为零,姿态不可解 |