视觉伺服:误差到控制
IBVS 用图像特征误差和 interaction matrix 映射相机速度;标定误差、延迟和奇异位形在闭环里会被积分放大。

1. 难在闭环,不只在检测
基于位姿的视觉伺服三维误差直观,但手眼标定错两毫米,末端对着拧——误差在闭环里被积分放大。真机必先限幅、仿真、丢特征退化策略。OpenCV 提供角点跟踪、光流、透视 n 点,不包含完整视觉伺服控制器;实现多在 ViSP 或自研节点。视觉伺服是感知与控制耦合,几何、延迟、特征寿命任一条断,闭环都不稳。
2. 图像基 vs 位姿基
图像基伺服:误差是特征与期望特征之差,特征变化率等于交互矩阵乘相机速度,伪逆求速度。位姿基伺服:三维位姿误差进控制,依赖透视 n 点或深度,手眼变换必须准。图像基对手眼误差不直接敏感,但交互矩阵含深度倒数——深度估错两成可能仍收敛但慢。位姿基对深度更 explicit,标定错则稳态误差大。工业里混合方案常见,取舍看特征类型和标定预算。
3. 交互矩阵与深度
深度进入交互矩阵;估计错则收敛方向偏。常用期望图像与当前估计混合。特征点选 spread 大的配置,避免共线导致雅可比奇异。奇异时某自由度不可控,伪逆爆速——速度限幅是硬约束,不是调参可替代。眼在手上与眼在手外改交互矩阵形式;手眼标定常用 ROS 专用包,OpenCV 无直接手眼。标定残差和抓取重复性一起报,别只报重投影。
4. 控制频率分层
视觉三十赫兹、控制五百赫兹时,伺服输出速度设定点给低层阻抗,别单帧透视 n 点直接位置控制——解算噪声在位置环里放大。速度限幅防奇异爆速;工作空间盒子限制活动范围。特征跟踪丢点则切换备用特征或冻结运动;最少特征数阈值触发安全停止或后退:丢失超过三帧安全停止是常见操作规程,别硬跑直到撞限位。
5. 延迟与标定
| 问题 | 后果 |
|---|---|
| 延迟 | 振荡、超调 |
| 内参畸变错 | 稳态误差、收敛方向偏 |
| 特征丢失 | 发散 |
| 奇异位形 | 某自由度不可控 |
视觉链百分之九十九延迟应小于控制周期三分之一——三十赫兹视觉加五百赫兹控制时,视觉尾部大于三十三毫秒易振荡。内参错百分之一在开环检测可能无感,闭环图像基会积累稳态误差。
6. 案例:手眼两毫米对着拧
位姿基抓取手眼标定残差看起来零点五毫米,抓取重复性标准差四毫米——标定板厚度未补偿且只验证平移未验证旋转。改多姿态棋盘标定加一百次重复后标准差回到一点二毫米。开环标定残差不够,要看闭环重复性。
7. 仿真与真机边界
先在仿真里验阶跃超调小于百分之十、特征数误差曲线、丢特征安全停止日志,再限幅上真机。OpenCV 只负责感知链;控制器增益、限幅、工作空间在控制栈。我会把视觉延迟预算和手眼标定版本写进 bringup 摘要,换相机或标定后必须重跑闭环重复性。
8. 验收
- 仿真收敛:阶跃超调小于百分之十
- 特征数与误差曲线
- 手眼残差加抓取重复性一起报
- 丢特征超过三帧安全停止日志
- 视觉链尾部延迟对控制周期
- 真机速度限幅与工作空间触发记录
先仿真验收,再限幅上真机。视觉伺服把检测误差变成运动——比开环检测苛刻一个数量级。
相关
也可以看看
johan's blog