【学习总结】LSD-SLAM配置与运行记录

今天安装测试了LSD-SLAM,记录配置中遇到的问题。

LSD-SLAM论文
LSD-SLAM: Large-Scale Direct Monocular SLAM, J. Engel, T. Schöps, D. Cremers, ECCV '14
Semi-Dense Visual Odometry for a Monocular Camera, J. Engel, J. Sturm, D. Cremers, ICCV '13

配置环境

操作系统:ubuntu 14.04 虚拟机
ROS:ROS Indigo
官方代码:https://github.com/tum-vision/lsd_slam

代码编译

参考官方代码,创建环境、安装依赖项、下载并编译:

# ros环境创建
sudo apt-get install python-rosinstall
mkdir ~/rosbuild_ws
cd ~/rosbuild_ws
rosws init . /opt/ros/indigo
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
# 编译
rosmake lsd_slam

编译时会遇到报错:log10有一行的编译错误
【学习总结】LSD-SLAM配置与运行记录_第1张图片原因:ros中python包的引号问题
修改:
lsd_slam/lsd_slam_viewer/cfg/LSDSLAMViewerParams.cfg文件第20行,去掉point's中的单引号',和keyframe's的单引号;同样,删除21和30行中的单引号。修改lsd_slam/lsd_slam_core/cfg/LSDDebugParams.cfg的第11,12和48行中的单引号。

github上原issue的解决方案:https://github.com/tum-vision/lsd_slam/issues/270#issuecomment-321496655

运行

需要运行的节点有:SLAM节点,可视化节点,以及数据发布节点,可以用数据集的数据,也可以用实时相机的数据。例如,用数据集的运行指令:

# 运行数据集节点
rosbag play ~/LSD_room.bag
# 运行SLAM节点
rosrun lsd_slam_core live_slam image:=/image_raw camera_info:=/camera_info
# 运行可视化节点
rosrun lsd_slam_viewer viewer

运行时viewer节点产生的窗口,无法显示点云图像?解决方法:lsd_slam/lsd_slam_core/src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp中修改cv::waitKey的相关内容。

lsd_slam/lsd_slam_core/src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp,lines 119 and 125
I just replaced ‘cv::waitKey(milliseconds)’ with ‘return 1’.

官方github上的issue:https://github.com/tum-vision/lsd_slam/issues/64#issuecomment-140161062

【学习总结】LSD-SLAM配置与运行记录_第2张图片

小结

比之前MonoSLAM和PTAM的配置方便多了,毕竟年份稍微新了一些。

你可能感兴趣的:(SLAM,机器人)