扩展卡尔曼滤波EKF

卡尔曼滤波简介 —— 一维卡尔曼滤波 在本章中,我们将在一个维度上推导出卡尔曼滤波。本章的主要目标是简单直观地解释卡尔曼滤波的概念,而不使用可能看起来复杂和令人困惑的数学工具。 阅读详情

扩展卡尔曼滤波EKF

如果将置信度和噪声限制为高斯分布,并且对运动模型和观测进行线性化,计算贝叶斯滤波中的积分(以及归一化积),即可得到扩展卡尔曼滤波(EKF)。

为了推导EKF,首先假设 xk\boldsymbol{x}_{k}xk​ 的置信度函数限制为高斯分布:

p(xk∣xˇ0,v1:k,y0:k)=N(x^k,P^k) p\left(\boldsymbol{x}_{k} \mid \check{\boldsymbol{x}}_{0}, \boldsymbol{v}_{1: k}, \boldsymbol{y}_{0: k}\right)=\mathcal{N}\left(\hat{\boldsymbol{x}}_{k}, \hat{\boldsymbol{P}}_{k}\right) p(xk​∣xˇ0​,v1:k​,y0:k​)=N(x^k​,P^k​)

其中,x^k\hat{\boldsymbol{x}}_{k}x^k​ 为均值,P^k\hat{\boldsymbol{P}}_{k}P^k​ 为协方差。

并且假设噪声变量 wk\boldsymbol{w}_{k}wk​ 和 nk\boldsymbol{n}_{k}nk​ 也是高斯分布的:

wk∼N(0,Qk)nk∼N(0,Rk) \begin{array}{l}\boldsymbol{w}_{k} \sim \mathcal{N}\left(\mathbf{0}, \boldsymbol{Q}_{k}\right) \\\boldsymbol{n}_{k} \sim \mathcal{N}\left(\mathbf{0}, \boldsymbol{R}_{k}\right)\end{array} wk​∼N(0,Qk​)nk​∼N(0,Rk​)​

对于以下运动和观测模型:

xk=f(xk−1,vk,wk)yk=g(xk,nk) \begin{aligned}&\boldsymbol{x}_{k}=f\left(\boldsymbol{x}_{k-1}, \boldsymbol{v}_{k},\boldsymbol{w}_{k}\right) \\&\boldsymbol{y}_{k}=g\left(\boldsymbol{x}_{k}, \boldsymbol{n}_{k}\right)\end{aligned} ​xk​=f(xk−1​,vk​,wk​)yk​=g(xk​,nk​)​

由于 f(⋅)\boldsymbol{f}(\cdot)f(⋅) 和 g(⋅)\boldsymbol{g}(\cdot)g(⋅) 是非线性函数,所以我们需要对其进行线性化。在当前状态的均值处展开,对运动和观测模型进行线性化:

f(xk−1,vk,wk)≈xˇk+Fk−1(xk−1−x^k−1)+wk′ \boldsymbol{f}\left(\boldsymbol{x}_{k-1}, \boldsymbol{v}_{k}, \boldsymbol{w}_{k}\right) \approx \check{\boldsymbol{x}}_{k}+\boldsymbol{F}_{k-1}\left(\boldsymbol{x}_{k-1}-\hat{\boldsymbol{x}}_{k-1}\right)+\boldsymbol{w}_{k}^{\prime} f(xk−1​,vk​,wk​)≈xˇk​+Fk−1​(xk−1​−x^k−1​)+wk′​

g(xk,nk)≈yˇk+Gk(xk−xˇk)+nk′ \boldsymbol{g}\left(\boldsymbol{x}_{k}, \boldsymbol{n}_{k}\right) \approx \check{\boldsymbol{y}}_{k}+\boldsymbol{G}_{k}\left(\boldsymbol{x}_{k}-\check{\boldsymbol{x}}_{k}\right)+\boldsymbol{n}_{k}^{\prime} g(xk​,nk​)≈yˇ​k​+Gk​(xk​−xˇk​)+nk′​

其中:

  • xˇk=f(x^k−1,vk,0)\check{\boldsymbol{x}}_{k}=\boldsymbol{f}\left(\hat{\boldsymbol{x}}_{k-1}, \boldsymbol{v}_{k}, \mathbf{0}\right)xˇk​=f(x^k−1​,vk​,0)
  • Fk−1=∂f(xk−1,vk,wk)∂xk−1∣x^k−1,vk,0\boldsymbol{F}_{k-1}=\left.\frac{\partial \boldsymbol{f}\left(\boldsymbol{x}_{k-1}, \boldsymbol{v}_{k}, \boldsymbol{w}_{k}\right)}{\partial \boldsymbol{x}_{k-1}}\right|_{\hat{\boldsymbol{x}}_{k-1}, \boldsymbol{v}_{k}, \mathbf{0}}Fk−1​=∂xk−1​∂f(xk−1​,vk​,wk​)​∣∣​x^k−1​,vk​,0​
  • wk′=∂f(xk−1,vk,wk)∂wk∣x^k−1,vk,0wk\boldsymbol{w}_{k}^{\prime}=\left.\frac{\partial \boldsymbol{f}\left(\boldsymbol{x}_{k-1}, \boldsymbol{v}_{k}, \boldsymbol{w}_{k}\right)}{\partial \boldsymbol{w}_{k}}\right|_{\hat{\boldsymbol{x}}_{k-1}, \boldsymbol{v}_{k}, \mathbf{0}} \boldsymbol{w}_{k}wk′​=∂wk​∂f(xk−1​,vk​,wk​)​∣∣​x^k−1​,vk​,0​wk​
  • yˇk=g(xˇk,0)\check{\boldsymbol{y}}_{k}=\boldsymbol{g}\left(\check{\boldsymbol{x}}_{k}, \mathbf{0}\right)yˇ​k​=g(xˇk​,0)
  • Gk=∂g(xk,nk)∂xk∣xˇk,0\boldsymbol{G}_{k}=\left.\frac{\partial \boldsymbol{g}\left(\boldsymbol{x}_{k}, \boldsymbol{n}_{k}\right)}{\partial \boldsymbol{x}_{k}}\right|_{\check{\boldsymbol{x}}_{k}, \mathbf{0}}Gk​=∂xk​∂g(xk​,nk​)​∣∣​xˇk​,0​
  • nk′=∂g(xk,nk)∂nk∣xˇk,0nk\boldsymbol{n}_{k}^{\prime}=\left.\frac{\partial \boldsymbol{g}\left(\boldsymbol{x}_{k}, \boldsymbol{n}_{k}\right)}{\partial \boldsymbol{n}_{k}}\right|_{\check{\boldsymbol{x}}_{k}, \mathbf{0}} \boldsymbol{n}_{k}nk′​=∂nk​∂g(xk​,nk​)​∣∣​xˇk​,0​nk​

给定过去的状态和最新输入,则当前状态 xk\boldsymbol{x}_{k}xk​ 的统计学特性为:

xk≈xˇk+Fk−1(xk−1−x^k−1)+wk′ \boldsymbol{x}_{k} \approx \check{\boldsymbol{x}}_{k}+\boldsymbol{F}_{k-1}\left(\boldsymbol{x}_{k-1}-\hat{\boldsymbol{x}}_{k-1}\right)+\boldsymbol{w}_{k}^{\prime} xk​≈xˇk​+Fk−1​(xk−1​−x^k−1​)+wk′​

E[xk]≈xˇk+Fk−1(xk−1−x^k−1)+E[wk′]⏟0 E\left[\boldsymbol{x}_{k}\right] \approx \check{\boldsymbol{x}}_{k}+\boldsymbol{F}_{k-1}\left(\boldsymbol{x}_{k-1}-\hat{\boldsymbol{x}}_{k-1}\right)+\underbrace{E\left[\boldsymbol{w}_{k}^{\prime}\right]}_{0} E[xk​]≈xˇk​+Fk−1​(xk−1​−x^k−1​)+0E[wk′​]​​

E[(xk−E[xk])(xk−E[xk])T]≈E[wk′wk′T]⏟Qk′ E\left[\left(\boldsymbol{x}_{k}-E\left[\boldsymbol{x}_{k}\right]\right)\left(\boldsymbol{x}_{k}-E\left[\boldsymbol{x}_{k}\right]\right)^{\mathrm{T}}\right] \approx \underbrace{E\left[\boldsymbol{w}_{k}^{\prime} \boldsymbol{w}_{k}^{\left.\prime^{\mathrm{T}}\right]}\right.}_{\boldsymbol{Q}_{k}^{\prime}} E[(xk​−E[xk​])(xk​−E[xk​])T]≈Qk′​E[wk′​wk′T]​​​

p(xk∣xk−1,vk)≈N(xˇk+Fk−1(xk−1−x^k−1),Qk′) p\left(\boldsymbol{x}_{k} \mid \boldsymbol{x}_{k-1}, \boldsymbol{v}_{k}\right) \approx \mathcal{N}\left(\check{\boldsymbol{x}}_{k}+\boldsymbol{F}_{k-1}\left(\boldsymbol{x}_{k-1}-\hat{\boldsymbol{x}}_{k-1}\right), \boldsymbol{Q}_{k}^{\prime}\right) p(xk​∣xk−1​,vk​)≈N(xˇk​+Fk−1​(xk−1​−x^k−1​),Qk′​)

给定当前状态,则当前观测 yˇk\check{\boldsymbol{y}}_{k}yˇ​k​ 的统计学特性为:

yk≈yˇk+Gk(xk−xˇk)+nk′ \boldsymbol{y}_{k} \approx \check{\boldsymbol{y}}_{k}+\boldsymbol{G}_{k}\left(\boldsymbol{x}_{k}-\check{\boldsymbol{x}}_{k}\right)+\boldsymbol{n}_{k}^{\prime} yk​≈yˇ​k​+Gk​(xk​−xˇk​)+nk′​

E[yk]≈yˇk+Gk(xk−xˇk)+E[nk′]⏟0 E\left[\boldsymbol{y}_{k}\right] \approx \check{\boldsymbol{y}}_{k}+\boldsymbol{G}_{k}\left(\boldsymbol{x}_{k}-\check{\boldsymbol{x}}_{k}\right)+\underbrace{E\left[\boldsymbol{n}_{k}^{\prime}\right]}_{0} E[yk​]≈yˇ​k​+Gk​(xk​−xˇk​)+0E[nk′​]​​

E[(yk−E[yk])(yk−E[yk])T]≈E[nk′nk′T]⏟Rk′ E\left[\left(\boldsymbol{y}_{k}-E\left[\boldsymbol{y}_{k}\right]\right)\left(\boldsymbol{y}_{k}-E\left[\boldsymbol{y}_{k}\right]\right)^{\mathrm{T}}\right] \approx \underbrace{E\left[\boldsymbol{n}_{k}^{\prime} \boldsymbol{n}_{k}^{\prime \mathrm{T}}\right]}_{\boldsymbol{R}_{k}^{\prime}} E[(yk​−E[yk​])(yk​−E[yk​])T]≈Rk′​E[nk′​nk′T​]​​

p(yk∣xk)≈N(yˇk+Gk(xk−xˇk),Rk′) p\left(\boldsymbol{y}_{k} \mid \boldsymbol{x}_{k}\right) \approx \mathcal{N}\left(\check{\boldsymbol{y}}_{k}+\boldsymbol{G}_{k}\left(\boldsymbol{x}_{k}-\check{\boldsymbol{x}}_{k}\right), \boldsymbol{R}_{k}^{\prime}\right) p(yk​∣xk​)≈N(yˇ​k​+Gk​(xk​−xˇk​),Rk′​)

由贝叶斯滤波器有:

p(xk∣xˇ0,v1:k,y0:k)⏟后验置信度 =ηp(yk∣xk)⏟利用 g(⋅) 进行更新 ∫p(xk∣xk−1,vk)⏟利用 f(⋅) 进行预测 p(xk−1∣xˇ0,v1:k−1,y0:k−1)⏟先验置信度 dxk−1 \begin{aligned}& \underbrace{p\left(\boldsymbol{x}_{k} \mid \check{\boldsymbol{x}}_{0}, \boldsymbol{v}_{1: k}, \boldsymbol{y}_{0: k}\right)}_{\text {后验置信度 }} \\=& \eta \underbrace{p\left(\boldsymbol{y}_{k} \mid \boldsymbol{x}_{k}\right)}_{\text {利用 } \boldsymbol{g}(\cdot) \text { 进行更新 }} \int \underbrace{p\left(\boldsymbol{x}_{k} \mid \boldsymbol{x}_{k-1}, \boldsymbol{v}_{k}\right)}_{\text {利用 } \boldsymbol{f}(\cdot) \text { 进行预测 }} \underbrace{p\left(\boldsymbol{x}_{k-1} \mid \check{\boldsymbol{x}}_{0}, \boldsymbol{v}_{1: k-1}, \boldsymbol{y}_{0: k-1}\right)}_{\text {先验置信度 }} \mathrm{d} \boldsymbol{x}_{k-1}\end{aligned} =​后验置信度 p(xk​∣xˇ0​,v1:k​,y0:k​)​​η利用 g(⋅) 进行更新 p(yk​∣xk​)​​∫利用 f(⋅) 进行预测 p(xk​∣xk−1​,vk​)​​先验置信度 p(xk−1​∣xˇ0​,v1:k−1​,y0:k−1​)​​dxk−1​​

将线性化之后的运动和观测模型代入到贝叶斯滤波器中,有:

p(xk∣xˇ0,v1:k,y0:k)⏟N(x^k,P^k)=ηp(yk∣xk)⏟N(yˇk+Gk(xk−xˇk),Rk′)×∫p(xk∣xk−1,vk)⏟N(xˇk+Fk−1(xk−1−x^k−1),Qk′)p(xk−1∣xˇ0,v1:k−1,y0:k−1)⏟N(x^k−1,P^k−1)dxk−1 \begin{array}{l}\underbrace{p\left(\boldsymbol{x}_{k} \mid \check{\boldsymbol{x}}_{0}, \boldsymbol{v}_{1: k}, \boldsymbol{y}_{0: k}\right)}_{\mathcal{N}\left(\hat{\boldsymbol{x}}_{k}, \hat{\boldsymbol{P}}_{k}\right)}=\eta \underbrace{p\left(\boldsymbol{y}_{k} \mid \boldsymbol{x}_{k}\right)}_{\mathcal{N}\left(\check{\boldsymbol{y}}_{k}+\boldsymbol{G}_{k}\left(\boldsymbol{x}_{k}-\check{\boldsymbol{x}}_{k}\right), \boldsymbol{R}_{k}^{\prime}\right)}\\\times \int \underbrace{p\left(\boldsymbol{x}_{k} \mid \boldsymbol{x}_{k-1}, \boldsymbol{v}_{k}\right)}_{\mathcal{N}\left(\check{\boldsymbol{x}}_{k}+\boldsymbol{F}_{k-1}\left(\boldsymbol{x}_{k-1}-\hat{\boldsymbol{x}}_{k-1}\right), \boldsymbol{Q}_{k}^{\prime}\right)} \underbrace{p\left(\boldsymbol{x}_{k-1} \mid \check{\boldsymbol{x}}_{0}, \boldsymbol{v}_{1: k-1}, \boldsymbol{y}_{0: k-1}\right)}_{\mathcal{N}\left(\hat{\boldsymbol{x}}_{k-1}, \hat{\boldsymbol{P}}_{k-1}\right)} \mathrm{d} \boldsymbol{x}_{k-1}\end{array} N(x^k​,P^k​)p(xk​∣xˇ0​,v1:k​,y0:k​)​​=ηN(yˇ​k​+Gk​(xk​−xˇk​),Rk′​)p(yk​∣xk​)​​×∫N(xˇk​+Fk−1​(xk−1​−x^k−1​),Qk′​)p(xk​∣xk−1​,vk​)​​N(x^k−1​,P^k−1​)p(xk−1​∣xˇ0​,v1:k−1​,y0:k−1​)​​dxk−1​​

将服从高斯分布的变量传入到非线性函数中,积分之后仍然服从高斯分布:

p(xk∣xˇ0,v1:k,y0:k)⏟N(x^k,P^k)=ηp(yk∣xk)⏟N(yˇk+Gk(xk−xˇk),Rk′)×∫p(xk∣xk−1,vk)p(xk−1∣xˇ0,v1:k−1,y0:k−1)dxk−1⏟N(xˇk,Fk−1P^k−1Fk−1T+Qk′) \begin{array}{l}\underbrace{p\left(\boldsymbol{x}_{k} \mid \check{\boldsymbol{x}}_{0}, \boldsymbol{v}_{1: k}, \boldsymbol{y}_{0: k}\right)}_{\mathcal{N}\left(\hat{\boldsymbol{x}}_{k}, \hat{\boldsymbol{P}}_{k}\right)}=\eta \underbrace{p\left(\boldsymbol{y}_{k} \mid \boldsymbol{x}_{k}\right)}_{\mathcal{N}\left(\check{\boldsymbol{y}}_{k}+\boldsymbol{G}_{k}\left(\boldsymbol{x}_{k}-\check{\boldsymbol{x}}_{k}\right), \boldsymbol{R}_{k}^{\prime}\right)} \\\times \underbrace{\int p\left(\boldsymbol{x}_{k} \mid \boldsymbol{x}_{k-1}, \boldsymbol{v}_{k}\right) p\left(\boldsymbol{x}_{k-1} \mid \check{\boldsymbol{x}}_{0}, \boldsymbol{v}_{1: k-1}, \boldsymbol{y}_{0: k-1}\right) \mathrm{d} \boldsymbol{x}_{k-1}}_{\mathcal{N}\left(\check{\boldsymbol{x}}_{k}, \boldsymbol{F}_{k-1} \hat{\boldsymbol{P}}_{k-1} \boldsymbol{F}_{k-1}^{\mathrm{T}}+\boldsymbol{Q}_{k}^{\prime}\right)}\end{array} N(x^k​,P^k​)p(xk​∣xˇ0​,v1:k​,y0:k​)​​=ηN(yˇ​k​+Gk​(xk​−xˇk​),Rk′​)p(yk​∣xk​)​​×N(xˇk​,Fk−1​P^k−1​Fk−1T​+Qk′​)∫p(xk​∣xk−1​,vk​)p(xk−1​∣xˇ0​,v1:k−1​,y0:k−1​)dxk−1​​​​

再利用高斯概率密度函数的归一化积的性质,有:

p(xk∣xˇ0,v1:k,y0:k)⏟N(x^k,P^k)=ηp(yk∣xk)∫p(xk∣xk−1,vk)p(xk−1∣xˇ0,v1:k−1,y0:k−1)dxk−1⏟N(xˇk+Kk(yk−yˇk),(1−KkGk)(Fk−1P^k−1Fk−1T+Qk′)) \begin{aligned}\underbrace{p\left(\boldsymbol{x}_{k} \mid \check{\boldsymbol{x}}_{0}, \boldsymbol{v}_{1: k}, \boldsymbol{y}_{0: k}\right)}_{\mathcal{N}\left(\hat{\boldsymbol{x}}_{k}, \hat{\boldsymbol{P}}_{k}\right)} =& \underbrace{\eta p\left(\boldsymbol{y}_{k} \mid \boldsymbol{x}_{k}\right) \int p\left(\boldsymbol{x}_{k} \mid \boldsymbol{x}_{k-1}, \boldsymbol{v}_{k}\right) p\left(\boldsymbol{x}_{k-1} \mid \check{\boldsymbol{x}}_{0}, \boldsymbol{v}_{1: k-1}, \boldsymbol{y}_{0: k-1}\right) \mathrm{d} \boldsymbol{x}_{k-1}}_{\mathcal{N}\left(\check{\boldsymbol{x}}_{k}+\boldsymbol{K}_{k}\left(\boldsymbol{y}_{k}-\check{\boldsymbol{y}}_{k}\right),\left(\mathbf{1}-\boldsymbol{K}_{k} \boldsymbol{G}_{k}\right)\left(\boldsymbol{F}_{k-1} \hat{\boldsymbol{P}}_{k-1} \boldsymbol{F}_{k-1}^{\mathrm{T}}+\boldsymbol{Q}_{k}^{\prime}\right)\right)}\end{aligned} N(x^k​,P^k​)p(xk​∣xˇ0​,v1:k​,y0:k​)​​=​N(xˇk​+Kk​(yk​−yˇ​k​),(1−Kk​Gk​)(Fk−1​P^k−1​Fk−1T​+Qk′​))ηp(yk​∣xk​)∫p(xk​∣xk−1​,vk​)p(xk−1​∣xˇ0​,v1:k−1​,y0:k−1​)dxk−1​​​​

其中,Kk\boldsymbol{K}_{k}Kk​ 为卡尔曼增益。比较上面式子的左右两侧,有:

预测

xˇk=f(x^k−1,vk,0) \check{\boldsymbol{x}}_{k} =\boldsymbol{f}\left(\hat{\boldsymbol{x}}_{k-1}, \boldsymbol{v}_{k}, \mathbf{0}\right) xˇk​=f(x^k−1​,vk​,0)

Pˇk=Fk−1P^k−1Fk−1T+Qk′ \check{\boldsymbol{P}}_{k} =\boldsymbol{F}_{k-1} \hat{\boldsymbol{P}}_{k-1} \boldsymbol{F}_{k-1}^{\mathrm{T}}+\boldsymbol{Q}_{k}^{\prime} Pˇk​=Fk−1​P^k−1​Fk−1T​+Qk′​

卡尔曼增益

Kk=PˇkGkT(GkPˇkGkT+Rk′)−1 \boldsymbol{K}_{k} =\check{\boldsymbol{P}}_{k} \boldsymbol{G}_{k}^{\mathrm{T}}\left(\boldsymbol{G}_{k} \check{\boldsymbol{P}}_{k} \boldsymbol{G}_{k}^{\mathrm{T}}+\boldsymbol{R}_{k}^{\prime}\right)^{-1} Kk​=Pˇk​GkT​(Gk​Pˇk​GkT​+Rk′​)−1

更新

x^k=xˇk+Kk(yk−g(xˇk,0))⏟更新量  \hat{\boldsymbol{x}}_{k} =\check{\boldsymbol{x}}_{k}+\boldsymbol{K}_{k} \underbrace{\left(\boldsymbol{y}_{k}-\boldsymbol{g}\left(\check{\boldsymbol{x}}_{k}, \mathbf{0}\right)\right)}_{\text {更新量 }} x^k​=xˇk​+Kk​更新量 (yk​−g(xˇk​,0))​​

P^k=(1−KkGk)Pˇk \hat{\boldsymbol{P}}_{k} =\left(\mathbf{1}-\boldsymbol{K}_{k} \boldsymbol{G}_{k}\right) \check{\boldsymbol{P}}_{k} P^k​=(1−Kk​Gk​)Pˇk​

python怎样运用卡尔曼滤波_python – 估计卡尔曼滤波器周围的置信区间 我一直在努力实现卡尔曼滤波器来搜索二维数据集中的异常.非常类似于我在这里找到的优秀帖子.作为下一步,我想预测下一个值将落入的置信区间(例如,对于最低值和上限值的95%置信度).所以除了下面的行之外,我还想成为能够生成两条额外的线,这些线代表95%的置信度,即下一个值将高于最低值或低于最高值.我假设我想要使用由卡尔曼滤波器生成的每个预测返回的不确定性协方差矩阵(P),但我不确定它是否正确.任何指导或... 阅读详情

相关推荐

概率机器人——卡尔曼滤波

前一篇贝叶斯滤波中提到了贝叶斯滤波不是一种实用的方法,没有办法在计算机中进行表达。是因为贝叶斯是一种抽象的滤波器,其中的置信度表示都是抽象的,没有明确的表达式,没有办法计算积分。尽管如此,贝叶斯给我们提供了一种关于状态最优估计的方法,本篇及后续可能更新的方法皆是贝叶斯滤波的实现方式。 1.高斯滤波 在正式介绍卡尔曼之前,需要先对高斯滤波做一个说明。 高斯滤波是一种递归状态估计器,为了解决贝叶斯滤波器中置信度没有明确表示方法的缺陷,高斯滤波给出了一种置信度用多元正态分布表示的思路,这也是为什么称之为高斯

jcsm__的博客 1123

【概率机器人】3.1 卡尔曼滤波、扩展卡尔曼滤波和无迹卡尔曼滤波

这一章将介绍卡尔曼滤波、扩展卡尔曼滤波以及无迹卡尔曼滤波,并从贝叶斯滤波的角度来进行分析并完成数学推导。如果您对贝叶斯滤波不了解,可以查阅相关书籍或阅读 【概率机器人 2 递归状态估计】。 这三种滤波方式都假设状态变量 $\mathbf{x}_t$ 的置信度 $\mathrm{bel}(\mathbf{x}_t)$ 为正态分布,这样在计算$\mathbf{x}_t$ 的置信度时,只需...

dayanbu5856的博客 621

IMU特性参数、误差模型及卡尔曼滤波参数设置

不是所有的Allan方差噪声系数都有用,主要有用的是角度随机游走系数(用于设置Q阵)和零偏不稳定性系数(用于设置一阶马氏过程的方差),其实这两个系数量级大小差不多就行了,太精细也没用。毕竟Allan方差分析的只是一个样本,你再采一个样本试试,肯定会有差异的;此外采集的是陀螺的静态性能数据,鬼知道实际动态应用的时候陀螺误差会变化多大,存在数量级差别都很有可能。这里需要的是理论指导下的工程和经验,而不是教条主义。 例如某陀螺的角度随机游走为1.38degree/hour1.38degree/\sqrt{hour

weixin_42918498的博客 9033

【滤波】扩展卡尔曼滤波器(EKF)

%matplotlib inline #format the book import book_format book_format.set_style() 我们发展了线性卡尔曼滤波器的理论。然后在上两章中,我们提出了使用卡尔曼滤波器解决非线性问题的主题。在本章中,我们将学习扩展卡尔曼滤波器(EKF)。EKF通过在当前估计点对系统进行线性化来处理非线性,然后使用线性卡尔曼滤波器对该线性化系统进行滤波。这是最早用于非线性问题的技术之一,也是最常用的技术。 EKF为滤波器的设计者设置了较大的数学挑战,因此我

Yngz_Miao的博客 2万+

扩展卡尔曼滤波(EKF)

首先进行文档下载 仔细阅读文档,理解文档中所述内容。 我对文档的matlab代码进行了简单调整如下: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %日 期: 2015.10.12 %程序功能: 使用扩展卡尔曼滤波器(EKF)估计平抛物体的运动 %%%%%%

大卫L的博客 2万+

扩展卡尔曼滤波(EKF)理论讲解与实例(matlab、python和C++代码)

扩展卡尔曼滤波(EKF)理论讲解与实例(matlab、python和C++代码) 文章目录扩展卡尔曼滤波(EKF)理论讲解与实例(matlab、python和C++代码)理论讲解KF和EKF模型对比雅可比矩阵计算计算实例应用实例线性模型CV模型:CA模型非线性模型CTRV模型:CTRV实例(python)small demo抛物线demo飞机高度demoC++实例参考文献 我们上篇提到的卡尔曼滤波是用于线性系统,预测(运动)模型和观测模型是在假设高斯和线性情况下进行的。简单的卡尔曼滤波必须应用在符合高斯分布

O_MMMM_O的博客 10万+

扩展卡尔曼滤波EKF在目标跟踪中的应用—仿真部分

扩展卡尔曼滤波EKF在目标跟踪中的应用—仿真部分 算法部分见博客: 扩展卡尔曼滤波EKF在目标跟踪中的应用—算法部分 https://blog.youkuaiyun.com/weixin_44044161/article/details/115313573 作者:823618313@qq.com 备注: 扩展卡尔曼滤波算法; 目标跟踪matlab仿真实现; Case: 二维目标跟踪情况和三维目标跟踪情况 代码下载地址如下(分别为二维情形和三维情形) EKF仿真代码:二维目标跟踪 https://download.cs

主要从事定位、估计、滤波、多传感器融合等研究,主要应用于雷达、红外、声纳、传感器网络等的目标(如无人驾驶、智能终端、移动机器人、传感器节点、飞机等)跟踪、定位和导航 5987

扩展卡尔曼滤波(EKF):处理非线性系统的状态估计

确定系统的状态方程和观测方程。这包括非线性状态转移函数 (f(x_{k-1}, u_k)) 和非线性测量函数 (h(x_k))。

chen的博客 9546

扩展卡尔曼滤波(EKF)算法详细推导及仿真(Matlab)

参考 扩展卡尔曼滤波(EKF)算法详细推导及仿真(Matlab)_gangdanerya的博客-优快云博客_扩展卡尔曼滤波matlab

努力努力努力 1万+

扩展卡尔曼滤波_扩展卡尔曼滤波(EKF)代码实战

一、本文简介通过一组数据,来实践扩展卡尔曼滤波(EKF)的代码,未来也可能利用这组数据来实践粒子滤波等非线性滤波方法来对比结果。二、环境语言:Julia 1.5第三方包:DataFrames, CSV, LinearAlgebra, Plots, PyPlot三、引用多传感器数据融合及其应用-杨万海-西安电子科技大学出版社机器人学中的状态估计-高翔等译-西安交通大学出版社四、理论理论这部分网上已经...

weixin_39833687的博客 1997

使用 Python 的扩展卡尔曼滤波 (EKF) 代码示例

在本教程中,我们将介绍您需要了解的有关扩展卡尔曼滤波器 (EKF) 的所有信息。最后,我提供了一个使用 Python 代码的详细示例,向您展示如何从头开始实现 EKF。

gongdiwudu的专栏 3010

扩展卡尔曼滤波算法 EKF

扩展卡尔曼滤波的仿真案例,参考书为北航宇航学院王可东老师的Kalman滤波基础及Matlab仿真 一、状态模型: 二、测量模型: 状态方程和测量方程中的噪声均为期望为零的白噪声。 三、状态模型和测量模型的线性化(Jacobian矩阵): 四、状态模型和测量模型的噪声矩阵及初始状态及协方差矩阵: 五、C++ 仿真源码: EKF.h #pragma once #include "Matrix.h" // 矩阵 #include "Vector.h" // 向量 #include <fs

航空宇航科学与技术、控制科学与技术 3157

扩展卡尔曼滤波(EKF)算法程序代码实战

扩展卡尔曼滤波(Extended Kalman Filter,EKF)是一种用于处理非线性系统动态和测量模型的著名算法。EKF通过泰勒级数展开在当前估计点对非线性函数进行局部线性化,使其能够应用经典卡尔曼滤波的框架。扩展卡尔曼滤波(EKF)是一种用于非线性系统的状态估计技术。EKF通过在滤波周期内对非线性函数进行线性化,来扩展传统卡尔曼滤波器的适用性。以下是EKF实现的基本步骤:初始化状态估计和误差协方差矩阵。在预测步骤中:- 预测状态估计。- 预测误差协方差。

weixin_36303807的博客 1092

扩展卡尔曼滤波技术(Extended Kalman Filter,EKF)

卡尔曼滤波算法是通过一个线性随机差分方程来估计当前状态,如果状态估计关系以及测量关系非线性则使用扩展卡尔曼滤波算法, EKF 是卡尔曼滤波器的非线性版本,它对当前均值和协方差的估计进行线性化。

weixin_46190814的博客 1万+

扩展卡尔曼滤波EKF轨迹跟踪仿真实战项目

状态空间模型是一种用于描述动态系统随时间变化状态的数学模型。它由两部分组成:状态方程和观测方程。状态方程描述系统内在状态的演化,观测方程则描述从系统状态到观测数据之间的关系。在控制理论和信号处理领域,状态空间模型是分析和设计系统的基础工具。在构建状态空间模型时,首先要确定系统状态变量,这些变量能够完整地描述系统的内部动态。状态变量的选择取决于系统本身的特性和我们希望从模型中获得的信息。在许多应用中,系统状态可能不直接可观测,但可以通过观测方程间接得到。

weixin_42522857的博客 951

AWR1642+DCA1000EVM 不使用mmWave Studio软件采集原始ADC数据 Timeout问题汇总

DCA1000 EVM Timeout问题汇总

Jesy_Hsu的博客 1476

扩展卡尔曼滤波(EKF)(实操版)

扩展卡尔曼滤波,介绍EKF的基本思想与实操matlab程序

2301_80118595的博客 1857

OSNet代码解析(普通卷积,分组卷积,深度可分离卷积,OSblock组成)

文章目录普通卷积和分组卷积普通卷积和深度可分离卷积用深度可分离卷积(LightConv3x3)代替普通卷积(Conv3x3)减少参数OSBlock (bottleneck)OSNet OSNet之所以轻量(2.2M)在于网络浅,使用深度可分离卷积代替传统卷积,但是很有效 普通卷积和分组卷积 所谓分组卷积,就是右图的input features分成一组一组,如上图groups=3,那么输入的特征分成3组,每组有12/3=4的通道的特征参与输出。然后根据输出通道的维度,得到每组的输入特征要计算两次(6/3=2

Mr_DaYang的博客 9802

ROS学习笔记之——EKF (Extended Kalman Filter) node 扩展卡尔曼滤波

最近正好准备想试试利用EKF实现多传感器的融合。但没想到本身ROS里面就已经有EKF的功能包了。这个包用于评估机器人的3D位姿,使用了来自不同源的位姿测量信息,它使用带有6D(3D position and 3D orientation)模型信息的扩展卡尔曼滤波器来整合来自轮子里程计,IMU传感器和视觉里程计的数据信息。 基本思路就是用松耦合方式融合不同传感器信息实现位姿估计。下面来学习一下 robot_pose_ekf 概要 Robot Pose EKF 包用于评估机器人的3D...

gwpscut的博客 1万+

Stata森林图进阶:个性化定制与高级技巧

本文详细介绍了Stata森林图的进阶技巧,包括个性化定制与高级应用。通过meta分析工具如metan命令,用户可以优化字体、颜色、坐标轴等视觉元素,提升森林图的专业性和可读性。文章还提供了黑白印刷设置、高分辨率导出等实用技巧,帮助科研人员制作符合学术出版要求的森林图。

ios99的博客 254

<工控><PLC>汇川Easy521系列PLC与汇川SV630N伺服进行EtherCat通讯的相关配置及指令编写

本系列是关于PLC相关的博文,包括PLC编程、PLC与上位机通讯、PLC与下位驱动、仪器仪表等通讯、PLC指令解析等相关内容。PLC品牌包括但不限于西门子、三菱等国外品牌,汇川、信捷等国内品牌。除了PLC为主要内容外,PLC相关元器件如触摸屏(HMI)、交换机等工控产品,如果有值得记录的内容,也会添加进来。

用沸腾的热血,支付我们的人生吧! 2万+
上一篇: 卡尔曼滤波器KF
下一篇: 迭代扩展卡尔曼滤波IEKF
威士忌燕麦拿铁
博客等级 码龄10年 5443粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值