LSD-SLAM 环境搭建,编译,运行 2018年1月亲测可行

0.  前期准备以及一些坑

    重要 请使用 Ubuntu14.04+Ros indigo。

    开始我使用 mac OS 直接跑 各种改,各种坑,最终还是没跑通(如果使用 mac 遇到问题可以留言,我遇到的解决了的可以回答,不再列举)。如果使用 Ubuntu 16.04+ros kinetic 理论上和Ubuntu14.04+Rosindigo差别不大,但是还是有坑,装个虚拟机,Ubuntu14.04+Rosindigo可以确保最快的速度跑通。

 

1.  环境搭建

1.1 Ubuntu 14.04LTS 安装 

  虚拟机双系统皆可。 虚拟机内存分配1G时遇到过编译内存不足报错,请根据自己机器情况调整。具体安装过程网上很多。

1.2  Ros indigo 安装

Ubuntu空环境直接按照官方教程安装即可

http://wiki.ros.org/cn/indigo/Installation/Ubuntu

 

2.  LSD-SLAM 的编译

我参考了这篇文章

http://www.luohanjie.com/2017-03-17/ubuntu-install-lsd-slam.html

如文章中所说,我用 rosmake 也报错了,虽然错误和文中不同。同样我换用 catkin_make 进行编译。然后不向文中顺利通过,还是报错。错误没有保存截图。

提示我找不到两个头文件:   

LSDParamsConfig.h和LSDDebugParamsConfig.h

我在 github找到了一个相同的 issue:


    作者的回答是 rosmake 能自生成这两个文件,也没出解决方案,我想如果 rosmake 成功的话应该可以找到两个文件,然而我 rosmake是失的,我就去 google这两个文件,很幸运找到了两个文件,然后把他放到/home/wangcaimeng/catkin_ws/src/lsd_slam/lsd_slam_core/src/lsd_slam_core/下,重新编译问题解决。代码较长,我放到了 github 上,不在此贴出,遇到同样问题可以自行下载。

https://github.com/wangcaimeng/LSD-SLAM_not_found_header

3.  运行

参考上述文章。

我写了个 shell 脚本,也可以参考脚本自行修改路径执行。

运行.bag
gnome-terminal -t "roscore" -x bash -c "
    roscore; exec bash;"
gnome-terminal -t "lsd_viewer" -x bash -c "
    cd ~/catkin_ws/;
    source devel/setup.sh;
    rosrun lsd_slam_viewer viewer; exec bash;"
gnome-terminal -t "lsd_core" -x bash -c "
    cd ~/catkin_ws/;
    source devel/setup.sh;
    rosrun lsd_slam_core live_slam image:=/image_raw camera_info:=/camera_info;
    exec bash;"
gnome-terminal -t "run_ros_bag" -x bash -c "
    cd ~/catkin_ws/;
    rosbag play ~/Desktop/LSD_room.bag;
    exec bash;"
运行 image
gnome-terminal -t "roscore" -x bash -c "
    roscore; exec bash;"
gnome-terminal -t "lsd_viewer" -x bash -c "
    cd ~/catkin_ws/;
    source devel/setup.sh;
    rosrun lsd_slam_viewer viewer; exec bash;"
gnome-terminal -t "lsd_core" -x bash -c "
    cd ~/catkin_ws/;
    source devel/setup.sh;
     rosrun lsd_slam_core dataset _files:=/home/wangcaimeng/Desktop/LSD_room/images _hz:=0 _calib:=/home/wangcaimeng/Desktop/LSD_room/cameraCalibration.cfg
    exec bash;"



阅读更多

更多精彩内容