LSD_SLAM在Ubuntu12.04 ,ROS fuerte上完成的,对indigo的支持做的不太好。
源码的系统环境为ubuntu12.04+fuerte+opencv2.4.8+eigen3.2.5;
此处系统环境为ubuntu14.04+indigo+opencv2.4.13+eigen3.2.5;
若使用ubuntu16.04+kinect则需要修改 lsd_slam_core和 lsd_slam_viewer的 cmakelist和 package.xml文件,具体可以参照 4.1中步骤,但不能保证可运行。
建议步骤:
如果安装环境和源码环境一样,直接按照readme文档指导操作,不用参照本文。
如果安装环境与源码环境不一致,请按以下步骤操作:
1.安装eigen3.2.5
地址:eigen.tuxfamily.org/index.php?title=News:Eigen_3.2.5_released!
务必保证eigen版本符合要求,否则在运行程序时将出现内存报错,形如:double free or corruption.
2.安装opencv,使用高于2.4.8版本,但避免3.0以上高版本;
3.在ubuntu14.04系统中安装配置ros indigo,可以参照 ros wiki的教程;
如果是初次安装Ubuntu并准备作为长期编程平台,建议安装顺序为 opencv依赖库->OpenCV->ROS,否则由于ROS自带opencv容易出现相关软件包的依赖问题以及opencv调用时的报错。
4. lsd_slam安装
4.1参考http://visbot.blogspot.hk/2014/11/tutorial-building-of-lsd-slam-on-ros.html的教程完成第一步;
4.2如果上一步正常通过则进入5;
a.若未通过,请按照https://github.com/tum-vision/lsd_slam中 2.2所述安装 lsd_slam,此时应当能够使用rosmake完成编译;完成后进入5;
b.若未能通过 rosmake编译,在rosbuild_ws (安装时使用的默认名称)文件夹,将其中:src/lsd_slam/lsd_slam_core/src/IOWrapper/ROS/lsd_slam_core
复制到 catkin_ws文件夹下相同位置处;
c.在 catkin_ws中使用 catkin_make;此时就能顺利通过编译。
5. lsd_slam运行 demo
为了此后编译方便,建议不论 4.2.a中是否通过rosmake编译,都参照 b.c.步骤使用 catkin_make编译。(~ ̄▽ ̄)~呵呵
按照教程 依次输入
roscore
rosrun lsd_slam_viewer viewer
rosrun lsd_slam_core live_slam image:=/image_rawcamera_info:=/camera_info
rosbag play <path>/LSD_room.bag
就能顺利运行demo;(如果出现内存报错,请检查 eigen 版本,务必使用 eigen3.2.5)