【SLAM】SLAM环境配置 Win10+VS2019+OpenCV+PCL+g2o+Vcpkg

3 篇文章 0 订阅

SLAM环境配置 Win10+VS2019+OpenCV+PCL+g2o+vcpkg

之前简单介绍过SLAM的环境配置,采用自己编译g2o(图优化框架)的方法,话说很是繁琐,最近IDE换成了vs2019,想重新配置环境,在配置g2o库时发现了一款神器vcpkg。利用 vcpkg 来获得 g2o 库很简单不用自己在CMake中一个一个的去修改,也不用再vs2019中编译了。

vcpkg 是微软 C++ 团队开发的在 Windows 上运行的 C/C++ 项目包管理工具,可以帮助您在 Windows 平台上获取 C 和 C++ 库。具体了解可以在网上搜一下有很多介绍,用起来很简单,便于学习。

vcpkg管理缺点

  1. 安装的库一般不是最新版本,但也是比较近的版本,没什么特殊需求的同学可以使用vcpkg。
  2. 最大的缺点是,在他为你自动配置生成时需要下载很多相关联的开源库,例如我们在安装g2o时,会先安装Eigen、suitesparse 等库,这是问题就来了,下载地址一般为Git等国外网站的地址,国内下载速度很慢或有的根本无法连接,这就需要你手动下载所需的安装包,并且大概率需要采用“科学上网”方法,你懂得。(这个问题vcpkg貌似正在解决,通过镜像的地址的方法,但我安装时还是大部分不行)在这我将暗安装下载的安装包打包分享,如果时间没差他太多可能大家能用得上。

软件及版本

软件版本
1Windows10
2Visual Studio2019
3OpenCV4.4.0
4PCL1.11.0
5g2o2020-02-07
5.1vcpkg2020.06
5.2CMake3.18.0
5.3Git2.27.0
5.4libQGLViewer2.7.2
5.5Eigen33.3.7-5
5.6suitesparse5.4.0-5

(我所安装的均是当前最新版本,不必和我一样,采用最新版本即可)
这里说明一下,g2o库安装,我们采用vcpkg进行,vcpkg需要使用git下载资源包,并用cmake生成解决方案,所以我们可以先下载安装这两个软件。当然如果你不安装,vcpkg在库安装时会检测,如果你没有安装,vcpkg会帮你安装。 libQGLviewer库是选择安装,用来进行3D图像的显示等操作。看使用g2o的博文基本都要装这个跟g2o联编,所以咱也就安装吧。这里注意使用vcpkg时,libQGLviewer一定要先于g2o安装,否则可能出现openssl库重复安装的问题。Eigen库和suitesparse会在编译g2o时自动安装。 这里直接安装g2o时,安装的只是suitesparse而没有metis,而一般安装g2o时用的是suitesparse-metis,所以可以先安装metis,然后再安装g2o。

(好多东西下不了,可以找国外同学下,或者想其他办法,科学上网,你懂得,我会将我vcpkg安装g2o时所有下载文件上传至百度网盘,大家在安装之前,可以解压后全部拷贝到 vcpkg\downloads文件夹下)

1. Windows 10

这应该是标配吧

2. Visual Studio 2019

安装社区版,足够用,百度搜vs2019,进入官网,下载 Visual Studio Community 2019,进行在线安装。在“工作负载”中选择“使用C++的桌面开发”,和“Visual Studio 扩展开发”,在右侧安装详细信息中 勾选 “适用于最新v142生成工具的C++MFC”。在语言包中,最好选择英语,因为有些库的配置必须在英文环境下,如果不喜欢用英语的可以 中文和英文都安装,之后根据需求自己切换。Vcpkg安装g2o时需要用英文版VS。
在这里插入图片描述

3. OpenCV

OpenCV:一个图像处理中最常用的库,就不多介绍了。
这里 8.vcpkg 可以生成OpenCV库,opencv_contrib也有,版本低一些,闲麻烦的可以用vcpkg生成。
下载一个最新版本的OpenCV,我的是OpenCV 4.4.0,安装包为 opencv-4.4.0-vc14_vc15.exe
官方下载地址:https://opencv.org/releases/
虽然只支持到vc15 就是vs2017 ,vc16的vs2019一样用。
这里如果采用官网的编译好的库,那么你将不能使用SIFT、SURF等一些方法,因为这些方法申请了专利不能够商用,放到了nofree中,而我们可以通过重新编译 opencv_contrib 来重新生成opencv库,从而使用这些方法。
编译方法我之前写过一篇《opencv4.0.1+opencv_contrib4.0.1+VS2015的编译》,版本换了方法不变。
博文地址:https://blog.csdn.net/Gordon_Wei/article/details/85775328

我编译好的一个:opencv 4.4.0 + opencv_contrib 4.4.0+ vs2019 + win10
CSDN链接:https://download.csdn.net/download/Gordon_Wei/12677888
百度链接:https://pan.baidu.com/s/1nb7JkDN6bXR_O2arASiNmA
提取码:opcv

这里建议在某盘的根目录下新建一个名如“MyLibs”文件夹,存放使用到的库。最好在根目录下,并且名字要短,如果太长之后在环境变量里添加路径时可能由于路径太长添加不进去。

4. PCL

PCL:Point Cloud Library 是一个点云处理的开源库,SLAM得到的点云就用这个库里的方法进行处理
下载一个最新版本的PCL,我的是PCL 1.11.0,安装包为 PCL-1.11.0-AllInOne-msvc2019-win64.exe
官方下载地址:https://github.com/PointCloudLibrary/pcl/releases

下载之后,进行安装,可直接安装在你的“MyLibs”文件夹下,安装后文件夹中包括了PCL需要用到的第三方库文件,在。。。下,以及PCL自身的include、lib、bin。

安装完毕看看你安装文件夹下的…\3rdParty\OpenNI2文件夹中是不是只有一个安装文件OpenNI-Windows-x64-2.2.msi,如果是选中、右键、卸载,然后重新安装,安装路径为PCL安装路径下的…\3rdParty\OpenNI2

这里需要注意,在MFC程序中使用PCL库时(控制台程序没试,感觉应该都有),在你自己程序编译时会出错,错误在PCL库文件内是关于
std::max() 及 std::min(),函数的错误如图
这是因为std::max()与<windows.h>中传统的min/max宏定义有冲突
在出错的位置将std::max加个括号,如下
std::max() -> (std::max)()
std::numeric_limits::max () -> (std::numeric_limits::max) ()
还有一个问题是存在多个没有定义的对象,不知道是啥 ,我直接删了 貌似没啥影响。。。

5. g2o

5.1 vcpkg

注意 关闭360等安全软件

vcpkg:是命令行包管理工具,在使用第三方库的c或c++开发中可以简化相关的配置操作。vcpkg安装的包支持Visual Studio 2015 update 3及以上版本,目前在windows平台已有超过900多个包,linux平台超过350个包。在默认情况下,vcpkg会优先使用如果未安装,则使用vs2015编译和安装。使用vcpkg对于c或c++开发,令人烦恼的第三方包管理工作大大的减轻,实则是“居家旅行,必备之品”。
参考:
具体想学习课参考
《Visual Studio开源库集成器Vcpkg全教程》 Achilles
博文地址:https://blog.csdn.net/cjmqas/article/details/79282847

下载一个最新release的vcpkg,我的是Vcpkg 2020.06,安装包为 vcpkg-2020.06.zip
官方下载地址:https://github.com/microsoft/vcpkg/releases

5.2 CMake

CMake:是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。这么说,他可以利用库的源码文件,加上一个CMake配置文件来生成一个符合你编译环境的project,比如在vs2019平台下生成一个工程,打开工程编译后就能生成需要的库的文件include、lib、dll等。
下载一个最新版本的CMake,我的是CMake 3.18.0,安装包为 cmake-3.18.0-win64-x64.msi 安装路径没有要求,建议默认。
这里如果你不安装CMake,vcpakg也会帮你安装一个
官方下载地址:https://cmake.org/download/

5.3 Git

Git:版本管理器,可以进行程序的版本控制,vcpkg需要利用Git获得目前在Git上的开源源码
下载一个最新版本的Git,我的是Git 2.28.0,安装包为 Git-2.28.0-64-bit.exe 安装路径没有要求,建议默认。
这里如果你不安装Git ,cpakg也会帮你安装一个
官方下载地址:https://git-scm.com/downloads

5.4 利用vcpkg安装g2o

下面就说说如何利用vcpkg得到我们需要的 g2o库。

非常简单 首先压我们下载的文件到某盘的跟目录下,如D:\vcpkg,这样做的原因是,vcpkg会将生成得到的库安装在自己的文件夹的install下,为了避免以后使用这里的库时,配置路径过长,最好将它放在根目录下。在你的路径下如 “D:\vcpkg”中找到“bootstrap-vcpkg.bat”选中右键以管理员身份运行,运行结束会在路径下生成vcpkg.exe。

现在就要使用vcpkg来安装g2o库了。

安装顺序
(1)libQGLviewer (可以不安装,我是没用上)
(2)suitesparse[metis] (可以不安装,我是没用上 ,安装g2o时会自己安装一个suitesparse)
(3)g2o

咱就直接给你安装g2o吧
(上边两个的安装与g2o相同,命令为 vcpkg install libQGLviewer:x64-windows 和 vcpkg install suitesparse[metis]:x64-windows )

首先,“运行”->“cmd”,将路径转到vcpkg目录下,
然后,输入命令,vcpkg install g2o:x64-windows,

这个命令中
vcpkg 是vcpkg.exe
install 是要进行测操作命令(安装)
g2o是想要安装的库名
:x64-windows 是想要编译的平台,如果不加则默认x86, 如果都想要的可以用: vcpkg install g2o g2o:x64-windows

如图:
在这里插入图片描述

图中1.是所需安装包的下载地址,因为大部分安装包下载地址都在国外所以我们很难能下载成功,会出现4这样的错误,下载不成功。所以我们可以通过他的下载地址直接下载安装包,并放在2的目录里,就是你的vcpkg下的downloads下,这里注意你的安装包的名要与图中3位置的文件名一致,不一致的改成他的名即可。所有所需的包我都上传到了百度云盘

vcpkg\downloads 文件夹下的文件(这里有很多是libQGLviewer和suitesparse安装时需要的,可以选择性下载)
链接:https://pan.baidu.com/s/1j-l5tlQ_dMeDdsQ2yeE3GQ
提取码:x2qb
vcpkg\downloads\tools\msys2\msys64\var\cache\pacman\pkg 文件夹下的文件 当遇到关于msys错误时,把这些文件放到这个文件夹下
链接:https://pan.baidu.com/s/1cizlZyWOkQc3W-vo1TzRNw
提取码:q7wi

5.5 g2o 的使用

经过vcpkg的安装,会在你的 vcpkg文件加下生成一个 installed的文件夹 里边是所有安装好的包的集合包括 include,bin,lib等,还有一个packages的包是分开的所有安装的库,每个库一个文件夹。这两个用哪个都可以,在使用的时候按照你的工程所需进行配置。

环形变量如图可供参考:

在这里插入图片描述

  • 8
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
ORB-SLAM2是一种基于二维图像的实时单目视觉SLAM系统,可以在没有先验地图的情况下,从单个摄像头的输入中实时定位和建立环境模型。为了更好地理解ORB-SLAM2的原理和代码实现,我们需要逐行分析其核心算法。 ORB-SLAM2的主要原理是通过特征提取,特征匹配和位姿估计来实现定位和建图。在代码中,我们可以看到一些关键的数据结构和函数调用,这些都是实现这些原理的关键。 首先,ORB-SLAM2使用FAST特征检测器在图像中检测关键点。这些关键点代表图像中的有趣区域。然后,使用ORB描述符对关键点进行描述。ORB描述符使用二进制位串来表示关键点周围的特征。 然后,ORB-SLAM2使用词袋法(Bag-of-Words)模型来进行特征匹配。它首先通过建立一个词典来表示所有关键点的描述符。然后,使用词袋模型来计算图像之间的相似度,从而找到匹配的关键点。 接下来,ORB-SLAM2使用RANSAC算法来估计两个图像之间的相对位姿。RANSAC算法通过迭代随机采样的方式来筛选出最佳的匹配关系,从而得到相对位姿估计。 最后,ORB-SLAM2使用优化算法(如g2o)来进行位姿图优化,从而更精确地估计相机的位姿。通过优化,ORB-SLAM2能够减少位置漂移,并在动态环境下更好地跟踪相机的位置。 总的来说,ORB-SLAM2通过特征提取、特征匹配和位姿估计实现实时单目视觉SLAM。核心代码实现了特征检测、描述符提取、特征匹配、RANSAC算法和图优化等关键步骤。了解这些原理和代码实现,可以帮助我们更好地理解ORB-SLAM2系统背后的工作原理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏Gordon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值