一、获取代码方式

获取代码方式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期】相关推荐

  1. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  2. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  3. 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】

    一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  4. 【Matlab车牌识别】停车计费系统【含GUI源码 735期】

    一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...

  5. 【Matlab水果识别】自助水果超市【含GUI源码 594期】

    一.代码运行视频(哔哩哔哩) [Matlab水果识别]自助水果超市[含GUI源码 594期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]倪云峰,叶健,樊娇娇 ...

  6. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

  7. 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  8. 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...

  9. 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...

  10. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

最新文章

  1. Qt中文手册 之 QTableWidgetItem
  2. python 倒计时_用Python帮你远离猝死悲剧
  3. PyTorch 实现经典模型7:YOLO (v1, v2, v3, v4)
  4. 云服务器cpu系列,云服务器cpu系列
  5. python大学随机点名名_python用tkinter实现一个简易能进行随机点名的界面
  6. Win11掉帧严重是怎么回事?Win11玩游戏掉帧的解决方法
  7. Error:java: Invalid additional meta-data in ‘META-INF/spring-configuration-metadata.json‘: End of in
  8. 为什么打印出来的文件右边有阴影_怎样将十几几十页的长文件文档打印成A4纸对折的小册子?...
  9. 需求分析——基于Django框架的天天生鲜电商网站项目系列博客(一)
  10. JavaScript 学习指南
  11. windows如何卸载服务
  12. python字符串替换
  13. 设计模式(博客园精华集)
  14. 诛仙服务器技能修改,【诛仙422】自己修改的特色一键端(2018.10.11号更新修复BOOS不刷新BUG)技能修改补丁...
  15. 微信小程序制作天气查询系统
  16. uniport ID 转换为 gene symbol(ID转换)
  17. 微信多媒体文件speex格式转为mp3文件格式
  18. mysqlfrm初步使用
  19. GitHub的Linux配置与常用操作
  20. Robust Lane Detection from Continuous Driving

热门文章

  1. 强悍的电子邮件地址(email address)正则表达式
  2. 转换成XmlDocument
  3. 文本框焦点清空以及回车键提交表单的实现
  4. myeclipse中JSP页面不能更新时候的做法
  5. day20T3改错记
  6. Linux误删C基本运行库libc.so.6处理方法
  7. Android -- 闹钟服务的使用(单次闹钟)
  8. 20200710每日一句
  9. Atitit 验证码功能修复总结文档原有的tp5里面的验证码不知怎么有问题了,试图在tp5框架内修复无果。。使用了新的验证码组件 “lifei6671/php-captcha“: “0.
  10. Atitit 按照行读取文件 目录 1.1. 类库'readline' 1 1.2. 类库C:\0workspace\dataindexGenerNodejs\sdk\io\FileUtils.js