起因

上一篇定关节模组的时候写了一句:输出端 23 位绝对值编码器,断电不丢零,黑灯车间半夜跳闸再来电,不用回零直接接着干。这句话背后其实压着一整套事:零点是什么,怎么会丢,丢了怎么救,怎么在它造成损失之前就发现。讨论到这里的时候冒出来一个问题:要不要加姿态探测的辅助传感器?加上这个,整套东西就齐了,这篇把它写透。

为什么值得单独写一篇:客户的车间是黑灯的。零点这种问题在有人车间是小事——开机发现不对,人拿工装重新对一遍就是了;在黑灯车间是大事故,它不报警,机器带着错位照干,废掉一整天的活,甚至把好端端的工位撞坏。

零点是什么,怎么会丢

控制器要知道每个关节"编码器读数是多少的时候,关节正好在零度",这个对应关系就是零点。零点一丢,控制器不知道臂现在摆成什么样,轻则不敢动,重则乱动。

行业里真丢,原因就那么几种。最常见的一种最不起眼:编码器的电池没电。绝对值编码器的单圈位置断电也记得住,但"总共转了几圈"这个多圈计数要电维持,靠一颗小电池撑着。电池到期、冬天低温衰减、或者断电的时候换电池,多圈数就没了,开机报"零点未建立"。传统工业臂把这个电池当定期维护项,实际车间里经常忘——电池到了年头没换,半夜跳一次闸,早上进门一屋子机器人趴窝,这种事故行业里年年有。

第二种是维修拆装。换电机、换编码器、换整个关节,装回去机械对应关系变了,旧零点作废。

第三种最阴:碰撞或过载打滑。编码器本身好好的,但关节在机械上错位了——联轴器打滑、法兰错动。没有报警,臂"以为自己是对的",这种要是没手段发现,就是废一天产品的那个。

丢了之后怎么救,传统做法是用工装重新对零点:销钉、量块卡进机械参考位,一个关节一个关节重新标。慢,要专用工装,要人爬上机器弄。协作臂这几年把这道题基本做没了——输出端绝对值编码器带断电保持,上电就知道每个关节的绝对角度,回零这个动作整个消失。

三道防线

对着上面三种丢法,一边选型一边设计,堵成三道。

第一道堵电池。23 位绝对值多圈,这六个字里还藏着一条缝,询价时要问死:多圈计数靠什么保持?电池式的,那颗电池就是五年后的零点丢失隐患,还是个要人定期换的维护项,跟黑灯车间犯冲;韦根式的,磁环一动自己感应出一点电把圈数记一笔,不用电池,终身免维护。同样的 23 位绝对值,多圈保持方式不一样,这条写进询价条件:优先韦根,电池式接受,但换电池这件事必须进维护表,按年头换,不等它没电。

第二道是零点表。每个关节的零点偏移存在我们自己的参数区里,双副本防写坏,跟模组的序列号一一对应。换模组装上就行,不用重新标定——上一篇说的就是这个用途。这里再补一层意思:编码器只负责报角度,零点归我们管。模组是买来的,零点表是我们自己的,自己管的东西才敢拍胸脯。

第三道对碰撞错位,就是上一篇埋的上电校验位姿:每次开机,两条臂走到一个固定的校验姿态,输出端编码器读数跟记录值比对,偏差超过五角分就报警停机。机械错位、打滑,开机当场暴露。

丢法 靠什么堵 剩下要盯的
电池多圈计数丢 韦根优先;电池式按年头进维护表 维护表别变成摆设
维修拆装后错位 零点表对序列号,装上即用 模组出厂标定错——到货验收那五道盖住
碰撞打滑暗错位 上电校验位姿加倾角计 绕竖轴的错位倾角计看不见,靠件重和视觉侧异常兜

倾角计:独立第二意见

第三道防线上面那行表里写了个倾角计,这是讨论里加进来的,值得单独说透。

校验位姿如果只拿编码器读数跟记录比,有个毛病:自己查自己。编码器的读数要经过减速器、经过安装法兰,才到臂本身,这条链条里任何一环错了——柔轮打滑、法兰错动、编码器支架松了——编码器都不知道,它忠实地报着一个错的角度。倾角传感器贴在臂上,直接对重力基准读数,中间什么都不经过。关节说"我转了 30 度",倾角计说"这截臂现在在 32 度",差值就是链条里某处出问题了。一个在传动链里面,一个在传动链外面,每天开机互相核一次。

装的位置定三个,不是全身都贴。每条臂的前臂中段一个:前臂是错位累积最敏感的地方,肩、肘两个抗重关节的错位到这儿全都叠上。躯干上一个,这个的用处超出零点校验——立柱那篇写了地坪沉降要半年复校一次水平,装了它就是天天自动复校:地坪沉了、底座螺栓松了、被叉车蹭歪了,读数一漂就报警,半年一次的人工检查变成每天一次的自动检查,白捡的。末端再挂个 IMU 算可选:碰撞瞬间的检测主力是关节电流那一套,IMU 是加分项,第一版不加,等真有漏检的碰撞再说。

成本没负担。485 输出的国产倾角计几百块一个,三个千把块钱。协议也正好:它就是慢速传感器,10 毫秒的读取周期足够,走立项篇给 485 留的那条维护慢路,不挤 EtherCAT 的 1 千赫兹主干。

局限照实说

倾角计不是万能的,三条局限写在这里,免得将来指望错地方。

它测的是相对重力的角度,只看得见俯仰和滚转,绕竖直轴的偏航它看不见——肩摆那个关节错了位,倾角计帮不上。好在那个关节不抗重,错位坏的是到位精度,出不了安全事故,何况件一轻,视觉那边对放置结果的异常也能兜一层。

动态时不准。臂一振,离心加速度和振动全混进读数里。所以它的用法只有停机静态校验——正好跟校验位姿是同一个动作,臂走到位停下来再读数,不额外占节拍。

精度有底。好的到 0.01 度,36 角秒,对分辨 60 角秒级的错位刚好够用;比这再小的错位它测不动,也不值得测——那个量级已经淹在减速器弹性变形里了。

校验位姿怎么设计

具体到动作。校验姿态不是随手一摆:双臂收到胸前,前臂摆 45 度左右的斜角。45 度这个数有讲究——倾角计读数对关节角度的敏感度是随姿态变的,前臂接近竖直时读数对关节角最不敏感,斜着的时候最敏感,小偏差放大得最清楚。

开机流程串起来是:上电,先不动,读躯干倾角计——这一步不用动臂就能先确认整机还水平;然后两条臂走到校验姿态,停稳,编码器和前臂倾角计互相核,偏差五角分以内通过,超了报警停机不干活。前后几秒钟,黑灯车间里每天第一次开工前自证一次清白。

这个姿态还顺手干了一件事:发货运输的时候,两条臂就固定收在这个姿态。机器到位开机,走的第一个动作就是校验——运输有没有磕出错位,装机的第一分钟就知道,不用等干起活来才发现。

接下来

到这篇为止,身子齐了,每天开工前能自证清白。下一篇回到自己动手最多的那层——1kHz 的薄执行器:RK3588 上怎么把十四个轴的 EtherCAT 主站跑稳,伺服循环怎么写,轨迹怎么插值,视觉那一层怎么接进来。模组是外购的,让它转起来的那一层,一行一行都是自己的。

参考链接