
095、视觉伺服:视觉引导运动控制一、从一次产线“抓瞎”事故说起去年在一条手机中框组装产线上,我遇到一个让人抓狂的问题:机械臂抓取精度在静态测试时达到±0.02mm,一上产线就飘到±0.3mm。产线振动?温度漂移?都不是。最后发现是视觉系统给了机械臂一个“错误的世界观”——相机标定参数在产线运行两小时后,因为光源发热导致镜头轻微膨胀,内参变了。机械臂按照出厂标定参数去抓,自然抓了个寂寞。这就是视觉伺服最核心的痛点:视觉系统不是上帝视角,它只是给运动控制系统提供了一个“带噪声的观测器”。你如果把它当成绝对真理,调试现场就会教你做人。二、视觉伺服到底在干什么?别被“伺服”两个字唬住。本质上,视觉伺服就是把摄像头当成一个位置传感器,只不过这个传感器不直接输出关节角度或笛卡尔坐标,而是输出图像特征。运动控制系统根据这些特征,反向计算出应该怎么动。常见的分类方式有两种:基于位置的视觉伺服(PBVS):先通过图像算出目标在三维空间中的位姿,再让机器人去那个位姿。听起来很直观对吧?但这里有个坑——三维位姿计算依赖相机标定精度,标定一飘,全盘皆输。上面那个产线事故就是PBVS的典型翻车现场。基于图像的视觉伺服(IBVS):不计算三维位姿,直接在图像平面里定义“误差”。比如目标特征点在图像中的坐标是(u_d, v_d),当前看到的是(u, v),误差就是Δu和Δv。然后通过图像雅可比矩阵(也叫交互矩阵)直接映射到机器人关节速度。这种方案对