| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> 本科生如何入门GNSS算法 (一)- 在Visual Studio 2017中跑通RTKLIB开源代码 -> 正文阅读 |
|
[开发工具]本科生如何入门GNSS算法 (一)- 在Visual Studio 2017中跑通RTKLIB开源代码 |
目录 写在前面,可执行的vs程序在文章最后,可以直接下载后运行。 默认使用windows电脑,默认是64位电脑系统,不一样也影响不大。 Vs下载与安装Vs是啥?Vs就是一个让你的代码能够运行的工具,其余自行百度;我个人用的vs 2017,其他版本也可随意安装,可能会有一些不一样的地方。 官网下载 可能需要简单注册登录。 Vs有社区免费版本,具体安装可参考。安装很简单。 RTKLIB代码下载rtklib是啥?RTKLIB is an open source program package for standard and precise positioning with GNSS (global navigation satellite system). RTKLIB consists of a portable program library and several APs (application programs) utilizing the library. 简单来说就是高须知二写的一个GNSS工具箱,免除了科研人员限于基础代码开发的困境,让大家更专注于学术而不是基础库的开发。官网地址,其实网上挺多如何使用rtklib的blog,比如(VS2012编译RTKLIB—GNSS定位开源库,利用C++ builder 调试RTKLIB简单介绍),但我还是准本以初学者的视觉介绍一遍。 RTKLIB官网显示,在2.4.2 p13版本后,开源代码均托管于github上。就是说我把代码放在github上管理,可以跟踪代码修改的历史以及管理大家的merge需求等。我们一般使用git下载github上的代码,基本上所有的公司也使用git来管理项目代码,所以可以简单学习一下git的使用。比如百度搜索 “git使用”。在此不在赘述。 ?点击上图红框中RTKLIB最新源代码,并在下图中选择第二种,即可下载到rtklib源码。国内访问github有时会抽风,多刷新几次就可以进去了。如果学习了git,可以选择第一种,使用git进行代码clone; ?下载并解压后如下: ? 在vs中编译rtklib①新建项目打开安装好的vs2017,新建->项目->控制台应用 并将名称设置为rtklib ②添加代码选择左侧的解决方案资源管理器,选定头文件->右键->添加->现有项。如果左侧或者右侧没有解决方案管理器,自行百度如何打开vs解决方案管理器。 ?然后选中源码文件夹下的rtklib.h,添加进来。 同样选中源文件,选择相同的现有项,将除rtklib.h以及rcv文件夹之外的所有文件添加进来。 选中源文件->右键->添加->新建筛选器,添加一个叫rcv的文件夹,并将源码rcv文件夹下的所有文件添加到这个筛选器下。完成后目录就是如下: ? 虽然已经添加了代码进入项目,但是还是找不到文件,需要告诉项目代码在哪。 选中rtklib->右键选 属性->在弹出的对话框里找到c/c++下 常规,将代码src的目录填到附加包含目录中,如下 ? 选中源文件->右键选择添加现有项,在 将源代码\app\consapp\rnx2rtkp\rnx2rtkp.c文件添加进来,这个文件包含了main函数入口。并将rtklib.cpp删掉,这个是vs自动生成的程序入口,不需要。 选择工具栏中 生成->生成解决方案,就开始编译代码了。然后就显示有错误,主要如下,其他错误都可以忽略掉。 ?点击“右键项目-属性-常规”,将SDL检查改为否。在项目属性->c/c++->预处理器->预处理器定义中添加
在配置属性 -> 链接器 -> 输入 -> 附加依赖项里添加 【winmm.lib】和 【ws2_32.lib】 ? 选择工具栏中 生成->生成解决方案,就可以编译成功了。就可以看到我们编译的exe已经存在了。 ? 也有其他的一个相似的编译DLL的文档,前文已经贴了地址(VS2012编译RTKLIB—GNSS定位开源库),可以和我上面的一块看。区别是我编译的可执行程序。 运行程序并得到结果打开doc目录下的manual_2.4.2.pdf,找到第96页,如下图中我红框标注的,解释了如何调用rnx2rtkp。第二个例子写的是Single Point Positioning,即SPP,单点定位。 ? 因为我们用的是windows,所以我的电脑的可执行文件的绝对路径是在
这里的rtklib.exe与说明书中的rnx2rtkp是一样的。只是因为我们把项目名称叫作了rtklib。 选中Debug文件夹,并按住shift,按下鼠标右键->在此处打开Powershell窗口,实质就是打开命令窗口,并cd到当前文件夹。不明白的请自行百度 windows命令窗口。输入上图中的命令,回车,发现竟然有报错。 ? 该报错好像在linux上我没遇到过,也比较简单,就是有一些变量没有初始化。找到pntpos.c这个文件打开,将252行修改为如下:
即如下边截图中所示。 ? 重新生成,即工具栏 生成->生成解决方案。rtklib.exe就会重新生成。 再回到命令窗口,按向上箭头按键,就会出来上次的命令,回车就可正常运行。运行如下:会输出红框内的内容,从显示了正在处理(processing)以及时间(2005/04/02 00:50:30),以及运行显示的定位质量(Q=5,就代表是单点解)。 我将完整命令贴在下边,注意各项之间有空格。
? 也可以在vs中进行调试,右键项目选择属性,找到调试中的命令参数,输出上面的命令,去掉.\rtklib.exe可执行程序。 ?按F5即可运行,运行如下: ? 然后在 我电脑的绝对路径下就可以找到定位结果输出文件了。
? 把整理好的放在网盘上了,直接解压,找到RTKLIB-rtklib_2.4.3\rtklib\rtklib.sln,直接打开这个文件就行,打开应该就可以正常运行。 代码在 GNSS和自动驾驶 公众号回复 rtklib , 获取下载链接。 至此基本可以在vs上正常跑出结果,如果有问题请私信或者留言。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 23:01:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |