Home / 机器人经典基础 / 视觉伺服:机器人究竟应该追三维位置,还是追图像误差

037|视觉伺服:机器人究竟应该追三维位置,还是追图像误差

总览 · 目录 · 上一篇 · 下一篇

论文:Seth Hutchinson、Gregory D. Hager、Peter I. Corke,A Tutorial on Visual Servo Control,1996,IEEE Transactions on Robotics and Automation 12(5):651–670,十月期。作者保存的期刊全文。

先接住前作的问题

Resolved-rate能把任务速度变成关节速度,相机给出的却是图像误差。本篇把投影雅可比接入反馈;特征跟踪和标定是它需要组合的模块,而非竞争控制器。

五个前置概念

理解本文最需要五个概念:齐次变换连接坐标系;透视投影把三维点变成图像坐标;雅可比描述局部微小运动关系;伪逆在非方阵映射中求合适的速度;可观测性区分“机器人能动”与“相机能判断这种运动”。

一、问题设定:图像误差怎样闭合成机器人速度反馈

相机里目标向右偏了十个像素,机械臂应该向哪个方向移动多少?答案与相机位置、目标深度、所选特征、机械臂姿态和运动坐标系都有关系。视觉检测器只告诉你“看到了什么”,视觉伺服还要回答“为了减小误差应该怎样动”,并在运动后继续看。

先分清三个容易混淆的分类

分类问题 主要选择 真正改变的内容
相机放在哪里 末端搭载相机、固定外部相机 坐标变换和机器人运动如何改变图像
误差定义在哪里 三维位置/姿态,或图像特征 控制器直接消除的量
视觉作用于哪一层 视觉给内层控制器设定值,或直接形成驱动控制 动力学稳定由哪一层承担

这三条轴互不等价。手上装相机并不自动等于 IBVS,固定相机也能使用图像误差。原文 p.655 Fig. 2 给出两种相机配置,Fig. 3 展示 dynamic look-and-move 的层次结构:视觉估计进入笛卡尔控制环,关节反馈在内部控制机械臂。

本页定位:图 2内嵌图 · 图 3内嵌图。

“动态看后再动”容易被译名误导。这里可以是持续视觉反馈的外环,不等于拍一张照片后全程开环。论文还区分是否在图像中直接观测末端与目标:只看目标和同时看末端、目标,误差对标定的依赖不同,但同时跟踪两者会增加视野与识别负担。

本文讨论的是机器人视觉反馈控制,不是强化学习。输入通常包括目标特征或目标位姿、相机模型与连续图像;输出是期望速度或交给内层控制器的命令。回报函数、训练集规模和策略网络并非这一框架的必要组成。

二、对照PBVS与IBVS,推导图像和任务雅可比

PBVS:先恢复三维,再在任务空间控制

PBVS 的输入图像先进入特征提取和几何估计,得到目标相对相机的位姿,再通过已知外参转换为控制所需的坐标。控制误差可以写成位置差与一个适当的旋转误差,随后求期望末端运动。

这条路线的优点是任务容易解释:沿桌面移动十厘米、保持工具姿态、到达某个三维相对位置。缺点是几何重建误差进入闭环。相机标定、特征对应、目标模型和姿态求解条件都可能影响最后结果。

原文 p.660 §IV.D 讨论了这些权衡。位姿式方法能够自然处理一般相对位姿任务,但可能依赖准确目标模型;位置估计也可能受标定误差影响。滤波或平均可以降低噪声,却增加响应延迟。因此“估计更平滑”与“闭环更灵敏”不是同一个指标。

IBVS:直接消除图像特征误差

设图像特征向量为 ss,目标为 s∗s^*,误差 e=s−s∗e=s-s^*。图像雅可比或交互矩阵 LsL_s 满足

s˙=Lsξ,\dot s=L_s\xi,

其中 ξ\xi 是按固定约定表达的相机或末端速度。最简单的教学控制律为

ξ=−λL^s+e,λ>0.\xi=-\lambda\widehat L_s^+ e,\qquad\lambda>0.

帽子表示实际使用的估计矩阵,++ 表示伪逆。这个式子试图找到一项运动,让观察到的图像偏差减小。它不是从像素误差直接猜关节力矩:还需要坐标变换、机器人雅可比和内层执行。

以静止世界点、运动相机、归一化像平面坐标 x=X/Z,y=Y/Zx=X/Z,y=Y/Z 为教学约定,有

Lxy=[−1/Z0x/Zxy−(1+x2)y0−1/Zy/Z1+y2−xy−x].L_{xy}=\begin{bmatrix} -1/Z&0&x/Z&xy&-(1+x^2)&y\\ 0&-1/Z&y/Z&1+y^2&-xy&-x \end{bmatrix}.

前三列对应平移,后三列对应旋转。原文 p.661 式 (47) 的示例采用固定相机观察运动末端点,并保留焦距记号,所以其符号不能不加转换地与上式逐项拼接。确认“谁相对谁运动”比背住一个矩阵更重要。

这里深度 ZZ 仍然出现。IBVS 避开完整三维位姿重建,不代表完全不需要任何几何信息。深度可以估计、近似或更新,但估计误差会改变实际闭环动力学。

在理想可逆、矩阵准确的局部情形,代入控制律可以得到误差沿期望方向衰减的关系。然而一般有

e˙=−λLsL^s+e,\dot e=-\lambda L_s\widehat L_s^+e,

矩阵乘积未必等于单位阵。特征多于可控自由度时,误差还受到图像可实现性的约束;特征不足时,部分运动根本无法由图像判断。这是从控制式推得的局部理解,不能升级为任意初始位姿下的全局收敛保证。

负反馈成立,要看真正的图像运动方向

固定世界点、相机仅沿自身x轴平移,归一化像点 x=X/Zx=X/Z 满足 x˙=−vx/Z\dot x=-v_x/Z。若误差 e=x−xde=x-x_d、使用估计深度 Z^>0\hat Z>0,控制 vx=λZ^ev_x=\lambda\hat Z e 给 e˙=−λ(Z^/Z)e\dot e=-\lambda(\hat Z/Z)e。正深度误差改变收敛速度;变换方向写反却会直接变成正反馈。

教学核算取 Z=2Z=2米、Z^=1\hat Z=1米、e=0.1,λ=2 s−1e=0.1,\lambda=2\,\mathrm{s}^{-1},命令 vx=0.2v_x=0.2米/秒,像点速度为−0.1/秒。这里1秒衰减率,不是所希望的2秒倒数。推广到多特征和六自由度时,需要检查 LL^+L\hat L^+ 的局部性质,不能把标量正深度论证当成任意大运动全局稳定性证明。

这把Resolved-rate的速度逆解与相机标定的投影接口组合起来;Shi–Tomasi则提供可跟踪特征的前端模块。原文第V节明确先定义图像误差,再通过图像雅可比求机器人速度。教程中的应用例子来自多种系统,不是同一硬件上PBVS与IBVS的公平榜单。

输入、处理和输出的完整链条

原文 p.662 讨论方阵、过约束和欠约束的图像雅可比。当观测数量少于待控制自由度时,可以写出带零空间项的解;这不意味着那些方向已被视觉观测到。零空间动作还需靠其他任务、传感器或约束安排。

PBVS与IBVS把误差放在不同空间,最终都要给出一致坐标中的运动。像素例子先检查方向和深度,再说明教程中的解析关系为何不是通用控制性能排名。

三、接通观察到动作链条,用像素位移例子查符号

输入:期望图像特征 s*,图像流,相机/机器人几何参数
重复直到误差和速度达到停止阈值:
    提取并匹配当前特征 s,检查可见性与跟踪可信度
    计算 e = s - s*
    估计当前交互矩阵 L,包括需要的深度项
    检查秩与数值条件,求可控方向上的速度
    将相机速度转换到末端坐标并映射为关节命令
    由内层控制器执行一个有限周期
    获取新图像并重新闭环
输出:视觉误差收敛后的机器人状态,或失去可观测性的状态报告

这是 IBVS 教学流程,可信度检查和停止阈值是实现解释,不是声称论文给出统一软件接口。PBVS 则把中间部分换成“图像估计位姿→形成三维任务误差→求任务速度”。

一个可算的小例子

自构教学例子,未运行。 静止目标点深度为 1 m,归一化横坐标误差为 0.02,只允许相机沿横向平移,控制增益取 1 s⁻¹。此时 x˙=−vx/Z\dot x=-v_x/Z,选择 vx=0.02v_x=0.02 m/s 可使 e˙=−0.02\dot e=-0.02 s⁻¹。若把相机运动和目标运动的符号弄反,同样大小的速度反而扩大误差。

四、读教程解析关系与已有系统,避免伪造排行榜

Figs. 2–3:上方区分眼在手上与固定相机,下方展示视觉估计和内层机器人控制的连接
原论文方法图摘引:Seth Hutchinson、Gregory D. Hager、Peter I. Corke(1996),Figs. 2–3,PDF 第 5 页;核对原文。原版权保留。

读图:上方区分眼在手上与固定相机,下方展示视觉估计和内层机器人控制的连接。这两条分类轴独立:相机安装位置本身不决定使用图像误差还是三维位姿误差。

如何评价这篇教程,而不是硬套实验排行榜

这是一篇视觉伺服教程。结构图及所引应用例子不能合并成作者新实施的一套性能排行榜。

内容 原文用途 能回答的问题
系统框图 区分误差定义、传感与控制层次 视觉在闭环哪里起作用
几何与雅可比推导 说明像素变化与运动关系 控制矩阵从哪里来
点到点、点到线任务 展示如何选择图像约束 图像目标是否充分表达任务
跟踪算法实例 讨论速度、遮挡与纹理 控制器能否稳定拿到输入
文献与讨论 比较已有路线的适用条件 哪些选择依赖具体任务

这里没有统一环境交互步数、训练算力和随机种子对照。原文提及的应用系统来自不同研究,硬件、任务和相机也不同;把其运行频率列在一起排序,不能推断控制算法本身的优劣。

五处原文证据

1.p.655 Fig. 2–3。 前者对照固定相机与末端相机,后者展示位置式分层回路。它支持三条分类轴应该分开的解释,不能据相机位置直接判断控制误差的类型。

本页定位:图 2内嵌图 · 图 3内嵌图。

2.p.660 §IV.D。 讨论位姿估计和标定误差,以及三维任务描述的便利性。它支持 PBVS 的结构性权衡,不是给出一种固定误差阈值下的胜负结果。

3.p.661 式 (37)–(47)。 从图像雅可比定义推导点特征变化。它提供控制的几何基础,但依赖投影、深度和速度坐标约定;不能无条件套用到任意鱼眼相机或另一运动符号。

4.p.662–663 的伪逆与双目点定位例子。 两台相机产生四个图像坐标,并不意味着一个三维点有四个独立自由度。原文解释极线约束造成冗余,以及矩阵不能按表面维度直接取普通逆。它支持以秩而非特征数量判断信息。

5.p.665、p.667 的跟踪与讨论。 教程引用的边缘定位实现,在 Sun SPARC II 上处理所述 20 像素边缘、15 像素 Prewitt 型掩模和限定搜索范围时约需 1.5 ms,并讨论可在 30 Hz 下跟踪多个边缘。这个数字属于特定跟踪配置,不是整套机器人视觉伺服的延迟。p.667 还明确指出遮挡、背景干扰与视觉奇异性是任务执行中的问题。

五、检查深度、时延、特征维数与奇异性

这篇文章的主要新意是教程式综合:它让不同领域使用一致的坐标、速度、误差和系统术语,而不是宣称首次发明所有视觉控制方法。随后阅读现代基于视觉的操作方法时,这些区分仍能帮助识别模型究竟在估计什么、控制什么。

PBVS 的代价集中在三维重建与标定链,IBVS 的代价集中在交互矩阵估计、特征选择和视觉可观测性;两者都承受图像时延和跟踪失效。降低图像误差也未必产生理想三维路径:目标可能在途中离开视野,机械臂可能接近奇异构型,或者图像局部目标与真实任务不完全一致。

这些失败并不全来自控制律。有时问题是特征对应跳到了背景,有时是目标点深度估错,有时是速度执行层跟不上视觉外环。本文的分析建议按感知、几何、控制与执行分层诊断,而不是只调整控制增益。

六、追问:同一组像素误差用不同深度估计得到不同速度,应该怎样做公平比较?

同一组像素误差用不同深度估计得到不同速度,应该怎样做公平比较?

参考答案:固定相机、特征、目标和运动初态,只改变明确声明的深度估计,再同时观察图像误差与实际空间运动。仅比较像素残差可能掩盖过大的空间动作或不良路径。IBVS避免完整位姿恢复,并不意味着交互矩阵与几何条件可以省略。

七、为视觉反馈补上标定与可靠特征

八、自测与参考答案

问题 1:在机械臂末端安装相机,就一定使用 IBVS 吗?

参考答案:不是。相机布局决定观察几何,PBVS/IBVS 由控制误差定义决定。末端相机可以先估计目标三维位姿,再做 PBVS;固定相机也能直接比较图像特征做 IBVS。

问题 2:既然 IBVS 不必恢复完整三维位姿,为什么深度估错仍会影响运动?

参考答案:投影对平移的敏感度包含 1/Z1/Z。控制器使用错误深度时,估计的交互矩阵与真实映射不一致,实际误差动力学为 −λLL^+e-\lambda L\widehat L^+e,不再是简单的单位比例衰减。避免完整重建并不等于没有几何假设。

问题 3:双目看到同一个点得到四个像素坐标,能否直接控制末端六维位姿?

参考答案:不能。一个三维点的位置只有三维独立信息,双目四个坐标还受极线约束;单个点也不足以确定物体绕该点的全部旋转。需要更多具有合适几何布局的特征,或者用其他传感与任务约束补足不可观方向。