机器人仿真越准,越会逼着编码器芯片交代问题 , 从 ABB 的 RobotStudio HyperReality 说起

首发于公众号「如是有为」 · 查看原文

机器人仿真越准,越会逼着编码器芯片交代问题  , 从 ABB 的 RobotStudio HyperReality  说起

前几天看到 ABB 发了一条机器人仿真的新闻,说 RobotStudio HyperReality 可以让虚拟机器人和真实机器人的行为相关性最高达到 99%。这句话翻译成人话就是:以后客户在电脑里调好的机器人,搬到真实产线上,应该越来越像。

机器人仿真越准,越会逼着编码器芯片交代问题  , 从 ABB 的 RobotStudio HyperReality  说起

这当然是好事。

但我做磁编码器芯片,看到这个数字的第一反应不是“仿真真强”,而是:那剩下不像的 1%,最后会算到谁头上?

因为机器人关节里有个很小、但很要命的东西:编码器。它负责告诉伺服系统——轴到底转到了哪里。仿真里,它可能只是一个理想位置传感器模型;到了真实产线,它会被温度、磁钢偏心、装配误差、伺服纹波、自校准算法一起折腾。

所以 ABB 的 99%,对我们这种做底层位置芯片的人来说,不是一个遥远的行业新闻。它更像一张提前递过来的验收单,上面写着:仿真很准。那现实里剩下的偏差,你解释一下。

看到那条新闻当天,我没有第一时间去看宣传视频。我先翻了一遍最近整理的一张温度补偿曲线。那是一张 7 个温度点的标定表,−40°C 到 +125°C,中间拆成几段,两点之间做二次拟合。群里有人转发新闻,后面跟了一个“牛”的 emoji。我没接话,把那条温度曲线从屏幕角落拖到中间,放大,看完,才回了一句:“99% 很厉害,但剩下那 1% 谁签字?”

真正让人紧张的,不是编码器误差本身,而是它会被机器人结构一级一级放大。编码器看到的可能只是 0.05°。听起来很小,对吧?0.05°,肉眼基本看不出来。但如果这个误差发生在一条 1 米长的机械臂根部关节上,换算到末端,大概就是:1 m × sin(0.05°) ≈ 0.87 mm。

这还只是一个关节。六轴机器人里,每个关节都有编码器。每个关节都有温漂、偏心、减速器回差、齿槽转矩、控制环延迟。最后叠到末端,你看到的就不是 0.05°,而是焊点偏了,胶路歪了,插针没插进去,视觉补偿开始疯狂救场。所以机器人行业最怕的不是“大误差”。大误差很好抓。最怕的是这种:每个零件看起来都合格,装到一起就是不对。

第一道坑:温度补偿

规格书上写温漂 ±10 ppm/°C,看起来很干净。但真正出厂前打了几个温度点?4 个?7 个?低温有没有打到 −40°C?高温有没有覆盖到客户现场?两点之间是线性插值,还是二次拟合?这些东西,规格书通常只留下一个漂亮结果。但到了现场,那就不是一个结果了。同样一颗磁编码器芯片,在实验室 25°C 下曲线很好看。放进机器人关节里,跑到 60°C、80°C,再叠加电机发热、外壳散热、产线环境温度,角度误差就开始长出自己的脾气。

仿真模型里,编码器温漂可以按规格书最大值代入。但真实车间里,那条曲线是不是还听规格书的话,要看它被装进哪台机器、跑了多久、旁边那颗电机热成什么样。

第二道坑:磁钢和装配偏心

很多人以为磁编码器就是芯片读磁场,然后算个角度。没那么简单。理想情况下,磁钢转一圈,芯片看到的正弦、余弦信号应该像圆规画出来一样干净。但真实磁钢不是数学模型。磁极强弱会不一致,磁钢会偏心,芯片会有安装倾斜,磁场里会混进高次谐波,电机电流还会在旁边制造干扰磁场。于是芯片看到的,不是一个完美圆,而是一个被压扁、拉歪、带毛刺的椭圆。算法要做的事,就是从这个椭圆里猜出真实角度。

这就是磁编码器最残酷的地方:你以为芯片在读角度,其实它一直在审讯一个会撒谎的磁场。

更麻烦的是,这类误差很难在仿真模型里被一句话描述清楚。因为它不是规格书里某一行“最大误差”,而是这台具体关节模组装出来以后留下的那一份残差。

第三道坑:是自校准

这几年业内不少团队都在做非匀速自校准。理论上,它可以在没有外部高精度基准的情况下,把角度误差校到一个相对一致的位置。但现场不会按论文里的理想条件运行。伺服驱动器的纹波如果刚好落在某个尴尬频段,自校准可能并不会直接失败。它会收敛,曲线也会变顺,系统看起来也能跑,但它可能只是把系统校到了一个自洽但偏的位置。直到客户拿更高一级的基准去对,才发现角度残差不对劲。

这种问题,规格书上不会写。论文里能找到推导。但落到一条真实产线、一台真实机器人、一个真实验收单上,最后还是会变成一句话:偏差原因是什么?责任人是谁?

所以我看到 ABB 的 99%,真正想到的不是新闻稿。我想到的是一张验收单。仿真报告那一栏写着:相关性 99%。旁边还有两栏:偏差原因和责任人。

部署工程师不签字,不一定是因为他不相信仿真。他可能相信 ABB,相信 NVIDIA,相信 RobotStudio,相信 Omniverse。但他不知道那剩下的 1% 里,某个 0.05° 到底该归谁。归到编码器温漂?归到磁钢偏心?归到装配工艺?归到伺服纹波?还是归到自校准算法在这台机器上没有真正收敛?归错一项,下一批返修单就会回到他签字的那一栏。

如果是我去签这张表,我不会先问:“你这个 99% 到底准不准?”我会先问编码器供应商:你的温度补偿表是几个点的?最低温和最高温覆盖到我的现场了吗?磁钢一致性的批次数据能不能调出来?装配偏心有没有单独测?自校准在我们这套伺服纹波下跑出来的残差曲线长什么样?

因为 ABB 不知道一颗编码器芯片的标定基准是哪一台光栅尺,也不知道那台光栅尺最近一次复校是什么时候,更不知道复校时的温度,和芯片标定时的温度差了几度。

这就是“仿真做到 99%”之后真正可怕的地方。它不是把问题消灭了,而是把原来糊在一起的问题,全都摊开了。以前很多灰区,可以用一句话带过去:“现场再调一下。”“这批先过。”“下版再优化。”“客户那边工况比较特殊。”

但当仿真越来越准,系统越来越透明,这些话就不够用了。每一个误差都要有名字,每一段补偿都要有数据,每一次漂移都要能追到批次、温度点、标定设备、装配工艺和算法版本。

这对机器人行业当然是好事。但对每一个底层器件供应商来说,它也是一次压力测试。你以前可以躲在“系统误差”里面,现在不行了。系统越准,越能看出你那一小段不准。

下班路上我还在想一件事:很多现场问题,最后最怕的不是填错原因,而是没人敢填原因。如果填的是“编码器温漂”,下一版补偿表就得改;如果填的是“装配工艺”,工艺段就得拿数据;如果填的是“控制参数”,伺服那边就得重新跑验证。但更常见的,是偏差原因那一栏先空着。

这才是 99% 让人紧张的原因。不是因为它不准,而是因为它太准了。准到最后所有人都要面对那两栏:偏差原因和责任人。

仿真报告可以放在附件里。但这两栏,最后一定会落到具体的人、具体的参数表、具体的那颗芯片上。

应作如是观
公众号「如是有为」二维码

关注公众号「如是有为」

微信扫一扫,新文章先在公众号发出。