3. 多机协调控制中的坐标系与位姿描述

在多机协调控制中,所有“位置”和“姿态”都不是孤立存在的,它们必须挂靠在某个坐标系下才有意义。KUKA 机器人系统里最常出现的四类坐标系是:世界坐标系(World)、基坐标系(Base/Root)、工具坐标系(Tool)和工件坐标系(Work/Object)。多机协调的本质,就是把这四类坐标系之间的变换关系理清楚,让两台甚至多台机器人对同一个空间点、同一条轨迹、同一个工件有一致的理解。

四类坐标系的定义与作用

世界坐标系是整条产线或整个机器人工作单元的绝对参考系,通常固定在地面或设备底板上,原点由集成商在标定时确定。它不随任何一台机器人运动而改变,是多机之间共享的“公共语言”。当两台机器人需要协同搬运同一个工件时,它们各自的轨迹最终都要能换算到世界坐标系下比较。

基坐标系是每台机器人自身的根坐标系,原点一般位于机器人底座安装面中心,Z 轴通常与机器人第一轴回转中心重合。KUKA 的 $BASE 数据描述的就是基坐标系相对于世界坐标系的位姿。单机编程时我们常把基坐标系当作“地面”,但在多机场景中,必须明确每台机器人的基坐标系在世界系中的实际位置,否则两台机器人对同一工件的理解会相差一个底座安装偏差。

工具坐标系(KUKA 中称 TOOL)定义在末端法兰上,描述 TCP(工具中心点)相对于法兰坐标系的位置和姿态。焊接枪、夹爪、吸盘的工具坐标系各不相同。多机协调时,如果一台机器人用夹爪抓工件、另一台用焊枪焊接,两者必须通过各自 TOOL 把动作点统一到工件上的同一物理点。

工件坐标系(KUKA 中称 $WORK 或工件基准)固定在工件或工装上,描述工件相对于世界或基坐标系的位姿。它的价值在于:当工件在变位机上翻转或移动时,只要更新工件坐标系,所有基于工件坐标系编写的轨迹点会自动跟随,无需逐点重算。

位姿的统一表达与变换链

KUKA 用位置矢量 (X, Y, Z) 加姿态角 (A, B, C) 描述一个位姿,其中 A 绕 Z 轴、B 绕 Y 轴、C 绕 X 轴,旋转顺序为 Z→Y→X,即先 A 后 B 再 C。这个约定在多机编程中必须全文一致,否则两台机器人对同一组角度会解出不同姿态。

多机协调的核心计算是坐标变换链。若已知工件上一点 P 在工件坐标系中的坐标,要让它被机器人 1 的 TCP 到达,需要经过:工件坐标系→世界坐标系→机器人 1 基坐标系→机器人 1 法兰→机器人 1 工具坐标系。用齐次变换矩阵表示就是:

T_world_tcp1 = T_world_base1 · T_base1_flange1 · T_flange1_tool1
P_world = T_world_work · P_work
P_tcp1  = inv(T_world_tcp1) · P_world

机器人 2 同理得到 P_tcp2。只要两台机器人的变换链都正确标定,同一个 P_world 就能被两台机器人分别到达,实现协同。实际工程中,我们通常把公共部分(世界系到工件系)标定一次,各机器人只需维护自己的基坐标系和工具坐标系。

标定顺序建议:先标世界坐标系,再标各机器人基坐标系,然后标工具坐标系,最后标工件坐标系。顺序颠倒会导致误差逐级放大。

多机位姿统一表达的实操要点

以两台 KR 10 协同搬运一个 800 mm × 600 mm 工装板为例。假设工装板上有四个抓取点,机器人 1 抓左侧两点,机器人 2 抓右侧两点。操作流程如下:

  1. 用激光跟踪仪或 KUKA 三点法标定世界坐标系,原点设在工装板中心正下方的地面点,X 轴指向产线流动方向。
  2. 分别标定两台机器人的基坐标系,记录 $BASE 数据。示例:机器人 1 的 $BASE = {X 1200, Y -800, Z 0, A 0, B 0, C 0},机器人 2 的 $BASE = {X 1200, Y 800, Z 0, A 0, B 0, C 180},表示两台机器人相对世界系对称布置且朝向相反。
  3. 标定各自工具坐标系。夹爪 TCP 设在夹爪中心,示例 TOOL = {X 0, Y 0, Z 180, A 0, B 0, C 0},Z 向偏移 180 mm 为夹爪长度。
  4. 标定工件坐标系,原点设在工装板中心,X 轴沿板长方向。示例 $WORK = {X 1200, Y 0, Z 400, A 0, B 0, C 0}。
  5. 在工件坐标系下示教四个抓取点,例如 P1 = {X -300, Y -200, Z 0},P2 = {X -300, Y 200, Z 0},P3 = {X 300, Y -200, Z 0},P4 = {X 300, Y 200, Z 0}。机器人 1 执行 P1、P2,机器人 2 执行 P3、P4。

运行前用 KUKA 的 $POS_ACT 或示教器上的“实际位置”显示,把两台机器人分别移动到各自抓取点,观察世界坐标系下的实际坐标是否与理论值一致。若偏差超过 2 mm,优先检查基坐标系标定和工具坐标系 Z 向偏移,而不是直接修改轨迹点。

多机协调坐标系变换链与位姿统一表达 世界坐标系 World 产线公共参考 / 固定不动 工件坐标系 $WORK 固定在工装板 / 随工件更新 机器人1 基坐标系 $BASE X1200 Y-800 C0 机器人2 基坐标系 $BASE X1200 Y800 C180 机器人1 工具 $TOOL 夹爪 TCP Z+180 机器人2 工具 $TOOL 夹爪 TCP Z+180 T_world_work T_world_base1 T_world_base2 T_base1_tool1 T_base2_tool2 P_work (P1~P4) P_world 统一表达 两台机器人共享同一空间点 机器人1 到达 P1/P2 机器人2 到达 P3/P4 变换链关系 世界→工件 世界→基座 基座→工具 P_world 分发

常见问题与判断依据

多机协调中坐标系问题往往表现为“单机示教没问题,双机一起动就撞”或“抓取点总是偏一个固定量”。前者通常是两台机器人对世界坐标系的理解不一致,后者多半是工具坐标系或工件坐标系标定有误。排查时按变换链从外向内逐级验证:先确认两台机器人对同一世界点读数一致,再确认各自 $BASE 正确,最后检查 $TOOL 和 $WORK。

不要用修改轨迹点的方式去“凑”坐标系误差。轨迹点一旦被污染,后续换工件或换工具时误差会重新出现,且难以追溯。