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

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

相关文章

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、