激光雷达SLAM激光的前端配准算法

激光雷达SLAM激光的前端配准算法

ICP匹配方法

两组三维点集的最小二乘拟合

给定两个三维点集:

{ x i } = { x 1 , x 2 , … , x N } { p i } = { p 1 , p 2 , … , p N } \{x_i\} = \{x_1, x_2, \dots, x_{N}\} \\ \{p_i\} = \{p_1, p_2, \dots, p_{N}\} {xi}={x1,x2,,xN}{pi}={p1,p2,,pN}

点集 { x i } \{x_i\} {xi}和点集 { p i } \{p_i\} {pi}的集合转换关系如下所示:

p i = R x i + T + N i p_i = Rx_i + T + N_i pi=Rxi+T+Ni

其中, R R R是一个 3 × 3 3 \times 3 3×3的旋转矩阵, T T T是一个三维的平移向量, N i N_i Ni是噪声项。

我们可以通过最小化下式,求得旋转矩阵 R R R和平移向量 T T T

                                       ∑ 2 = ∑ i = 1 N ∣ ∣ p i − ( R x i + T ) ∣ ∣ 2 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \sum^2 = \sum\limits_{i=1}^N{||p_i - (Rx_i + T)||}^2                                       2=i=1Npi(Rxi+T)2

为了实现最小二乘过程的 R R R T T T变量解耦,做去中心化处理,假设 R ^ \hat{R} R^ T ^ \hat{T} T^是我们的最小二乘解,,定义以下变量。

x i ′ = x i − 1 N ∑ i = 1 N x i p i ′ = p i − 1 N ∑ i = 1 N p 1 x'_i = x_i - \frac{1}{N}\sum_{i=1}^N x_i \\ p'_i = p_i - \frac{1}{N}\sum_{i=1}^N p_1 \\ xi=xiN1i=1Nxipi=piN1i=1Np1

此时我们有
                                                  ∑ 2 = ∑ i = 1 N ∣ ∣ p i ′ − R x i ′ ∣ ∣ 2 \ \ \ \ \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \sum^2 = \sum\limits_{i=1}^N{||p'_i - Rx'_i||}^2                                                 2=i=1NpiRxi2

首先我们可以求得最小二乘解 R ^ \hat{R} R^,然后由下式求得 T ^ \hat{T} T^

T ^ = p ′ − R ^ p \hat{T} = p' - \hat{R}p T^=pR^p

∑ i = 1 N ∣ ∣ p i ′ − R x i ′ ∣ ∣ 2 = ∑ i = 1 N ( p i ′ − R x i ′ ) t ( p i ′ − R x i ′ ) = ∑ i = 1 N ( p i ′ t p i ′ + x i ′ t x i ′ − 2 p i ′ t R x i ) \sum_{i=1}^N{||p'_i - Rx'_i||}^2 = \sum_{i=1}^N (p'_i - Rx'_i)^t(p'_i - R x'_i) \\ =\sum_{i=1}^N({p'_i}^tp'_i + {x'_i}^tx'_i - 2{p'_i}^tRx_i) i=1NpiRxi2=i=1N(piRxi)t(piRxi)=i=1N(pitpi+xitxi2pitRxi)

所以最小化

F = ∑ i = 1 N p i ′ t R x i = T r a c e ( ∑ i = 1 N R x i ′ p i ′ t ) = T r a c e ( R H ) F = \sum_{i=1}^N {p'_i}^tRx_i \\ =Trace(\sum_{i=1}^N Rx'_i{p'_i}^t) = Trace(RH) F=i=1NpitRxi=Trace(i=1NRxipit)=Trace(RH)

由定理:
对于任意的对称正定矩阵 A A T AA^T AAT和任意的正交矩阵 B B B,都有

T r a c e ( A A T ) ≥ T r a c e ( B A A T ) Trace(AA^T) \geq Trace(BAA^T) Trace(AAT)Trace(BAAT)

H H H进行 S V D SVD SVD分解得到 H = U M V T H = UMV^T H=UMVT,令 X = V U T X = VU^T X=VUT,则有,
X H = V M V T XH = VMV^T XH=VMVT

所以,

T r a c e ( X H ) ≥ T r a c e ( B X H ) Trace(XH) \geq Trace(BXH) Trace(XH)Trace(BXH)
因此,如果 X X X矩阵的行列式为1,则 T ^ = X \hat{T} = X T^=X

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值