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;"