Ubuntu 14.04+ROS Indigo+LSD-SLAM
来源:互联网 发布:怎么克服懒惰 知乎 编辑:程序博客网 时间:2024/06/05 17:59
注:原作者给出的编译安装方式(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
$ catkin_init_workspace$ 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
就说明ROS工作空间已经创建好了。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后,如下所示:
target_link_libraries(lsdslam ${FABMAP_LIB} ${G2O_LIBRARIES} ${catkin_LIBRARIES} csparse cxsparse X11)
在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. 运行LSD-SLAM3.1 在数据集中运行
Download the Room Example Sequence 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
3.2 使用摄像头运行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>
注意:官方程序的默认分辨率是640*480.然后运行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>
校准文件calibration_file可在lsdslam_catkin_ws/src/lsd_slam/lsd_slam_core/calib中的cfg文件中任意选一个即可。数据集:http://vision.in.tum.de/research/vslam/lsdslam?redirect=1
- Ubuntu 14.04+ROS Indigo+LSD-SLAM
- LSD-SLAM 编译过程(Ubuntu 14.04 + ROS Indigo)
- LSD-SLAM 编译过程(Ubuntu 14.04 + ROS Indigo
- 基于Ubuntu14.04+ROS indigo环境LSD-SLAM的数据集测试成功
- 基于Ubuntu14.04+ROS indigo环境LSD-SLAM的数据集测试成功
- ubuntu 14.04 安装ros indigo
- Ubuntu 14.04 安装ROS Indigo
- Microsoft Kinect 2 and ubuntu 14.04 and ROS Indigo and RGBD SLAM and RTAB Map 详细配置及comments
- LSD-SLAM在Ubuntu14.04+indigo环境中编译运行
- Ubuntu 14.04系统中安装ROS Indigo
- Ubuntu 14.04 LTS+ ROS indigo+ORB-SLAM1
- SLAM: Ubuntu14.04_Kylin安装ROS-Indigo
- Ubuntu install of ROS Indigo
- 双系统ubuntu+ros indigo安装
- ubuntu 安装配置ROS Indigo
- Ubuntu install of ROS Indigo
- ubuntu 14.04 lts+ ros indigo+kinect2 驱动安装
- ORB SLAM2 USB摄像头 实验环境ubuntu 14.04+ros indigo
- 下载CentOS的Linux内核的源代码
- Java中如何遍历Map对象的4种方法
- 1X1卷积核到底有什么作用
- 掌握jQuery插件开发,这篇文章就够了
- 数论总结之Lucas
- Ubuntu 14.04+ROS Indigo+LSD-SLAM
- linux下的系统调用和库函数调用
- Dropout
- 二分类支持向量机模型SVM知识点详解
- 阿里云Centos7 安装 Anocoda puthon2.7
- hdoj1075 What Are You Talking About(STL map处理字符串)
- **ANDROID**Android数据存储于IO接口
- VC编程中利用ADO方式访问SQL Server 2012数据库(1)- 连接数据库
- netty简单使用