【数据融合】基于matlab拓展卡尔曼滤波IMU和GPS数据融合【含Matlab源码 1600期】
一、获取代码方式
获取代码方式1:
完整代码已上传我的资源:【数据融合】基于matlab拓展卡尔曼滤波IMU和GPS数据融合【含Matlab源码 1600期】
获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。
备注:订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);
二、部分源代码
%for testing
clc
clear
close allpauseLen = 0;%%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 problemsnumSteps = 500000;%TODO largest timestamp in GPS file, divided by deltaT, cast to intresults = 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));
%IMU noise characteristics
%Using default values from pixhawk px4 controller
%https://dev.px4.io/v1.9.0/en/advanced/parameter_reference.html
%accel: first three values, (m/s^2)^2
%gyro: next three values, (rad/s)^2 filter = filter_initialization(initialStateMean, initialStateCov, Q);%IMU noise? do in filter initializationIMUIdx = 1;
GPSIdx = 1;
nextIMU = IMUData(IMUIdx, :); %first IMU measurement
nextGPS = GPSData(GPSIdx, :); %first GPS measurement%plot ground truth, raw GPS data% plot ground truth positions
plot3(gt(:,2), gt(:,3), gt(:,4), '.g')
grid on
hold on
% plot gps positions
% plot3(GPSData(:,2), GPSData(:,3), GPSData(:,4), '.b')
axis equal
axis vis3dcounter = 0;
MAXIGPS = 2708;
MAXIIMU = 27050;
isStart = false;for t = 1:numStepscurrT = t * deltaT;if(currT >= nextIMU(1)) %if the next IMU measurement has happened
% disp('prediction')filter.prediction(nextIMU(2:7));isStart = true;IMUIdx = IMUIdx + 1;nextIMU = IMUData(IMUIdx, :);
% plot3(filter.mu(1, 5), filter.mu(2, 5), filter.mu(3, 5), 'or');endif(currT >= nextGPS(1) & isStart) %if the next GPS measurement has happened
% disp('correction')counter = counter + 1;filter.correction(nextGPS(2:4));GPSIdx = GPSIdx + 1;nextGPS = GPSData(GPSIdx, :);plot3(nextGPS(2), nextGPS(3), nextGPS(4), '.r');
% plot3(filter.mu(1, 5), filter.mu(2, 5), filter.mu(3, 5), 'ok');
% plotPose(filter.mu(1:3, 1:3), filter.mu(1:3, 5), filter.mu(1:3,4));endresults(1, t) = currT;results(2:4, t) = filter.mu(1:3, 5); %just position so far
% plot3(results(2, t), results(3, t), results(4, t), 'or');
% disp(filter.mu(1:3, 1:3));if pauseLen == infpause;elseif pauseLen > 0pause(pauseLen);endif IMUIdx >= MAXIIMU || GPSIdx >= MAXIGPSbreakend
end
plot3(results(2,:), results(3,:), results(4,:), '.b');
% xlim([-10 10]);
% ylim([-10 10]);
xlabel('x, m');
ylabel('y, m');
zlabel('z, m');%% Evaluation
gps_score = evaluation(gt, GPSData)results_eval = results.';
score = 0;
estimation_idx = 1;
count = 0;
for i = 2:length(gt)score = score + norm(gt(i, 2:4) - results_eval(30 * (i-1), 2:4)) ^ 2;count = count + 1;
end
count
score = sqrt(score / count)%% Function
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.
【数据融合】基于matlab拓展卡尔曼滤波IMU和GPS数据融合【含Matlab源码 1600期】相关推荐
- 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】
一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...
- 【Matlab语音分析】语音信号分析【含GUI源码 1718期】
一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...
- 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】
一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...
- 【Matlab车牌识别】停车计费系统【含GUI源码 735期】
一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...
- 【Matlab水果识别】自助水果超市【含GUI源码 594期】
一.代码运行视频(哔哩哔哩) [Matlab水果识别]自助水果超市[含GUI源码 594期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]倪云峰,叶健,樊娇娇 ...
- 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】
一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...
- 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】
一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...
- 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】
一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...
- 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】
一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...
- 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】
一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...
最新文章
- Qt中文手册 之 QTableWidgetItem
- python 倒计时_用Python帮你远离猝死悲剧
- PyTorch 实现经典模型7:YOLO (v1, v2, v3, v4)
- 云服务器cpu系列,云服务器cpu系列
- python大学随机点名名_python用tkinter实现一个简易能进行随机点名的界面
- Win11掉帧严重是怎么回事?Win11玩游戏掉帧的解决方法
- Error:java: Invalid additional meta-data in ‘META-INF/spring-configuration-metadata.json‘: End of in
- 为什么打印出来的文件右边有阴影_怎样将十几几十页的长文件文档打印成A4纸对折的小册子?...
- 需求分析——基于Django框架的天天生鲜电商网站项目系列博客(一)
- JavaScript 学习指南
- windows如何卸载服务
- python字符串替换
- 设计模式(博客园精华集)
- 诛仙服务器技能修改,【诛仙422】自己修改的特色一键端(2018.10.11号更新修复BOOS不刷新BUG)技能修改补丁...
- 微信小程序制作天气查询系统
- uniport ID 转换为 gene symbol(ID转换)
- 微信多媒体文件speex格式转为mp3文件格式
- mysqlfrm初步使用
- GitHub的Linux配置与常用操作
- Robust Lane Detection from Continuous Driving
热门文章
- 强悍的电子邮件地址(email address)正则表达式
- 转换成XmlDocument
- 文本框焦点清空以及回车键提交表单的实现
- myeclipse中JSP页面不能更新时候的做法
- day20T3改错记
- Linux误删C基本运行库libc.so.6处理方法
- Android -- 闹钟服务的使用(单次闹钟)
- 20200710每日一句
- Atitit 验证码功能修复总结文档原有的tp5里面的验证码不知怎么有问题了,试图在tp5框架内修复无果。。使用了新的验证码组件 “lifei6671/php-captcha“: “0.
- Atitit 按照行读取文件 目录 1.1. 类库'readline'	1 1.2. 类库C:\0workspace\dataindexGenerNodejs\sdk\io\FileUtils.js