工业机器人基础:五大核心坐标系

作者:互联网

2026-04-19

AI快讯
graph TD  %% 定义样式  classDef world fill:#f3f4f6,stroke:#374151,stroke-width:2px,color:#111827;  classDef robot fill:#e0f2fe,stroke:#0284c7,stroke-width:2px,color:#0c4a6e;  classDef task fill:#ffedd5,stroke:#ea580c,stroke-width:2px,color:#7c2d12;
  W[" 大地坐标系 {W}
World Frame"]:::world subgraph 机器人运动链 [机器人本体变换 TF Tree] direction TB B[" 基坐标系 {B}
Base Frame"]:::robot J["️ 关节坐标系 {J}
Joints (θ1...θn)"]:::robot E[" 法兰坐标系 {E}
End-Effector"]:::robot T[" 工具坐标系 {T}
TCP (Tool Center Point)"]:::robot B -- "正运动学 (FK)" --> J J -- "连杆运动" --> E E -- "工具偏置 (Offset)" --> T end subgraph 外部工作环境 [任务场景变换 TF Tree] direction TB U["️ 用户坐标系
User Frame"]:::task O[" 工件坐标系 {O}
Work Object"]:::task P[" 目标路径点
Target Point"]:::task U -- "零件安放偏移" --> O O -- "局部特征坐标" --> P end W -- "底座安装位置" --> B W -- "工作台/导轨位置" --> U T -. "运动控制终极目标:
TCP 精准对齐目标点" .-> P

大地坐标系/世界坐标系

大地坐标系是一个固定不动的坐标系。在机器人运动过程中,机器人本体的坐标系会随之移动和转动,但大地坐标系始终保持静止。

  • 符号表示: 通常记作 W" role="presentation" style="position: relative;">WOw" role="presentation" style="position: relative;">Ow
  • 坐标原点: 一般选在工作站的基座中心、工厂地面的某一个固定角点,或者地图上的起始位置。
  • 坐标轴方向:
    • 通常遵循右手定则(Right-hand Rule)
    • 在室外移动机器人(如无人机、无人车)中,常采用 东北天(ENU)北东地(NED) 坐标系。

基坐标系

基坐标系是机器人运动描述的起点。对于一台工业机器人来说,无论它的机械臂如何旋转、伸展,基坐标系的原点和轴向都是相对于机器人底座保持不动的。

  • 符号表示: 通常记作 B" role="presentation" style="position: relative;">BO0" role="presentation" style="position: relative;">O0
  • 原点位置: 绝大多数情况下,原点位于机器人第一根轴(J1轴)与安装底面的交点中心。
  • 轴向:
    • Z轴: 通常重合于机器人第一关节的旋转轴线,指向正上方。
    • X轴: 通常指向机器人正前方(参考出厂预设)。
    • Y轴: 根据右手定则确定。

工具坐标系

工具坐标系是安装在机器人末端法兰盘上的坐标系。它随着机器人的运动而实时运动,主要用于描述工具中心点(Tool Center Point, TCP)的位置和姿态。

  • 符号表示: 通常记作 T" role="presentation" style="position: relative;">TTCP" role="presentation" style="position: relative;">TCP
  • 坐标原点(TCP): 通常位于工具的执行点(如焊枪的尖端、吸盘的中心、夹爪的指尖中心)。
  • 轴向定义:
    • Z轴: 通常定义为工具的工作方向(如钻头的轴线、激光射出的方向)。
    • X/Y轴: 根据右手定则及工具的对称性来定义,用于描述工具的旋转角度(姿态)。

如果没有工具坐标系,机器人只知道自己的“手腕”(法兰盘中心)在哪,而不知道它手里拿的“工具尖端”在哪。

  • A. 轨迹控制

    • 当你要求机器人绕着一个圆孔进行打磨时,你需要控制的是打磨头的尖端走圆周运动,而不是手腕中心走圆周运动。通过设定 TCP,控制器可以自动计算关节运动,使工具尖端保持在预定轨迹上。
  • B. 姿态调整(重定位运动)

    • 这是工具坐标系最神奇的地方。定义好 TCP 后,你可以让机器人绕着工具尖端进行“旋转”。

    • 例子: 焊枪尖端顶在焊缝上不动,机械臂在后方摆动以寻找最佳焊接角度。这时,TCP 点在空间中是静止的,这被称为重定位运动(Reorientation)

  • C. 更换工具的灵活性

    • 如果你从一把长 10cm 的焊枪换成一把长 20cm 的焊枪,你不需要重新编写所有运动程序。你只需要更新工具坐标系的偏移量(Offset),原有的程序逻辑依然适用。

在实际工程中,工具的几何中心往往很难通过肉眼对准。最常用的标定方法是 “四点法”或“六点法”

  1. 找一个基准点: 在工作台上放一根针或者定一个尖锐的固定点。
  2. 四点标定: 操控机器人,用工具的尖端从四个不同的姿态(角度)去触碰这同一个固定点。
  3. 算法求解: 机器人控制器会根据这四个点在基坐标系下的坐标,利用几何推导计算出工具尖端相对于法兰盘中心的 X、Y、Z 偏移量。

工具坐标系 T" role="presentation" style="position: relative;">T 是相对于机器人末端法兰盘坐标系 E" role="presentation" style="position: relative;">E(End-effector)定义的。

ETT" role="presentation" style="position: relative;">ETT 为工具相对于法兰盘的变换矩阵(包含平移和旋转),那么工具在大地坐标系 W" role="presentation" style="position: relative;">W 下的位姿为:WTT=WTBBTEETT" role="presentation" style="text-align: center; position: relative;">WTT=WTBBTEETT

  • WTB" role="presentation" style="position: relative;">WTB: 底座相对于大地的位置。
  • BTE" role="presentation" style="position: relative;">BTE: 机械臂正运动学算出来的手腕位置。
  • ETT" role="presentation" style="position: relative;">ETT: 你标定好的工具偏移量。

工件坐标系-用户坐标系

你可以把用户坐标系看作是一个“大容器”,而工件坐标系是里面的“具体内容”。

  • 用户坐标系 (User Frame / User CS): 通常定义的是工作台、导轨或大型设备相对于机器人基座的位置。
  • 工件坐标系 (Work Object / Object Frame): 定义的是具体零件相对于用户坐标系的位置。

数学公式表达:

" role="presentation" style="text-align: center; position: relative;">

设想你在一个大的自动化流水线上:

  1. 用户坐标系: 你定义了整个“传送带”的位置。如果传送带整体挪动了,你只需要修改这个 User Frame。
  2. 工件坐标系: 传送带上跑着不同的零件(比如 A 型手机壳和 B 型手机壳)。虽然传送带没动,但零件放的角度变了,你只需要修改对应的 Object Frame。

这种“嵌套”结构让你在处理复杂场景(比如移动机器人底座载着一个机械臂去操作不同桌子上的物体)时,逻辑非常清晰。

工件坐标系是建立在被加工工件(或工作台)上的坐标系。它定义了工件相对于机器人基座或大地坐标系的位置和姿态。

  • 符号表示: 通常记作 O" role="presentation" style="position: relative;">OWobj" role="presentation" style="position: relative;">Wobj
  • 原点位置: 通常选在工件的一个特征角点(如零件的左下角)。
  • 轴向定义: 通常 X 轴和 Y 轴与工件的边缘平行。

这是工业机器人编程中最实用的功能之一,其核心优势在于“逻辑与物理的分离”

  • A. 简化编程(点位直观)

    • 假设你要在一个倾斜 30° 的桌面上画一个正方形。

    • 没有工件坐标系: 你需要计算每个顶点的三维空间坐标(X, Y, Z 全都在变)。

    • 有了工件坐标系: 你只需把坐标系建立在桌面上。在程序里,你只需写 (0,0), (100,0), (100,100), (0,100)。至于桌面是怎么斜的,交给控制器去补偿。

  • B. 整体偏移(一键修模)

    • 如果工件在工作台上的位置挪动了 5 厘米,或者这批零件的安放角度偏了 2°:

    • 不需要更改程序里的成百上千个路径点。

    • 你只需重新标定工件坐标系(更新它的原点位置和旋转角度),所有的运动轨迹会自动跟着工件“跑”到新位置。

  • C. 离线编程(Digital Twin)

    • 你在电脑上(如 RobotStudio 或 Gazebo)模拟好了一套抓取动作,导出的坐标是相对于 CAD 模型原点的。当程序导入实机时,只要在物理工件上定义好同名的工件坐标系,仿真动作就能完美复现。

工件坐标系通常由两个部分嵌套而成:

  1. 用户坐标系 (User Frame): 相对于基座(比如定义工作台的位置)。
  2. 对象坐标系 (Object Frame): 相对于用户坐标系(比如定义工作台上具体零件的位置)。

数学变换公式:BTT=BTWWTOOP" role="presentation" style="text-align: center; position: relative;">BTT=BTWWTOOP其中 BTW" role="presentation" style="position: relative;">BTW 是基座到工件坐标系的变换。

关节坐标系

可视化:https://gemini.google.com/share/f4dcada8c12d

关节坐标系是用来描述机器人每一个独立关节(电机)运动状态的参考系。

  • 变量表示: 通常用向量 θ=[θ1,θ2,θ3,,θn]" role="presentation" style="position: relative;">θ=[θ1,θ2,θ3,,θn] 表示。
  • 坐标原点: 每个关节的零位(Zero Position)。这通常是机器人出厂标定时定义的机械原点。
  • 单位:
    • 旋转关节(Revolute): 度(°)或弧度(rad)。
    • 移动关节(Prismatic): 毫米(mm)或米(m)。

关节坐标系与空间坐标系的互换是所有算法的基础:

  • 正运动学(Forward Kinematics, FK): 已知所有关节的角度 [θ1θn]" role="presentation" style="position: relative;">[θ1θn] " role="presentation" style="position: relative;"> 计算出末端 TCP 在基坐标系下的位置 [x,y,z]" role="presentation" style="position: relative;">[x,y,z]

    这就像:我知道我肩膀、手肘、手腕转了多少度,算出我指尖在哪个坐标上。

  • 逆运动学(Inverse Kinematics, IK): 已知末端 TCP 要去的坐标 [x,y,z]" role="presentation" style="position: relative;">[x,y,z] " role="presentation" style="position: relative;"> 反求出各个电机需要转多少度 [θ1θn]" role="presentation" style="position: relative;">[θ1θn]

    这是 VLA 或运动规划中最难的部分,往往涉及复杂的三角函数或数值迭代。

相关标签:

网络协议 算法 数据可视化 机器人 开发者

相关推荐