👋 嗨,你好,我是李郑骁,安徽理工大学导航工程本科生;
⏰ 正准备考研,考上了副标题就改《一个研究生的导航学习笔记》
💡 仓库所有内容都可以随意转载,可用于任何目的,不必征求我的意见;
✨ 本仓库会长期更新,分享出来,希望有人用得上,也激励着自己坚持学下去;
💻 理解尚浅、实践甚少,列举的公式和理论仅供参考,千万不要照着我的公式写代码;
🛠 不建议直接就下载整个仓库,Markdown 和 PDF 可以在线看,想要的文件可以单独下载;
⚙ 目前仓库还不够完善,很多文件都没啥内容,下载之前,建议先点开看看,有没有您期望的内容;
🎉 如果您觉得仓库内容有价值,推荐用 Github-Desktop 下载并保持更新,用 Typora 看 Markdown 文件;
🤺 有问题或想法欢迎随时与我交流讨论:微信 (lizhengxiao99)、QQ (1482275402)、Email (dauger@126.com);
🌟 板块 🌟 | 🧾 说明 🧾 | 🛠 完成度 🛠 |
---|---|---|
源码解读 | 我对程序的解读,附上流程图、思维导图、相关资料 | 【====> 】40% |
书籍讲义 | 分享导航算法学习过程中对我起较大帮助的书籍/讲义 | 【========> 】80% |
设备上手 | 各种 GNSS/IMU/Camera/Lidar 设备用法、测试数据 | 【=> 】10% |
博客翻译 | 机翻实用有趣的外文博客,稍做调整,附上我的总结 | 【===> 】30% |
RSS推荐 | 在信息爆炸且碎片化的当下,建立个人专属信息聚合 | 【========> 】80% |
开源整理 | 整理导航相关开源项目,拓展眼界,避免重复造轮子 | 【======> 】60% |
常用网站 | 整理导航相关网址,点击即可跳转,方便收藏与访问 | 【======> 】60% |
指令速查 | Linux/Vim/Make/CMake/Git/Docker/ROS/VScode | 【====> 】40% |
算法理解 | 不会一板一眼地推导公式,写点我对导航算法的理解 | 【=> 】10% |
算法解惑 | 参数估计/GNSS/INS/组合导航/SLAM/多源融合/规控 | 【===> 】30% |
心得体会 | 导航学习/博客写作/READM美化/Github上手/RSS上手 | 【======> 】60% |
安理导航 | 毕业生去向/课程体系/21级课表/课程锐评/硕导评价 | 【======> 】60% |
仓库推荐 | 推荐一些同类仓库,创作不易,欢迎给他们 Star 鼓励 | 【====> 】40% |
🌟 开源程序 🌟 | 🧾 简介 🧾 | 🛠 完成度 🛠 |
---|---|---|
RTKLIB | 最知名的 GNSS 数据处理程序 | 【======> 】60% |
GAMP | 基于 RTKLIB 的后处理双频 PPP | 【========> 】80% |
PSINS | MATLAB/C++ 捷联惯导工具箱 | 【====> 】40% |
Ginan | 澳大利亚 PPP 定位/定轨程序 | 【=> 】10% |
goGPS | MATLAB-GNSS 数据批处理 | 【=> 】10% |
GICI-LIB | GNSS+INS+Camera 图优化融合定位 | 【===> 】30% |
SoftGNSS | MATLAB GPS L1-C/A 码软件接收机 | 【======> 】60% |
VINS | 光流法视觉惯性图优化 SLAM | 【===> 】30% |
ORB-SLAM3 | 特征点法视觉惯性图优化 SLAM | 【==> 】20% |
GNSS-SDR | 基于 GNURadio 的 GNSS 软件接收机 | 【=> 】10% |
TGINS | 基于 RTKLIB 的 PPP/INS-EKF 紧组合 | 【==> 】20% |
KF-GINS | GNSS/INS-EKF 松组合 Demo | 【=========> 】90% |
OB-GINS | GNSS/INS-FGO 松组合 Demo | 【====> 】40% |
ROS导航功能包 | 自主导航机器人定位/建图/路径规划 | 【==> 】20% |
北斗GPS软件接收机 | GPS-L1/BDS-B1 软件接收机 | 【==> 】20% |
PocketSDR | 带射频前端的后处理 GNSS 软件接收机 | 【=> 】10% |
🌟 开源程序 🌟 | 🧾 简介 🧾 | 更新 |
---|---|---|
ML_DL_CV_with_pytorch | 深度学习、自动驾驶、计算机视觉 | √√√ |
Autopilot-Notes | 相当系统的自动驾驶笔记 | √√√ |
giser | 大一本科生写的 WebGIS 学习笔记 | √√√ |
researchTools | GraphGNSSLib 作者的博客、整理资料 | ××× |
IMU-study | IMU、气压计、磁力计原理、驱动 | ××× |
SLAM-All-In-One | SLAM 框架整理、代码注释、学习笔记 | ××× |
封面 | 简介 |
---|---|
《GPS原理与接收机设计》谢刚 我最推荐的卫星导航入门参考书,全面且系统地介绍了GNSS(全球导航卫星系统)的原理。从信号体制到接收机信号处理,从观测值误差分析到各种定位技术(如单点定位、实时动态差分定位、精密单点定位),再到航位推算、组合导航和地图匹配等,无一不包。这本书能让你深入透彻地理解GNSS的工作原理,为后续的进阶学习打下坚实的基础。 对于从事GNSS数据处理的朋友,我强烈推荐你们学习基带算法。只依赖接收机输出的伪距、载波、多普勒和信噪比等数据进行定位,还是太浅了;深入了解接收机内部的原理,包括卫星信号的结构、发射方式、传播过程,以及接收机的天线信号接收、射频前端处理、基带数字信号处理等全流程,能够让你对数据处理算法有更深刻的理解;而且许多GNSS的岗位不仅要求掌握定位技术,还要求对基带算法有所了解。 👉👉👉 点击跳转 👈👈👈 |
|
《捷联惯导算法与组合导航讲义》严恭敏 👉👉👉 点击跳转 👈👈👈 |
|
《GNSS与惯性及多传感器组合导航系统原理》Groves 👉👉👉 点击跳转 👈👈👈 |
|
《测绘程序设计》李英冰 测绘程序设计比赛的参考书,每一节介绍一种测绘相关的算法(大地主题正反算、空间前方交会、伪距单点定位等)提供了配套的示例程序(C#为主,一大半程序都有BUG),测绘类院校学生学完了编程语法,就可以从这里找程序练练手;建议初学者先认准一套程序学,先把例程跑通、读懂,然后照着例程敲两遍,再脱离例程试着从头自己写。数据处理算法,无外乎就是三部分:读取数据、数值计算、输出结果,提供练习这里的程序都可以学到;把这书上几百行的代码学明白、写明白了,你再去看正儿八经的上万行的开源程序就容易多了。 👉👉👉 点击跳转 👈👈👈 |
|
《自适应动态导航定位》杨元喜 👉👉👉 点击跳转 👈👈👈 |
|
《GPS测量与数据处理》李征航 👉👉👉 点击跳转 👈👈👈 |
|
《概率机器人》塞巴斯蒂安·特龙 👉👉👉 点击跳转 👈👈👈 |
|
《北斗GPS双模软件接收机》鲁郁 主要是推荐书附带的程序,MATLAB 编写 GPS-L1/BDS-B1 软件接收机,学一学北斗信号处理算法,NH码处理啥的;程序运行相当耗时,70s 的数据要算几个小时。书写的有些部分写的比谢刚的《GPS原理与接收机设计》要细致深入,代码的有些部分处理的比SoftGNSS细致,可以结合着一块看。 👉👉👉 点击跳转 👈👈👈 |
|
《软件定义的GPS和伽利略接收机》 薄薄的一小本,一百多面,我主要是推荐配套的开源程序SoftGNSS,MATLAB 编写,实现了一套最简单的 GNSS 软件接收机功;输入经过天线接收,射频前端滤波下变频后的数字中频信号文件,进行 GPS L1 C/A 码的捕获跟踪,生成伪距观测值,解译导航电文,最小二乘定位解算;代码量很小也很简单,适合作为 GNSS 基带数字信号处理的入门阅读程序。 👉👉👉 点击跳转 👈👈👈 |
|
《C++Premier》 直译过来叫“C++入门”,但不适合完全零基础看,适合初学者上过了C语言或者C++课,有了一点点基础之后看,难度比其它的 C++ 入门书籍、教材稍大,写的很详细,不光讲语法,还会讲一些代码设计经验以及一些避坑指南,文笔幽默风趣让人心情愉悦;可以放一本在手边,语法生疏了,查一下;它还有个简略的版本:《C++ Premier Plus》,也是C++入门不错的参考书。 👉👉👉 点击跳转 👈👈👈 |
|
《EffectiveC++》 以条款的形式列举了55条C++语法的使用建议,帮助我们提高代码质量、性能、可读性、可拓展性,让我们对 C++ 编程的理解更上一层楼;使用的 C++ 版本比较老,很多内容不适用于现代 C++,看完之后可以再看看类似的《Modern Effective C++》、《Effective STL》。 👉👉👉 点击跳转 👈👈👈 |
|
《C++20高级编程》 全面、详实的介绍了C++的方方面面,还有案例讲解,非常适合现代C++入门学者;C++ Primer没涵盖新的语法特性(仅到C++11),而且将来也大概率不会涵盖了,因为作者已经去世了;市面上其他介绍C++20的书,大多都只介绍C++的新特性,是给那些已经掌握了C++的读者读的(用来了解新特性),不适合初学者。 👉👉👉 点击跳转 👈👈👈 |
|
《视觉SLAM十四讲》高翔 SLAM入门首选参考书,系统介绍了视觉SLAM所需的基本知识与核心算法,内容全面、结构清晰、理论与实践相结合。既包含数学理论基础,如三维空间的刚体运动、非线性优化,又涵盖计算机视觉的算法实现,如多视图几何、相机标定、图优化、卡尔曼滤波等。而且作者提供了大量的实例代码供读者学习研究,有助于读者更深入地掌握SLAM技术的实现细节。网上有很多相关的读数笔记,相关的网课,可以作为入门学习的参考。 👉👉👉 点击跳转 👈👈👈 |
|
《视觉惯性SLAM》程小六 计算机视觉Life程小六写的ORB-SLAM3的源码解析,质量比大部分的博客讲义高的多,学完《视觉SLAM十四讲》就该继续学常用的SLAM框架,结合着代码深入学算法,基于ORB特征点的ORB-SLAM3是一个不错的选择,支持单目/双目/RGB-D、惯性紧组合、回环检测、重定位,在开源数据集上有不错的效果,缺点是计算量大、代码BUG多、对外参标定要求高。在六哥的知识星球《小六的机器人AI圈》中有读书挑战赛活动,感兴趣可以去看看。 👉👉👉 点击跳转 👈👈👈 |
|
《自动驾驶中的SLAM技术》高翔 既《视觉SLAM十四讲》后高翔的又一力作,系统的介绍激光惯性SLAM理论,采用 C++17 标准编写例程,全书分三部分:
👉👉👉 点击跳转 👈👈👈 |
|
《大话数据结构》程杰 数据结构通常被认为是计算机科班学生最重要的课,面试要考算法题,找工作前要刷LeetCode;对我们非科班写算法的程序员也同样重要,懂点数据结构和算法,你才能写出更高效的程序,你才能学明白STL,而且我们找算法相关的工作也可能要考算法题的;咱不一定要像科班学生掌握那么熟练,能理解常用的数据结构、算法就行,并不需要都会实现。 咱们学数据结构和算法推荐看《大话数据结构》,它用生动有趣的对话、直观的图示,将复杂的数据结构概念变得简单易懂,让读者能够轻松掌握数据结构的基本原理和应用,进而提升编程能力和算法思维,它不像正儿八经的课本那么枯燥,对咱们非科班的程序员相当的友好。 👉👉👉 点击跳转 👈👈👈 |
RTKLIB 是全球导航卫星系统 GNSS 开源定位解算程序包,由日本东京海洋大学的高须知二(Tomoji Takasu)开发,由一个核心程序库和多个命令行程序、界面程序组成;代码规范、功能完善、可拓展性好,许多 GNSS 导航定位程序开源程序都是基于 RTKLIB 二次开发衍生而来,适合作为 GNSS 入门学习的代码。
-
支持多个 GNSS 系统的标准和精密定位算法,包括 GPS,GLONASS,Beidou,Galileo,QZSS 和 SBAS。
-
支持 9 种GNSS实时和后处理定位模式:
- single:伪距单点定位
- DGPS/DGNSS:伪距差分
- kinematic:载波动态相对定位,动态RTK,假设流动站是移动的,可以做车载定位
- Static:载波静态相对定位,静态RTK,两站都是静止的,可以得到很高的精度
- Moving-Baseline:两站都动,双天线,主要用来定姿
- Fixed:固定坐标,解算模糊度、对流层、电离层等参数
- PPP-Kinematic:动态精密单点定位
- PPP-Static:静态精密单点定位
- PPP-Fixed:PPP 固定坐标,解算模糊度、对流层、电离层等参数。
-
支持多种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。
-
支持多种GNSS接收机专有数据协议格式:NovAtel:OEM4/V/6,OEM3, OEMStar、Superstar II、 Hemisphere、Crescent、u‐blox:LEA-4T/5T/6T、SkyTraq、JAVAD 、GW10-II/III 和 NVS。
-
支持外部通信:Serial、TCP/IP、NTRIP、本地日志文件、FTP 和 HTTP。
-
提供许多代码库和API:卫星和导航系统函数、矩阵和向量函数,时间和字符串函数、坐标的转换,输入和输出函数、调试跟踪函数、平台依赖函数、定位模型、大气模型、天线模型、地球潮汐模型、大地水准面模型、基准转换、RINEX函数、星历和时钟函数、精密星历和时钟、接收机原始数据函数、RTCM函数,解算函数、谷歌地球KML转换、SBAS函数、选项(option)函数、流数据输入和输出函数、整周模糊度解算、标准定位、精密定位、后处理定位(解算)、流服务器函数、RTK服务器函数、下载函数。
GAMP 全称 (GNSS Analysis software for Multi-constellation and multi-frequency Precise positioning),在 RTKLIB 的基础上,将一些些多余的函数、代码简洁化,精简出后处理双频 PPP 部分,并对算法进行改进增强。对初学者非常友好,在我接触过的导航定位开源程序中算是最简单的,是用纯 C 语言编写,由于做了简化,代码比 RTKLIB 原版还要简单;使用也非常简单,软件包里直接有 VS 工程,和组织好的配置、数据文件,简单改改路径就能算出结果。
PSINS(Precise Strapdown Inertial Navigation System 高精度捷联惯导系统算法)工具箱由西北工业大学自动化学院惯性技术教研室严恭敏老师开发和维护。工具箱分为Matlab和C++两部分。主要应用于捷联惯导系统的数据处理和算法验证开发,它包括惯性传感器数据分析、惯组标定、初始对准、惯导AVP(姿态-速度-位置)更新解算、组合导航Kalman滤波等功能。C++部分采用 VC6 编写,可以用于嵌入式开发。
澳大利亚
基于 RTKLIB 改写,做了面向对象封装,
大量使用 C++11/14/17 的新特性,使用了 Boost库,PEA 的主函数就有 500 行,读起来比较困难;
依赖的库较多,好在提供了 Docker;
可以运行在 Linux 和 MacOS,在 Windows 下需运行在 WSL 或 Docker 环境
文档很详细,而且可以生成 Doxygen,根据注释生成网站,可以方便的查看类型嵌套和程序调用
包括 PEA 定位和 POD 定轨程序,
PEA 用 C++、POD 部分用 Fortune,绘图和批处理脚本用 Python
矩阵运算主要用 Eigen 实现,也用 OpenBLAS 进行多线程矩阵运算
推荐阅读:不迷途导航程序员:PEA源码阅读笔记
goGPS是一个处理GNSS原始数据的软件,最初支持单频低成本GPS接收机数据,但现在也可以用来处理多频多系统GNSS数据。它实现了多种算法来解算,目前包括两个主要的最小二乘法(LS)引擎:一个基于于组合观测数据(例如无电离层观测);另一个能够使用所有的频率和记录的信号数据,而不进行任何组合(电离层延迟是正常方程的参数)。组合和不组合的引擎都支持PPP、NET解算。目前只支持静态测站的解算,还不能动态解算。
GICI-LIB 全称 GNSS/INS/Camera Integrated Navigation Library,是上海交大最新开源的一套基于图优化的 GNSS+INS+Camera 集成导航定位库。基于 RTKLIB 处理 I/O 流、编解码;基于 OKVIS 因子图优化类型封装;基于 SVO 做特征提取。以 GNSS 为主,再加入 INS、Camera 做组合,支持相当多的数据格式、定位模式,包含很多 GNSS 因子、惯导因子、视觉因子及运动约束。以处理实时数据为主,后处理也采用模拟实时数据处理的方式进行。
- 论文:GICI-LIB: A GNSS/INS/Camera Integrated Navigation Library,可以在这下载
- 源码:https://github.com/chichengcn/gici-open
- 数据:https://github.com/chichengcn/gici-open-dataset
典型应用方式如下图:
包含以下估计器:
补充:GICI 还在持续更新,前段时间看作者还准备加 PPP 紧组合模式。
SoftGNSS 是《软件定义的GPS和伽利略接收机》附带的程序,MATLAB 编写,实现了一套最简单的 GNSS 软件接收机功;输入经过天线接收,射频前端滤波下变频后的数字中频信号文件,进行 GPS L1 C/A 码的捕获跟踪,生成伪距观测值,解译导航电文,最小二乘定位解算;代码量很小也很简单,适合作为 GNSS 基带数字信号处理的入门阅读程序。主要执行流程如下:
与双目相机和 RGB-D 相机相比,单目相机具有结构简单、成本低和处理速度快的优点。然而,单目 VSLAM 存在尺度不确定性、无法对齐位姿和重力方向的自身缺点和快速运动导致的运动模糊的环境下容易跟踪丢失等不足。为弥补此问题,可将单目相机和 IMU 相结合的传感器融合,这种融合方案被称为单目视觉惯性里程计(Visual Inertial Odometry,VIO)或单目视觉惯性 SLAM(Visual-inertial SLAM,VINS)。
-
IMU 也可以弥补视觉 SLAM 在短时间、快速运动上的不足,另外由于 IMU 不依赖外界环境信息,对环境变化不敏感,也可以在少纹理、明暗变化较大或者光线较弱场景内提供短期的定位方案以及位姿估计方案。
-
较之惯性信息,视觉里程计可以提供丰富的外界信息,在低速平稳的运动中位姿估计稳定,而且视觉里程计在长时间运行后的漂移较小,并且可以通过回环检测修正自身位置以减小累积误差。
香港科技大学沈劭劼团队开发的 VINS 系统,用了一种紧耦合的非线性优化方法。该团队在 2017 年发布的 VINS-Mono 通过在四元数上进行 IMU 的预积分,并且采用滑动窗口法融合 IMU 信息和相机观测到的特征数据,实现了数据的紧耦合。并且采用四自由度的图优化方法实现了回环检测模块,来得到全局约束。在 2019 年,该团队又发布了 VINS-Fusion,在 VINS-Mono 的基础上又加入了双目、双目+IMU 等更多的传感器类型,以及支持了 VINS 和 GPS 的融合。它支持在线标定相机及 IMU 参数及鱼眼相机模型,并且支持保存当前地图和加载过往地图。在与 IMU 的结合上,它采用了四元数积分方案,与视觉信息进行紧耦合,具有很强的鲁棒性和定位精度。
ORB 指 Oriented FAST and rotated BRIEF,是一种结合 FAST 和 BRIEF,并引入旋转不变性的一种特征点和描述子;SLAM 指 Simultaneous Localization and Mapping,指的是同时进行实时定位和地图构建。
ORB-SLAM3 是迄今为止,最完整的视觉惯性 SLAM 系统系统,它是第一个集成了单目相机、双目相机、RGB-D相机,以及单目相机结合 IMU、双目相机结合 IMU 的 SLAM 系统。并且在 ORB-SLAM2 的基础上,改进了相机模型,使其不再局限于传统的小孔成像模型,而是可以扩展到鱼眼模型。在与 IMU 的结合上,它根据运动模型在流形上进行 IMU 的预积分的方式,然后采用非线性优化的**,将 IMU 的预积分结果和视觉 SLAM 的重投影模型一同进行图优化,使得预积分残差以及重投影误差共同达到最小,以此来完成视觉信息和惯导系统的紧耦合。并且它采用了更为快速的初始化方法,以及丢失跟踪后利用惯导系统快速重定位方法。此外,它还采用地图集的方式,实现了对大场景的定位建图。这也是如今众多开源方案中,功能最强大、最精准的方法。系统框图如下:
GNSS-SDR(GNSS: Global Navigation Satellite Systems、SDR: Software Defined Receiver),在 GitHub 上搜索 “GNSS” 排第一的仓库,收藏量也高达 1.3k。与上面列举的 RTKLIB、GAMP 等 GNSS 数据处理软件不同,GNSS-SDR 直接对信号进行处理,是一个用 C++ 实现的 GNSS 软件接收机开源项目。有了 GNSS-SDR,用户可以通过创建一个图来构建 GNSS 软件接收器,图中的节点是信号处理块,线条代表它们之间的数据流。该软件为不同的合适射频前端提供接口,并实现从接收器一直到 PVT 解算的所有功能。它的设计允许任何形式的定制,包括信号源、信号处理算法、与其他系统的互操作性、输出格式的互换,并为所有中间信号、参数和变量提供接口。
软件旨在促进新信号处理技术的发展,提供一种简便的方法来衡量这些技术对接收机整体性能的影响。通过对每个软件模块进行系统功能验证,以及使用真实和合成信号对整个接收机进行实验验证,对所有流程进行测试。
目前的技术仍无法以卫星发射频率(约 1.5 GHz)对信号进行数字处理,因此我们仍需要一个射频前端,将信号降频到较低频率,在此过程中进行一些滤波和放大,并以一定的速率进行采样,将量化的数字原始采样流传输到计算平台(通过 USB、以太网等)。
软件接收机可在普通的 PC 中运行,并通过 USB 和以太网总线为各种市售或定制的射频前端提供接口,使处理算法适应不同的采样频率、中间频率和采样分辨率。它还可以处理存储在文件中的原始数据样本。软件对可用的卫星信号进行信号采集和跟踪,对导航信息进行解码,并计算定位算法所需的观测值,最终实现完整导航解决方案。处理输出可存储在 RINEX 文件中,或通过 TCP/IP 服务器以 RTCM 3.2 消息形式实时传输。导航结果以 KML 和 GeoJSON 格式存储。
KF-GINS 是武大 i2Nav 实验室开源的一套松组合导航程序;可以读取 IMU 数据文件、GNSS 结果文件,进行松组合解算,计算位置、速度、姿态、陀螺仪零偏、加速度计零偏、陀螺仪比例、加速度计比力,共 21 维状态向量。代码量小,有详细的文档、注释和讲解,代码结构很好理解,有一些可以学习的工程技巧。
- 项目开源地址:https://github.com/i2Nav-WHU
- i2NAV组合导航讲义、数据集:http://www.i2nav.cn/index/newList_zw?newskind_id=13a8654e060c40c69e5f3d4c13069078
- 介绍视频:https://www.bilibili.com/video/BV1Zs4y1B7m2/
- 推荐观看:武大开源KF- GINS项目算法解析—理论部分、源码部分
武大 I2NAV 开源,基于图优化的 IMU/GNSS 松组合解算,IMU 预积分算法相比以视觉为主的 ORB-SLAM3、VINS 要精细一些。
相关链接:
- 开源地址:https://github.com/i2Nav-WHU/OB_GINS,
- 相关论文:
- Hailiang Tang, Tisheng Zhang, Xiaoji Niu, Jing Fan, and Jingnan Liu, “Impact of the Earth Rotation Compensation on MEMS-IMU Preintegration of Factor Graph Optimization,” IEEE Sensors Journal, 2022. 下载
- Junxiang Jiang, Xiaoji Niu, and Jingnan Liu, “Improved IMU Preintegration with Gravity Change and Earth Rotation for Optimization-Based GNSS/VINS,” Remote Sensing, vol. 12, no. 18, p. 3048, Sep. 2020, doi: 10.3390/rs12183048. 下载
- Le Chang, Xiaoji Niu, and Tianyi Liu, “GNSS/IMU/ODO/LiDAR-SLAM Integrated Navigation System Using IMU/ODO Pre-Integration,” Sensors, vol. 20, no. 17, p. 4702, Aug. 2020, doi: 10.3390/s20174702. 下载
功能简单来说,就是根据输入的里程计等传感器的信息流和机器人的全局位置,通过导航算法,计算得出安全可靠的机器人速度控制指令。广泛用在一些对可靠性要求没那么高的自主导航机器人场景中,比如扫地机器人、物流机器人等。
《北斗GPS双模软件接收机》书配套程序,MATLAB 编写,程序运行相当耗时,70s 的示例程序要算几个小时。
-
实例北斗GPS双模中频数据文件下载:UTREK210_16369000_70s.DAT,提取码: 829c
PocketSDR 是 RTKLIB 作者写的一款 GNSS 软件接收机,包含一个射频前端和一套后处理 GNSS 接收机程序(只支持后处理),实现了一整套完整的 GNSS 接收机功能,采用 C、Python 编写,支持几乎所有的 GNSS 信号(比商业接收机支持的还要多),目前 0.8 版本的程序支持的信号如下:
- GPS: L1C/A, L1CP, L1CD, L2CM, L5I, L5Q,
- GLONASS: L1C/A, L2C/A, L3OCD, L3OCP,
- Galileo: E1B, E1C, E5aI, E5aQ, E5bI, E5bQ, E6B, E6C,
- QZSS: L1C/A, L1C/B, L1CP,L1CD, L1S, L2CM, L5I, L5Q, L5SI, L5SQ, L6D, L6E,
- BeiDou: B1I, B1CP, B1CD, B2I,B2aD, B2aP, B2bI, B3I,
- NavIC: L5-SPS, SBAS: L1C/A, L5I, L5Q