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)
还没有任何评论哟~
