【无人机】【扩展卡尔曼滤波器从IMU和GPS数据计算无人机的姿态】使用不变扩展卡尔曼滤波器对微型无人机状态估计进行传感器融合(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据


💥1 概述

摘要—随着微型空中飞行器(MAVs)变得更加价格实惠和普及,它们在复杂的城市环境中的用途将变得更加理想,例如检查、监测和投递。在这些环境中的导航需求比传统GNSS系统提供的位置精度更高。虽然MAVs通常包含惯性测量单元(IMUs),但它们基于积分的状态估计随时间容易漂移。我们探讨了使用传感器融合来结合这些互补传感器的用法。在这个项目中,我们使用不变扩展卡尔曼滤波器(InEKF)来估计MAV在具有挑战性的城市环境中的位置。我们通过将估计位置与地面真实数据集进行比较来评估我们的结果。
关键词—不变扩展卡尔曼滤波器(InEKF),定位

标准的扩展卡尔曼滤波器(EKF)通过线性化动态方程来估计状态之间的协方差。然而,这会导致一些限制,比如无法保证收敛性。与此同时,增强卡尔曼滤波器(In-EKF)可以解决上述问题,并且具有严格的数学推导作为保证。

📚2 运行结果

部分代码:

%%Initializations
%TODO: load data here
data = load('lib/IMU_GPS_GT_data.mat');
IMUData = data.imu;
GPSData = data.gpsAGL;
gt = data.gt;

addpath([cd, filesep, 'lib'])
initialStateMean = eye(5);
initialStateCov = eye(9);
deltaT = 1 / 30; %hope this doesn't cause floating point problems

numSteps = 500000;%TODO largest timestamp in GPS file, divided by deltaT, cast to int

results = zeros(7, numSteps);
% time x y z Rx Ry Rz

% sys = system_initialization(deltaT);
Q = blkdiag(eye(3)*(0.35)^2, eye(3)*(0.015)^2, zeros(3));

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]Blake Karwoski, Kun Huang, Yue Wu, Zhaoguo Wang University of Michigan, Ann Arbor, MI

🌈4 Matlab代码、数据

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值