1.使用数据:

M40采集的imu观测值、gps观测值

2.数据处理程序

NovAtelConvert、GINS、RTKLIB、ins_gnss_losse(matlab版本)
默认这四个程序已经安装到电脑上。

3. 数据预处理

1.数据解码、获取导航文件

M40采集的数据文件如下:

1.1解码

  • step1.解码.gnss文件:选中文件,右键convertto,选择rinex3.04
  • step2,打开gins,选择文件,解码原始文件,导入数据,设置高级里边的IMU轴向调整如下图,解码即。

    因为安装m40时,前向并未对准行进方向因此进行调整,将坐标系转为前右下。

注:使用gins也可以解码gnss数据但是,观测值卫星数较少,缺少鬼子和阿三的卫星。

  • step3.下载当天的导航文件
    (1)计算年纪日,计算链接:http://www.igs.gnsswhu.cn/index.php/home/data_product/igs.html

    (2)ftp下载
    https://cddis.nasa.gov/archive/gnss/data
    文件路径说明 https://cddis.nasa.gov/archive/gnss/00readme
 /daily/YYYY/DDD/YYd         Observation files for year YYYY and day DDD(Hatanaka format)/YYf        Beidou navigation files for year YYYY and day DDD/YYg        GLONASS navigation files for year YYYY and dayDDD/YYh        SBAS navigation files for year YYYY and day DDD/YYi        IRNSS navigation files for year YYYY and day DDD/YYl        Galileo navigation files for year YYYY and dayDDD/YYm        Met files for year YYYY and day DDD/YYn        GPS navigation files for year YYYY and day DDD/YYo        Observation files for year YYYY and day DDD多系统星历文件 /YYp        Mixed navigation files for year YYYY and day DDD/YYq        QZSS navigation files for year YYYY and day DDD/YYs        Summary files for year YYYY and day DDD

本例年纪日为选111故进入路径:https://cddis.nasa.gov/archive/gnss/data/daily/2022/111/22p/
下载一个大点的文件,然后解压。

注意rtklib暂时不支持rinix4.0版本,下载广播星历文件后需要查看版本号。

  • step4.保留导航文件、观测文件、解码后的imu.bin文件

2.使用RTKLIB处理gps原始观测

操作步骤
(1)打开rtkpose.exe 可执行文件
(2)设置输出历元间隔、观测值文件路径、导航文件路径、输出文件路径、选用的卫星系统

(3)option中设置
定位模式选择单点定位、高度角阈值设置为15
输出设置,结果用经纬度高程表示,设置输出速度。
解算:
(4)点击plot查看轨迹和可见卫星数,可以初步查看定位效果。
(5)结果文件,pos

  GPST                  latitude(deg) longitude(deg)  height(m)   Q  ns   sdn(m)   sde(m)   sdu(m)  sdne(m)  sdeu(m)  sdun(m) age(s)  ratio    vn(m/s)    ve(m/s)    vu(m/s)      sdvn     sdve     sdvu    sdvne    sdveu    sdvun
2022/04/21 06:47:34.000   39.988723818  116.346130987    53.1772   5   9   8.5511   6.6179  21.2390  -3.5887  -9.0447   7.8971   0.00    0.0   -0.10206    0.10557   -0.21679   0.24766  0.19705  0.61898 -0.11752 -0.26352  0.26150

4. ins-gps-losse松组合

4.1 所需数据:

  • rtklib解算的定位结果文件
  • imu观测文件

4.2数据预处理

rtklib输出保留经纬度高程和北东地的速度信息,时间改成gps周内秒。

//matlab
%将rtklib解算单点定位结果时间转换成gps周内秒
%保留时间、纬度、精度、高程、enu速度
%%
clear;
clc;
data=importdata('../resource/220421071334.pos');
size=length(data)-14;%rtklib前14行为解释说明
enddata=zeros(size,7);%处理后的数据
%%提取有用的数据
if size> 0 %文件不为空for j = 1:size  dataj = regexp(data{j+14,1},'\d*\.?\d*','match');%提取单个历元待处理数据dataj=str2double(dataj);%数据格式转换enddata(j,2:4)=dataj(7:9);%纬度、经度、高程enddata(j,5:7)=dataj(20:22);%neu速度utc=[dataj(1) dataj(2) dataj(3) dataj(4) dataj(5) dataj(6)];gpst=calculationgpstime(utc)+18;enddata(j,1)=gpst(2);%gps周内秒end
end
%保存
Save(enddata,"../resource/220421071334.txt");

utc时间转换gps时间函数:calculationgpstime()

function t = calculationgpstime(t1)
%Calculating GPS time (gpsweek,seconds);
% t1 is the observation time
%                       TYPE : [YYYY MM DD HH MIN SEC]
% function to return gpsweek and the seconds in weekt0 = [1980 1 6 0 0 0.0];
sec = etime(t1,t0);
t = [fix(sec/3600/24/7),sec - fix(sec/3600/24/7)*3600*24*7];

4.3 ins_gps解算

更改文件输入路径:

imu_inpath = "../resource/220421071334_imu.bin"; % IMU文件路径, 严格以.txt/.dat/.bin结尾,推荐使用二进制, 文件数据要求见ImuFile
gnss_inpath = "../resource/220421071334.txt"; % GNSS文件路径,文件严格为文本文件

其他参数已经标定好了。

%%
%M40 data 主函数
%2022.3.17
%%
clear
clear global var
%% 全局变量
tic;
run arg
t = toc;
fprintf('设置全局变量用时:%f\n', t);
%% 用户设置global GRAVITY RE                   %重力和地球半径
imu_inpath = "../resource/220421071334_imu.bin"; % IMU文件路径, 严格以.txt/.dat/.bin结尾,推荐使用二进制, 文件数据要求见ImuFile
gnss_inpath = "../resource/220421071334.txt"; % GNSS文件路径,文件严格为文本文件
pos = [ 39.991478610; 116.344457418; 56.1510]; % 初始位置; % 初始位置
vel = [0; 0; 0];% 初始速度
att = [0;0;0];% 初始姿态[roll, pitch, head]
fs = 200; % IMU采样频率
gyrobias = [0.01;0.01; 0.01]; % 陀螺仪零偏°/h
accebias = [0.05 * GRAVITY * 0.001; 0.05 * GRAVITY * 0.001; 0.05 * GRAVITY * 0.001];% 加速度计零偏 m/s
ARW = [0.002492; 0.001993; 0.002423]; % 陀螺仪白噪声(随机游走结果) °/sqrt(h)
VRW = [0.049549; 0.083993; 0.051888]; % 加速度计白噪声(随机游走结果) m /sqrt(s)
obnosie = [4 / RE; 4 / RE; 1; 0.1; 0.1; 0.1]; % GNSS观测标准差 [°; °; °; m/s; m/s; m/s]
mod = [1, 1, 1, 1, 1, 1]; % 马尔科夫模型相关时间 s
%%
tic;%启动秒表计时器
err = ImuErr(gyrobias, accebias, ARW, VRW);%读取imu误差参数
t = toc;%读取秒表计时器时间
fprintf('ImuErr用时:%f\n', t);
tic;%启动秒表计时器
imudata = ImuFile(imu_inpath);%读取imu数据
t = toc;%读取秒表计时器时间
fprintf('读取IMU文件用时:%f\n', t);
tic;%启动秒表计时器
gnssdata = Gnss(gnss_inpath);%读取gnss数据
t = toc;%读取秒表计时器时间
fprintf('读取GNSS文件用时:%f\n', t);
tic;%启动秒表计时器
inipva = Pva(pos, vel, att);%设置初始pva
t = toc;%读取秒表计时器时间
fprintf('Pva:%f\n', t);
tic;%启动秒表计时器
inertial = Ins(inipva, fs, err);%ins更行(机械编排)
t = toc;%读取秒表计时器时间
fprintf('Ins用时:%f\n', t);
%% 卡尔曼滤波
tic;%启动秒表计时器
kf_debug = Kf(err, obnosie, mod);
t = toc;%读取时间
fprintf('Kf用时:%f\n', t);
tic;%启动秒表计时器
[kf_debug, inertial, imudata] = kf_debug.Update(inertial, gnssdata, imudata);
t = toc;%读取时间
fprintf('卡尔曼滤波更新用时:%f\n', t);
%% 保存结果
tic;
imudata.Save("../resource/m40.dat");
t = toc;
fprintf('数据保存用时:%f\n', t);

INS-GPS-LOSSE 数据处理实例相关推荐

  1. 27、Power Query-日期与时间数据处理实例(图书室借书统计)

    本节要点:Power Query-日期与时间数据处理实例(图书室借书统计) 承接上一节的需求,我们引入切片器的功能,对图书室的借书以及归还情况进行查询和筛选,效果图如下: 对"借书状态&qu ...

  2. 26、Power Query-日期与时间数据处理实例(统计出某年各月各周的借书人数)

    本节重点:Power Query-日期与时间数据处理实例(统计出某年各月各周的借书人数) 需求如下: 上图所示,根据左侧的数据源,统计出2016年各月各周的借书人数(效果如右侧所示). 分析:很明显, ...

  3. sql server与java实例_Origin数据处理实例教程50节02040101

    本期小电分享50节Origin数据处理实例教程 链接:https://pan.baidu.com/s/1y-5wrJ6PEswKV_UMrJ_hYw 提取码:8suu 第1节- Origin图表中如何 ...

  4. GNSS/INS组合导航(八):INS/GPS组合导航

    INS/GPS组合导航 对比INS与GPS导航方法,二者都有其各自的优缺点. 惯性导航系统INS是一种全自主的导航系统,可以输出超过200Hz的高频信号,并且具有较高的短期测量精度.除了提供位置与速度 ...

  5. [R语言基础]——数据处理实例

    [R语言基础]--数据处理实例 前言 问题 Step1:建立数据框 Step2:计算综合得分 Step3:对学生进行评分 Step4:根据姓氏和名字排序 完整代码 前言 之前我们已经学习了R对数据预处 ...

  6. INS/GPS组合导航类型简介

    INS/GPS组合导航类型简介 前言 内容 PSINS中19维组合导航代码可参考一下 前言 导航技术为用户提供运动物体的位置.速度和姿态信息.常用导航方法有卫星导航和惯性导航. 卫星导航以其定位精度高 ...

  7. Quaternion-based Kalman Filtering on INS/GPS

    Quaternion-based Kalman Filtering on INS/GPS 1 四元数 1.1 旋转矩阵 2 INS/GPS 2.1信息融合技术 2.2导航方向的推导 2.2.1 姿态更 ...

  8. 组合导航(八):INS/GPS组合导航

    INS/GPS组合导航 1 误差反馈 1.1 开环INS/GPS架构 1.2 闭环INS/GPS架构 2 组合导航的类型 2.1 松耦合 的INS/GPS组合导航 2.2 紧耦合 的INS/GPS组合 ...

  9. 非线性滤波——基于EKF的INS/GPS松组合算法的研究(直接法|EKF|欧拉角)

    题外话:虽然导航与控制领域在现代工业中应用广泛,但近些年火热的多旋翼无人机无疑是推动这一领域进一步发展的最重要的推手,如日中天的汽车智能驾驶行业也将使导航和控制领域充分融合计算机视觉(SLAM).机器 ...

  10. python数据处理实例-Python数据处理numpy.median的实例讲解

    numpy模块下的median作用为: 计算沿指定轴的中位数 返回数组元素的中位数 其函数接口为: median(a, axis=None, out=None, overwrite_input=Fal ...

最新文章

  1. 独家 | 利用Auto ARIMA构建高性能时间序列模型(附Python和R代码)
  2. 【深度学习入门到精通系列】Deep Q Network
  3. 修改sublime列编辑快捷键
  4. mysql二级封锁协议_MySQL 行锁、两阶段锁协议、死锁以及死锁检测
  5. Python(5)-注释
  6. 线性代数:矩阵运算之乘法?
  7. 用实例的方式去理解storm的并发度
  8. 【AI】(收藏)从 A-Z 全面盘点人工智能专业术语梳理!
  9. Bitmap 和Drawable 的区别
  10. V4L2 获取设备支持的分辨率
  11. 代码实现WordPress 在文章内容的段落中插入广告google adsense
  12. Spring 的 IOC原理
  13. 仿IOS圆角可自定义扩展对话框
  14. 统计学中p值计算公式_统计学中的p值怎么算,具体步骤
  15. windows下icns转png或ico
  16. 可以修饰的基团有:氨基类,NHBOC类,Fmoc类不等,DSPE-PEG7-Mal
  17. 机器学习——EM算法
  18. Tektronix泰克MDO3054示波器
  19. 《结对-爬取大麦网演唱会信息-设计文档》
  20. android棉花糖,Android-6.0 棉花糖权限的那点事

热门文章

  1. gmod服务器文件,Garry’s Mod|Gmod服务器架设教程(四)挂载创意工坊插件
  2. 正则表达式:不匹配特定的字符串
  3. 简单部署 rancher 管理kubernetes集群(3)
  4. PC微信逆向:实现自动添加好友分享名片
  5. 思迅商云xpb版的最后一个版本_《倩女幽魂》全版本燕赤霞大盘点
  6. 计算机等级考试数据库三级模拟题12
  7. 在vue中使用element-ui 里面的按钮点击后显示加载中,防止重复提交
  8. 感冒病毒 suspects 并查集
  9. 机器学习面试必考面试题汇总—附解析
  10. 健康体魄1:长寿要点