4. 坐标系建立:世界坐标系、基坐标系、工具坐标系、用户坐标系的定义与转换
坐标系这东西,说白了就是给机器人一个「空间定位」的基准。没有坐标系,你让机器人往哪儿动?我刚开始接触机器人时,总觉得坐标系是个抽象概念,直到有一次在产线上调试,机器人撞了夹具……嗯,从那以后我彻底明白了坐标系的重要性。
4.1 世界坐标系——参考系
世界坐标系是最大的那个坐标系。它固定在地面上,通常是整个机器人工作空间的参考。你可以把它想象成「地球的经纬度」——不管机器人怎么动,世界坐标系的原点和方向是不变的。
- 原点:通常设在地面某个固定点(比如机器人底座中心在地面的投影)
- Z轴:一般垂直向上(重力方向的反方向)
- X轴和Y轴:根据右手定则确定,通常与产线布局对齐
我在项目中遇到过一个问题:客户把机器人底座装歪了,结果所有世界坐标系下的点位都偏了。后来我建议他们用激光跟踪仪重新标定世界坐标系,才解决了问题。所以,世界坐标系的建立一定要有物理基准,不能凭空想象。
4.2 基坐标系——机器人的「根」
基坐标系是固定在机器人底座上的坐标系。它是机器人内部运动学计算的基准。说白了,机器人每个关节的角度,最终都要转换到基坐标系下才能算出末端位置。
基坐标系和世界坐标系的关系很简单——它们之间有一个固定的平移和旋转。这个关系在机器人安装时就已经确定了。我个人习惯在机器人安装后,先用水平仪和激光测距仪把基坐标系标定好,再去做其他工作。
4.3 工具坐标系——末端执行器的「手」
工具坐标系(TCP,Tool Center Point)是定义在机器人末端执行器上的坐标系。它决定了机器人「手」的位置和姿态。你想想看,机器人夹持一个焊枪,焊枪尖端的那个点就是TCP的原点。
工具坐标系的标定是标定工作中最常做的。我记得有一次,客户换了一个新的夹爪,结果所有抓取点位都偏了。其实就是TCP没重新标定。标定TCP的方法有很多,最常用的是「四点法」:
// 四点法标定TCP的伪代码
// 1. 将机器人末端移动到一个固定尖点(如锥尖)
// 2. 以四种不同的姿态接近该尖点
// 3. 记录每种姿态下的关节角度
// 4. 通过最小二乘法求解TCP偏移量
姿态1: [J1, J2, J3, J4, J5, J6] -> 位置P1
姿态2: [J1', J2', J3', J4', J5', J6'] -> 位置P2
姿态3: [J1'', J2'', J3'', J4'', J5'', J6''] -> 位置P3
姿态4: [J1''', J2''', J3''', J4''', J5''', J6'''] -> 位置P4
// 求解 TCP = f(P1, P2, P3, P4)
4.4 用户坐标系——灵活的工作基准
用户坐标系是用户自定义的坐标系。它有什么用呢?举个例子:你的工作台是倾斜的,如果还用世界坐标系编程,每个点位都要算倾斜补偿,太麻烦了。这时候定义一个用户坐标系,让它的XY平面与工作台面平行,编程就简单多了。
用户坐标系的定义通常需要三个点:
- 原点O:坐标系的原点位置
- X轴方向点X:确定X轴的正方向
- Y轴方向点Y:确定Y轴的正方向(Z轴由右手定则自动确定)
我建议在定义用户坐标系时,尽量让坐标轴与工件的特征边对齐。比如工件是矩形的,就让X轴平行于长边,Y轴平行于短边。这样编程时,点位坐标就是工件的实际尺寸,直观又好用。
4.5 坐标系之间的转换
坐标系之间的转换,说白了就是「从一个坐标系看另一个坐标系」。转换关系可以用一个4x4的齐次变换矩阵表示:
| R11 R12 R13 Tx |
| R21 R22 R23 Ty |
| R31 R32 R33 Tz |
| 0 0 0 1 |
其中:
- R 是3x3旋转矩阵(描述姿态)
- T 是3x1平移向量(描述位置)
举个例子,从基坐标系到工具坐标系的转换:
// 基坐标系下的点 P_base
// 工具坐标系下的点 P_tool
// 转换矩阵 T_base_to_tool
P_base = T_base_to_tool * P_tool
// 反过来
P_tool = inv(T_base_to_tool) * P_base
实际应用中,我们经常需要做多层转换。比如:
- 世界坐标系 → 基坐标系:固定转换(安装时标定)
- 基坐标系 → 工具坐标系:随机器人运动变化(由正运动学计算)
- 世界坐标系 → 用户坐标系:固定转换(用户定义时标定)
机器人末端在用户坐标系下的位置 = (用户坐标系到世界坐标系的逆矩阵) × (世界坐标系到基坐标系的逆矩阵) × 基坐标系下的末端位置
说白了,就是一层层「脱衣服」,从最外层一直脱到最里层。
4.6 坐标系标定的实战流程
我总结了一套坐标系标定的流程,供你参考:
- 先标世界坐标系:用水平仪和激光测距仪,确定地面基准
- 再标基坐标系:用机器人自带的标定程序,或者用激光跟踪仪
- 然后标工具坐标系:用四点法或六点法,精度要求高时用激光跟踪仪
- 最后标用户坐标系:用三点法,与工件对齐
4.7 知识体系总览
下面这张图展示了四个坐标系之间的关系:
从图中可以看出,世界坐标系是「根」,基坐标系和用户坐标系都直接或间接与世界坐标系关联。工具坐标系则依附于基坐标系,随机器人运动而变化。
- 世界坐标系:基准,固定不变
- 基坐标系:机器人本体基准,运动学计算用
- 工具坐标系:末端执行器基准,决定「手」在哪
- 用户坐标系:工作基准,方便编程
这四个坐标系构成了机器人空间定位的完整体系。搞懂了它们,标定工作就成功了一半。