Advertisement

Ubuntu 14.04+ROS Indigo+LSD-SLAM

阅读量:

注:原作者给出的编译安装方式(https://github.com/tum-vision/lsd_slam)如下:

复制代码
    $ 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
    $ git clone https://github.com/tum-vision/lsd_slam.git lsd_slam
    $ rosmake lsd_slam

但我在做到最后一步即 rosmake lsd_slam的时候会出现些错误,加上对rosbuild不太熟悉,所以改用 catkin来对 LSD-SLAM进行编译。

具体的步骤如下所示:

1.创建ROS工作空间:

复制代码
    $ mkdir -p ~/lsdslam_catkin_ws/src
复制代码
    $ cd lsdslam_catkin_ws/src
复制代码
复制代码
$ cd ..
$ catkin_make
$ source devel/setup.bash
$ echo $ROS_PACKAGE_PATH
复制代码
复制代码
/home/zhuquan/lsdslam_catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks
复制代码
2\. 安装并运行LSD-SLAM

2.1 获取LSD-SLAM源代码
复制代码
$ cd src
$ git clone https://github.com/tum-vision/lsd_slam.git
$ cd lsd_slam
$ git checkout catkin
复制代码
change to the Catkin "branch" of the LSD-SLAM project;

2.2 安装相关依赖项
复制代码
$ sudo apt-get install ros-indigo-libg2o ros-indigo-cv-bridge liblapack-dev libblas-dev freeglut3-dev libqglviewer-dev libsuitesparse-dev libx11-dev
复制代码
2.3 对`lsd_slam/lsd_slam_viewer`和`lsd_slam/lsd_slam_core`文件夹下的`package.xml进行修改,在两个文件夹下的package.xml`中都添加:
复制代码
<build_depend>cmake_modules</build_depend>
<run_depend>cmake_modules</run_depend>
复制代码
2.4  对 `lsd_slam/lsd_slam_viewer` 和 `lsd_slam/lsd_slam_core` 文件夹下的 `CMakeLists.txt进行修改,在两个文件夹下的CMakeLists.txt` 中 都 添加:
复制代码
find_package(cmake_modules REQUIRED)
复制代码
`并且``在两个文件夹下的CMakeLists.txt`中的`target_link_libraries`中都添加`X11:`

在`lsd_slam/lsd_slam_core`文件夹下的`CMakeLists.txt中的target_link_libraries添加X11后,如下所示:`

``
复制代码
<span style="color:#555555;">target_link_libraries(lsdslam ${FABMAP_LIB} ${G2O_LIBRARIES} ${catkin_LIBRARIES} csparse cxsparse </span><span style="color:#ff0000;">X11</span><span style="color:#555555;">)
</span>
复制代码
在lsd_slam/lsd_slam_viewer文件夹下的`CMakeLists.txt中的target_link_libraries添加X11后,如下所示:`

target_link_libraries(viewer ${QGLViewer_LIBRARIES}

${QGLVIEWER_LIBRARY}

${catkin_LIBRARIES}

${Boost_LIBRARIES}

${QT_LIBRARIES}

GL glut GLU X11

)

#add_executable(videoStitch src/main_stitchVideo.cpp)

#target_link_libraries(viewer ${QGLViewer_LIBRARIES}

# ${QGLVIEWER_LIBRARY}

# ${catkin_LIBRARIES}

# ${QT_LIBRARIES}

# GL glut GLU X11

# )

2.5 开始编译
复制代码
$ cd ..
$ cd ..
$ catkin_make
复制代码
3.1 在数据集中运行

Download the [Room Example Sequence](http://vmcremers8.informatik.tu-muenchen.de/lsd/LSD_room.bag.zip) and extract it.

我下载好之后放在lsdslam_catkin_ws中。
复制代码
$ roscore
复制代码
打开另外一个终端(原终端保留),运行:  
复制代码
$ cd lsdslam_catkin_ws/
$ source devel/setup.sh
$ rosrun lsd_slam_viewer viewer
复制代码
再打开另外一个终端(前两个终端保留),运行:  
复制代码
$ cd lsdslam_catkin_ws/
$ source devel/setup.sh
$ rosrun lsd_slam_core live_slam image:=/image_raw camera_info:=/camera_info
复制代码
再打开另外一个终端(前三个终端保留),运行:  
复制代码
$ cd lsdslam_catkin_ws/
rosbag play LSD_room.bag
复制代码
使用摄像头运行LSD-SLAM

安装uvc_camera驱动:  
复制代码
  $ cd lsdslam_catkin_ws/src
  $ git clone https://github.com/ktossell/camera_umd
  $ cd ..
  $ catkin_make
  $ source devel/setup.bash
复制代码
测试是否安装成功:

开启三个终端:

第一个启动ROS服务:
复制代码
$ roscore
复制代码
第二个启动驱动:  
复制代码
$ rosrun uvc_camera uvc_camera_node device:=/dev/video0
复制代码
第三个启动视频窗口:  
复制代码
$ rosrun image_view image_view image:=/image_raw
复制代码
如果正常显示摄像头视频即成功.  

  

配置camera_node.launch文件(在/lsdslam_catkin_ws/src/camera_umd/uvc_camera/launch中),如:
复制代码
<launch>
  <node pkg="uvc_camera" type="uvc_camera_node" name="uvc_camera" output="screen">
<param name="width" type="int" value="640" />
<param name="height" type="int" value="480" />
<param name="fps" type="int" value="30" />
<param name="frame" type="string" value="wide_stereo" />

<param name="auto_focus" type="bool" value="False" />
<param name="focus_absolute" type="int" value="0" />
<!-- other supported params: auto_exposure, exposure_absolute, brightness, power_line_frequency -->

<param name="device" type="string" value="/dev/video0" />
<param name="camera_info_url" type="string" value="file://$(find uvc_camera)/example.yaml" />
  </node>
</launch>
复制代码
然后运行LSD-SLAM:

打开一个终端,运行:
复制代码
$ roscore
复制代码
复制代码
$ cd lsdslam_catkin_ws/
$ source devel/setup.sh
$ rosrun lsd_slam_viewer viewer
复制代码
复制代码
$ cd lsdslam_catkin_ws/
$ source devel/setup.sh
$ roslaunch uvc_camera camera_node.launch
复制代码
复制代码
$ rosrun lsd_slam_core live_slam /image:=image_raw _calib:=<calibration_file>
复制代码
数据集:<http://vision.in.tum.de/research/vslam/lsdslam?redirect=1>
复制代码
AI写代码AI写代码

全部评论 (0)

还没有任何评论哟~