原链接:http://community.bwbot.org/topic/151
ORB_SALM2的默认依赖是g2o, OpenCV, Eigen。这些软件的新版和作者使用的版本相比都有比较大的更新。比如OpenCV和Eigen在新版里面都可以使用显卡加速。下面介绍怎么对ORB_SLAM2进行修改使其使用最新版本的对应软件。
首先是OpenCV,我使用的是ros自带的3.1版本
如果你是jade系统则执行下面的指令
安装OpenCV
sudo apt-get install ros-jade-opencv3
如果你是kinetic系统则执行下面的指令
sudo apt-get install ros-kinetic-opencv3
默认安装的OpenCV的cmake 文件可能会出问题,最好还是按照这篇文章所说的修改一下。
在ORB_SLAM2的cmake文件里面添加OpenCV引用,在ORB_SLAM2的CMakeList文件里面把
find_package(OpenCV 2.4.9 REQUIRED)
更改为
find_package(OpenCV 3.1.0 REQUIRED)
这样OpenCV就添加完成了。
安装Eigen
到这里去下载最新版本的Eigen
然后安装网站的提示进行编译安装就可以了
注意如果你之前安装过Eigen,很有可能cmake找不到新的Eigen位置。
更改ORB_SLAM2的cmakelist 文件,
把
find_package(Eigen3 3.1.0 REQUIRED)
改成
find_package(Eigen3 3.3.1 REQUIRED)
再次运行cmake,如果cmake没有报错则说明已经成功找到了,如果报错了就说明没有找到。修改的方法也比较简单。
更改ORB_SLAM2/cmake_modules/FindEigen3.cmake文件
在最上面添加
set(EIGEN3_INCLUDE_DIR "FALSE")
因为其他版本的Eigen可能会把EIGEN3_INCLUDE_DIR这个变量设值,导致寻找错误,所以这里重新设置成False就没有问题了。
这样Eigen的依赖问题就解决了。
安装g2o
g2o的安装是一个比较大的问题,因为作者使用了自己修改的一份g2o。所以如果我们想要使用最新版的g2o就要把作者的修改内容给移植过去。