Ultra-Wideband-Based Localization for Quadcopter Navigation----读后感
\qquad
文章内容为使用UWB测距,建立无人机运动方程和观测方程,使用EKF算法获取无人机精确位置估计。
\qquad
使用UWB测距,观测值和实际距离值之间的关系可以使用线性方程表示:
r
=
a
d
+
b
+
ϵ
r = ad +b +\epsilon
r=ad+b+ϵ其中,
r
r
r作为实际观测值,
d
d
d作为距离真实值,(定参时两个数值皆已知)
ϵ
\epsilon
ϵ作为零均值随机误差。线性方程参数
a
^
,
b
^
\hat{a},\hat{b}
a^,b^可以使用线性回归方法估计,随机误差方差
σ
\sigma
σ可有下式获得:
a
^
=
∑
i
=
1
n
(
d
i
−
d
ˉ
)
(
r
i
−
r
ˉ
)
∑
i
=
1
n
(
d
i
−
d
ˉ
)
2
\hat{a}= \frac{\sum_{i=1}^{n}(d_{i}-\bar{d})(r_{i}-\bar{r})}{\sum_{i=1}^{n}(d_{i}-\bar{d})^{2}}
a^=∑i=1n(di−dˉ)2∑i=1n(di−dˉ)(ri−rˉ)
b
^
=
r
ˉ
−
a
^
d
ˉ
\hat{b} = \bar{r} - \hat{a}\bar{d}
b^=rˉ−a^dˉ
σ
^
=
∑
i
=
1
n
(
r
i
−
a
^
d
i
−
b
^
)
2
n
−
2
\hat\sigma= \frac{\sum_{i=1}^{n}(r_{i}-\hat{a}d_{i}-\hat{b})^{2}}{n-2}
σ^=n−2∑i=1n(ri−a^di−b^)2其中,
d
ˉ
、
r
ˉ
\bar{d}、\bar{r}
dˉ、rˉ皆为平均值。距离估计值写位
d
^
=
a
~
r
^
+
b
~
\hat{d} = \tilde{a}\hat{r} + \tilde{b}
d^=a~r^+b~其中,
a
~
=
1
a
^
,
b
~
=
−
b
^
a
^
\tilde{a} = \frac{1}{\hat{a}}, \tilde{b} = -\frac{\hat{b}}{\hat{a}}
a~=a^1,b~=−a^b^其渐进均方估计误差为:
R
=
(
σ
^
/
a
^
)
2
R = (\hat\sigma / \hat{a})^{2}
R=(σ^/a^)2
\qquad
基于UWB测距的无人机位置估计方法可以使用两种,方法一,使用无人机到UWB锚节点的测距值作为观测值,建立无人机运动方程,使用EKF算法获得无人机位置估计,方法二,使用三点测距法直接求解,使用牛顿法获得数值解。
\qquad
方法一,无人机运动方程为:
[
p
v
]
k
+
1
=
[
I
Δ
t
k
I
0
1
]
[
p
v
]
k
+
[
1
2
a
k
(
Δ
t
k
)
2
a
k
Δ
t
k
]
\begin{bmatrix} p \\ v \end{bmatrix}_{k+1} = \begin{bmatrix} I & \Delta t_{k}I \\ 0 & 1 \end{bmatrix}\begin{bmatrix} p \\ v \end{bmatrix}_{k} + \begin{bmatrix} \frac{1}{2}a_{k}(\Delta t_{k})^{2} \\ a_{k}\Delta t_{k} \end{bmatrix}
[pv]k+1=[I0ΔtkI1][pv]k+[21ak(Δtk)2akΔtk]即状态转移(无人机运动方程)可以写为:
x
k
+
1
=
A
k
x
k
+
ε
,
E
(
ε
k
ε
k
T
)
=
Q
k
x_{k+1} = A_{k}x_{k} + \varepsilon,\quad E(\varepsilon_{k}\varepsilon_{k}^{T})=Q_{k}
xk+1=Akxk+ε,E(εkεkT)=Qk,把加速度看作过程噪声。观测方程由UWB测距获得
d
k
=
∣
∣
p
k
−
p
a
∣
∣
+
η
k
,
E
(
η
k
η
k
T
)
=
R
d_{k} = ||p_{k} - p^{a}|| + \eta_{k},\quad E(\eta_{k}\eta_{k}^{T}) = R
dk=∣∣pk−pa∣∣+ηk,E(ηkηkT)=R其中,
d
k
d_{k}
dk为观测值,但是非线性量,将其转化为线性为在估计值处展开
d
k
≈
d
^
k
+
1
d
^
k
(
p
^
k
−
p
a
)
T
(
p
−
p
^
k
)
+
η
k
转
置
有
东
西
!
!
!
!
d_{k} \approx \hat{d}_{k} + \frac{1}{\hat{d}_{k}}(\hat{p}_{k} - p^{a})^{T}(p - \hat{p}_{k}) + \eta_{k} \quad转置有东西!!!!
dk≈d^k+d^k1(p^k−pa)T(p−p^k)+ηk转置有东西!!!!在
E
K
F
EKF
EKF中,观测方程的线性化过程为:
y
k
=
h
k
(
x
^
k
−
,
0
)
+
∂
h
k
∂
x
∣
x
^
k
−
(
x
k
−
x
^
k
−
)
+
∂
h
k
∂
v
∣
x
^
k
−
v
k
=
h
k
(
x
^
k
−
,
0
)
+
H
k
(
x
k
−
x
^
k
−
)
+
M
k
v
k
=
H
k
x
k
+
[
h
k
(
x
^
k
−
,
0
)
−
H
k
x
^
k
−
]
+
M
k
v
k
=
H
k
x
k
+
z
k
+
v
~
k
\begin{aligned} y_{k} &= h_{k}(\hat{x}_{k}^{-},0)+\frac{\partial h_{k}}{\partial x}\Big| _{\hat{x}_{k}^{-}}(x_{k} - \hat{x}_{k}^{-}) +\frac{\partial h_{k}}{\partial v}\Big|_{\hat{x}_{k}^{-}}v_{k} \\ &= h_{k}(\hat{x}_{k}^{-},0)+H_{k}(x_{k} - \hat{x}_{k}^{-})+M_{k}v_{k} \\ &= H_{k}x_{k}+[h_{k}(\hat{x}_{k}^{-},0)-H_{k}\hat{x}_{k}^{-}] +M_{k}v_{k} \\ &= H_{k}x_{k} + z_{k} + \tilde{v}_{k} \end{aligned}
yk=hk(x^k−,0)+∂x∂hk∣∣∣x^k−(xk−x^k−)+∂v∂hk∣∣∣x^k−vk=hk(x^k−,0)+Hk(xk−x^k−)+Mkvk=Hkxk+[hk(x^k−,0)−Hkx^k−]+Mkvk=Hkxk+zk+v~k按照
K
F
KF
KF滤波过程
y
k
=
h
k
(
x
k
,
v
k
)
\ y_{k} = h_{k}(x_{k},v_{k})
yk=hk(xk,vk)
x
^
k
+
=
x
^
k
−
+
K
k
(
y
k
−
H
k
x
^
k
−
−
z
k
)
=
x
^
k
−
+
K
k
(
y
k
−
h
k
(
x
^
k
−
,
0
)
)
\begin{aligned} \hat{x}_{k}^{+} &= \hat{x}_{k}^{-} + K_{k}(y_{k} - H_{k}\hat{x}_{k}^{-}-z_{k}) \\ &= \hat{x}_{k}^{-} + K_{k}(y_{k} - h_{k}(\hat{x}_{k}^{-},0)) \end{aligned}
x^k+=x^k−+Kk(yk−Hkx^k−−zk)=x^k−+Kk(yk−hk(x^k−,0))于是,预测方程:
x
^
k
−
=
A
k
−
1
x
^
k
−
1
+
P
^
k
−
=
A
k
−
1
P
^
k
−
1
+
A
k
−
1
T
+
Q
k
−
1
\begin{aligned} \hat{x}_{k}^{-} &= A_{k-1}\hat{x}_{k-1}^{+} \\ \hat P_{k}^{-} &= A_{k-1}\hat P_{k-1}^{+}A_{k-1}^{T} + Q_{k-1} \\ \end{aligned}
x^k−P^k−=Ak−1x^k−1+=Ak−1P^k−1+Ak−1T+Qk−1线性化后得到观测方程为:
[
d
k
1
d
k
2
⋮
d
k
k
]
=
[
d
^
k
1
d
^
k
2
⋮
d
^
k
k
]
+
[
1
d
^
k
1
(
x
^
k
−
x
1
)
1
d
^
k
1
(
y
^
k
−
y
1
)
0
0
1
d
^
k
2
(
x
^
k
−
x
2
)
1
d
^
k
2
(
y
^
k
−
y
2
)
0
0
⋮
1
d
^
k
k
(
x
^
k
−
x
k
)
1
d
^
k
k
(
y
^
k
−
y
k
)
0
0
]
∗
[
x
k
−
x
^
k
y
k
−
y
^
k
v
x
k
v
y
k
]
\begin{bmatrix} {d}_{k}^{1} \\ {d}_{k}^{2} \\ \vdots \\ {d}_{k}^{k} \end{bmatrix}= \begin{bmatrix} \hat{d}_{k}^{1} \\ \hat{d}_{k}^{2} \\ \vdots \\ \hat{d}_{k}^{k} \end{bmatrix} +\begin{bmatrix} \frac{1}{\hat{d}_{k}^{1}}(\hat{x}_{k} - x^{1}) & \frac{1}{\hat{d}_{k}^{1}}(\hat{y}_{k} - y^{1}) & 0 & 0 \\ \frac{1}{\hat{d}_{k}^{2}}(\hat{x}_{k} - x^{2}) & \frac{1}{\hat{d}_{k}^{2}}(\hat{y}_{k} - y^{2}) & 0 & 0 \\ \vdots \\ \frac{1}{\hat{d}_{k}^{k}}(\hat{x}_{k} - x^{k}) & \frac{1}{\hat{d}_{k}^{k}}(\hat{y}_{k} - y^{k}) & 0 & 0 \end{bmatrix}*\begin{bmatrix} x_{k}-\hat{x}_{k}\\ y_{k}-\hat{y}_{k} \\ v_{x_{k}} \\ v_{y_{k}} \end{bmatrix}
⎣⎢⎢⎢⎡dk1dk2⋮dkk⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡d^k1d^k2⋮d^kk⎦⎥⎥⎥⎤+⎣⎢⎢⎢⎢⎢⎡d^k11(x^k−x1)d^k21(x^k−x2)⋮d^kk1(x^k−xk)d^k11(y^k−y1)d^k21(y^k−y2)d^kk1(y^k−yk)000000⎦⎥⎥⎥⎥⎥⎤∗⎣⎢⎢⎡xk−x^kyk−y^kvxkvyk⎦⎥⎥⎤改写为
d
k
=
d
^
k
+
H
k
(
x
k
−
x
^
k
)
\bold{{d}}_{k} = \bold{\hat{d}}_{k} + \bold{H}_{k}(\bold{x_{k} - \hat x_{k}})
dk=d^k+Hk(xk−x^k) 所以状态更新方程为:
x
^
k
+
=
x
^
k
−
+
K
k
(
d
k
−
d
^
k
)
\hat{x}^{+}_{k} = \hat{x}_{k}^{-}+K_{k}(d_{k}-\hat{d}_{k})
x^k+=x^k−+Kk(dk−d^k)参数更新为:
K
k
=
P
^
k
−
H
k
T
(
H
k
P
^
k
−
H
k
T
+
R
)
−
1
K_{k} = \hat P_{k}^{-}H_{k}^{T}(H_{k}\hat P_{k}^{-}H_{k}^{T} + R)^{-1}
Kk=P^k−HkT(HkP^k−HkT+R)−1
P
^
k
+
=
(
I
−
K
k
H
k
)
P
^
k
−
\hat P_{k}^{+} = (I - K_{k}H_{k})\hat P_{k}^{-}
P^k+=(I−KkHk)P^k−
\qquad
第二种方法为三边定位法,使用TOA或者TDOA即可测的,只要求解位置状态时,通过无人机到锚节点的距离和锚节点的位置即可建立求解方程组,求解位置状态。
\qquad
无论哪种方法,定位算法容易受到异常测量值的影响,导致算法鲁棒性的降低。对于异常值,可以使用马氏距离获得,马氏距离即计算在方差维度下测量值和估计值的差别,由此设置阈值,提取离群点,马氏距离使用测量值与估计值差的平方除以过程噪声和测量噪声的方差。
D
=
(
d
k
−
d
^
k
)
2
H
k
P
^
k
−
H
k
T
+
R
D = \frac{(d_{k}-\hat{d}_{k})^{2}}{H_{k}\hat{P}_{k}^{-}H_{k}^{T}+R}
D=HkP^k−HkT+R(dk−d^k)2