第二章:机器人运动学基础——坐标变换、DH参数、正逆运动学求解原理

各位同学,大家好。我是你们这门课的老朋友。今天咱们来啃一块硬骨头——机器人运动学基础。

说实话,很多刚入行的工程师觉得这玩意儿太理论,离实际焊接太远。但我告诉你,这恰恰是离线编程的灵魂。你想想看,没有坐标变换,你连焊枪往哪儿摆都不知道;不懂DH参数,你连机器人的胳膊都描述不清楚。我在现场调试时见过太多因为运动学没搞明白,导致机器人撞枪、焊偏的案例了。

好,咱们不废话,直接开整。

2.1 坐标变换:让机器人的“眼睛”和“手”对齐

焊接机器人本质上是个空间定位问题。你要让焊枪末端走到焊缝上的某个点,首先得知道这个点在哪。

这里涉及三个关键坐标系:

  • 世界坐标系:固定在车间地面的绝对坐标系。所有东西都拿它当基准。
  • 机器人基坐标系:固定在机器人底座上的坐标系。机器人自己认这个。
  • 工具坐标系:固定在焊枪末端的坐标系。焊丝伸出多长、角度怎么摆,全看它。

我个人的习惯是,拿到一个焊接工装,第一件事就是把世界坐标系和机器人基坐标系的关系标定清楚。这一步做不好,后面全是白搭。

坐标变换说白了就是三个旋转加一个平移。用数学语言表达就是:

P_base = R * P_tool + T

其中R是旋转矩阵,T是平移向量。你可能会问,为什么要用矩阵?因为矩阵可以连续变换,方便计算机算。

核心要点: 坐标变换的本质是“换个角度看问题”。同一个空间点,在不同坐标系下有不同的坐标值。我们做的就是找到它们之间的映射关系。

2.2 DH参数:描述机器人关节的“身份证”

DH参数是Denavit和Hartenberg这两位大佬搞出来的。它用四个参数就能完整描述一个关节到下一个关节的变换关系。

这四个参数分别是:

参数符号含义
连杆长度a相邻两关节轴线之间的公垂线长度
连杆扭角α相邻两关节轴线之间的夹角
关节距离d沿关节轴线的偏移量
关节转角θ绕关节轴线的旋转角度

我记得第一次接触DH参数时,觉得这东西太抽象了。后来在项目里给一台六轴机器人建运动学模型,才真正体会到它的妙处——你只要把每个关节的四个参数填进去,整个机器人的运动关系就清清楚楚了。

这里有个避坑指南:我曾经在标定DH参数时,把a和d搞反了,结果仿真里机器人动作完全变形。后来花了整整一天才排查出来。所以大家一定要记住:a是垂直于关节轴线的长度,d是沿着关节轴线的长度。

小技巧: 实际项目中,机器人厂家一般会提供DH参数表。但如果你用的是二手设备或者自己改装的机器人,那就得自己动手标定了。我建议用三点法标定,精度能到0.1mm以内。

2.3 正运动学:已知关节角度,求末端位姿

正运动学很简单:你告诉机器人每个关节转了多少度,它告诉你焊枪末端在哪儿、朝哪个方向。

数学上就是一连串的矩阵乘法:

T_0n = T_01 * T_12 * T_23 * ... * T_(n-1)n

其中每个T都是4x4的齐次变换矩阵,由DH参数计算得到。

你可能会觉得这有什么难的?不就是乘乘矩阵吗?但实际编程时,矩阵乘法的顺序千万不能错。我见过有人把左乘和右乘搞混了,结果机器人末端位置差了十万八千里。

正运动学在焊接离线编程中的应用场景:

  • 验证你设定的关节角度是否合理
  • 计算焊枪姿态是否满足工艺要求
  • 检测机器人是否处于奇异位形

2.4 逆运动学:已知末端位姿,求关节角度

这才是真正的难点。正运动学是“给因求果”,逆运动学是“给果求因”。

为什么难?因为逆运动学通常有多解。同一个焊枪位置和姿态,可能有多种关节角度组合能实现。比如六轴机器人,理论上最多有8组解。

我个人的经验是:不要试图手算逆运动学。对于六轴机器人,解析解极其复杂,而且容易出错。现在主流做法是用数值解法,比如牛顿-拉夫森法或者雅可比矩阵迭代法。

但理解原理还是有必要的。简单说,逆运动学求解就是解一组非线性方程组。对于常见的六轴机器人,可以通过“腕部分离法”把问题拆解:

  1. 先求前三个关节(决定位置)
  2. 再求后三个关节(决定姿态)

注意: 逆运动学求解时,一定要考虑关节限位。我曾经在项目里遇到一个情况:算法算出了一组解,但其中一个关节角度超过了机械限位,结果仿真时看着没问题,实际运行时直接撞了限位开关。所以,一定要在求解后加关节限位检查

2.5 知识体系总览

为了让大家更直观地理解本章的知识结构,我画了一张图:

机器人运动学基础——知识体系 机器人运动学 坐标变换 DH参数 正运动学 逆运动学 世界坐标系 基坐标系 工具坐标系 连杆长度a 连杆扭角α 关节距离d 关节转角θ 矩阵连乘 末端位姿计算 解析解法 数值解法 焊接离线编程与碰撞规避

从这张图你可以看到,坐标变换和DH参数是基础,正逆运动学是核心算法,最终都服务于焊接离线编程和碰撞规避这个实际应用。

2.6 实战中的几点建议

最后,我结合自己的项目经验,给大家几点实在的建议:

  • 坐标系标定一定要做精度验证。我习惯用四点法验证,误差超过0.5mm就重新标定。
  • DH参数不要照搬理论值。实际机器人由于制造和装配误差,DH参数和理论值会有偏差。有条件的话,用激光跟踪仪实测一下。
  • 逆运动学求解一定要考虑碰撞。多组解里,选那个不会撞到工件和夹具的。这个我们在后面碰撞规避章节会详细讲。
  • 仿真和实机要反复对比。我每次做完离线编程,都会先在仿真里跑一遍,再到实机上慢速验证一遍。别嫌麻烦,这能省下大把的现场调试时间。

好了,运动学基础就讲到这里。这些内容虽然偏理论,但它是后面所有高级功能的地基。你把它吃透了,后面学碰撞检测、路径规划就会轻松很多。


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