Ubuntu 14.04 跑通 lsd slam 全过程
作为一个菜鸡的我,前前后后一个多星期,换了三个系统,总算是把它跑通了。
记录一下我踩的坑。让大家少走弯路。
写在前面的话:网上的都是骗人的,我几乎翻遍了网上的教程,每一个错误我都能背下来了,始终编译不成功。如果你和我一样是个小白,那么恭喜你,这篇文章会让你少走很多弯路。如果你已经是大佬,也请不要笑话我。
想要成功运行,虚拟机或者双系统都是可以的,并不会因为虚拟机就出错。
The most important thing : 在安装ROS之前安装openCV2.4系。网上几乎所有教程都是直接安装ROS,这样会导致很多错误,因为ROS indigo 自带的3系openCV,lsd slam 需要用2系编译,如果直接用ROS自带的opencv我试过无论怎么修改代码都没法编译成功。
我试过用虚拟机+ubuntu 16.04,也试过用把笔记本洗成ubuntu 18.04运行lsd salm,但是都失败了,就是因为我每一次都是按照网上的教程先装的ROS。在ubuntu 下运行,环境配置很重要,脱离了环境配置,再怎么修改代码都没用。最后我尝试了用Ubuntu 14.04来运行。
首先是我的配置:
ubutnu14.04+ROS indigo+opencv 2.4+eigen3+cmake3.2+gcc4.8.4
1.安装虚拟机
这个网上很多教程,就不多说了
2.安装Ubuntu 14.04系统
这个网上也有很多教程,我主要参考了
注意最好选择自定义(高级),因为我试过选择典型推荐的,最后装出来的系统有点问题。
3.安装OPENCV2.4系
我是用脚本文件安装的:
下载:https://gist.github.com/arthurbeggs/06df46af94af7f261513934e56103b30
运行:
chmod +x openCV2_install(你.bash文件的名字)
./openCV2_install.
4.安装ROS
主要参考:http://wiki.ros.org/indigo/Installation/Ubuntu
1)Setup your computer to accept software from packages.ros.org.
sudo sh -c ‘echo “deb http://packages.ros.org/ros/ubuntu $(lsb_release
-sc) main” > /etc/apt/sources.list.d/ros-latest.list’
2.)Set up your keys
sudo apt-key adv --keyserver ‘hkp://keyserver.ubuntu.com:80’ --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
3)Installation
sudo apt-get update && sudo apt-get install dpkg
sudo apt-get install libgl1-mesa-dev-lts-trusty
sudo apt-get install ros-indigo-desktop-full
sudo rosdep init
rosdep update
echo “source /opt/ros/indigo/setup.bash” >> ~/.bashrc
source ~/.bashrc
sudo apt-get install python-rosinstall
4)测试小海龟
roscore
打开新终端
rosrun turtlesim turtlesim_node
出现小海龟说明安装成功。
5.创建rosbuild工作空间
sudo apt-get install python-rosinstall
mkdir ~/rosbuild_ws
cd ~/rosbuild_ws
rosws init . /opt/ros/kinetic
mkdir package_dir
rosws set ~/rosbuild_ws/package_dir -t .
echo “source ~/rosbuild_ws/setup.bash” >> ~/.bashrc
bash
cd package_dir
- 安装依赖
sudo apt-get install ros-indigo-libg2o ros-indigo-cv-bridge liblapack-dev libblas-dev freeglut3-dev libqglviewer-dev libsuitesparse-dev libx11-dev
7.下载
git clone https://github.com/tum-vision/lsd_slam.git lsd_slam
8.安装
rosmake lsd_slam
9.编译
rosmake lsd_slam
10.修改gug
1)报错:ERROR [gendeps] 1 Finding dependencies for /home/cc/rosbuild_ws/package_dir/lsd_slam/lsd_slam_viewer/cfg/LSDSLAMViewerParams.cfg
解决:删除lsd_slam_viewer/cfg/LSDSLAMViewerParams.cfg和lsd_slam_core/cfg/LSDDebugParams.cfg两个文件中出现的单引号
lsd_slam_viewer/cfg/LSDSLAMViewerParams.cfg:
第20行scaledDepthVarTH:单词 point's和keyframe's 中出现了单引号,删除单引号
第21行absDepthVarTH:单词 point's
第24行cutFirstNKf:单词 keyframe's
lsd_slam_core/cfg/LSDDebugParams.cfg
第11行plotStereoImages:单词 what's
第12行plotTracking:单词 what's
第48行continuousPCOutput:单词 Keyfram's
编译成功啦,就是这么简单

11.运行,这里 我选择运行官方的数据集
1)下载数据集并解压:http://vmcremers8.informatik.tu-muenchen.de/lsd/LSD_room.bag.zip
2) 打开终端输入命令:
roscore
3) 另打开一个新的终端,输入命令:
rosrun lsd_slam_viewer viewer
4)运行你的.bag文件
rosrun lsd_slam_core live_slam image:=/image_raw camera_info:=/camera_info
rosbag play ~/your path/LSD_room.bag
成功啦


还有Ubuntu16.04和Ubuntu18.04我也会继续尝试的。

