RTKLIB开发文档_第1页
RTKLIB开发文档_第2页
RTKLIB开发文档_第3页
RTKLIB开发文档_第4页
RTKLIB开发文档_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件开发文档软件名称RTKPOST项目组成员王会、刘琦起止日期 2017年 6 月20 日至 2017年 8 月 15 日 目 录1.项目论证- 1 -1.1目标任务- 1 -1.2项目背景及必要性- 1 -1.3计划进展- 2 -2.需求分析- 3 -2.1软件描述- 3 -2.2运行环境及外部接口需求- 3 -3.软件设计- 4 -3.1软件体系结构- 4 -3.2软件解算流程- 5 -3.3软件设计模块- 6 -3.4软件功能描述- 7 -3.5全局数据结构说明- 9 -4.软件操作说明- 11 -4.1界面介绍- 11 -4.2软件安装- 12 -4.3软件操作- 12 -5.软件测试- 16 -5.1测试计划- 16 -5.2测试方法及工具- 16 -5.3测试用例- 16 -5.4测试结果- 17 -参考文献- 18 -精品文档交流1. 项目论证1.1 目标任务根据比赛要求,经过小组讨论,我们选择了RTKLIB进行二次开发。RKTLIB是全球导航卫星系统GNSS的标准&精密定位开源程序包,RKTLIB由日本东京海洋大学的高须知二开发。RTKLIB主要功能有:(1)支持多个GNSS系统的标准和精密定位算法,包括GPS,GLONASS,Beidou,Galileo,QZSS和SBAS。(2)支持多种GNSS实时和后处理定位模式:单点定位、DGPS/DGNSS,动态RTK、静态RTK、移动基站、PPP。(3)支持多种GNSS标准格式和协议:RINEX2.10、RINEX2.11、RINEX2.12、RINEX3.00、RINEX3.01、RINEX3.02、RTCM2.3、RTCM3.1、RTCM3.2、BINEX、NTRIP、NMEA0183、SP3、ANTEX1.4、IONEX1.0、NGS PCV、EMS 2.0。(4)支持多种GNSS接收机专有数据协议格式:NovAtel:OEM4/V/6,OEM3, OEMStar、Superstar II、 Hemisphere、Crescent、ublox:LEA-4T/5T/6T、SkyTraq、JAVAD 、GW10-II/III和NVS。(5)支持外部通信:Serial、TCP/IP、NTRIP、本地日志文件(记录和播发)和FTP/HTTP。(6)提供许多函数库和API(application program interfaces):卫星和导航系统函数、矩阵和向量函数,时间和字符串函数、坐标的转换,输入和输出函数、调试跟踪函数、平台依赖函数、定位模型、大气模型、天线模型、地球潮汐模型、大地水准面模型、基准转换、RINEX函数、星历和时钟函数、精密星历和时钟、接收机原始数据函数、RTCM函数,解算函数、流数据输入和输出函数、整周模糊度解算、标准定位、精密定位、后处理定位(解算)。RTKLIB同样也有一些缺陷,RTKLIB在数据预处理(粗差探测),周跳探测方面的算法有些问题,RTKLIB的源代码并不支持北斗系统的解算。同时,RTKLIB的框架过于过时,它的GUI是用的早期Borland C+设计,无法满足跨平台需求,基于这些问题,我们小组经过讨论,决定对这些问题进行修复,改进单频解算算法,同时基于Qt5对GUI层进行重新设计。1.2 项目背景及必要性中国北斗卫星导航系统是中国自行研制的全球卫星导航系统。是继美国GPS、俄罗斯GLONASS之后的第三个成熟的卫星导航系统。目前北斗系统已具备覆盖亚太地区的定位、导航和授时以及短报文通信服务能力,预计2020年建成覆盖全球的北斗导航系统。目前多数接收机并不存在单纯的使用GPS进行卫星定位,而是在支持GPS的基础上还加入了GLONASS以及北斗系统。接收机在定位时可以同时使用这两大卫星定位系统,这样就可以在某个卫星定位发生问题时,使用另外一个系统进行定位。或者在使用GPS进行定位的同时,再使用GLONASS或者北斗来进行辅助,以此来增强定位的速度及准确率。另外,众多的个人或行业应用中,定位都成为一种必不可少的基础功能,个人用户的社交信息、行程足迹;行业中的车辆管理、物流监控等无不需要卫星定位功能。RTK定位是北斗导航系统应用的一个重要方面,基于GPS的RTK算法已经十分成熟,各种商业软件的推出也推动了GPS RTK算法的完善和发展。此外由于北斗导航系统现在已经有十几颗可用卫星,基于北斗系统的应用和研究也已经在全国乃至世界范围内展开,所以在研究RTK的算法时,有必要考虑将BDS加入算法中去,基于BDSGPS的RTK定位算法研究及软件编制显得十分必要。1.3 计划进展表1.1 计划进展日期说明6月15日明确任务以及了解整个比赛进度安排6月16日至30日在RTKLIB上加入DCB改正7月01日至20日在RTKLIB上加入单频周跳探测7月21日至8月01日在RTKLIB上加入数据预处理,修正周跳探测、添加载波平滑伪据、粗差探测7月02日至8月05日在RTKLIB上加入北斗系统,修正RTKLIB一些现存问题8月06日至10日对RTKLIB的GUI进行重写,并在Windows和Ubuntu上进行测试8月11日至15日数据测试,编写数据精度报告2. 需求分析2.1 软件描述表2.1 软件模块序号功能名称功能需求标识简要描述01RTK解算rtkpost单频rtk解算02RTK成图rtkplot对解算结果成图03RTK查看rtkview查看解算结果04RTK平滑rtksmooth对基准站进行平滑2.2 运行环境及外部接口需求(1)硬件要求程序硬件要求:1) 具有 Inter I3 处理器且满足以下要求的计算机:2) 最低 512 MB 内存、最小 1GB 硬盘、鼠标、键盘(2)软件要求操作系统:Windows 7 Windows 8 Windows 10 Ubuntu 16.04(3)用户接口1) 采用Qt通用图形界面,用户友好。2) 界面具有一致性,界面规范遵循软件界面的规范。3) 提供错误信息。4) 遵循国家关于计算机方面词汇的标准,用词正确、准确、无歧义。5) 本系统的用户一般需要通过中断进行操作,进行主界面后点击相应的窗口,分别进入相对应的界面(如,输入界面、输出界面)。3. 软件设计3.1 软件体系结构图3.1 软件体系结构3.2 软件解算流程 流程图中*意味着对RTKLIB原有的模块进行了改进或为新增模块图3.2 结算流程图3.3 软件设计模块软件主要包括四个模块:读取文件、伪距单点定位、数据预处理、RTK定位解算、结果输出。(1)读取文件其中RINEX观测文件RTKLIB已经有现成模块,但是RTKLIB 2.3.4源码无法读取北斗观测文件,我们在RTKLIB基础上通过修改频率优先级增加了读取北斗观测文件功能。同时,基于比赛广播星历数据,我们特地针对北斗星历增加了读取北斗广播星历函数。(2)伪据单点定位先进行伪据单点定位,求取平均值作为基站近似坐标,同时得到卫星坐标以及钟差信息,以便组成双差观测方程。(3)数据预处理数据预处理阶段,我们着重做了一下三个工作:粗差探测、周跳探测、载波平滑伪距。经过我们测试,RTKLIB中的周跳探测并不完善,因此我们在解算前再加入一次周跳探测。首先由、相位观测方程可得到GF组合(消去了与频率无关的几何距离和钟差等),由于相邻历元电离层变化很小,因此可忽略相邻历元差后的电离层残差。同时,在组成MW组合,对MW组合观测值做历元差分,以3倍中误差为限,与GF组合联合,通过求解方程组得到精确周跳。RTKLIB中并没有单频周跳探测功能,于是我们增加了基于流动站的单频周跳探测功能。对每个历元k,卫星s,进行探测:若数据缺失超过阈值,标记周跳。若没有超过,则逐个计算伪距与载波之差:若 则标记周跳。在修复完周跳后,我们进行了粗差探测以及载波平滑伪据。在GPS定位时,利用码观测值得到的结果精度较低,可以利用载波相位的变化来平滑伪据,从而取出伪距粗差,提高伪据观测定位精度。(4)RTK定位解算在解算过程中,我们基于RTKLIB添加了DCB改正。GPS广播星历中卫星钟差参数是由L1P(Y)和L2P(Y)消电离层组合计算得到的,该参数中含有L1P(Y)和L2P(Y)在卫星端的硬件延迟影响。为扣除这一偏差对导航用户的影响,GPS引入了TGD 参数扣除。GPS 卫星在发射前都会在地面对卫星TGD 参数进行提前标定。1999 年4 月后,GPS开始播发由JPL 基于IGS 基准站数据处理得到的TGD 参数,且每四个月左右更新一次。2005 年起发射的GPS Block IIR-M 卫星在L2 频率上增加了L2C 民用信号,2010 年起发射的GPS Block IIF 卫星新增了L5 频率以及L5I5、L5Q5 两种民用信号。与之对应,GPS 在L1C/A、L2C、L5I5 及L5Q5 民用信号上相对于L1P(Y)分别定义了一个ISC 参数,即ISCC/A、ISCL2C、ISCL5I 及ISCL5Q。ISC 参数本质上也是DCB 参数,其中ISCC/A是L1P(Y)与L1C/A 信号间的频内偏差参数,ISCL2C、ISCL5I 及ISCL5Q 分别是L1P(Y)与L2C、L5I5、L5Q5 信号间的频间偏差参数。TGD 也可以看作是L2P(Y)信号上的ISC 参数,不过要乘一个与频率有关的常数进行转换。考虑到广播的TGD 及ISC 参数与DCB 参数之间的转换关系,GPS 单双频用户也可以利用后处理的DCB 参数改正硬件延迟误差后进行定位。(5)结果输出基于RTKLIB增加了卫星系统输出,以及参考框架。最终输出还包括时间,状态,三维坐标,精度指标等内容。3.4 软件功能描述表3.1 POST模块功能项解算标识POST功能描述对输入的观测文件进行解算使用角色用户主要事件流程用户操作系统响应事件单击Option按钮设置解算参数单击View按钮查看解算结果单击Plot按钮绘制波动图或定轨图单击Exec按钮开始解算单击Exit按钮退出前置条件用户需要设置Option参数,以及选择相应文件后置条件生成解算文件(*.pos)接口说明输入输出调用关系调用模块rtkpos.cpp rinex.cpp SatPass.cpp DCPass.cpp被调用模块rtkwork.cpp表3.2 View模块功能项查看标识View功能描述对输入的观测文件进行查看使用角色用户主要事件流程用户操作系统响应事件单击Refresh按钮重新加载解算文件单击Read按钮重新选择解算文件单击Exit按钮退出前置条件后置条件接口说明输入输出调用关系调用模块plotwindow.cpp被调用模块post表3.3 Plot模块功能项绘图标识Plot功能描述对输入的观测文件进行成图使用角色用户主要事件流程用户操作系统响应事件单击Open按钮选择解算结果文件单击Refresh按钮重新绘制单击Position按钮绘制波动图单击Gnd Trk按钮绘制轨迹图单击Save按钮保存单击Exit按钮退出前置条件用户需要选择解算结果,并选择绘图类型后置条件接口说明输入输出调用关系调用模块qcustomplot.cpp被调用模块rtkwork.cpp表3.4 Option模块功能项选项标识Option功能描述设置解算策略使用角色用户主要事件流程用户操作系统响应事件单击OK按钮设置并保存解算参数单击Cancel按钮退出前置条件用户需要设置Option参数,以及选择相应文件后置条件生成解算文件(*.pos)接口说明输入输出调用关系调用模块optiondlg.cpp controlplus.cpp被调用模块post表3.5 Smooth模块功能项平滑 我们将该功能单独剥离了出来,可以在bin目录下直接找到。标识Smooth功能描述数据预处理使用角色用户主要事件流程用户操作系统响应事件前置条件-infile -outfile -dt 后置条件生成平滑后的观测文件(*.*o)接口说明输入输出调用关系调用模块smoothe.cpp被调用模块post3.5 全局数据结构说明除了RTKLIB原有文件外,我们新增加了5个头文件:表3.6 新增文件序号头文件实现文件功能01MathBase.h常用排序函数,以及统计函数02SatPass.hSatPass.cpp将观测数据按照卫星编号分类存储,可用于载波平滑伪据03Segment.h存储了SatPass中卫星历元连续信息,用于探测周跳04DCPass.hDCPass.cppM-W探测周跳,修复周跳05Stats.h常用数学函数,最大值,最小值,方差等软件中全局数据结构如下表所示:表3.7 全局宏定义序号宏定义所属文件说明01PIrtklib.h圆周率02CLIGHTrtklib.h光在真空中的速度03OMGErtklib.h地球自转角速度04FEQ1rtklib.hGPS L1频率05FEQ2rtklib.hGPS L2频率06FEQ1_CMPrtklib.h北斗B1频率07FEQ2_CMPrtklib.h北斗B2频率08FEQ3_CMPrtklib.h北斗B3频率09D2Rrtklib.h度转弧度10R2Drtklib.h弧度转度11WLNWINDOWS*DCPass.cppWL周跳探测滑动窗口宽度12MAXWINDOWSIZE*rtkpos.cpp单频周跳探测最大滑动窗口宽度 *表明新增宏,开发过程中我们尽量不在添加新有宏定义,所以开发过程中我们尽量沿用了原有RTKLIB中的宏定义。同时为了增加代码兼容性和可读性,我们没有增添新的结构体,只对少部分的结构体做了改动。4. 软件操作说明4.1 界面介绍图4.1为软件主界面图,其中从上到下分别是流动站文件,参考站文件,广播星历文件,精密星历文件,精密种差等IGS文件,DCB DCB文件可以在IGS官网下载:/pub/gps/products/mgex/dcb文件以及解算结果文件。其中参考站文件,基准站文件和广播星历文件为必选,其余的为可选项。针对这次的比赛数据,我们特地为北斗广播文件增设了一个选择框,并且在源码中进行了识别。图4.1 RTKPOST软件主界面图主要功能按钮介绍:执行解算:设置解算参数:查看解算结果:绘图4.2 软件安装默认我们在bin文件夹下已经生成了windows下的exe可执行程序,可直接使用,若在Linux下则需要使用qmake对gui文件夹下的重新编译。4.3 软件操作以单频RTK比赛数据文件中的20160909-2下的数据为例:图4.2 演示用例1)首先点击Options按钮,如图4.3所示,Settiing1选项卡中,Interval为采样率,设置为1s,Elevaton Mask为截止高度角(单位为度)这里设置为10,Ionosphere Correction 与 Troposphere Correction为电离层与对流层模式,由于只是演示,这里分别选择Broadcast和Saastamoinen,卫星系统选择GPS和北斗。Setting2选项卡中,Freqiquencies为频率选择,虽然流动站为单频,但是基准站为双频,所以还是选择L1+2,在解算过程中会程序会自动识别。Integer Ambiguity Res为模糊度固定方式,由于是连续观测,这里选择Fix and Hold,MinRatio to Fix Ambiguity为ratio值,默认为3,Smooth为是否平滑以及粗差探测,这里选择ON。对于基准站坐标,这里选择Average of Single Position,即单点定位平均值,若已知基准站坐标,则可以选择X/Y/Z-ECEF(m)模式,从而输入基准站坐标。Output中主要设置了输出选项。这里Solution Format输出坐标格式,选择E/N/U-Baseline,Time Format为时间格式,选择hh:mm:ss GPST,Latitude/Longitude Format为基准站坐标格式,这里选择ddd.dddddd,其余的保持默认即可。 图4.3 参数设置2)按照如图4.4所示选择解算文件。 DCB改正同时需要CLK文件,CLK文件可以在IGS的FTP上下载:/图4.4 解算文件选择3)上述步骤操作完成后,点击Execute,进行解算,解算完成后,点击View可以查看解算结果。图4.5 查看解算结果4)在主界面点击Plot,可以查看绘图结果,如图4.6所示,右下角显示的是固定率。图4.5 波动图5. 软件测试5.1 测试计划表5.1 测试计划测试测试类型负责人时间1算法测试小组所有成员08月11日2界面测试小组所有成员08月13日3验收小组所有成员08月14日5.2 测试方法及工具测试方法:在Visual Studio中编译改进后RTKLIB源码,测试所有数据,同时在Qt中测试界面逻辑。工具:Visual Studio 2013,Qt Creator 4.3 + Qt 5.95.3 测试用例 我们在data文件夹下提供了在IGS的FTP上下载的额外数据图5.1 比赛数据5.4 测试结果 关于算法的测试报告详细信息请查看数据处理报告测试用例20160908-2测试日期2017-08-11序号测试项备注卫星系统电离层、对流层星历01GPS双估广播星历由于比赛数据中北斗星历存在问题,所以只测试了GPS系统。精密星历默认即增加DCB改正,所有的测试中平滑选项保持

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论