2. 坐标系基础与平台运动描述

多轴运动平台的一切控制指令,最终都要落到某个坐标系里才有意义。同一句“移动到 (100, 50, 20)”,在世界坐标系、机架坐标系、工具坐标系或工件坐标系下,指向的物理位置可能完全不同。因此,理解坐标系的层级关系与空间映射,是标定与轨迹执行的第一块基石。

一、四类坐标系及其层级关系

世界坐标系(World)是全局参考,通常固定在地面或车间基准上,用于统一描述多台设备、视觉相机与工件的相对位置。它不随平台运动而改变,是“绝对参照”。

机架坐标系(Base/Frame)固连在平台底座上,原点一般取第一轴回转中心与安装面的交点。它描述的是“平台自身在哪里、朝哪个方向”。当平台被吊装、重新固定后,机架坐标系相对世界坐标系的关系需要重新标定。

工具坐标系(Tool/TCP)固连在末端执行器上,原点即工具中心点(TCP),Z 轴通常沿工具接近方向。它决定了“平台末端拿着的工具,其作用点在哪里、指向何方”。

工件坐标系(Work/Object)固连在被加工或测量的工件上,原点常取工件的一个角点或定位基准。它让轨迹可以按“工件图纸坐标”编写,而不必关心工件被摆放在台面的哪个位置。

四者的关系可以概括为一条变换链:世界 → 机架 → 工具,以及世界 → 工件。控制器内部真正求解的,是工具坐标系与工件坐标系之间的相对位姿。

坐标系层级与位姿变换链 世界坐标系 W 固定于地面/车间基准 全局绝对参照 机架坐标系 B 固连平台底座 原点≈第一轴中心 工具坐标系 T 原点=TCP Z 轴沿接近方向 工件坐标系 O 固连工件/定位基准 按图纸坐标编程 ᵂT_B ᴮT_T ᵂT_O 求解目标 ᵂT_T = ᵂT_B · ᴮT_T ᵒT_T = (ᵂT_O)⁻¹ · ᵂT_T 位姿描述:位置 (x, y, z) + 姿态 (rx, ry, rz 或四元数) 关节空间 q = [θ₁, θ₂, …, θₙ] ⇄ 笛卡尔空间 p = [x, y, z, rx, ry, rz] 正解:q → p(唯一);逆解:p → q(可能多解,需按关节限位与行程择优)

二、关节空间与笛卡尔空间的映射

多轴平台的运动描述存在两套语言。一套是关节空间:用各轴的角度或位移量 q = [θ₁, θ₂, …, θₙ] 描述平台状态,它直接对应电机编码器读数,是控制器真正下发的量。另一套是笛卡尔空间:用末端位姿 p = [x, y, z, rx, ry, rz] 描述工具在某个参考系下的位置与姿态,它更贴近人的直觉和工艺需求。

两套语言之间靠运动学映射连接。正运动学由关节量算出末端位姿,对给定结构是唯一确定的;逆运动学由目标位姿反求关节量,往往存在多组解,需要结合关节限位、行程余量和避障要求挑选。以常见的三轴直角坐标平台为例,若丝杠导程为 5 mm、电机每转 10000 脉冲,则单轴分辨率约为 0.0005 mm/脉冲,正解就是各轴位移的简单叠加;而六轴串联平台的正解则需按 DH 参数逐级相乘。

三、位姿描述与变换矩阵

工程上普遍用 4×4 齐次变换矩阵统一表达“旋转 + 平移”。一个位姿 T 可写成:

T = [ R  t ]      R: 3×3 旋转矩阵(姿态)
    [ 0  1 ]      t: 3×1 平移向量(位置)

例:工具在机架系下的位姿
B T_T = [ 1  0  0  300 ]
        [ 0  1  0  120 ]
        [ 0  0  1   80 ]
        [ 0  0  0    1 ]
含义:TCP 位于机架系 (300, 120, 80) mm,姿态与机架系一致。

姿态的表示方式有三种常见形式:旋转矩阵直观但冗余(9 个元素仅 3 个自由度);欧拉角(如 ZYX 顺序的 rx, ry, rz)便于人读,但存在万向节死锁;四元数 (qw, qx, qy, qz) 无死锁、插值平滑,适合轨迹规划。控制器内部通常用矩阵或四元数运算,仅在示教界面显示欧拉角。

四、坐标变换的复合与方向约定

变换链的复合遵循“从右往左”的乘法顺序。若已知机架系到世界系的变换 ᵂT_B、工具系到机架系的变换 ᴮT_T,则工具在世界系下的位姿为 ᵂT_T = ᵂT_B · ᴮT_T。反过来,若要让工具在工件坐标系下到达目标位姿 ᵒT_T,则需先求工件系到世界系的变换 ᵂT_O,再计算 ᵒT_T = (ᵂT_O)⁻¹ · ᵂT_T。

方向与符号约定:本文统一采用右手坐标系,旋转正方向为绕轴逆时针(从轴正向看向原点)。上标表示“参考系”,下标表示“被描述的坐标系”,如 ᴮT_T 读作“T 在 B 中的位姿”。切换参考系时必须显式说明,否则同一组数值会产生歧义。

五、一个可复现的坐标变换示例

假设某三轴平台机架系原点在世界系 (500, 200, 0) mm 处,无旋转;工具 TCP 在机架系下为 (300, 120, 80) mm,姿态绕 Z 轴旋转 90°。工件系原点在世界系 (800, 200, 0) mm 处,无旋转。求 TCP 在工件系下的位置。

步骤 1:ᵂT_T 位置 = (500+300, 200+120, 0+80) = (800, 320, 80) mm
步骤 2:ᵒT_T 位置 = ᵂT_T - ᵂT_O = (800-800, 320-200, 80-0)
                  = (0, 120, 80) mm
步骤 3:姿态绕 Z 转 90°,在工件系下仍为 Rz(90°)

判断依据:若工件系原点与 TCP 世界坐标的 X 分量相同,
则工件系下 X 应为 0,与步骤 2 结果一致,说明变换链正确。

这个例子说明:坐标变换不是抽象数学,而是把“平台实际在哪、工具指向哪、工件摆在哪”三件事用矩阵串起来。标定的本质,就是把这些变换矩阵中的未知量测准;轨迹执行的本质,就是在这条变换链上做正解与逆解。

工程习惯:建议在控制器中为每个坐标系建立独立的数据块,记录其相对父坐标系的 6 个参数(x, y, z, rx, ry, rz)及标定日期。任何一次机械拆装或工件重新装夹后,只更新对应数据块,而不改动轨迹程序中的目标点,这样轨迹的可移植性最强。