ROS交流群
ROS Group
产品服务
Product Service
开源代码库
Github
官网
Official website
技术交流
Technological exchanges
激光雷达
LIDAR
ROS教程
ROS Tourials
深度学习
Deep Learning
机器视觉
Computer Vision

升级ORB_SLAM2依赖程序以提升效率



  • 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就要把作者的修改内容给移植过去。


Log in to reply