点云对齐/轨迹对齐方法及论文讲解

15 篇文章 1 订阅

点云对齐/轨迹对齐方法及论文讲解

已知两组对应点云,求解两组点云之间的坐标系变换。或者计算里程计的精度问题,得到里程计估计的时间离散位姿后以及轨迹位姿真值后,如何评判里程计的精度。
本文介绍三种方法:
1.Umeyama算法
参考文献:
《Least-Squares Fitting of Two 3-D Point Sets》
2.Horn四元数闭合求解算法
参考文献:
《Closed-form solution of absolute orientation using unit quaternions》
3.Marta的迭代最小二乘解法
参考文献:
《Trajectory Alignment and Evaluation in SLAM: Horn’s Method vs Alignment on the Manifold》

1 Umeyama算法

原理说明https://blog.csdn.net/weixin_41469272/article/details/105314963
代码实现及工具使用https://blog.csdn.net/weixin_41469272/article/details/119885449

2 Horn四元数闭合求解算法

使用单位四元数实现求解旋转闭式解。
设两组点集分别为 r l \bm r_l rl r r \bm r_r rr,则其误差方程构成如下:
e i = r ( r , i ) − s R ( r ( l , i ) ) − r 0 \bm e_i=\bm r_(r,i)-sR(\bm r_(l,i) )-\bm r_0 ei=r(r,i)sR(r(l,i))r0
其中待求解的变量为旋转矩阵R,平移向量 r 0 \bm r_0 r0及尺度因子 s s s

(1)求解最少满足的点数
对齐两个轨迹或者对齐两组点云所要求解的自由度包含两组坐标系的3个平移,3个旋转及一个放缩尺度共7个自由度。3个点能建立9个约束(一个三维点对应3个约束)。因此3个点则能够满足求解约束。

(2)点集质心约束及平移求解
设两组点集质心对应计算如下:
在这里插入图片描述
误差构成的最小二乘问题:
在这里插入图片描述
通过对 r 0 \bm r_0 r0求导可得:
r 0 = r ‾ r − s R r ‾ l \bm r_0=\bm {\overline{r}}_r-sR\bm {\overline{r}}_l r0=rrsRrl
在两组点集的质心处建立新的坐标系,轴向与原坐标系一致,从而得到点集在新坐标系下的坐标:
r l , i ′ = r l , i − r ‾ l , r r , i ′ = r r , i − r ‾ r \bm r'_{l,i}=\bm r_{l,i}-\bm {\overline{r}}_l,\bm r'_{r,i}=\bm r_{r,i}-\bm {\overline{r}}_r rl,i=rl,irl,rr,i=rr,irr
将质心代入到误差方程,可消去 r 0 r_0 r0,误差方程变为:
e i ′ = r r , i ′ − s R r l , i ′ \bm e'_i=\bm r'_{r,i}-sR\bm r'_{l,i} ei=rr,isRrl,i
在这里插入图片描述
(3)尺度求解
1)由新的误差方程构成最小二乘问题:
在这里插入图片描述
得到关于 s s s的一元二次方程,解得:
在这里插入图片描述
2)未知R阵求解s
将误差方程进行如下调整:
在这里插入图片描述
由于 R T R = I R^T R=I RTR=I将关于 s s s R R R分离,构成关于 s s s的最小二乘问题,从而在未知 R R R阵的情况下得到 s s s值,即
在这里插入图片描述
另外,同时需满足:
min ⁡ R ∑ i = 1 n r r , i ′ T R r l , i ′ \mathop{\min}\limits_{R} \sum_{i=1}^{n} \bm r_{r,i}^{'T}R\bm r'_{l,i} Rmini=1nrr,iTRrl,i

(4)三点求解旋转
在已知两组坐标系之间的旋转变换后,求解平移及尺度因子是相对比较简单的。因此求解 R R R阵是该问题的关键。
设3个不共线点在两组坐标系下的表示为: r l , 1 , r l , 2 , r l , 3 ∈ r l \bm r_{l,1}, \bm r_{l,2}, \bm r_{l,3}∈\bm r_l rl,1,rl,2,rl,3rl r r , 1 , r r , 2 , r r , 3 ∈ r r \bm r_{r,1}, \bm r_{r,2}, \bm r_{r,3}∈r_r rr,1,rr,2,rr,3rr

利用3个点分别建立新的坐标系,设 r l , 1 r_{l,1} rl,1为坐标系l的原点, r l , 1 → r l , 2 r_{l,1}→r_{l,2} rl,1rl,2为x轴方向,y轴位于三个点构成的平面上,垂直于x轴,z轴符合右手定则正交与x轴与z轴。如下示意图:
在这里插入图片描述
令: x l = r l , 2 − r l , 1 , x ^ l = x l / ‖ x l ‖ \bm x_l=\bm r_{l,2}-\bm r_{l,1},\hat {\bm x}_l=\bm x_l/‖\bm x_l‖ xl=rl,2rl,1x^l=xl/‖xl,则 x ^ l \hat {\bm x}_l x^l为指向x轴的单位向量
令: y l = ( r l , 3 − r l , 1 ) − [ ( r l , 3 − r l , 1 ) ⋅ x ^ l ] x ^ l , y ^ l = y l / ‖ y l ‖ \bm y_l=(\bm r_{l,3}-\bm r_{l,1})-[(\bm r_{l,3}-\bm r_{l,1}) \cdot \bm {\hat x}_l ] \bm {\hat x}_l,\bm {\hat y}_l=\bm y_l/‖\bm y_l ‖ yl=(rl,3rl,1)[(rl,3rl,1)x^l]x^ly^l=yl/‖yl
[ ( r l , 3 − r l , 1 ) ⋅ x ^ l ] x ^ l [(\bm r_{l,3}-\bm r_{l,1})\cdot\bm {\hat x}_l ] \bm {\hat x}_l [(rl,3rl,1)x^l]x^l r l , 3 − r l , 1 \bm r_{l,3}-\bm r_{l,1} rl,3rl,1向量在x轴方向上的投影向量,即为坐标系原点到第三点 r l , 3 \bm r_{l,3} rl,3在x轴的投影点的向量,因此 ( r l , 3 − r l , 1 ) − [ ( r l , 3 − r l , 1 ) ⋅ x ^ l ] x ^ l (\bm r_{l,3}-\bm r_{l,1})-[(\bm r_{l,3}-\bm r_{l,1}) \cdot \bm {\hat x}_l ] \bm {\hat x}_l (rl,3rl,1)[(rl,3rl,1)x^l]x^l r l , 3 r_{l,3} rl,3在y轴的投影点的向量。 y ^ l \bm {\hat y}_l y^l为其单位向量,即指向y轴的单位向量。
令: z ^ l = x ^ l × y ^ l \bm {\hat z}_l=\bm {\hat x}_l×\bm {\hat y}_l z^l=x^l×y^l为对应z轴的单位向量,得到新坐标系单位矩阵构成的基向量 M l = ∣ x ^ l , y ^ l , z ^ l ∣ \bm M_l=|\bm {\hat x}_l,\bm {\hat y}_l,\bm {\hat z}_l | Ml=x^l,y^l,z^l

同理使用第二组点集构成新的坐标系单位向量 M r = ∣ x ^ r , y ^ r , z ^ r ∣ \bm M_r=|\bm {\hat x}_r,\bm {\hat y}_r,\bm {\hat z}_r| Mr=x^r,y^r,z^r
M l \bm M_l Ml M r \bm M_r Mr分别为三个点构成的坐标系的基础向量在两个原始坐标系的表示。如下图示意图所示:
在这里插入图片描述
因此:
M r = R M l \bm M_r=R\bm M_l Mr=RMl
从而可知:
R = M r M l T R=\bm M_r \bm M_l^T R=MrMlT
(5)四元数求解旋转矩阵
使用四元数 q \bm q q表示旋转:
q = q 0 + i q x + j q y + k q z \bm q=q_0+iq_x+jq_y+kq_z q=q0+iqx+jqy+kqz
r ′ = R r r'=Rr r=Rr
将空间点表示成思维虚四元数
r ‾ = [ 0 , r ] T = [ 0 , x , y , z ] T = 0 + i x + j y + k z \bm{\overline r}=[0,\bm r]^{\rm T}=[0,x,y,z]^{\rm T}=0+ix+jy+kz r=[0,r]T=[0,x,y,z]T=0+ix+jy+kz
r ′ = q r ‾ q − 1 \bm r'=\bm {q\overline rq}^{-1} r=qrq1
其中, q − 1 = q ∗ / q 2 \bm q^{-1}=\bm q^*/\bm q^2 q1=q/q2, q ∗ \bm q^* q q q q的共轭四元数, q ∗ = q 0 − i q x − j q y − k q z \bm q^*=q_0-iq_x-jq_y-kq_z q=q0iqxjqykqz
文中使用单位四元数,因此 q 2 = q ⋅ q = 1 q^2=q\cdot q=1 q2=qq=1,因此, q − 1 = q ∗ \bm q^{-1}=\bm q^* q1=q

定义四元数的两种乘法
1)直接
在这里插入图片描述
2)点乘
在这里插入图片描述
要求解
max ⁡ R ∑ i = 1 n ( r r , i ′ T R r l , i ′ ) \mathop{\max}\limits_R \sum_{i=1}^n(\bm r_{r,i}'^T R\bm r'_{l,i}) Rmaxi=1n(rr,iTRrl,i)
使用四元数表示:
max ⁡ q ∑ i = 1 n ( r ‾ r , i ′ ( q r ‾ l , i q − 1 ) ) \mathop{\max}\limits_{\bm q} \sum_{i=1}^n(\bm{\overline r}'_{r,i} (\bm{q\overline r}_{l,i}\bm q^{-1} )) qmaxi=1n(rr,i(qrl,iq1))
向量乘法交换律:
在这里插入图片描述
由四元数的性质:
在这里插入图片描述
上式可化为:
在这里插入图片描述
其中: r ‾ = [ 0 , r ] T = [ 0 , x , y , z ] T \bm{\overline r}=[0,\bm r]^{\rm T}=[0,x,y,z]^{\rm T} r=[0,r]T=[0,x,y,z]T
在这里插入图片描述
在这里插入图片描述
以此得:
在这里插入图片描述
令:
在这里插入图片描述
上式的解:q为N对应最大特征值对应的特征向量,证明过程见参考论文附文A3
(6)总结求解流程:
1)整理残差方程
在这里插入图片描述
2)求解尺度因子
在这里插入图片描述
3)求解 R R R阵对应四元数表示 q \bm q q
在这里插入图片描述
求解其最大特征值对应的特征向量
4)求解偏移量
r 0 = r ‾ r − s R r ‾ l r_0=\bm{\overline r}_r-sR\bm{\overline r}_l r0=rrsRrl

Marta的迭代最小二乘解法

采用最小二乘迭代求解轨迹对齐变换矩阵,除考虑平移,也考虑了姿态角构成误差方程的约束:
设里程计估计得到的位姿组为 P 1 , P 2 , ⋯ P N {P_1,P_2,⋯P_N} P1,P2,PN,真实轨迹对应的 Q 1 , Q 2 , ⋯ Q N {Q_1,Q_2,⋯Q_N} Q1,Q2,QN,定义两组位姿 P i P_i Pi G i G_i Gi之间的误差为:
E i = Q i − 1 T P i E_i =Q_i^{-1} TP_i Ei=Qi1TPi
每个位姿由3轴旋转 R R R及3轴平移构成的4*4矩阵,该矩阵符合李群性质。
对误差进行log-v操作,将误差变换到切空间:该操作与将旋转矩阵转换为李代数(轴角)一致。
在这里插入图片描述
定义两组轨迹的总误差约束方程为:
在这里插入图片描述
使用LM方法迭代求解 T T T
在这里插入图片描述
注:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值