IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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下载与安装

RTKLIB代码下载

在vs中编译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++->预处理器->预处理器定义中添加

_CRT_SECURE_NO_WARNINGS 
_WINSOCK_DEPRECATED_NO_WARNINGS
 ENAGLO

在配置属性 -> 链接器 -> 输入 -> 附加依赖项里添加 【winmm.lib】和 【ws2_32.lib】

?

选择工具栏中 生成->生成解决方案,就可以编译成功了。就可以看到我们编译的exe已经存在了。

?

也有其他的一个相似的编译DLL的文档,前文已经贴了地址(VS2012编译RTKLIB—GNSS定位开源库),可以和我上面的一块看。区别是我编译的可执行程序。

运行程序并得到结果

打开doc目录下的manual_2.4.2.pdf,找到第96页,如下图中我红框标注的,解释了如何调用rnx2rtkp。第二个例子写的是Single Point Positioning,即SPP,单点定位。

?

因为我们用的是windows,所以我的电脑的可执行文件的绝对路径是在

D:\source\RTKLIB-rtklib_2.4.3\rtklib\Debug\rtklib.exe

这里的rtklib.exe与说明书中的rnx2rtkp是一样的。只是因为我们把项目名称叫作了rtklib。

选中Debug文件夹,并按住shift,按下鼠标右键->在此处打开Powershell窗口,实质就是打开命令窗口,并cd到当前文件夹。不明白的请自行百度 windows命令窗口。输入上图中的命令,回车,发现竟然有报错。

?

该报错好像在linux上我没遇到过,也比较简单,就是有一些变量没有初始化。找到pntpos.c这个文件打开,将252行修改为如下:

double r,freq,dion=0.0,dtrp=0.0,vmeas,vion=0.0,vtrp=0.0,rr[3],pos[3],dtr,e[3],P;

即如下边截图中所示。

?

重新生成,即工具栏 生成->生成解决方案。rtklib.exe就会重新生成。

再回到命令窗口,按向上箭头按键,就会出来上次的命令,回车就可正常运行。运行如下:会输出红框内的内容,从显示了正在处理(processing)以及时间(2005/04/02 00:50:30),以及运行显示的定位质量(Q=5,就代表是单点解)。

我将完整命令贴在下边,注意各项之间有空格。

.\rtklib.exe -x 5 -p 0 -m 15 -n -o D:\\source\\RTKLIB-rtklib_2.4.3\\rtklib\\out.pos D:\\source\\RTKLIB-rtklib_2.4.3\\test\\data\\rinex\\07590920.05o D:\\source\\RTKLIB-rtklib_2.4.3\\test\\data\\rinex\\07590920.05n

?

也可以在vs中进行调试,右键项目选择属性,找到调试中的命令参数,输出上面的命令,去掉.\rtklib.exe可执行程序。

?按F5即可运行,运行如下:

?

然后在 我电脑的绝对路径下就可以找到定位结果输出文件了。

D:\source\RTKLIB-rtklib_2.4.3\rtklib\out.pos

?

把整理好的放在网盘上了,直接解压,找到RTKLIB-rtklib_2.4.3\rtklib\rtklib.sln,直接打开这个文件就行,打开应该就可以正常运行。

代码在 GNSS和自动驾驶 公众号回复 rtklib , 获取下载链接。

至此基本可以在vs上正常跑出结果,如果有问题请私信或者留言。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 19:26:35  更:2022-08-19 19:27:56 
 
开发: 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-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码