《RTKLIB开发文档.doc》由会员分享,可在线阅读,更多相关《RTKLIB开发文档.doc(23页珍藏版)》请在金锄头文库上搜索。
1、_软件开发文档软件名称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.软件测
2、试- 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、
3、静态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 、G
4、W10-II/III和NVS。(5)支持外部通信:Serial、TCP/IP、NTRIP、本地日志文件(记录和播发)和FTP/HTTP。(6)提供许多函数库和API(application program interfaces):卫星和导航系统函数、矩阵和向量函数,时间和字符串函数、坐标的转换,输入和输出函数、调试跟踪函数、平台依赖函数、定位模型、大气模型、天线模型、地球潮汐模型、大地水准面模型、基准转换、RINEX函数、星历和时钟函数、精密星历和时钟、接收机原始数据函数、RTCM函数,解算函数、流数据输入和输出函数、整周模糊度解算、标准定位、精密定位、后处理定位(解算)。RTKLIB同样也有
5、一些缺陷,RTKLIB在数据预处理(粗差探测),周跳探测方面的算法有些问题,RTKLIB的源代码并不支持北斗系统的解算。同时,RTKLIB的框架过于过时,它的GUI是用的早期Borland C+设计,无法满足跨平台需求,基于这些问题,我们小组经过讨论,决定对这些问题进行修复,改进单频解算算法,同时基于Qt5对GUI层进行重新设计。1.2 项目背景及必要性中国北斗卫星导航系统是中国自行研制的全球卫星导航系统。是继美国GPS、俄罗斯GLONASS之后的第三个成熟的卫星导航系统。目前北斗系统已具备覆盖亚太地区的定位、导航和授时以及短报文通信服务能力,预计2020年建成覆盖全球的北斗导航系统。目前多数
6、接收机并不存在单纯的使用GPS进行卫星定位,而是在支持GPS的基础上还加入了GLONASS以及北斗系统。接收机在定位时可以同时使用这两大卫星定位系统,这样就可以在某个卫星定位发生问题时,使用另外一个系统进行定位。或者在使用GPS进行定位的同时,再使用GLONASS或者北斗来进行辅助,以此来增强定位的速度及准确率。另外,众多的个人或行业应用中,定位都成为一种必不可少的基础功能,个人用户的社交信息、行程足迹;行业中的车辆管理、物流监控等无不需要卫星定位功能。RTK定位是北斗导航系统应用的一个重要方面,基于GPS的RTK算法已经十分成熟,各种商业软件的推出也推动了GPS RTK算法的完善和发展。此外
7、由于北斗导航系统现在已经有十几颗可用卫星,基于北斗系统的应用和研究也已经在全国乃至世界范围内展开,所以在研究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日对RTKL
8、IB的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
9、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
10、定位解算、结果输出。(1)读取文件其中RINEX观测文件RTKLIB已经有现成模块,但是RTKLIB 2.3.4源码无法读取北斗观测文件,我们在RTKLIB基础上通过修改频率优先级增加了读取北斗观测文件功能。同时,基于比赛广播星历数据,我们特地针对北斗星历增加了读取北斗广播星历函数。(2)伪据单点定位先进行伪据单点定位,求取平均值作为基站近似坐标,同时得到卫星坐标以及钟差信息,以便组成双差观测方程。(3)数据预处理数据预处理阶段,我们着重做了一下三个工作:粗差探测、周跳探测、载波平滑伪距。经过我们测试,RTKLIB中的周跳探测并不完善,因此我们在解算前再加入一次周跳探测。首先由、相位观测方程可
11、得到GF组合(消去了与频率无关的几何距离和钟差等),由于相邻历元电离层变化很小,因此可忽略相邻历元差后的电离层残差。同时,在组成MW组合,对MW组合观测值做历元差分,以3倍中误差为限,与GF组合联合,通过求解方程组得到精确周跳。RTKLIB中并没有单频周跳探测功能,于是我们增加了基于流动站的单频周跳探测功能。对每个历元k,卫星s,进行探测:若数据缺失超过阈值,标记周跳。若没有超过,则逐个计算伪距与载波之差:若 则标记周跳。在修复完周跳后,我们进行了粗差探测以及载波平滑伪据。在GPS定位时,利用码观测值得到的结果精度较低,可以利用载波相位的变化来平滑伪据,从而取出伪距粗差,提高伪据观测定位精度。
12、(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 卫
13、星新增了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 参数之间的转换
14、关系,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