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

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

相关文章

慢sql提前分析预警和动态sql替换-Mybatis-SQL

《慢sql提前分析预警和动态sql替换-Mybatis-SQL》为防止慢SQL问题而开发的MyBatis组件,该组件能够在开发、测试阶段自动分析SQL语句,并在出现慢SQL问题时通过Ducc配置实现动... 目录背景解决思路开源方案调研设计方案详细设计使用方法1、引入依赖jar包2、配置组件XML3、核心配

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注