ICP算法对应点姿态估计算法推导

欢迎关注更多精彩
关注我,学习常用算法与数据结构,一题多解,降维打击。

在这里插入图片描述

背景

在icp算法中,一般一次迭代分两步,先找到对应的匹配点,然后计算一个RT将匹配点对齐。

第二步是比较难理解,推导一下实现原理。

问题描述

现在有配对好的两个点集

P = p 1 , ⋯   , p n , P ′ = p 1 ′ , ⋯   , p n ′ P={p_1, \cdots, p_n}, P'={p_1', \cdots, p_n'} P=p1,,pn,P=p1,,pn

想要找到一个R, t 使得

∀ i , p i = R p i ′ + t \forall i, p_i = Rp_i'+t i,pi=Rpi+t

能量方程建立

可以通过优化的思路来求解建立能量方程

为了后续求解方程方便,带上了1/2

E = m i n R , t 1 2 ∑ i = 1 n ∥ p i − ( R p i ′ + t ) ∥ 2 E= \displaystyle \underset{R,t}{min}\frac 1 2\sum_{i=1}^n \|p_i-(Rp_i'+t)\|^2 E=R,tmin21i=1npi(Rpi+t)2

变量定义和基本定理

为了后续推导方便,先定义一些常量符号和基本定理

质心定义

p = 1 n ∑ i = 1 n p i , p ′ = 1 n ∑ i = 1 n p i ′ p=\displaystyle \frac 1 n \sum_{i=1}^np_i, p'=\frac 1 n \sum_{i=1}^np_i' p=n1i=1npi,p=n1i=1npi

去质心替换

q i = p i − p , q i ′ = p i ′ − p ′ q_i = p_i-p, q_i'=p_i'-p' qi=pip,qi=pip

Schwarz 不等式

对于向量A, B, A与B的内积不大于A与B模长的乘积。

A ⋅ B ≤ ∥ A ∥ ⋅ ∥ B ∥ A\cdot B \le \|A\|\cdot \|B\| ABAB

正交矩阵性质

R R T = 1 RR^T=1 RRT=1

引理证明

后面会用到几个公式,这里先证明一下。

1 q T R q ′ = t r ( R q ′ q T ) q^TRq'=tr(Rq'q^T) qTRq=tr(RqqT)

tr(A) 表示A的对角线元素的和

基本思路就是把等式左右两边展开,计算出最后结果即可

R = [ A 11 A 12 A 13 A 21 A 22 A 23 A 31 A 32 A 33 ] R=\begin{bmatrix} A_{11}&A_{12}&A_{13}\\ A_{21}&A_{22}&A_{23}\\ A_{31}&A_{32}&A_{33} \end{bmatrix} R= A11A21A31A12A22A32A13A23A33

q = [ q 1 q 2 q 3 ] , q ′ = [ q 1 ′ q 2 ′ q 3 ′ ] q=\begin{bmatrix} q_1\\ q_2 \\q_3 \end{bmatrix}, q'=\begin{bmatrix} q_1'\\ q_2' \\q_3' \end{bmatrix} q= q1q2q3 ,q= q1q2q3

证明:

等式左边

q T R q ′ = q T [ A 11 q 1 ′ + A 12 q 2 ′ + A 13 q 3 ′ A 21 q 1 ′ + A 22 q 2 ′ + A 23 q 3 ′ A 31 q 1 ′ + A 32 q 2 ′ + A 33 q 3 ′ ] q^TRq' = q^T\begin{bmatrix} A_{11}q_1'+A_{12}q_2'+A_{13}q_3'\\ A_{21}q_1'+A_{22}q_2'+A_{23}q_3'\\ A_{31}q_1'+A_{32}q_2'+A_{33}q_3' \end{bmatrix} qTRq=qT A11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值