zoukankan      html  css  js  c++  java
  • SVO(SLAM)编译运行

    SVO即“Fast Semi-Direct Monocular Visual Odometry”视觉slam算法

    编译环境:Ubuntu14.04-LTS(64位)、ROS Indigo

    不得不说,这个代码是我目前为止编译最为顺利的一个,没有遇到之前各种奇奇怪怪的问题。虽然完全按照原作者的方法来编译应该不会出现问题,但还是决定写一篇关于svo编译的。一是关于这个编译的文章少,我百度的时候没出来几个(可能是因为这个编译太简单了吧,,hehe……);二是原作者没有给出关于 OpenCV 的说明,如果自己之前自定义安装了 OpenCV 的小朋友,在编译的时候可能会出现找不到 OpenCV 的问题。

    下面是具体步骤:

    1、下载源码

    先交代一下,我们是要建两个并列的文件夹,一个(workspace)用于存放所要用到的库,一个(src)用于存放 SVO 代码。我是先把所有需要的东西都下载完,然后再编译的。

    首先创建一个文件夹用于放置代码,我的是在 Home 目录下:

    mkdir ~/svo_ws

    cd ~/svo_ws

    mkdir workspace

    cd workspace

    git clone https://github.com/strasdat/Sophus.git

    git clone https://github.com/uzh-rpg/fast.git

    git clone https://github.com/RainerKuemmerle/g2o.git

    这样三个库 Sophus、fast、g2o 就分别下载完了,然后在 svo_ws 下创建 src:

    cd ..

    mkdir src

    cd src

    git clone https://github.com/uzh-rpg/rpg_vikit.git

    git clone https://github.com/uzh-rpg/rpg_svo.git

    这里下载的两个一个是工具库,一个是源码。

    然后下载一会要用到的数据包,这是下载链接,然后把下载的包移到 svo_ws 下备用。

    2、编译

    然后开始编译,编译要用到的三个库,最后编译程序代码。

    先编译 Sophus,进入 Sophus 文件夹:

    cd ~/svo_ws/workspace/Sophus

    然后切换分支:

    git checkout a621ff

    如图:

    然后创建 build 文件夹并编译:

    mkdir build

    cd build

    cmake ..

    make

    结果如图:

    然后编译fast:
    cd ~/svo_ws/workspace/fast

    mkdir build

    cd build

    cmake ..

    我在这里编译出错了,因为我 OpenCV 安装时没有装到系统路径,而是自定义的,我之前的文章里也多次提到了。

    编辑 fast  下的 CMakeLists.txt,在 20行左右添加自己的安装路径:

    set(OpenCV_DIR ~/opencv-2.4.9/share/OpenCV)

    保存退出。这里我是沿用上篇文章的 OpenCV2.4.9 版本,路径设置及版本切换参考我之前的文章。删掉 build 下的所有文件(这点狠重要!!),然后重新编译:

    cmake ..

    make

    到这里应该会没问题,如图:

    这里提一下,如果你出现了 “unrecognized command line option '-mfpu=neon' ”的错误:

    那么自己给自己一巴掌。如果按我的步骤来,不会出现这个错误,出现这个错误的原因是添加了环境变量 ARM_ARCHITECTURE=True。其实作者已经说得狠清楚了,ARM平台才需要添加这个,我们是 PC端编译,所以不要添加这个。

    然后编译 g2o,由于我之前编译别的代码时已经将g2o安装到了系统路径,所以这次我没有再次安装。不过这里还是给出安装过程(这是安装到系统路径,如果想自定义路径,请自行参考原作者网页):

    cd ~/svo_ws/workspace/g2o

    mkdir build

    cd build

    cmake ..

    make

    sudo make install

    至此需要用到的库已经完都编译或安装完毕,然后就该编译主程序了。再编译之前,原作者也友情提示了一下检查是否安装了 cmake-modules,其实一般来说都是安上了的,我的是 Indigo 版本,所以:

    sudo apt-get install ros-indigo-cmake-modules

    如果之前编译 fast 时出现了找不到 OpenCV 的问题,那么编译主程序时还会遇到这个问题,别问我怎么知道的[僵尸脸]~~!出错截图:不给你看咩~~!

    所以我们一次性修改所有的文件,分别是 src/rpg_vikit/vikit_common/、src/rpg_vikit/vikit_ros/ 、src/rpg_svo/svo/ 、src/rpg_svo/svo_ros/ 下的 4 个CMakeLists.txt 文件,在里面合适位置添加(路径改成你的):

    set(OpenCV_DIR ~/opencv-2.4.9/share/OpenCV)

    保存退出。然后在 ~/svo_ws 下编译(如果之前已经编译过了,就删除 build 下的所有文件,重新回到 ~/svo_ws 编译):

    catkin_make

    编译成功如图:

    3、运行

    新开窗口进入 ~/svo_ws 并运行:

    source devel/setup.bash

    roslaunch svo_ros test_rig3.launch

    然后新开窗口进入 ~/svo_ws 并运行:

    rosrun rviz rviz -d src/rpg_svo/svo_ros/rviz_config.rviz

    最后运行数据包:

    cd ~/svo_ws

    rosbag play airground_rig_s3_2013-03-18_21-38-48.bag

    效果如图:

    最后,,这次没什么感慨,就祝大家汤圆节快乐吧(*^__^*) ……

  • 相关阅读:
    这个站不错
    Using YQL as crawler for Javascript
    xmldatabase domdatabase
    语法分析器自动生成工具一览
    Ruby, Concurrency, and You
    图书影印
    数据可视化我在寻找一款类似vfp或是access这样自带可视化风格的数据库或是键盘数据库
    金融工程
    joke
    在ubuntu上安装全文搜索中文分词Coreseek/sphinx及和Rails集成 转载
  • 原文地址:https://www.cnblogs.com/hxzkh/p/8492231.html
Copyright © 2011-2022 走看看