自动驾驶融合定位系列教程五:惯性导航误差分析

2024-05-06 18:20

本文主要是介绍自动驾驶融合定位系列教程五:惯性导航误差分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

自动驾驶融合定位系列教程五:惯性导航误差分析

一、概述

在定位领域的几乎所有多传感器融合系统中,都有IMU存在,而且,IMU是定位系统的主线与核心(对此可能很多人并不同意,但是我仍然坚定地坚持这一观点)。

对于IMU参与的融合系统(无论是基于滤波还是基于优化),它的误差分析就既是核心内容,也是基础内容,是必须要掌握的。如果要简单解释,所谓融合,就是根据观测误差去反推状态误差,而误差分析就是给出观测误差与状态误差之间的关系,让这个“反推”不再是文字,而具有数学表达,从而可以进行算法实现。

具体来讲,在IMU融合系统中,这里的观测误差就对应位置误差、速度误差、姿态误差,状态误差指的就是位置误差、速度误差、姿态误差、陀螺仪的bias、加速度计的bias等。观测和状态中有重复的量这很正常,说明“有些状态可以被直接观测到”。而根据观测误差去反推状态误差,指的就是,如果告诉你它们之间的关系(比如已知陀螺仪的bias和姿态误差之间的关系),那么就可以根据该关系去反推出那些不能被直接观测到的量(比如已知姿态误差去反推陀螺仪bias)。

image

附赠自动驾驶学习资料和量产经验:链接

二、误差方程推导思路

误差方程的推导公式还是挺多的,所以,按照本系列文章的风格,会先介绍推导的思路,把公式推导放在思路的框架下理解,以避免陷入混乱状态。

既然误差分析是对观测误差和状态误差关系的推导,那么我们不妨就从一个简单的例子,来把这个推导思路解释清楚。假设z是观测,x和y都是状态,并且有

𝑧˙=𝑥+𝑦

误差分析指的就是,由上面的方程,推导出 𝛿𝑧 与 𝛿𝑥 、 𝛿𝑦 之间的关系。我们按照固定的套路,把推导步骤给固化下来,这样,我们在后面推导位置、速度、姿态的误差方程的时候就直接往上套就行了。整个过程可以分为以下几步:

1)写出不考虑误差时的微分方程

𝑧˙=𝑥+𝑦

2)写出考虑误差时的微分方程

image

3)写出真实值与理想值之间的关系

image

4)把3)中的关系,代入2)

image

5)把1)中的关系,代入4)

image

6)化简方程

image

经过这样 6 步,就很容易地达到了我们的目的。不过对于这个方程来讲,有点过于简单了,因为不写出这 6 个步骤,可能也能直接看出答案,但这只是以此为例,把步骤梳理清楚,等真正推导IMU的误差方程的时候,不能直接看得出结果,这些就用得上了。

三、IMU 误差方程推导

1.姿态误差方程

我们以四元数的表达方式为例,进行介绍。同样按照刚才的 6 个步骤往里面套。

image

image

根据上一篇文章所讲,四元数相乘可以转换成矩阵与向量相乘

image

image

image

由于融合时,状态量中往往不是使用四元数,而是使用失准角,因此要把上式转成失准角的微分形式。

image

2.速度误差方程

image

image

3.位置误差方程推导

image

位置误差方程推导完毕。

四、总结

可以看出,掌握基本思路以后,推导是不太费脑子的,就是有点费纸。这里啰哩啰嗦把这些东西讲完,后面的章节就直接使用这里的结论了。

这篇关于自动驾驶融合定位系列教程五:惯性导航误差分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An