3. 误差源分析:几何参数误差、非几何参数误差
做机器人参数辨识这么多年,我最大的体会就是——误差这东西,你躲不掉,只能认清楚它从哪来的。很多新手一上来就急着调算法、跑优化,结果辨识出来的参数一塌糊涂。为什么?因为连误差的根儿都没摸清楚。
这一章,我们就来掰扯掰扯误差的源头。说白了,就两大类:几何参数误差和非几何参数误差。我习惯把它们比作「硬伤」和「软病」——一个来自制造装配,一个来自物理特性。
3.1 几何参数误差:那些「差之毫厘,谬以千里」的事
几何参数误差,指的是机器人名义模型和实际物理结构之间的偏差。你图纸上画的是100mm,实际加工出来是100.05mm,这就是几何误差。
我在项目中遇到过一台六轴机器人,标称重复定位精度±0.02mm,但实际干活时末端偏差能到0.3mm。查了半天,最后发现是连杆长度误差和关节零位偏移叠加造成的。嗯,这就是典型的几何参数误差。
- 连杆长度误差:加工公差、装配间隙导致实际长度与DH参数不符
- 关节零位偏移:编码器安装时没对准,或者机械限位有偏差
- 关节轴线不平行/不垂直:装配时轴线角度偏离设计值
- 基座安装误差:机器人底座没调平,或者固定螺栓有松动
- 工具中心点(TCP)误差:末端执行器安装位置与标定值不一致
你想想看,这些误差单个看都不大,但经过运动学链的传递,到了末端就是几倍甚至几十倍的放大。我见过最夸张的一次,一个0.01°的关节零位偏移,在1米臂展末端产生了0.17mm的偏差——这就是杠杆效应。
3.2 非几何参数误差:那些「看不见摸不着」的力
几何误差好歹还能用尺子量、用激光跟踪仪测。非几何参数误差就麻烦了——它跟受力、温度、磨损都有关系,是动态变化的。
我个人习惯把非几何误差分成三类:柔性变形、齿轮间隙、其他乱七八糟的(摩擦、热膨胀、迟滞等)。
3.2.1 柔性变形:机器人也会「弯腰」
很多初学者以为机器人是刚体,其实不是。你拿一个50kg的负载装在末端,关节和连杆都会变形。尤其是谐波减速器和RV减速器,它们的扭转刚度有限,受力后会产生明显的角度偏差。
我曾经调试过一个重载搬运机器人,空载时定位精度很好,一抓取工件就偏了0.5mm。排查了很久,最后发现是关节柔性导致的。后来在模型里加入了柔性参数,精度直接提升了一个数量级。
3.2.2 齿轮间隙:回程误差的元凶
齿轮间隙,也叫背隙或回程误差。说白了就是齿轮啮合时,齿和齿之间那点「空档」。当关节换向时,电机转了一小段,但输出端没动——这就是间隙在作怪。
我记得有一次做轨迹跟踪实验,机器人走圆形轨迹时,在四个象限切换点出现了明显的「毛刺」。一开始以为是控制参数没调好,后来用激光干涉仪一测,发现是RV减速器的背隙在换向时产生了约0.02°的跳变。
3.3 误差源分类总结
为了让你看得更清楚,我整理了一张表。这张表我在做项目时经常翻出来对照,排查问题很有用。
| 误差类别 | 具体来源 | 典型量级 | 辨识难度 | 我的建议 |
|---|---|---|---|---|
| 几何参数误差 | 连杆长度 | 0.01~0.5 mm | 低 | 用激光跟踪仪直接测量 |
| 关节零位偏移 | 0.001°~0.1° | 中 | 通过辨识算法反算 | |
| 轴线不平行度 | 0.01°~0.2° | 中 | 需要多姿态测量数据 | |
| 非几何参数误差 | 关节柔性 | 0.001°~0.5° | 高 | 加载实验+刚度辨识 |
| 齿轮间隙 | 0.005°~0.1° | 高 | 换向实验+滞回模型 |
3.4 误差源之间的耦合:别把它们割裂开看
这里我要强调一点:几何误差和非几何误差不是独立的。它们会相互影响,甚至相互放大。
举个例子:一个关节有0.05°的零位偏移(几何误差),同时这个关节的减速器刚度较低(柔性误差)。当机器人带负载运动时,柔性变形会改变实际关节角度,进而让零位偏移的「表现」变得更加复杂。你单独辨识任何一个,结果都不准。
我曾经踩过这个坑。一开始只辨识了几何参数,精度提升到0.2mm就卡住了。后来把柔性参数加进去,精度直接干到0.05mm。再后来发现齿轮间隙也有影响,补上之后到了0.02mm。所以我的建议是:能一起辨识就别分开,能建耦合模型就别用独立模型。
3.5 误差源分析的核心逻辑
下面这张图是我自己总结的误差源分析框架。每次做参数辨识前,我都会先按这个逻辑走一遍,确定哪些误差是主要的,哪些可以忽略。
这张图的核心思想是:从末端总误差出发,逐层分解到具体来源,再选择合适的辨识方法。我每次做项目都会先画这么一张图,把主要误差源标出来,然后决定先辨识哪个、后辨识哪个。
3.6 避坑指南
最后,分享几个我踩过的坑,希望能帮你少走弯路。
好了,这一章的内容就到这里。误差源分析是参数辨识的基石,地基打不牢,后面盖什么楼都得塌。希望你能把这些概念吃透,下一章我们就要开始动手做辨识实验了。
可可精品资料库