RF2O激光里程计算法原理

参考论文:Planar Odometry from a Radial Laser Scanner. A Range Flow-based Approach

RF2O根据传感器速度制定范围流约束方程,并最小化所得几何约束的鲁棒函数以获得运动估计。
RF2O激光里程计算法原理
R(tα)R(t,α)为范围扫描,其中tt是时间,α[0N)Rα \in [0,N)⊂R是扫描坐标,N是扫描的大小。 任何点P相对于连接到传感器的局部参考系的位置由其极坐标(rθ)(r,θ)给出,如果从激光雷达扫描点P,则aa如下所示,其中FOV为扫描仪的视野:
RF2O激光里程计算法原理
ka=N1FOVk_a = {N-1 \over FOV},则公式(1)为:
a=N1FOVθ+N12=kaθ+N12a = {N-1 \over FOV} \theta + {N-1 \over 2} = k_a \theta+{N-1 \over 2}

假设RR是可微的,则在第二次扫描的中,每个点的范围可以表达成泰勒展开式(公式2):
R(t+Δt,a+Δa)=R(t,a)+Rt(t,a)Δt+Ra(t,a)Δa+O(Δt2,Δa2)R(t+\Delta t,a+ \Delta a) = R(t,a)+{∂R \over ∂t}(t,a)\Delta t + {∂R \over ∂a}(t,a)\Delta a +O(\Delta t^2, \Delta a^2)其中Δt\Delta t是连续扫描之间的时间间隔,Δa\Delta a表示所考虑的点的扫描坐标的变化。

忽略二阶/高阶项,设:ΔR=R(t+Δt,a+Δa)R(t,a)Rt=Rt(t,a)Ra=Ra(t,a)\Delta R = R(t+\Delta t,a+\Delta a) - R(t,a),R_t={∂R \over ∂t}(t,a),R_a = {∂R \over ∂a}(t,a)将扫描梯度与区间[t,t+Δt][t,t +Δt]期间点的范围和扫描坐标的变化联系起来,则公式(2)化简如下:ΔRRtΔt+RaΔa\Delta R \approx R_t \Delta t + R_a \Delta a同时除以Δt\Delta t得到:ΔRΔtRt+RaΔaΔt{\Delta R \over \Delta t} \approx R_t+ R_a {\Delta a \over \Delta t}

假设rˊ=ΔRΔt\acute{r} = {\Delta R \over \Delta t}aˊ=ΔaΔt\acute{a}={\Delta a \over \Delta t},在区间[t,t+Δt][t,t +Δt]内,扫描点范围和扫描坐标的平均速度!因此可以得到(公式4)(range flow constraint equation):ΔRΔtRt+RaΔaΔt    rˊRt+Raaˊ=Rt+Rakaθˊ{\Delta R \over \Delta t} \approx R_t+ R_a {\Delta a \over \Delta t} \implies \acute{r} \approx R_t+ R_a\acute{a} =R_t+ R_ak_a \acute{\theta}

RF2O激光里程计算法原理

为了描述所有点在相同的向量基下的速度,我们将径向和方位角速度(rˊ,θˊ)(\acute{r},\acute{\theta})转换为笛卡尔表示(xˊ,yˊ)(\acute{x},\acute{y}),如上图所示,可得到:rˊ=xˊcosθ+yˊsinθ\acute{r}=\acute{x}cos\theta + \acute{y}sin\theta同理:rθˊ=yˊcosθxˊsinθr\acute{\theta}=\acute{y}cos\theta - \acute{x}sin\theta

强制每个明显的运动都是由于激光雷达平移或加上旋转所引起的,即假设每个点都相对于传感器移动,好像它是刚体的一部分,其速度相同但与传感器的符号相反,即:(xˊyˊ)=(vx,s+yωsvy,sxωs) \begin{pmatrix} \acute{x} \\ \acute{y} \\ \end{pmatrix} = \begin{pmatrix} -v_{x,s}+y\omega_s \\ -v_{y,s}-x\omega_s\\ \end{pmatrix}

将转换后的笛卡尔速度代入到公式4中,可以推导得到:
rˊRt+Rakaθˊ    xˊcosθ+yˊsinθRt+Rakayˊcosθxˊsinθr \acute{r} \approx R_t+ R_ak_a \acute{\theta} \implies \acute{x}cos\theta + \acute{y}sin\theta \approx R_t+ R_ak_a {\acute{y}cos\theta - \acute{x}sin\theta \over r}即:xˊ(cosθ+Rakasinθr)+yˊ(sinθRakacosθr)Rt=0\acute{x}(cos\theta+{ R_ak_a sin\theta \over r}) + \acute{y}(sin\theta-{R_ak_a cos\theta \over r}) - R_t=0再加上刚才的假设:(vx,s+yωs)(cosθ+Rakasinθr)+(vy,sxωs)(sinθRakacosθr)Rt=0( -v_{x,s}+y\omega_s)(cos\theta+{ R_ak_a sin\theta \over r}) + ( -v_{y,s}-x\omega_s)(sin\theta-{R_ak_a cos\theta \over r}) - R_t=0    vx,s(cosθ+Rakasinθr)+vy,s(sinθRakacosθr)+ωs(xsinθycosθRaka(cosθx+sinθyr))+Rt=0\implies v_{x,s}(cos\theta+{ R_ak_a sin\theta \over r}) + v_{y,s}(sin\theta-{R_ak_a cos\theta \over r})+ \omega_s(xsin\theta - ycos\theta - R_ak_a ({cos\theta x+sin\theta y \over r}))+R_t=0又因为r=cosθx+sinθyr=cos\theta x+sin\theta y
因此最终化简得到:vx,s(cosθ+Rakasinθr)+vy,s(sinθRakacosθr)+ωs(xsinθycosθRaka)+Rt=0 v_{x,s}(cos\theta+{ R_ak_a sin\theta \over r}) + v_{y,s}(sin\theta-{R_ak_a cos\theta \over r})+ \omega_s(xsin\theta - ycos\theta - R_ak_a)+R_t=0
总得来说,每个扫描点对传感器运动都施加了限制,因此,3个线性独立的限制在理论上足以估计它。