Loam_livox 论文阅读

本文介绍了固态激光雷达(LiDAR)在特征提取和运动补偿方面的方法,包括点云处理中的特征点提取、去除不可靠点、帧内运动补偿。同时,针对动态物体,提出了动态物体滤波策略,通过迭代优化和残差检查来排除运动影响,从而提高定位和建图的准确性。
摘要由CSDN通过智能技术生成
  1. 摘要
  • 相较于传统机械式旋转雷达,固态激光雷达的视场角固定,每帧特征点少,容易意识特征匹配退化,受到局部最小值影响(移动的物体)
  • livox的非重复扫描:扫描路径不重复
  • 运动畸变:连续工作的激光在不同时间的取样造成
  • 雷达的特征边、平面、VFH 垂直直方图
  1. 点云提取
  • 距离
    D ( P ) = x 2 + y 2 + z 2 D(P)=\sqrt{x^2+y^2+z^2} D(P)=x2+y2+z2
  • 水平夹角
    ϕ ( P ) = tan ⁡ − 1 ( ( y 2 + z 2 ) / x 2 ) \phi(P)=\tan^{-1}(\sqrt{(y^2+z^2)/x^2}) ϕ(P)=tan1((y2+z2)/x2 )
  • 垂直夹角
    ϕ ( P ) = a t a n 2 ( y , z ) / P I ∗ 180 ° \phi(P)=atan2(y,z)/PI*180\degree ϕ(P)=atan2(y,z)/PI180°
  • 强度
    R : 激 光 反 射 强 度 R:激光反射强度 R:
    I ( P ) = R / D ( P ) 2 I(P)=R/D(P)^2 I(P)=R/D(P)2
  • 激光与平面的夹角
    在这里插入图片描述
    见上图: P b P_b Pb与局部平面的夹角
    P a c = P a − P c P_{ac}=P_a-P_c Pac=PaPc
    θ ( P b ) = c o s − 1 P a c P b ∣ P a c ∣ ∣ P b ∣ \theta(P_b)=cos^{-1}\frac{P_{ac}P_b}{|P_{ac}||P_b|} θ(Pb)=cos1PacPbPacPb
  • 移除不可靠的点
    (1)移除视场角边缘点,防止进行特征提取是不可靠(对于MID40:视场角:38.4,剔除 θ ( P b ) > 17 ° \theta(P_b)>17\degree θ(Pb)>17°
    (2)移除具有过大或过小的激光反射强度,(MID I ( P ) ≤ 7 × 1 0 − 3 , I ( P ) ≥ 1 × 1 0 − 1 I(P)\leq 7×10^{-3},I(P)\geq 1×10^{-1} I(P)7×103,I(P)1×101)
    强度过大:电路失真/饱和,距离失真 强度多小:噪声影响大
    (3)剔除入射角在 0 或 π 0或\pi 0π附近的,见上图点f,在取平均值时,测量值受大值影响较大,不能代表区域的特性。(MID, θ ( P ) ≤ 6 ° , θ ( P ) ≥ 175 ° \theta(P)\leq 6\degree,\theta(P)\geq 175\degree θ(P)6°,θ(P)175°
    (4)隐藏点:比如点 e e e,在边特征提取时会导致问题,如何确定隐藏点:
    ∣ P e − P d ∣ ≥ 0.1 ∣ P e ∣ 且 ∣ P e ∣ > ∣ P d ∣ |P_e-P_d|\geq 0.1|P_e| 且|P_e |>|P_d| PePd0.1PePe>Pd
    在这里插入图片描述
  • 特征提取
    由于特征点过少、FOV限制点,使用反射强度作为第4维变量,当一个点与周围点具有不同的反射强度值时,认为这个点时边缘点特征(材料变更导致),可以解决推行性变化,比如门和窗。
  1. 边到边的残差方程构建
  • 边到边
    ξ k : \xi_k: ξk:当前坐标系边缘点计
    ξ m : \xi_m: ξm:map坐标系边缘点
    p 1 , . . , 5 p_{1,..,5} p1,..,5:每一个 ξ k \xi_k ξk中的点在 ξ m \xi_m ξm中找到其最临近的5个点(PCL kd树最临近搜索,并采用并行加速),假设有个一点 P l ∈ ξ k P_l\in \xi_k Plξk,为了找到其在map中的临近点,需要将其映射到map:公式如下:
    在这里插入图片描述
    R k , T k R_k,T_k Rk,Tk:当前帧最后一个点的位姿
    P w = R k P l + T k P_w=R_kP_l+T_k Pw=RkPl+Tk
  • 使用点到直线距离构建残差方程优化位姿
    为了确保 P w P_w Pw相邻的5个点在一条直线上,计算其均值 u u u和协防差 ∑ \sum ,并且对协防差进行矩阵分解,如果最大的的特征值是第二大值的3倍,认为这5个点在一条直线上,之后构建残差方程如下(在P到直线距离)
    r e 2 c = ∣ P w − P 5 ∣ × ∣ P w − P 1 ∣ ∣ P 5 − P 1 ∣ r_e2c=\frac{|P_w-P_5|×|P_w-P_1|}{|P_5-P_1|} re2c=P5P1PwP5×PwP1
    4 . 面到面的残差
    P w P_w Pw为平面上的某点,在map上得到与其最临近的5个点,计算方差矩阵 ∑ \sum ,求解特征值,最小的特征值小于第二个小特征值三倍时,认为存在一个平面,构建点到面的最小距离:
    r p 2 p = ( P w − P 1 ) T ( ( P 3 − P 5 ) × ( P 3 − P 1 ) ) ∣ ( P 3 − P 5 ) × ( P 3 − P 1 ) ∣ r_{p2p}=\frac{(P_w-P_1)^T((P_3-P_5)×(P_3-P_1))}{|(P_3-P_5)×(P_3-P_1)|} rp2p=(P3P5)×(P3P1)(PwP1)T((P3P5)×(P3P1))
    在这里插入图片描述
  1. 帧内运动补偿
  • 线性插值
    T k , R k : T_k,R_k: Tk,Rk:当前帧位姿
    T k − 1 , R k − 1 T_{k-1},R_{k-1} Tk1,Rk1前一帧位姿
    存在如下关系:
    R k = R k − 1 R k − 1 k , T k = R k − 1 T k − 1 k + T k − 1 R_k=R_{k-1}R_{k-1}^k,T_k=R_{k-1}T_{k-1}^k+T_{k-1} Rk=Rk1Rk1k,Tk=Rk1Tk1k+Tk1
    对于 t ∈ [ t k − 1 , t k ] t\in[t_{k-1},t_k] t[tk1,tk],令 s = t − t k − 1 t k − t k − 1 s=\frac{t-t_{k-1}}{t_{k}-t_{k-1}} s=tktk1ttk1,t时间的位姿为:
    θ : 标 量 \theta:标量 θ:
    w : 单 位 向 量 ( 旋 转 向 量 ) w:单位向量(旋转向量) w:
    w ^ : w 的 斜 对 称 矩 阵 ( w × ) \hat w:w的斜对称矩阵(w×) w^:ww×
    R k − 1 t = e w ^ θ s , T k − 1 t = s T k − 1 k R^t_{k-1}=e^{\hat w\theta s},T^t_{k-1}=sT^k_{k-1} Rk1t=ew^θs,Tk1t=sTk1k
    根据罗德里德旋转公式可以得到:
    R k − 1 t = I + w ^ sin ⁡ ( s θ ) + w ^ 2 ( 1 − cos ⁡ ( s θ ) ) R_{k-1}^t=I+\hat w\sin(s\theta)+\hat w^2(1-\cos(s\theta)) Rk1t=I+w^sin(sθ)+w^2(1cos(sθ))
    只需要计算cos与sin值就可以得到每一点相对于当前帧的位姿:
    P w ( t ) = R t P t + T t R t = R k − 1 R k − 1 t , T t = R k − 1 T k − 1 T + T k − 1 P_w(t)=R_tP_t+T_t\\ R_t=R_{k-1}R_{k-1}^t,T_t=R_{k-1}T^T_{k-1}+T_{k-1} Pw(t)=RtPt+TtRt=Rk1Rk1t,Tt=Rk1Tk1T+Tk1
  1. 动态物体滤波
  • 在每一次迭代时,重新查找每一个特征点的最邻点,并且重新构建两个残差,并执行少量的位姿优化迭代操作,最后得到残差,移除其中残差超过20%的值,最后进行位姿优化。
  • 迭代循环
    (1) P w = R k P l + T k P_w=R_kP_l+T_k Pw=RkPl+Tk
    (2) r e 2 c = ∣ P w − P 5 ∣ × ∣ P w − P 1 ∣ ∣ P 5 − P 1 ∣ r_e2c=\frac{|P_w-P_5|×|P_w-P_1|}{|P_5-P_1|} re2c=P5P1PwP5×PwP1
    (3) r p 2 p = ( P w − P 1 ) T ( ( P 3 − P 5 ) × ( P 3 − P 1 ) ) ∣ ( P 3 − P 5 ) × ( P 3 − P 1 ) ∣ r_{p2p}=\frac{(P_w-P_1)^T((P_3-P_5)×(P_3-P_1))}{|(P_3-P_5)×(P_3-P_1)|} rp2p=(P3P5)×(P3P1)(PwP1)T((P3P5)×(P3P1))
#输入 	当前帧的边缘点集ξk和平面点集Pk,
#	 	地图点的边缘点集ξm和平面点集Pm
#		雷达前一帧的位姿Rk-1,Tk-1
#输出 	当前雷达的位姿R_k,T_k

开始:
for 位姿迭代不收敛 do
	for 对于点Pl 属于ξk
	计算残差(1)
	找到其ξm上对应的5个点P1-P5
		if(P1-P5) 在一条直线上
			计算直线之间残差(2for 属于Pk的点Pl
		计算残差(1)
		在Pm上找到5个最临近点P1-P5
		if(P1-P5) 在一个平面上
			计算面与面之间的距离(3)
	进行位姿优化迭代2次
	重新计算残差re2c和rp2p,移除其中大于残差20%的值
	for 迭代最大次数 do
		if 非线性迭代不收点 then
			break
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值