2. 坐标系与运动学基础:世界坐标系、关节坐标系、工具坐标系;正运动学与逆运动学概念
各位同学,欢迎来到第二章。这一章的内容,说白了就是运动控制的“世界观”。你想想看,要让一个机器人或者多轴平台动起来,首先得告诉它“你在哪”、“要去哪”、“怎么去”。这三个问题,就对应着坐标系和运动学。
我个人习惯把坐标系比作“语言的语法”。语法不对,话就说不清楚。坐标系搞混了,机器人就会撞墙。我在项目里见过太多次因为坐标系没搞对,导致调试到半夜的情况。所以,这一章咱们把基础打牢。
2.1 三大坐标系:你总得知道自己在哪
多轴系统里,最常用的就是三个坐标系。它们各有各的用处,也各有各的脾气。
核心概念速览:
- 世界坐标系: 绝对参考,大地原点。所有东西的最终位置都拿它来算。
- 关节坐标系: 每个轴自己的角度或位置。电机编码器读出来的就是它。
- 工具坐标系: 装在末端执行器上的“手眼”坐标。焊枪尖、夹爪中心,都靠它定义。
2.1.1 世界坐标系 (World Coordinate System)
这是最“大”的坐标系。它固定不动,是整个工作空间的绝对参考。你可以把它想象成工厂车间里的一个固定地标。不管机器人怎么动,它的底座在空间中的位置,就是用世界坐标描述的。
嗯,这里要注意:世界坐标系的原点通常选在机器人底座中心,或者工作台的一个固定角上。选在哪取决于你的工艺。我见过有人把原点选在传送带起点,结果每次产线改造都要重新标定,非常痛苦。所以,原点选一个“万年不动”的地方最稳妥。
2.1.2 关节坐标系 (Joint Coordinate System)
这个坐标系最“接地气”。它描述的是每个关节自身的运动。对于旋转关节,就是角度;对于直线关节,就是位移。
举个例子,六轴机器人,关节坐标系就是 J1、J2、J3、J4、J5、J6 这六个角度值。你给电机发指令,本质上就是在操作关节坐标系。但问题是,你很难直观地想象“让J3转30度,同时J5转-45度”之后,末端到底在哪。这就是关节坐标系的局限——不直观。
2.1.3 工具坐标系 (Tool Coordinate System)
这是最“实用”的坐标系。它附着在机器人的末端执行器上。比如你装了一个焊枪,焊枪尖就是工具坐标系的原点。你编程的时候,其实更关心“焊枪尖以什么姿态移动到焊缝位置”,而不是“第六个关节转了多少度”。
工具坐标系让编程变得直观。你只需要告诉机器人:“工具坐标系的原点,沿着世界坐标系的X轴移动100毫米。” 至于每个关节该怎么转,那是控制器的事。
我的经验: 调试时,我习惯先确认工具坐标系是否标定准确。有一次,一个协作机器人抓取总是偏2毫米,查了半天,最后发现是工具坐标系里TCP(工具中心点)的Z方向偏移设错了。标定工具坐标系,是现场调试的第一步,千万别省。
2.2 正运动学与逆运动学:从“想”到“动”的数学桥梁
有了坐标系,我们还得知道怎么在它们之间来回切换。这就是运动学干的事。
- 正运动学: 已知关节角度,求末端位姿。
- 逆运动学: 已知末端位姿,求关节角度。
说白了,正运动学是“现实”,逆运动学是“梦想”。
2.2.1 正运动学 (Forward Kinematics)
正运动学很简单。你给每个关节一个角度,通过一系列坐标变换(齐次变换矩阵),就能算出末端在空间中的精确位置和姿态。这个过程是唯一的,也是确定的。
公式长这样(以2轴平面机器人为例):
// 2轴平面机器人正运动学
// 已知:关节角度 θ1, θ2,连杆长度 L1, L2
// 求:末端位置 (x, y)
x = L1 * cos(θ1) + L2 * cos(θ1 + θ2);
y = L1 * sin(θ1) + L2 * sin(θ1 + θ2);
你给一组角度,它就给你一个点。没得商量,没得选择。我在做离线仿真时,经常用正运动学来验证模型对不对。如果模型建对了,仿真结果和实际机器人动起来的位置应该完全一致。
2.2.2 逆运动学 (Inverse Kinematics)
逆运动学就“麻烦”多了。你想让末端走到空间中的某个点,但关节该怎么转?这通常不是唯一的解。比如一个六轴机器人,同一个末端位置,可能有8组甚至16组关节角度解。
为什么会这样?因为机器人可以“弯着胳膊”去够一个点,也可以“伸着胳膊”去够。这就带来了多解问题。
避坑指南: 我曾经在调试一个码垛机器人时,逆运动学算法选错了解。结果机器人每次走到那个点,都会“翻腕”,差点撞到旁边的料架。后来我强制指定了“肘部向上”的解,才解决问题。记住:逆运动学必须结合关节限位和避障来选最优解。
逆运动学的求解方法主要有两种:
- 解析法: 速度快,精度高,但只适用于特定构型的机器人(比如有相邻三轴交于一点的机器人)。
- 数值法(迭代法): 通用性强,任何构型都能算,但速度慢,且可能不收敛。
实际工程中,对于工业机器人,90%的情况都用解析法。因为它的构型设计就是为了让逆解有解析表达式。
2.3 知识体系总览
下面这张图,把这一章的核心逻辑串起来了。你可以看到,从“关节空间”到“笛卡尔空间”,正逆运动学就是那座桥。
2.4 实战中的坐标系变换
在实际项目中,我们很少直接操作关节坐标。通常流程是这样的:
- 在世界坐标系下规划目标点。
- 通过逆运动学,算出每个关节的目标角度。
- 控制器驱动电机,读取编码器反馈的关节坐标。
- 通过正运动学,实时计算末端的实际工具坐标系位姿。
- 闭环修正。
你看,这一圈下来,三个坐标系和两个运动学全用上了。任何一个环节出错,机器人都会“抽风”。
关键参数对比表:
| 概念 | 输入 | 输出 | 解的数量 | 典型应用 |
|---|---|---|---|---|
| 正运动学 | 关节角度/位移 | 末端位姿 (x, y, z, Rx, Ry, Rz) | 唯一 | 仿真验证、状态监测 |
| 逆运动学 | 末端位姿 (x, y, z, Rx, Ry, Rz) | 关节角度/位移 | 多解 | 轨迹规划、在线控制 |
| 世界坐标系 | 固定原点 | 全局位置 | — | 绝对定位、多机协同 |
| 关节坐标系 | 电机编码器 | 单轴位置 | — | 底层驱动、限位保护 |
| 工具坐标系 | 末端工具参数 | 工具位姿 | — | 焊接、涂胶、抓取 |
好了,这一章的内容就这些。记住:坐标系是基础,运动学是工具。搞懂了它们,你就能听懂机器人在“说什么”,也能告诉它“该怎么做”。