PX4-Autopilot代码解析(7)-扩展卡尔曼滤波器(EKF2)

2017年第一篇:关于EKF2的讨论(总有你想要的) 一、开篇         首先,自我介绍一下,我叫summer,很久很久很久没有更新blog了,这一段时间确实是太忙了,         然后,很多人应该都知道summer开PX4培训班了吧,在此非常感谢大家的捧场。         接着,也接触了很多神一样的人物,交流一些非常对头的思想。         虽然,伴随着年前国内某些知名无人机企业的裁员。               但是, 阅读详情

扩展卡尔曼滤波器 (EKF2) 模块是 PX4 自动驾驶系统的核心状态估计组件。它负责融合来自多个传感器的数据,以提供对飞行器姿态、位置、速度以及飞行控制所需的其他状态的可靠估计。本文档介绍了 EKF2 系统的架构、组件、操作和配置。

EKF2 采用模块化、可配置、抗传感器故障的设计,适用于各种车辆类型和操作条件。

架构概述

EKF2 模块使用处理估计过程不同方面的类的分层结构来实现。

类层次结构

该架构包括:

  1. EKF2 类:PX4 模块接口,用于处理与其他 PX4 模块的通信
  2. EstimatorInterface:定义状态估计器接口的基类
  3. Ekf 类:扩展卡尔曼滤波器算法的核心实现
  4. OutputPredictor:通过在过滤器更新之间传播状态来提供高速率输出
  5. 环形缓冲区:存储带有时间戳的传感器数据,用于延迟融合

状态向量

EKF状态向量包含以下组成部分:

状态向量在结构中定义StateSample,包括:

  1. 姿态:表示车辆方向的四元数
  2. 速度:东北向下(NED)框架中的 3D 速度矢量
  3. 位置:NED 框架中的 3D 位置矢量
  4. 陀螺仪偏置:陀螺仪的 3D 偏置矢量
  5. 加速度计偏差:加速度计的 3D 偏差矢量
  6. 可选状态:根据配置,可能包括磁场、风速和地形高度

状态向量的大小和组成是在编译时根据配置选项确定的。

数据流

下图说明了数据如何流经 EKF2 系统:

数据流过程包括:

  1. 传感器数据收集:通过 uORB 主题接收传感器数据
  2. 时间对齐:数据存储在带有时间戳的环形缓冲区中,以便延迟融合
  3. 状态预测:IMU 数据用于及时传播状态
  4. 测量融合:融合传感器测量值以校正预测状态
  5. 输出发布:估计状态发布到 uORB 主题,供其他模块使用

EKF2 模块在其自己的工作队列上运行,并由新的 IMU 数据触发。

传感器融合

EKF2 模块可以融合来自多个传感器的数据,以提供稳健的状态估计。融合过程由一组标志控制,这些标志决定使用哪些传感器。

融合控制标志

融合控制系统:

  1. 根据可用性和质量确定使用哪些传感器
  2. 管理不同传感器组合之间的转换
  3. 通过回退到替代源来处理传感器故障
  4. 当传感器数据有限时,提供劣化估计

Ekf 类中的函数controlFusionModes()负责根据传感器数据质量和可用性管理融合控制标志。

高度融合

EKF2 可以使用各种来源进行高度估计,由以下EKF2_HGT_REF参数控制:

ID 高度传感器 描述 优点 缺点
0 陀螺 气压计(气压高度) 始终可用,稳定 受天气、地面效应影响
1 全球导航卫星系统 GNSS 高度(参考椭球或 MSL) 全球参考,无漂移 需要良好的卫星可见性
2 RangeFinder
PX4_EKF2_Multi_Model_Fusion_Technical_Document 本文深入分析了PX4-Autopilot中扩展卡尔曼滤波器(EKF2)的多模型自适应融合技术,该技术通过并行多实例架构、动态传感器切换和分层故障检测机制,有效解决了无人飞行器在复杂飞行工况下的状态不可观测性问题。研究表明,该系统通过9个并行EKF实例、标准化援助源接口和自适应协方差管理,实现了在传感器故障、环境干扰和极端飞行条件下的连续可靠状态估计。实验和理论分析证明,该架构相比传统单一EKF方案,在故障容错性、估计精度和计算效率方面具有显著优势。关键词:扩展卡尔曼滤波;多模型融合;状态可观测性; 阅读详情

相关推荐

PX4-Autopilot代码解析(6)-姿态估计

PX4系统的EKF2模块采用扩展卡尔曼滤波器实现多传感器融合,为飞行器提供稳健的状态估计。该模块采用模块化架构,支持灵活配置IMU、GNSS、磁力计等多种传感器源,通过时间对齐机制处理传感器延迟。核心算法维护包含姿态、速度、位置等状态向量,通过预测和更新阶段实现传感器数据融合。系统提供参数化配置接口,可调整噪声模型、融合模式及创新门限值,确保在不同环境和故障情况下的可靠运行。

rainercool的专栏 1124

PX4-Autopilot代码解析(8)-传感器集成

PX4传感器集成系统采用模块化架构,通过uORB主题实现传感器数据采集、验证和处理。系统支持GPS/GNSS(含u-blox/Septentrio协议)、UAVCAN总线和地磁模型等多源传感器,提供参数化配置接口。核心组件包括协议解析、数据验证和状态估计模块,其中GPS子系统支持双天线航向和RTK校正,Septentrio驱动实现SBF协议全解析,UAVCAN框架标准化传感器桥接,WMM模型提供磁场补偿。系统通过多层验证机制(范围检查、物理一致性等)确保数据可靠性,并采用滞后延迟策略管理状态切换。

rainercool的专栏 785

PX4从放弃到精通(二十五):EKF2

PX4 ekf的传感器数据放在FIFO的环形缓冲区中,每次融合时取最新的数据,融合出的bias直接给输出滤波器,补偿到IMU的数据中,同时EKF融合出的位置速度等数据也要给输出滤波器,根据延时经过补偿输出当前时间线下的状态。

超维空间科技的博客 5463

PX4 的ECL EKF2方程推导.pdf

无人机开源飞控px4中 关于EKF2部分的详细推导!

【CTFWP】ctfshow-web40

CTFWP:ctfshow-web40

LongL_GuYu的博客 1862

H3C VRF实验

POP-vpn-instance-RT1]route-distinguisher 11:11 # VPN实例-RT1的路由区分器值11:11。配置路由泄露,其实就是在一个VPN示例中添加另一个VPN实例的下一跳,比如在VPN实例RT1中添加去往SRV的默认路由。但是也有了一个新的问题,那就是RT1、RT2和RT3也能互访了,这让VPN实例变得没有意义了。[POP]ip vpn-instance RT1 #配置vpn实例-RT1。绑定了VPN实例,所以要把路由添加到VPN实例POP中。

m0_68698993的博客 4023

提升YOLOv8检测精度的边界框损失函数Focaler-IoU与InnerFocalerIoU的应用与效果

YOLOv8是一种常用的实时目标检测模型,基于CNN(卷积神经网络)结构并结合了一些改进技术以提高检测精度和速度。YOLOv8的核心在于边界框的预测和分类,而准确的边界框预测是提高模型整体性能的关键因素之一。在传统的IoU损失基础上,Focaler-IoU和InnerFocalerIoU进一步聚焦于边界框的边缘区域,通过调整损失权重,更好地关注难以检测的边界框,提高模型的鲁棒性和准确性。# 计算IoU# 计算Focaler-IoU损失在这里,我们定义了。

博客 1340

【DevOps】rancher集成ldap,实现统一账号登录

登录到rancher控制台,选择【安全】-【认证】 选择【OpenLDAP】 其中【搜索起点】需要去ldap界面查配置完成

CN_Eden 1092

泛微系统流程表单获取节点操作者

泛微系统流程表单获取节点操作者 select typename 流程类型, workflowname 流程名称, nodename 节点名称, (case when nodetype=0 then '创建' when nodetype=1 then '审批' when nodetype=2 then '提交' when nodetype=3 then '归档' else '' end) as 节点类型, groupname 节点操作组, (case when type=1 then '部门+安

烧硬盘 4613

win7 vs2012+wdk8.0 搭建wdf驱动开发环境

开发环境搭建: 系统:win7 x64 工具:vs2012 + WDK8.0 插件:wdfcoinstaller.msi (1)先安装vs2012,再安装wdk8.0,这样在打开vs2012时可以创建windows drivers类型的工程。 注:vs2012不能安装wdk8.1,wdk8.1必须安装在vs2013上 下载链接:http://msdn.microsoft.com/zh-cn/win...

技术联盟 5342

西南科技大学模拟电子技术实验七(集成运算放大器的非线性应用)预习报告

将电位器Rp调至中心位置,用双综示波器观察并绘制方波U0的波形,测量其幅值和频率;将电位器RP调至中心位置,用示波器观察并绘制锯齿波U0的波形,记录;示波器基线调零,Ui输入1000HZ、幅值为2V的正弦信号,观察并记录Ui与U0波形,读出图中波形跳变时的Ui临界值;用万用表电位器RP调至预测结果位置,用示波器观察并描绘三角波输出U0及方波输出uo’,测其幅值、频率及Rp值,记录之。示波器基线调零,U输入1000HZ、幅值为2V的正弦信号,观察UI与U0波形。理论算法公式:当Ui

Welcome To My6n Blog 3935

西南科技大学数字电子技术实验七(4行串行累加器设计及FPGA实现)FPGA部分

/在k=1时输入1,并在k=0时运算。//在k=1时输入0,并在k=0时运算。//在k=1时输入1,并在k=0时运算。//在k=1时输入0,并在k=0时运算。//在k=1时输入1,并在k=0时运算。//在k=1时输入1,并在k=0时运算。//在k=1时输入0,并在k=0时运算。//在k=1时输入0,并在k=0时运算。三、程序清单(每条语句必须包括注释或在开发窗口注释后截图)四、综合、管脚分配、生成输出文件、下载(所有步骤截图)五、仿真程序清单、波形(波形截图必做,截图!.k(k),//开关。

Welcome To My6n Blog 4331

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: PX4-Autopilot代码解析(6)-姿态估计
下一篇: PX4-Autopilot代码解析(8)-传感器集成
timmy-uav
博客等级 码龄26年 526粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

timmy-uav

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值