Randall C. Smith与Peter Chessman,发表于1987年,这篇文章被认为是最早提出SLAM问题的一篇文章。
优快云文章链接(欢迎使用积分下载):https://download.youkuaiyun.com/download/tfb760/11888452
百度网盘分享(如果实在没有积分的话):https://pan.baidu.com/s/1Ys2R5TxKjBLYbuOapqlLjg&shfl=shareset 提取码: 75gv
1. 文章核心思想
当机器人从初始位置进行多次移动时,每次移动对应一个不确定的近似变换(approximate transformation, AT),每次移动后由于不确定性的累加导致不确定性越来越大。文章提出用两个步骤进行精准地估计位置:复合(Compounding)与融合(merging)。
2. 具体方法
上图示意了机器人的移动,从最初始的W坐标系开始,依次移动到L1,L2,L3,L4。实线ABCD表示相对移动,实线椭圆表示通过相对移动方法计算出的位置的不确定性;虚线EFG表示对应位置测量的对于W的相对移动,虚线椭圆表示直接测量到W的不确定性。S表示G的逆过程。
2.1 复合(Compounding)
对于图中的L2,经过了AB两次运动,定义每次运动时所在的坐标为
(
X
i
,
Y
i
,
θ
i
)
(X_i, Y_i, \theta_i)
(Xi,Yi,θi),其中角度
θ
\theta
θ是当前坐标系对于上一个坐标系的旋转量。可以推导出如下递推公式:
X
3
=
X
2
cos
θ
1
−
Y
2
sin
(
θ
1
)
+
X
1
X_3=X_2 \cos \theta_1 - Y_2 \sin(\theta_1) + X_1
X3=X2cosθ1−Y2sin(θ1)+X1
Y
3
=
X
2
sin
θ
1
+
Y
2
cos
θ
1
+
Y
1
Y_3=X_2 \sin \theta_1 +Y_2\cos \theta_1 +Y_1
Y3=X2sinθ1+Y2cosθ1+Y1
θ
3
=
θ
1
+
θ
2
\theta_3=\theta_1+\theta_2
θ3=θ1+θ2
假设小范围线性,利用泰勒展开,只保留一次项,可以得到坐标系变换
(
δ
X
3
,
δ
Y
3
,
δ
θ
3
)
T
=
J
∗
(
δ
X
1
,
δ
Y
1
,
δ
θ
1
,
δ
X
2
,
δ
Y
2
,
δ
θ
2
)
T
(\delta X_3, \delta Y_3, \delta \theta_3)^T = J*(\delta X_1, \delta Y_1, \delta \theta_1, \delta X_2, \delta Y_2, \delta \theta_2)^T
(δX3,δY3,δθ3)T=J∗(δX1,δY1,δθ1,δX2,δY2,δθ2)T
其中
J
J
J为雅克比矩阵,为分别对
X
1
,
Y
1
,
θ
1
,
X
2
,
Y
2
,
θ
2
X_1, Y_1, \theta_1, X_2, Y_2, \theta_2
X1,Y1,θ1,X2,Y2,θ2 进行矩阵求导,从而可以写成:
J
=
[
H
∣
K
]
J=[H|K]
J=[H∣K] 形式。
此时不确定度(方差矩阵)可以通过上式进行求2范数,即分别乘以转置,得到新的不确定度:
C
3
=
J
(
C
1
,
0
;
0
,
C
2
)
J
T
=
H
C
1
H
T
+
K
C
2
K
T
C_3 = J (C_1, 0; 0, C_2) J^T = H C_1 H^T + K C_2K^T
C3=J(C1,0;0,C2)JT=HC1HT+KC2KT
简单解释:第一次和第二次运动没有相关性,所以是个块对角矩阵;
由此得到了方差的合并。从而能够将两次运动复合成一次。
2.2 融合(Merging)
融合是指在测得或计算出相对于W的坐标位置后时,能够测得W对于当前坐标系的位置,即知道逆过程,可以将两个进行融合成一个更为准确的表示,采用了卡尔曼滤波。
设两个表示矩阵分别为
C
1
,
C
2
C_1, C_2
C1,C2,互为逆过程,则通过以下方式计算合并后的新的不确定性矩阵
C
3
C_3
C3与均值(期望位置)
K
=
C
1
∗
[
C
1
+
C
2
]
−
1
K=C_1 * [C_1 + C_2]^{-1}
K=C1∗[C1+C2]−1
C
3
=
C
1
−
K
∗
C
1
C_3 = C_1 - K*C_1
C3=C1−K∗C1
X
3
^
=
X
1
+
K
∗
(
X
2
−
X
1
)
\hat{X_3}=X1+K*(X_2 - X_1)
X3^=X1+K∗(X2−X1)
从而融合后获得了更精确的方差矩阵,与新的位置期望。