3、坐标系与运动学建模:全局坐标系与局部坐标系、刚体运动学与齐次变换矩阵、逆运动学求解与奇异性分析

各位同仁,欢迎来到《晶圆平台多轴协同控制进阶指南》的第三讲。今天我们要啃的这块骨头,是运动控制的“地基”——坐标系与运动学建模。

说实话,我见过不少工程师,PID调得飞起,但一碰到多轴联动就抓瞎。为什么?因为脑子里没有建立起清晰的坐标系概念。你想想看,晶圆在机械手上移动,它到底是在“世界”里动,还是在“自己”的坐标系里动?搞不清楚这个,协同控制就是空中楼阁。

3.1 全局坐标系与局部坐标系:谁在“看”这个世界?

先问个问题:晶圆台上的一个点,它的位置是绝对的还是相对的?

答案是:看谁在看它。

  • 全局坐标系(World Frame):固定在设备基座上的坐标系。它是整个系统的“绝对参考”。晶圆从A点传到B点,这个A和B的坐标,通常就是全局坐标。
  • 局部坐标系(Local Frame):附着在运动部件上的坐标系。比如机械手末端、晶圆载台、甚至晶圆本身。每个部件都有自己的“小世界”。

我在项目中遇到过一个问题:一个六轴机械手抓取晶圆,示教时位置很准,但一换批次就偏。查了半天,发现是晶圆在载台上的定位基准变了,导致局部坐标系偏移。说白了,就是全局坐标没变,但局部坐标“跑”了。

核心原则:所有运动控制,本质上都是在做“坐标系变换”。你控制的是电机,但电机转动的是局部坐标,而工艺要求的是全局坐标。中间的桥梁,就是运动学。

这里我习惯用一个比喻:全局坐标系是“地图”,局部坐标系是“你手机上的定位点”。地图上的天安门广场是固定的,但你手机上的那个蓝点,会随着你移动而改变它在“地图”上的坐标。

3.2 刚体运动学与齐次变换矩阵:数学才是硬道理

好,概念有了,怎么算?

晶圆平台上的每个部件,我们都可以看作一个刚体。刚体在空间中的运动,可以分解为平移旋转

平移好理解,就是沿着X、Y、Z轴移动。旋转呢?绕X轴叫Roll,绕Y轴叫Pitch,绕Z轴叫Yaw。六个自由度,三个平移,三个旋转。

怎么用一个统一的数学工具来描述这六种运动?答案就是齐次变换矩阵

说白了,齐次变换矩阵就是一个4x4的矩阵,它把旋转和平移打包在一起。你想想看,如果没有它,你要先算旋转矩阵,再单独加平移向量,多麻烦。齐次变换矩阵一次搞定。

// 齐次变换矩阵的标准形式
// [R  T]
// [0  1]

// 其中 R 是 3x3 旋转矩阵,T 是 3x1 平移向量

// 示例:绕Z轴旋转θ角度,并沿X轴平移dx
T = | cosθ  -sinθ  0  dx |
    | sinθ   cosθ  0  0  |
    | 0      0     1  0  |
    | 0      0     0  1  |

这个矩阵有什么用?假设你有一个点P,它在局部坐标系下的坐标是P_local。你想知道它在全局坐标系下的坐标P_global。很简单:

P_global = T * P_local

这里的T,就是局部坐标系相对于全局坐标系的齐次变换矩阵。

我的小技巧:在调试时,我习惯把每个关节的齐次变换矩阵打印出来,手动乘一遍验证。虽然现在仿真软件很强大,但亲手算一次,你对“坐标系在动”的感觉会完全不一样。

3.3 逆运动学求解与奇异性分析:从“想去哪”到“怎么去”

正运动学很简单:给你每个关节的角度,算出末端执行器的位置。但实际控制中,我们往往需要的是逆运动学:告诉末端“我要去这里”,然后让计算机算出每个关节该转多少度。

这才是难点。

为什么难?因为逆运动学通常没有唯一解。同一个末端位置,可能对应多组关节角度。比如一个SCARA机器人,要到达同一个点,大臂和小臂可以有不同的“姿势”。

更头疼的是奇异性

什么是奇异性?我举个例子。你伸直手臂去够一个东西,当你的手臂完全伸直时,你会发现,你的手肘没法再“弯曲”了——这就是奇异位形。在奇异点附近,关节速度会变得极大,甚至趋于无穷。电机根本跟不上的。

我曾经在调试一个五轴晶圆搬运平台时,就踩过这个坑。程序跑得好好的,突然某个轴速度飙升,差点撞到限位。后来一查,就是路径规划时经过了奇异点。

避坑指南:我曾经因为没做奇异性分析,导致晶圆在高速搬运时飞出。从那以后,我的代码里一定会加一个“奇异点检测”模块。具体做法是计算雅可比矩阵的行列式,当行列式的绝对值接近零时,就说明进入奇异区域了。

逆运动学的求解方法,我总结了几种:

  • 解析法:对于结构简单的机器人(如2R、3R),可以直接推导出封闭解。速度快,但通用性差。
  • 数值法:比如牛顿-拉夫森迭代法。通用性强,但计算量大,且需要好的初值。
  • 几何法:利用几何关系求解。我比较喜欢这种方法,因为它直观,调试时容易发现问题。

下面是一个简单的2R机械臂逆运动学求解的伪代码示例:

// 2R机械臂逆运动学求解(解析法)
// 已知:末端位置 (x, y),连杆长度 L1, L2
// 求解:关节角度 θ1, θ2

function inverseKinematics2R(x, y, L1, L2) {
    // 计算肘部角度 θ2
    cosθ2 = (x^2 + y^2 - L1^2 - L2^2) / (2 * L1 * L2)
    
    // 检查是否可达
    if (abs(cosθ2) > 1) {
        return "目标点不可达"
    }
    
    // 有两种解:肘部向上和肘部向下
    θ2 = atan2(sqrt(1 - cosθ2^2), cosθ2)  // 肘部向上解
    
    // 计算肩部角度 θ1
    k1 = L1 + L2 * cosθ2
    k2 = L2 * sinθ2
    θ1 = atan2(y, x) - atan2(k2, k1)
    
    return (θ1, θ2)
}

你看,代码里有一个关键判断:abs(cosθ2) > 1。这就是在检查目标点是否在机械臂的工作空间内。如果不在,直接返回不可达,避免电机瞎转。

3.4 知识体系总览

为了让你更直观地理解本章的知识结构,我画了一张图。你可以把它当作一个“地图”,方便你随时回顾。

坐标系与运动学建模知识体系 坐标系 运动学 求解与分析 全局坐标系 局部坐标系 刚体运动学 齐次变换矩阵 逆运动学求解 奇异性分析 绝对参考系 附着于部件 平移+旋转 4x4矩阵 解析/数值/几何法 雅可比行列式 核心思想 所有运动控制问题,最终都归结为坐标系变换问题。 掌握齐次变换矩阵,你就掌握了多轴协同的“通用语言”。

嗯,这张图把本章的核心逻辑串起来了。从坐标系出发,到运动学建模,再到求解与分析,每一步都环环相扣。

最后,我想说一句。运动学建模这东西,光看书是学不会的。我建议你找个实际的晶圆平台,哪怕是个小型的桌面机械臂,亲手算一遍正解和逆解。遇到奇异点,别怕,那是你真正理解运动学的开始。


公众号:蓝海资料掘金营,微信deep3321