IMUGNSS 误差状态卡尔曼滤波器(ESKF)的离散时间的ESKF 运动方程与运动过程

本文主要是介绍IMUGNSS 误差状态卡尔曼滤波器(ESKF)的离散时间的ESKF 运动方程与运动过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

IMU&GNSS 误差状态卡尔曼滤波器(ESKF)的离散时间的ESKF 运动方程与运动过程

  • 离散时间的ESKF 运动方程
  • ESKF的运动过程

离散时间的ESKF 运动方程

名义状态变量的离散时间运动方程可以写为:(不用考虑噪声,噪声在误差状态中)
在这里插入图片描述

误差状态变量的离散时间运动方程为:
在这里插入图片描述
式中右侧部分省略了括号里的(t)以简化公式
噪声项并不参与递推,需要把它们单独归入噪声部分。连续时间的噪声项可以视为随机过程的能量谱密度,而离散时间下的噪声 变量就是我们日常看到的随机变量。这些噪声随机变量的标准差可以列写为:
在这里插入图片描述
其中前两式的 delta t 是由于积分关系导致的,后两式则和 离散时间下的 零偏游走的标准差公式 一致

至此,完成了在ESKF中进行IMU递推的过程,对应卡尔曼滤波器中的状态方程。为了让滤波器收敛,需要外部的观测对卡尔曼滤波器进行修正,也是所谓的组合导航。当然组合导航的方法很多,从传统的EKF,到本节介绍的ESKF,以及预积分和图优化都可以用于组合导航中。

下面以融合GNSS观测为离,梳理如何在ESKF中融合这些观测数据,形成一个收敛的卡尔曼滤波器。

ESKF的运动过程

下面写出ESKF的运动过程。根据误差状态变量 离散时间运动方程,可以整体的记为:
在这里插入图片描述
其中w为噪声,按照前面的定义,Q应该为
在这里插入图片描述
两侧的零,是由于第一个和最后一个方程本身没有噪声导致的

为了保持与EKF的符号统一,计算运动方程的线性化形式
在这里插入图片描述
其中,F为线性化后的雅克比矩阵。由于 误差状态变量的离散时间运动方程 已经线性化,所以F矩阵就是把它们线性系数拿出来(注意变量定义的顺序)
在这里插入图片描述

在此基础上,执行ESKF的预测过程。预测过程包括对名义状态的预测(IMU积分)及对误差状态的预测
在这里插入图片描述
由于ESKF的误差状态在每次更新以后会被重置为零,即
在这里插入图片描述
因此,运动方程的均值部分,即
在这里插入图片描述
没有太大意义

协方差部分则描述了整个误差估计的分布情况。

从直观意义上来看,运动方程的噪声协方差中增加了Q项,可以看作增大的过程。

这篇关于IMUGNSS 误差状态卡尔曼滤波器(ESKF)的离散时间的ESKF 运动方程与运动过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/922585

相关文章

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

作业提交过程之HDFSMapReduce

作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 第2步:Client向RM申请一个作业id。 第3步:RM给Client返回该job资源的提交路径和作业id。 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 第5步:Client提交完资源后,向RM申请运行MrAp

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

hdu1565(状态压缩)

本人第一道ac的状态压缩dp,这题的数据非常水,很容易过 题意:在n*n的矩阵中选数字使得不存在任意两个数字相邻,求最大值 解题思路: 一、因为在1<<20中有很多状态是无效的,所以第一步是选择有效状态,存到cnt[]数组中 二、dp[i][j]表示到第i行的状态cnt[j]所能得到的最大值,状态转移方程dp[i][j] = max(dp[i][j],dp[i-1][k]) ,其中k满足c

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

hdu3006状态dp

给你n个集合。集合中均为数字且数字的范围在[1,m]内。m<=14。现在问用这些集合能组成多少个集合自己本身也算。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.Inp

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动