光流传感器是移动机器人、无人机领域中无GNSS环境下的测速器件,其本质是通过捕捉连续帧间的图像纹理运动,输出图像平面的二维相对位移。

本文从光流的物理定义与数学基础出发,系统梳理Lucas–Kanade、Horn–Schunck等经典算法原理,解析专用光流ASIC的硬件架构与输出特性,深入阐述“光流+测距+IMU”多传感器融合的几何逻辑与工程框架,并全面总结工程应用中的误差来源、标定方法与系统设计要点。


一、光流的基本概念

1.1 光流与光流场

光流(Optical Flow) 描述的是场景中物体或相机自身运动导致的、连续两帧图像之间目标表观运动的二维向量场。简单来说,当相机与地面发生相对运动时,视野内的纹理点会在图像平面上产生位移:若t0t_0t0时刻某纹理点坐标为(x,y)(x,y)(x,y)t1t_1t1时刻运动至(x+Δx,y+Δy)(x+\Delta x, y+\Delta y)(x+Δx,y+Δy),则(Δx,Δy)(\Delta x, \Delta y)(Δx,Δy)即为该点的图像运动向量。当整幅图像中每个像素点都对应一个二维运动向量v(x,y)=[u(x,y)v(x,y)]\mathbf{v}(x,y)=\begin{bmatrix}u(x,y)\\v(x,y)\end{bmatrix}v(x,y)=[u(x,y)v(x,y)]时,便构成了光流场(Optical Flow Field)

光流反映的是图像相对于传感器的运动,而非机器人本身的物理运动。机器人的实际运动方向通常与图像运动方向相反,且需经过坐标系旋转变换才能映射到机体坐标系。

1.2 亮度恒常性假设与光流约束方程

光流计算的前提是亮度恒常性假设(Brightness Constancy Assumption):对于图像中的同一纹理点,在极短的时间间隔内,尽管其在图像中的位置发生变化,但像素灰度值保持不变,即:
I(x,y,t)=I(x+Δx,y+Δy,t+Δt)I(x,y,t) = I(x+\Delta x, y+\Delta y, t+\Delta t)I(x,y,t)=I(x+Δx,y+Δy,t+Δt)
其中III为像素灰度值,x,yx,yx,y为图像坐标,ttt为时间。

对右侧进行一阶泰勒展开并代入原式,消去两边的I(x,y,t)I(x,y,t)I(x,y,t)后可得:
IxΔx+IyΔy+ItΔt=0I_x\Delta x + I_y\Delta y + I_t\Delta t = 0IxΔx+IyΔy+ItΔt=0
两边除以Δt\Delta tΔt,得到光流领域最核心的光流约束方程(Optical Flow Constraint Equation)
Ixu+Iyv+It=0\boxed{I_x u + I_y v + I_t = 0}Ixu+Iyv+It=0
式中u=dx/dtu=dx/dtu=dx/dtv=dy/dtv=dy/dtv=dy/dt分别为xxxyyy方向的光流速度,IxI_xIxIyI_yIy为图像灰度在xxxyyy方向的空间梯度ItI_tIt为灰度随时间的变化率

1.3 孔径问题:单像素的欠约束困境

光流约束方程中,IxI_xIxIyI_yIyItI_tIt均可通过图像差分计算得到,但方程包含uuuvvv两个未知量,仅用单个像素的信息无法唯一求解二维光流,这就是著名的孔径问题(Aperture Problem)

孔径问题直接决定了不同纹理区域的光流可追踪性:

  • 平坦均匀区域:灰度梯度近似为0,约束完全失效,无法追踪运动;
  • 单一边缘:仅能提供垂直于边缘方向的运动分量,无法确定沿边缘方向的运动;
  • 角点/高纹理区域XXXYYY两个方向均存在显著灰度梯度,可提供两个方向的约束,是光流追踪的最优特征。

这一特性与Harris、Shi-Tomasi等特征点检测算法的角点选择逻辑本质一致。


二、经典光流算法原理

为解决孔径问题,研究者提出了不同的约束假设,形成了两大经典算法体系:基于局部一致性的Lucas–Kanade算法,与基于全局平滑性的Horn–Schunck算法

2.1 Lucas–Kanade:局部窗口运动一致性

算法思想

Lucas–Kanade(LK)算法的核心假设是:在一个足够小的图像窗口内,所有像素的运动速度近似相同。例如取5×55\times55×5的邻域窗口,窗口内每个像素都满足光流约束方程,从而构建超定方程组,通过最小二乘法求解唯一的二维速度。

数学推导

设窗口内有nnn个像素,每个像素iii满足:
Ixiu+Iyiv=−ItiI_{xi}u + I_{yi}v = -I_{ti}Ixiu+Iyiv=Iti
将所有像素的方程组合为矩阵形式:
[Ix1Iy1Ix2Iy2⋮⋮IxnIyn][uv]=[It1It2⋮Itn] \begin{bmatrix} I_{x1} & I_{y1}\\ I_{x2} & I_{y2}\\ \vdots & \vdots\\ I_{xn} & I_{yn} \end{bmatrix} \begin{bmatrix} u\\ v \end{bmatrix}= \begin{bmatrix} I_{t1}\\ I_{t2}\\ \vdots\\ I_{tn} \end{bmatrix} Ix1Ix2IxnIy1Iy2Iyn[uv]=It1It2Itn

简写为Av=bA\mathbf{v} = \mathbf{b}Av=b。由于n>2n>2n>2,方程组超定,通过最小二乘法求解得:
v=(ATA)−1ATb\boxed{\mathbf{v} = (A^TA)^{-1}A^T\mathbf{b}}v=(ATA)1ATb

Lucas–Kanade算法属于稀疏光流,仅对特征点进行追踪,计算量小,适合嵌入式场景。OpenCV中的cv::calcOpticalFlowPyrLK()便是金字塔Lucas–Kanade算法的官方实现。

2.2 图像金字塔:解决大位移追踪

基础Lucas–Kanade算法隐含一个前提:帧间位移Δx\Delta xΔxΔy\Delta yΔy很小,此时一阶泰勒近似才成立。当运动速度较快、帧间位移达到几十像素时,近似误差会显著增大,导致追踪失败。

图像金字塔(Image Pyramid) 是解决这一问题的标准方案:将原始图像逐层下采样缩小,构建多分辨率金字塔。先在最低分辨率层估计大尺度运动,再逐层向上层高分辨率图像进行修正,最终得到精确的亚像素级光流。

例如原图位移32像素,经过3次下采样(缩小8倍)后,位移仅为4像素,满足一阶近似的适用条件。这种多层级的LK算法被称为金字塔Lucas–Kanade算法(Pyramidal Lucas-Kanade),可处理远大于基础LK的运动范围。

2.3 Horn–Schunck:全局平滑约束

与Lucas–Kanade的局部假设不同,Horn–Schunck算法从全局视角出发,提出光流场在整个图像区域内应整体平滑变化的约束。该算法构造了一个全局能量函数:
E=∬[(Ixu+Iyv+It)2+α2(∣∇u∣2+∣∇v∣2)]dxdyE = \iint \left[ (I_x u + I_y v + I_t)^2 + \alpha^2\left( |\nabla u|^2 + |\nabla v|^2 \right) \right] dxdyE=[(Ixu+Iyv+It)2+α2(∣∇u2+∣∇v2)]dxdy

能量函数包含两项:

  1. 数据项(Ixu+Iyv+It)2(I_x u + I_y v + I_t)^2(Ixu+Iyv+It)2,要求光流满足亮度恒常约束;
  2. 平滑项∣∇u∣2+∣∇v∣2|\nabla u|^2 + |\nabla v|^2∣∇u2+∣∇v2,惩罚光流场的剧烈突变,保证空间平滑性。

参数α\alphaα用于平衡数据一致性与平滑程度:α\alphaα越大,光流场越平滑;α\alphaα越小,越贴合原始图像梯度数据。Horn–Schunck算法可输出稠密光流场,但计算量远大于稀疏LK算法,在嵌入式光流传感器中较少直接采用。

2.4 经典算法性能对比

不同算法在精度、鲁棒性、计算效率上各有侧重,需根据应用场景选择。对于机器人测速场景,稀疏、低延迟的金字塔LK算法及其硬件变体是主流选择。


三、专用光流传感器:从通用算法到ASIC实现

工程中提到的“光流传感器”(如PMW3901)是集成了图像采集与光流计算的专用ASIC芯片,不是“普通摄像头+MCU跑OpenCV算法”的组合,这是理解其工程特性的关键。

3.1 硬件架构与工作流程

专用光流传感器的内部数据流如下:

光学镜头 → 小型图像传感阵列 → 曝光/ADC → 专用图像处理ASIC → 帧间运动匹配/跟踪 → SPI接口输出(Δx,Δy)

PMW3901芯片是一颗内部完成光流计算的光学流专用ASIC,直接输出帧间二维运动信息,而非原始图像数据,无需外部处理器进行像素级运算。这种架构将光流计算固化在硬件中,相比通用方案具有算力开销低、延迟低、帧率高的显著优势。

3.2 与光学鼠标的同源性与差异

PMW3901的设计思路与计算机光学鼠标高度同源:两者均通过连续拍摄表面纹理,经相关匹配运算输出ΔX\Delta XΔXΔY\Delta YΔY位移。区别在于工作距离:

  • 传统光学鼠标:工作距离仅几毫米,紧贴桌面;
  • PMW3901类传感器:针对远距离表面跟踪优化,有效工作距离可达80mm以上,适配无人机、地面机器人的离地高度场景。

3.3 低分辨率的合理性

光流传感器通常仅采用35×3535\times3535×35像素级别的极低分辨率图像。光流的任务是“追踪纹理的相对位移”,而非“识别目标内容”:只需要判断一块纹理下一帧移动了几个像素,无需高清细节。极低的分辨率是实现高帧率、低算力、低延迟的核心前提。

3.4 与通用摄像头方案的对比

对比维度PMW3901类光流ASIC普通摄像头 + OpenCV软件光流
输出ΔX\Delta XΔXΔY\Delta YΔY、图像质量指标完整图像帧
算力需求极低(仅需SPI通信)较高(需CPU/GPU处理像素)
输出延迟极低(硬件级计算)较高(图像传输+算法运算)
图像分辨率极低(30~40像素见方)高(数百万像素)
算法灵活性固化硬件,修改极有限完全可定制,支持稠密光流
目标识别能力基本不具备可支持目标检测、语义分割
典型场景机器人测速、定点悬停视觉里程计、SLAM、目标跟踪
嵌入式适配极易,轻量化MCU即可驱动难度高,需高性能处理器

四、尺度困境:光流为什么不能直接输出“米”

光流传感器的局限在于尺度不可观:它只能输出图像平面的像素位移或运动计数,无法直接对应物理世界的米级位移,必须结合距离信息才能恢复实际运动尺度。

4.1 针孔成像模型下的尺度关系

根据针孔相机投影模型,空间中一点P=(X,Y,Z)P=(X,Y,Z)P=(X,Y,Z)ZZZ为深度,即相机到地面的垂直距离)投影到图像平面的坐标为:
x=fxXZ,y=fyYZx = f_x \frac{X}{Z}, \quad y = f_y \frac{Y}{Z}x=fxZX,y=fyZY
其中fxf_xfxfyf_yfyxxxyyy方向的焦距(像素单位)。

当相机沿XXX方向平移ΔX\Delta XΔX时,对应的图像位移Δx\Delta xΔx满足:
Δx≈−fxZΔX\Delta x \approx -\frac{f_x}{Z}\Delta XΔxZfxΔX
整理得实际物理位移:
ΔX≈−ZfxΔx\boxed{\Delta X \approx -\frac{Z}{f_x}\Delta x}ΔXfxZΔx
同理YYY方向:
ΔY≈−ZfyΔy\boxed{\Delta Y \approx -\frac{Z}{f_y}\Delta y}ΔYfyZΔy

由此可见:实际物理位移 = 光流像素位移 × 深度 / 焦距。深度ZZZ直接决定了像素位移对应的物理尺度,相同的图像位移,在低空对应很小的物理运动,在高空对应很大的物理运动。

4.2 从像素流到线速度的链路

工程中通常将光流转换为角速度,再结合高度得到线速度,完整转换链路为:

像素/帧 × 帧率 → 像素/秒 ÷ 焦距 → 弧度/秒 × 深度 → 米/秒

对应的核心公式为:
ΔX/ΔY/Quality\Delta X/\Delta Y/\text{Quality}ΔXY/Quality . v≈Z⋅Δpf⋅Δt\boxed{v \approx Z \cdot \frac{\Delta p}{f \cdot \Delta t}}vZfΔtΔp
其中Δp\Delta pΔp为帧间像素位移,Δt\Delta tΔt为帧间时间,fff为焦距,ZZZ为传感器到地面的距离。

4.3 PX4中的弧度单位解析

PX4飞控中光流的输出单位为弧度(rad),代表图像相对于传感器的积分角运动,而非米级位移。例如飞行器前进对应光流+Y+Y+Y,向右对应光流−X-XX,这种映射关系本质是将图像运动解释为绕传感器机体轴的角位移。

读取到flow_xflow_y后的首要操作是确认其单位:是原始计数(tick)、像素、弧度还是弧度/秒,直接当作米/秒使用容易出错。

4.4 PMW3901的原始输出格式

PMW3901通过SPI读取的原始数据为int16_t类型的deltaXdeltaY,这些值是无物理单位的运动计数(motion ticks/counts),只有结合传感器到表面的距离,并假设表面近似平坦,才能换算为实际物理运动。

除XY位移外,芯片的Motion Burst输出还包含:

  • 表面质量指标(SQUAL):表征纹理跟踪置信度;
  • 图像强度统计(rawDataSum、maxRawData、minRawData);
  • 快门时间(shutter):曝光相关参数。

PX4驱动中会将原始计数通过385.0的比例因子转换为弧度值,该因子为特定硬件的标定转换系数,不具备普适性。


五、黄金组合:光流+测距+IMU的多传感器融合

单一光流无法可靠输出机器人速度,工程中几乎都采用“光流+测距传感器+IMU”的组合,三者各司其职,通过EKF融合得到稳定的状态估计。

5.1 IMU的作用:解耦平移与旋转光流

光流无法区分“相机平移”和“相机旋转”:即使机器人原地不动,仅发生偏航旋转,整幅图像也会产生大幅光流。因此,测量得到的总光流可分解为两部分:
Measured Flow=Translation Flow+Rotation Flow\text{Measu\(\mathbf{r}\)ed Flow} = \text{T\(\mathbf{r}\)anslation Flow} + \text{Rotation Flow}Measured Flow=Translation Flow+Rotation Flow

要得到用于测速的平移光流,必须减去旋转带来的光流分量:
Translation Flow=Measured Flow−Rotation Flow\boxed{\text{T\(\mathbf{r}\)anslation Flow} = \text{Measu\(\mathbf{r}\)ed Flow} - \text{Rotation Flow}}Translation Flow=Measured FlowRotation Flow

而旋转量通常由IMU中的陀螺仪提供,这一过程称为陀螺补偿(Gyro Compensation)

从完整的相机运动场方程可以更严谨地验证这一点:
x˙=−VxZ+xVzZ+xyωx−(1+x2)ωy+yωz\dot{x} = -\frac{V_x}{Z} + x\frac{V_z}{Z} + xy\omega_x - (1+x^2)\omega_y + y\omega_zx˙=ZVx+xZVz+xyωx(1+x2)ωy+yωz
y˙=−VyZ+yVzZ+(1+y2)ωx−xyωy−xωz\dot{y} = -\frac{V_y}{Z} + y\frac{V_z}{Z} + (1+y^2)\omega_x - xy\omega_y - x\omega_zy˙=ZVy+yZVz+(1+y2)ωxxyωyxωz
观察方程结构可得出两个关键结论:

  1. 平移光流依赖深度:平移项均包含1/Z1/Z1/Z因子,与距离成反比;
  2. 旋转光流与深度无关:旋转项仅由角速度ω\omegaω决定,不随距离变化。

这从本质上解释了光流、测距、陀螺仪三者天然互补的特性。

5.2 测距传感器的作用:恢复物理尺度

如前文所述,光流仅能输出像素级或角度级运动,必须通过测距传感器提供的深度ZZZ,才能将角运动转换为米级线速度。高度测量的误差会直接线性传递为速度误差:
δvv≈δhh\frac{\delta v}{v} \approx \frac{\delta h}{h}vδvhδh
即高度误差5%,理论上会导致约5%的速度尺度误差。因此PX4官方明确推荐使用LiDAR或高精度ToF传感器为光流提供距离尺度。

5.3 杠杆臂效应:安装偏心的补偿

光流传感器通常并非安装在机器人的旋转中心,当机器人发生转动时,传感器会因偏心产生额外的线速度,进而引入虚假光流。传感器相对旋转中心的位置矢量为rrr,机器人角速度为ω\boldsymbol{\omega}ω,则传感器的牵连线速度为:
v=ω×r\boxed{\mathbf{v} = \boldsymbol{\omega} \times \mathbf{r}}v=ω×r
这一现象称为杠杆臂效应(Lever-arm Effect)

PX4的EKF2中提供了EKF2_OF_POS_X/Y/Z参数,用于配置光流传感器相对机体中心的位置偏移,对杠杆臂效应进行补偿。

5.4 时间同步的关键作用

多传感器融合中,时间戳是测量值不可分割的一部分。光流、IMU、测距传感器的采样时刻通常存在差异,如果强行将不同时刻的数据对齐,高速运动下会产生显著误差。

尤其是陀螺补偿环节,要求光流测量与陀螺仪角速度必须对应同一时间段;速度计算也需要同一时刻的高度数据。工程中通常采用硬件同步触发或软件时间戳插值对齐,保证数据的时间一致性。

5.5 EKF融合框架

典型的光流辅助导航系统采用扩展卡尔曼滤波(EKF)进行多传感器融合,系统状态通常包含位置、速度、姿态、陀螺仪零偏、加速度计零偏等。

  • 预测步:由IMU的加速度计和陀螺仪数据进行状态预测,积分得到姿态、速度和位置;
  • 更新步:光流提供相对于地面的水平运动观测,测距传感器提供高度观测,对IMU的漂移进行校正。

光流的价值在于抑制IMU水平方向的长期漂移,而非取代IMU。它特别适用于室内、地下、仓库等GNSS拒止环境,是无人机定点悬停、地面机器人平稳运动的关键技术。

需要注意的是,光流本质是视觉里程计式的速度观测,只能通过积分得到相对位置,无法提供绝对位置信息,长时间运行仍会产生累积漂移。

5.6 数据处理流程

地面纹理 → 镜头 → 图像传感器 → 光流处理器 → 原始(Δx,Δy)
→ 尺度与坐标方向校正 → 角光流
→ 减去陀螺仪旋转分量 → 平移光流
→ 乘以测距高度 → 物理线速度
→ 输入EKF进行状态融合 → 输出位置/速度 → 飞行控制器

六、工程误差

6.1 地面纹理缺失

光流依赖图像灰度梯度进行运动估计,纯白墙面、镜面、玻璃、均匀地面等无纹理场景会导致Ix≈0I_x\approx0Ix0Iy≈0I_y\approx0Iy0,光流约束失效,无法可靠估计运动。哑光、高对比度的纹理表面(如木纹、水泥地)最适合光流工作。

6.2 重复纹理歧义

周期性重复纹理(如条形瓷砖、格栅)会导致匹配歧义:算法无法区分移动了1个周期还是多个周期,产生整周期的跳变误差。

6.3 光照条件影响

光照不足会导致图像信噪比下降,梯度提取质量降低,光流误差增大。新一代集成光流模块(如Holybro H-Flow)集成了红外补光LED,专门用于改善低照度下的跟踪性能,体现了“光流+测距+IMU+补光”的一体化发展趋势。

6.4 运动速度与运动模糊

光流传感器存在最大可跟踪角速度:当帧间位移过大时,图像块无法匹配;同时高速运动还会产生运动模糊,进一步降低匹配精度。

PMW3901数据手册标称最大可跟踪角速度约7.4 rad/s,PX4驱动中保守采用5 rad/s作为最大光流速率阈值。由于v≈hωv \approx h\omegav,最大可跟踪线速度与高度成正比:高度0.1m时约0.74m/s,高度1m时约7.4m/s。因此用“最大角速度”比“最大线速度”更能准确描述光流芯片的性能边界。

6.5 工作高度的双向约束

工作高度并非越高越好:

  • 高度过低:相同线速度下图像角速度大,容易超出最大跟踪速率;
  • 高度过高:地面纹理在图像中占比过小,像素分辨率不足,特征丢失。

因此光流传感器存在最优工作高度区间,需根据具体应用场景选择。

6.6 地面倾斜的影响

前文的尺度推导假设地面平坦且与光轴垂直,若地面倾斜,图像不同区域的深度ZZZ不一致,整张图无法使用统一的尺度因子。对于输出整体二维运动的PMW3901类传感器,地面倾斜会引入系统性的尺度误差,因此光流测速最适用于近似平坦的地面场景。

6.7 机械振动干扰

无人机电机振动会传递给光流传感器,导致图像高频抖动,产生虚假光流。即使机器人实际未移动,光流输出也可能出现非零值。应对措施:

  • 传感器刚性安装,避开共振频率;
  • 高精度陀螺补偿,抵消高频角振动;
  • 优化传感器安装方向,降低振动耦合。

6.8 质量阈值的重要性

光流输出的quality/SQUAL指标表征本次测量的置信度,工程应用中绝不能忽略。必须设置质量阈值,当质量低于阈值时丢弃该帧数据,避免错误观测污染状态估计。PX4 EKF2中便通过EKF2_OF_QMIN参数配置光流最低融合质量。

光流测量数据结构应至少包含:时间戳、积分光流X/Y、积分时间、质量、对应高度。

6.9 相对运动的局限性

光流测量的是传感器与观测表面之间的相对运动,无法区分是机器人在动还是地面在动。例如无人机悬停在传送带上方时,光流会误判为机器人在运动。在工业场景中观察输送带、移动物料时需特别注意这一特性。


七、工程标定与系统设计指南

7.1 光流传感器的三个核心量

评估任何光流设备,应优先关注三个参数:

  1. 光流值(Flow)delta_x/delta_y或积分光流,是运动测量的主体;
  2. 质量值(Quality/SQUAL):表征测量置信度,是数据有效性的判断依据;
  3. 积分时间(Integration Time):光流对应的时间跨度,是计算速度的必要参数。

在此基础上补充测距值、陀螺仪数据、时间戳,即可构成完整的工程测量数据集。

7.2 软件架构设计建议

自主搭建光流测速系统时,建议采用分层软件架构:

OpticalFlowDriver(硬件驱动层)
    ↓
OpticalFlowMeasurement(数据结构层)
    ↓
FlowPreprocessor(预处理层)
    ├─ 坐标旋转变换
    ├─ 尺度标定转换
    ├─ 质量门限过滤
    ├─ 陀螺旋转补偿
    └─ 时间戳对齐
    ↓
FlowVelocityEstimator(速度估计层)
    ↑ 测距数据输入
    ↓
EKF / State Estimator(状态估计层) 

7.3 四项关键标定

一套可靠的光流系统至少应完成以下四项标定:

① 坐标方向标定

手动沿机体+X+X+X方向移动机器人,观察光流输出的flow_xflow_y,确认:

  • XY轴是否互换;
  • X/Y方向是否反向;
  • 传感器坐标系到机体坐标系的旋转偏移。

PX4中通过SENS_FLOW_ROT参数配置光流模块的安装偏航角。

② 尺度标定

在多个已知高度下,沿轨道移动机器人已知距离,记录累计光流计数,拟合得到尺度因子与高度的关系,而非仅在单一高度标定一个常数。建议覆盖0.2m、0.5m、1.0m、2.0m等典型工作高度。

③ 陀螺补偿标定

让机器人原地纯旋转,理论上平移光流应为零。若输出显著非零,需检查陀螺补偿参数、外参标定或时间同步是否存在问题。

④ 质量阈值标定

在木纹、水泥、纯白桌面、瓷砖、金属、玻璃、低照度等典型场景下,分别记录光流质量值、输出方差与速度误差,通过实验确定合理的最低质量阈值QminQ_{min}Qmin,避免凭经验设置。


八、概念辨析:光流、VO、VIO与SLAM

  1. 光流(Optical Flow):关注图像的二维表观运动,输出像素/角度级位移,是底层运动测量;
  2. 视觉里程计(VO):关注相机在三维空间的运动,通过特征匹配与几何计算输出6自由度位姿(旋转+平移);
  3. 视觉惯性里程计(VIO):融合相机与IMU,输出高精度6自由度状态估计;
  4. 视觉SLAM:在估计自身运动的同时构建环境地图,实现重定位与回环检测。

复杂度与信息量排序为:
光流传感器<VO<VIO<视觉SLAM\text{光流传感器} < \text{VO} < \text{VIO} < \text{视觉SLAM}光流传感器<VO<VIO<视觉SLAM

计算量与硬件需求也随之递增。光流传感器是其中最轻量化、最适合嵌入式小型机器人的方案。


总结

光流传感器是图像相对运动传感器。它的核心输出是图像平面的二维运动,必须结合距离信息恢复物理尺度,结合姿态/角速度信息解耦平移与旋转,才能得到可靠的机器人实际水平速度。

从系统分层视角,光流导航体系可分为七层:

  1. 光学层:地面纹理经镜头成像于CMOS;
  2. 图像运动层:帧间匹配得到像素位移/运动计数;
  3. 几何层:经焦距与尺度转换为角光流;
  4. 运动解耦层:减去陀螺仪旋转分量,得到平移光流;
  5. 尺度恢复层:乘以测距值,得到米级线速度;
  6. 状态估计层:与IMU、测距融合,经EKF输出状态;
  7. 控制层:状态量输入控制器,驱动电机执行。

对于小型无人机与地面机器人而言,光流以极低的算力、重量与成本,提供了相对于地面的速度反馈,构成了闭环控制系统的“地面参考速度环”,是无GNSS环境下实现稳定悬停与平滑运动的核心技术。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐