# GNSS卫星导航算法(SPP单点定位和RTK相对定位) **Repository Path**: milgji/gnss_spp_rtk ## Basic Information - **Project Name**: GNSS卫星导航算法(SPP单点定位和RTK相对定位) - **Description**: 自己的GNSS卫星导航算法程序,该算法实现了GNSS卫星导航定位的基本功能,包括SPP单点定位、SPV单点测速以及RTK相对定位等主要功能 - **Primary Language**: C++ - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2025-06-24 - **Last Updated**: 2025-08-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: Gnss, RTK ## README # GNSS卫星导航算法(SPP单点定位和RTK相对定位) #### 介绍 本项目是武汉大学卫星导航算法与程序设计的课程作业,实现了 GNSS 卫星导航定位的基本功能,涵盖 SPP 单点定位、SPV 单点测速以及 RTK 相对定位等主要功能。通过这些算法,能够根据卫星观测数据计算出接收机的位置和速度信息,为高精度定位提供支持。 #### 软件架构 本软件主要由以下几个部分组成: - 结构体定义:在Struct.h文件中定义了项目所需的各种数据结构,包括时间系统结构体(如COMMONTIME、GPSTIME等)、坐标系统结构体(如CARCOOR、GEOCOOR等)以及观测数据结构体(如SATOBS、EPOCHOBS等)。这些结构体为后续的算法实现提供了数据基础。 - SPP 单点定位算法:SPP.cpp文件实现了 SPP 单点定位算法。该算法根据卫星观测数据和星历信息,通过迭代计算来确定接收机的位置。具体步骤包括数据有效性检查、初始值设置、观测方程构建、法方程求解等。 - RTK 相对定位算法:RTK_Postion.cpp文件实现了最小二乘 RTK 相对定位算法(以浮点解为例),RTK_KF.cpp文件实现了卡尔曼滤波 RTK 相对定位算法(浮点解)。该算法利用基准站和流动站的观测数据,通过双差观测值构建观测方程,求解出流动站相对于基准站的位置。在计算过程中,需要进行数据有效性检查、参考星选择、权矩阵设置等操作。在lambda.cpp文件中浮点解得以固定。 #### 注意事项 - GNSS原始观测数据和星历数据都应该按照OEM7二进制格式储存 - 串口号和IP地址在ini配置文件中修改 - 使用时,可以将所有代码文件都移至根目录下 #### 使用说明 - 数据准备:准备好 GNSS 卫星观测数据和星历数据,并将其存储在合适的文件中。 - 修改配置文件:根据实际情况修改配置文件(如config.ini),设置观测数据文件路径、星历文件路径等参数。 - 运行程序:在build目录下执行以下命令运行程序 - 查看结果:程序运行结束后,会输出定位结果(如经纬度、高程等)和相关的精度指标(如 PDOP、SigmaPos 等)。你可以根据需要将结果保存到文件中进行进一步分析。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)