第三章 坐标系与运动学:世界坐标系、工具坐标系、工件坐标系、正运动学与逆运动学基础

各位工程师朋友,咱们今天聊点实在的。坐标系和运动学,说白了就是让机器人知道「我在哪」、「要去哪」、「怎么去」。

我见过太多现场调试的兄弟,一上来就对着示教器猛按,结果机器人撞了工件还不知道为啥。嗯,多半是坐标系没搞明白。

这一章,咱们把四个核心概念掰开揉碎。你理解了它们,后面做多轴协同整定,心里就有底了。

核心观点:坐标系是机器人的「世界观」,运动学是它的「行动指南」。两者缺一,协同就是空谈。

坐标系与运动学知识体系 多轴设备协同整定 坐标系基础 世界坐标系 工具坐标系 工件坐标系 运动学基础 正运动学 逆运动学 核心逻辑 坐标系定义「位置与姿态」→ 运动学计算「关节与末端关系」 两者结合,才能实现精准的协同运动

3.1 世界坐标系:机器人的「绝对参考系」

世界坐标系,你可以把它想象成工厂车间里的「大地基准」。所有机器人的位置,最终都要换算到这个坐标系下。

我个人习惯,在项目启动的第一天,就把世界坐标系原点定在产线的一个固定地脚螺栓上。为什么?因为后面不管加几台机器人,大家的位置关系都是确定的。

实战技巧:世界坐标系原点尽量选在不易移动的钢结构或地基上。别选在设备底座上——万一设备移位,你所有程序都得重标。

举个例子。你有一台六轴机器人和一台协作机器人,协同搬运一个长工件。世界坐标系就是它们俩的「共同语言」。机器人A知道自己在(1000, 500, 0),机器人B知道自己在(2000, 500, 0)。有了这个基准,协同才有可能。

3.2 工具坐标系:让机器人知道「手里拿的是什么」

工具坐标系,说白了就是定义机器人末端执行器的位置和姿态。你换一个夹爪,或者换一把焊枪,工具坐标系就得重新标定。

我记得有一次在现场,客户说机器人抓不准。我过去一看,工具坐标系还是出厂默认的——机器人以为它手里啥也没拿。你想想看,这能准吗?

工具坐标系的标定,常用「六点法」或「三点法」。核心思想就是让机器人以不同姿态触碰一个固定尖点,然后反算出工具中心点(TCP)的位置。

// 伪代码:工具坐标系标定流程
1. 选择一个固定尖点(如锥尖)
2. 手动操作机器人,以姿态1触碰尖点 → 记录关节角度
3. 手动操作机器人,以姿态2触碰尖点 → 记录关节角度
4. 手动操作机器人,以姿态3触碰尖点 → 记录关节角度
5. 通过最小二乘法求解 TCP 偏移量 (X, Y, Z)
6. 验证:用新 TCP 触碰尖点,误差应 < 0.5mm

注意:标定工具坐标系时,机器人各关节角度变化要足够大(建议 > 30°),否则求解矩阵会奇异,结果根本不准。

3.3 工件坐标系:让程序跟着工件走

工件坐标系,是定义在工件上的局部坐标系。它的好处是:如果工件位置变了,你只需要更新工件坐标系的原点,程序不用改。

我做过一个项目,流水线上工件来料位置每次偏差 ±5mm。如果不用工件坐标系,你得写几十个位置判断逻辑。用了工件坐标系,一个偏移量搞定。

坐标系类型 参考基准 典型应用场景 标定难度
世界坐标系 车间固定点 多机器人协同、全局路径规划 低(一次标定)
工具坐标系 机器人法兰盘 抓取、焊接、涂胶 中(需多点标定)
工件坐标系 工件本身 流水线来料、柔性生产 中(需视觉或探针辅助)

3.4 正运动学:已知关节角度,求末端位置

正运动学,就是「正向推导」。你告诉机器人每个关节转了多少度,它告诉你末端在空间什么位置。

这个计算相对简单,就是矩阵连乘。每个关节对应一个变换矩阵,从基座一路乘到末端。结果唯一,没有歧义。

// 正运动学计算示例(六轴机器人)
T_0_1 = RotZ(θ1) * Trans(0,0,a1)  // 关节1到关节2的变换
T_1_2 = RotX(θ2) * Trans(0,0,a2)  // 关节2到关节3的变换
...
T_5_6 = RotY(θ6) * Trans(0,0,a6)  // 关节6到法兰盘的变换

// 末端位姿 = 所有变换矩阵连乘
T_0_6 = T_0_1 * T_1_2 * T_2_3 * T_3_4 * T_4_5 * T_5_6

正运动学在调试中有什么用?我举个例子。你示教了一个点,机器人走过去了,但你觉得位置不对。这时候,你可以把当前关节角度读出来,手动算一下末端位置,跟示教器显示的值对比。如果对不上,说明编码器或减速机可能有回差。

3.5 逆运动学:已知末端位置,求关节角度

逆运动学,就是「反向求解」。你告诉机器人「我要去这个位置」,它自己算出每个关节该转多少度。

这才是真正的难点。为什么?因为逆解通常有多个解,甚至无解。你想想看,一个六轴机器人,同一个末端位置,可能有8组关节角度都能达到。

关键认知:逆运动学没有通用解析解。工业机器人通常通过「解析法」或「数值迭代法」求解。解析法快但依赖构型,数值法通用但慢。

我曾经遇到一个案例:机器人走直线路径时,在某个点突然「抽搐」了一下。排查了半天,发现是逆解模块在相邻两个路径点之间切换了不同的解构型(比如从「肘部向上」切到了「肘部向下」)。

解决办法?强制逆解模块在路径段内保持同一解构型。很多控制器都有这个参数,叫「解构型锁定」或「姿态保持」。默认是关闭的,你得手动打开。

避坑指南:做协同整定时,一定要检查所有参与机器人的逆解构型是否一致。两台机器人走同一段路径,一台肘部朝上,一台肘部朝下,末端轨迹肯定对不上。

3.6 坐标系与运动学的协同关系

好了,咱们把四个概念串起来。你想想看,一个完整的协同运动流程是什么样的?

  1. 定义世界坐标系:确定所有机器人的全局基准。
  2. 标定工具坐标系:告诉每台机器人它手里拿的是什么。
  3. 设定工件坐标系:把程序跟工件位置绑定。
  4. 正运动学:实时反馈机器人当前末端位置。
  5. 逆运动学:把目标位置转换成关节指令。

这五步,一步都不能少。我见过不少工程师,工具坐标系没标准就开始写协同程序。结果呢?两台机器人末端位置差了2mm,工件根本装不上。

嗯,这一章的内容就到这里。坐标系和运动学是基础中的基础,你把它吃透了,后面讲速度规划、力位混合控制的时候,就不会觉得吃力。