首页 > 应用开发 > Python > 视觉引导机器人精度漂移——标定好了也白搭
做过视觉引导项目的兄弟,可能都遇到过这种怪事:头两周良率99.7%,第三周开始偶发漏抓,第四周直接停机,一查,夹爪实际落点比视觉给的位姿偏了快 3毫米,这期间没人动过标定参数,机器人也没撞过-43。
这不是个例,凡是“相机固定、机器人动”的Eye-to-Hand方案,跑上一两个月,多多少少都会遇到抓取精度往下掉。问题几乎都出在同一个地方:手眼矩阵没变,但产生它的那个物理系统变了-43。
第一个漂移源:机械和热。
六轴机器人连跑一个班次,关节电机温度能升15到25度,臂展1.5米左右的机器人,连杆一受热就伸长,末端位移能有0.3到0.8毫米,再叠加上减速机温升后刚性变化、反向间隙随磨损缓慢变大,末端综合漂移1到2毫米很常见-43。
也就是说,你标定那一刻,机器人是冷的、短的;跑起来两小时后,它是热的、长的。但手眼矩阵还是那个矩阵,世界已经不是标定时的世界了。
第二个漂移源:视觉测量本身。
产线上多数用的是普通LED条形光,驱动不是恒流的。车间温度一上来,LED发光效率往下掉,整幅图像变暗,阈值分割的边界就跟着偏,测出来的工件中心能漂0.2到0.5毫米。工业相机工作温度升上去,CMOS的暗电流和增益也变,同样光照下灰度值不同,边缘提取位置微动-43。
如果工件参考的是皮带上的基准而非机器人世界坐标,皮带张紧度随温湿度、负载一天一个样,这部分漂移也会被算进抓取误差里。
第三个漂移源:被忽略的标定脆弱点。
很多人用九点法或棋盘格标定,前提是机器人能精确走到示教点。可示教往往发生在机器人刚开机、还没热起来的冷态,等它跑热了,名义位姿和真实位姿已经差了一截,手眼矩阵从出生起就带偏差。更麻烦的是只标一次,系统里没有任何“在线再标定”的机制,偏差只会越积越多-43。
四套填坑方案,按性价比排序。
最划算的是固定参考标记加周期性在线补偿。 在相机视场里固定位置放一个已知机器人坐标的高精度靶标,陶瓷的或者蚀刻棋盘都行,关键是它的机器人坐标是锁死的。视觉系统每个班次开始、或者每跑N个循环,自动去认这个靶标,算出当前测到的位姿和理论值的差,把这个差当作手眼矩阵的增量补偿进去。整个过程几秒钟,不用人重新做手眼标定,热漂移、相机支架微动一股脑全吃掉了。要注意靶标得选在和工件同一深度平面、光照稳定的地方,本身不能脏、不能受热变形-43。
第二招是机器人侧热补偿。 记录关节温度或者运行时长,建一张“温度到末端补偿量”的查表或者多项式模型,叠到TCP或者手眼矩阵上。
第三招是视觉侧光源恒流驱动。 把普通的LED驱动换成恒流源,保证光源亮度不随温度变化。
第四招是定期重新标定。 每周或者每两周做一次完整的手眼标定,作为兜底方案。
这类问题,用ProtoForge可以模拟视觉传感器的输出信号,在没有真实相机和机器人的情况下,先把补偿算法逻辑验证一遍。
ProtoForge(工业协议仿真平台,17种协议,90+设备模板): GitHub:suoten/ProtoForge Gitee:suoten/ProtoForge
EdgeLiteGateway(AI物联网关,13种协议采集,边缘AI推理): GitHub:suoten/EdgeLiteGateway Gitee:suoten/EdgeLiteGateway
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70050062/viewspace-3184165/ ,如需转载,请注明出处,否则将追究法律责任。