1 Star 1 Fork 24

Yong / compass

forked from cc / compass 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

compass

参考TGINS

其实一直都在整理代码,因为工作原因进度一直提不起来,目前这个版本的代码比较混乱,新版本的代码我才整理好STC-PPK、TC-PPK,新版本可读性较强,后续将重新上传,感谢大家关注!

介绍

高精度GNSS/INS紧组合(v0.1)

GNSS/INS的组合模式仍是移动测绘、车载导航以及军事领域重要的导航定位手段,GNSS/INS紧组合是在观测值层面将GNSS与INS进行融合,其相对于定位结果层面的松组合在城市复杂环境下具有更明显的优势。高精度GNSS/INS紧组合滤波的构建涉及到高精度GNSS定位算法(PPK、PPP)、惯性导航定位算法、组合滤波算法等几个方面,算法实现较为复杂。

软件架构

程序基于RTKLIB二次开发,在其基础上扩充了GNSS/INS组合的一些算法,是本人读博期间所做的一点工作,并不是很完善,代码仅供参考,如有疑问可联系本人。

/conf ---配置文件

/data ---示例数据

/include ---头文件

/misc ---杂项

/src ---源码

安装教程

  1. Windows:IDE为CLion-2021,编译器为tdm-gcc-9.20(在/misc/ide里面有安装程序,安装好在CLion的Toolchains里面进行配置,如下图所示)

    img.png

  2. Linux: Ubuntu-20.0,也是使用CLion进行编译,默认设置即可

使用说明

  1. CLion直接打开项目目录,自动CMake
  2. 编译成功后可直接生成可执行文件 /build/Bin
  3. 配置运行参数

PPK/INS紧组合: YOUR_PATH/PPP_AR/build/Bin/ppp_ar.exe -C YOUR_PATH/conf/TC/tc_ppk_kvh1.conf -S G -M IGTC-PPK -A 1 -L 0

PPP/INS紧组合: YOUR_PATH/PPP_AR/build/Bin/ppp_ar.exe -C YOUR_PATH/conf/TC/tc_ppp_kvh1_com.conf -S GE -M IGTC-PPP -A 0 -L 0

img.png .exe: 可执行文件路径

-C: 配置文件路径

-S: 选用的卫星系统 G,C,E,R,J,GR,GC,GE,CE...

-M: 处理模式: "SPP-KINE", "TDCP-KINE", "DGPS-KINE", "PPK-KINE", "PPK-STATIC", "PPK-S-START", "PPK-MOVEB", "PPK-FIXED", "PPP-KINE", "PPP-STATIC", "PPP-FIXED", "INS-MECH", "IGLC-POS", "IGLC-SPP", "IGLC-DGPS", "IGLC-PPK", "IGLC-PPP", "IGTC-SPP", "IGTC-TDCP", "IGTC-DGPS", "IGTC-PPK", "IGTC-PPP", "STC-PPK","STC-PPP"

-A: 模糊度固定,0-浮点解,1-PPK模糊度固定(PPP/INS紧组合只支持浮点解)

-L: trace level 注: 使用前请修改配置文件的pos1-prcdir参数,程序处理数据需要按一定格式存放数据,在配置文件里面设置主路径后,程序可以自动匹配相关文件。基本格式为:

-T: 'ALL' "PRI_PR","PRI_CP","POS_PR","POS_CP","FIX_PR","FIX_CP", "NPR","NCP","PNPR","PNCP", "POS_AMB","FIX_AMB","VAR_AMB", "EL","FIX","SLP", "INS_INNO","CS_THRES","INS_WL_RES","INS_EWL_RES"

data/atx ... 天线文件

data/blq ... 海潮文件

data/YYYY/ddd/obs ... 观测值O文件,可以存放多个测站

data/YYYY/ddd/products ... 精密星历等文件

data/YYYY/ddd/products/nav ... 导航星历

data/YYYY/ddd/products/com ... 精密星历(可以是不同的分析中心产品,如grm、wum等)

data/YYYY/ddd/products/cas ... MGEX-DCB文件

data/YYYY/dcb ... CODE-dcb文件

data/YYYY/igs_erp ... igs-erp文件

数据集介绍

1.KVH0数据集

数据采集于2021年7月15日江苏省徐州市高新区,IMU和GNSS接收机安装在车载平台上,行车轨迹如图所示。使用两台中海达测地型接收机分别作为流动站和基准站,并配备加拿大Novatel公司生产的SPAN-KVH1750组合导航系统(由组合导航接收机ProPak6和惯性测量单元IMU-KVH1750组成),厂商给定的惯性器件技术指标如表所示, 这是一款内置三轴闭环光纤陀螺和三轴微机械加速度计的惯性测量单元,具有良好的独立导航性能。跑车过程中卫星信号良好,卫星可视数与行车期间的PDOP值如图所示。实验共采集约90min数据,其中GNSS的数据采样率为1Hz,可接收来自GPS、BDS2、BDS3、GLONASS以及Galileo卫星的双频信号,IMU数据采样率为200Hz。 测试过程中基线长度最短4.3km,最长达到11.2km,经过差分处理后能够消除大部分的大气误差影响。采集环境总体良好,可用于GNSS/INS组合系统仿真分析,同时采集路径覆盖了高楼、立交桥、树荫等多种复杂的城市场景,能用于验证单频、双频、单系统、多星座组合的高精度GNSS/INS紧组合模型在城市环境下的定位测速定姿性能。 数据集配备了IE软件差分GNSS/INS后处理平滑解作为参考,图展示了IE软件采用DGNSS/INS前后向平滑模式计算的位置、速度、姿态、零偏估计变化结果。

img.png img.png img.png img.png img.png

  1. 100C数据集

数据采集于2019年12月30日北京市北清路附近区域(文中记为北京实验19-BJ-100C),使用加拿大Novatel公司生产的SPAN-ISA-100C组合导航系统,厂商给定的惯性器件技术指标如表所示。IMU和GNSS接收机安装在车载平台上,行车轨迹如图所示,跑车过程中卫星信号良好, 卫星可视数与行车期间的PDOP值如图A 8所示。实验共采集约90min数据,其中GNSS的数据采样率为1Hz,可接收来自GPS、BDS以及GLONASS卫星的双频信号,IMU数据采样率为200Hz。测试过程中基线长度最短4.3km,最长达到11.2km,经过差分处理后能够消除大部分的大气误差影响。图中呈现了IE软件采用 DGNSS/INS前后向平滑模式计算的位置、速度、姿态、零偏结果(该组数据由北京网友提供,特此感谢)。

img.png img.png

解算结果

KVH0 IGTC-PPK: img.png

KVH0 IGTC-IF_GC_PPP: img.png

KVH0 IGTC-UC_GR_PPP: img.png

KVH0 速度与姿态误差 img.png

100C IGTC-UC_GR_PPP: img.png

100C IGTC-IF_GR_PPP: img.png

100C 速度与姿态误差 img.png

程序只是代码层面实现了PPP模糊度固定,在细节方面上仍存在不少漏洞,后续会继续学习相关理论对代码进行优化,程序仅供参考!

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

已知bug

codg电离层文件 ionoopt=7 7:UC-tec 时计算位置错误
rtkinit segment fualt

产生原因:结构体prcopt_t过大,导致函数栈溢出 prcopt_t gnss_opt=*opt; 解决方案: 更改Linux默认栈空间的大小   有时候在Linux写C++程序处理大量的数据,程序内部需要分配很大的数组来存放一些数据,但有时候分配的数组太大的话运行时会出现段错误。这种情况可能是分配的数组大小超过了Linux系统的默认栈空间的大小了,导致栈空间不够分配,出现错误。

(1)查看linux默认栈空间的大小   通过命令 ulimit -s 查看linux的默认栈空间大小,默认情况下为8192 KB 即8MB。

(2)临时改变栈空间的大小   通过命令 ulimit -s 设置大小值临时改变栈空间大小。例如:ulimit -s 102400,即修改为100MB。

(3)永久修改栈空间大大小。有两种方法:   方法一:可以在/etc/rc.local 内加入 ulimit -s 102400 则可以开机就设置栈空间大小,任何用户启动的时候都会调用。   方法二:修改配置文件/etc/security/limits.conf

https://rtklibexplorer.wordpress.com/2022/01/10/google-smartphone-decimeter-challenge/ Positioning mode: static -> kinematic GNSS constellations: disable Beidou Integer Ambiguity Res: on -> off Slip Thresh: Geom-Free: 0.05 -> 0.10 Slip Thresh: Doppler: N/A -> 5.0 Time Format: hms -> tow Phase Error Ratio L1/L5: 1500/300 -> 300/100 Phase Error a+b: 0.006/0.006 -> 0.003/0.003 Carrier Phase Bias: 0.001 -> 0.01

空文件

简介

高精度GNSS/INS紧组合(v0.1,仅供参考) 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/hyisoe/compass.git
git@gitee.com:hyisoe/compass.git
hyisoe
compass
compass
master

搜索帮助