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

这篇博客记录了在Ubuntu 14.04虚拟机上配置ROS Indigo和LSD-SLAM的过程,包括环境搭建、依赖安装、代码编译及遇到的log10错误和viewer窗口显示问题的解决方法。博主提到相比MonoSLAM和PTAM,LSD-SLAM的配置更为简便。
摘要由CSDN通过智能技术生成

今天安装测试了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有一行的编译错误
在这里插入图片描述原因: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

在这里插入图片描述

小结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值