参考论文:Planar Odometry from a Radial Laser Scanner. A Range Flow-based Approach
RF2O根据传感器速度制定范围流约束方程,并最小化所得几何约束的鲁棒函数以获得运动估计。

设R(t,α)为范围扫描,其中t是时间,α∈[0,N)⊂R是扫描坐标,N是扫描的大小。 任何点P相对于连接到传感器的局部参考系的位置由其极坐标(r,θ)给出,如果从激光雷达扫描点P,则a如下所示,其中FOV为扫描仪的视野:

设ka=FOVN−1,则公式(1)为:
a=FOVN−1θ+2N−1=kaθ+2N−1
假设R是可微的,则在第二次扫描的中,每个点的范围可以表达成泰勒展开式(公式2):
R(t+Δt,a+Δa)=R(t,a)+∂t∂R(t,a)Δt+∂a∂R(t,a)Δa+O(Δt2,Δa2)其中Δt是连续扫描之间的时间间隔,Δa表示所考虑的点的扫描坐标的变化。
忽略二阶/高阶项,设:ΔR=R(t+Δt,a+Δa)−R(t,a),Rt=∂t∂R(t,a),Ra=∂a∂R(t,a)将扫描梯度与区间[t,t+Δt]期间点的范围和扫描坐标的变化联系起来,则公式(2)化简如下:ΔR≈RtΔt+RaΔa同时除以Δt得到:ΔtΔR≈Rt+RaΔtΔa
假设rˊ=ΔtΔR,aˊ=ΔtΔa,在区间[t,t+Δt]内,扫描点范围和扫描坐标的平均速度!因此可以得到(公式4)(range flow constraint equation):ΔtΔR≈Rt+RaΔtΔa⟹rˊ≈Rt+Raaˊ=Rt+Rakaθˊ

为了描述所有点在相同的向量基下的速度,我们将径向和方位角速度(rˊ,θˊ)转换为笛卡尔表示(xˊ,yˊ),如上图所示,可得到:rˊ=xˊcosθ+yˊsinθ同理:rθˊ=yˊcosθ−xˊsinθ
强制每个明显的运动都是由于激光雷达平移或加上旋转所引起的,即假设每个点都相对于传感器移动,好像它是刚体的一部分,其速度相同但与传感器的符号相反,即:(xˊyˊ)=(−vx,s+yωs−vy,s−xωs)
将转换后的笛卡尔速度代入到公式4中,可以推导得到:
rˊ≈Rt+Rakaθˊ⟹xˊcosθ+yˊsinθ≈Rt+Rakaryˊcosθ−xˊsinθ即:xˊ(cosθ+rRakasinθ)+yˊ(sinθ−rRakacosθ)−Rt=0再加上刚才的假设:(−vx,s+yωs)(cosθ+rRakasinθ)+(−vy,s−xωs)(sinθ−rRakacosθ)−Rt=0⟹vx,s(cosθ+rRakasinθ)+vy,s(sinθ−rRakacosθ)+ωs(xsinθ−ycosθ−Raka(rcosθx+sinθy))+Rt=0又因为r=cosθx+sinθy
因此最终化简得到:vx,s(cosθ+rRakasinθ)+vy,s(sinθ−rRakacosθ)+ωs(xsinθ−ycosθ−Raka)+Rt=0
总得来说,每个扫描点对传感器运动都施加了限制,因此,3个线性独立的限制在理论上足以估计它。