使用笔记本摄像头跑 ORB_SLAM2
1.准备运行环境
1.1 操作系统
Ubuntu 16.04 LTS,最好是干净的系统。
可以到阿里巴巴开源镜像站或其他下载站下载系统镜像。 https://mirrors.aliyun.com/ubuntu-releases/16.04/ubuntu-16.04.6-desktop-amd64.iso
安装git、cmake、vim、wget
|
|
1.2 ROS
安装说明:http://wiki.ros.org/cn/kinetic/Installation/Ubuntu
1.2.1 配置 Ubuntu 软件仓库
配置你的 Ubuntu 软件仓库(repositories) 以允许 “restricted”、“universe” 和 “multiverse"这三种安装模式。 你可以按照ubuntu中的配置指南来完成配置。
1.2.2 添加 sources.list
官方源速度有些慢,添加中科大源
|
|
或清华源
|
|
1.2.3 添加key
|
|
添加公钥(官方文档没有这一步,但是不添加公钥会报不信任错误)
|
|
1.2.4 安装
|
|
安装桌面完整版
|
|
1.2.5 初始化rosdep
|
|
1.2.6 环境配置
|
|
1.2.7 构建工厂依赖
|
|
1.2.8 配置ROS环境,创建工作空间
参考:http://wiki.ros.org/cn/ROS/Tutorials/InstallingandConfiguringROSEnvironment
|
|
2. 安装依赖项
2.1 安装Pangolin
准备依赖
|
|
下载Pangolin并配置环境
|
|
2.2 安装Eigen3
最低要求为3.1.0,这里安装Eigen 3.2.10。
可以从官网下载源码。
|
|
编译安装
|
|
2.3 安装OpenCV 3.2.0
参考:https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html
- 安装依赖(前两个必装,optional可选)
|
|
- 下载(也可以从官网下载安装)
|
|
- 配置并编译安装
|
|
- 在/etc/ld.so.conf.d/opencv.conf中添加路径
|
|
在其中添加
|
|
使之生效
|
|
- 在bash.bashrc中添加路径
|
|
在其中添加
|
|
使之生效
|
|
- 测试opencv
|
|
此时应当打开摄像头,并在左上角显示 Hello OpenCV
2.4 安装usb_cam
同样的,要安装在工作区的
~/catkin_ws/src
文件夹下。
- 下载源码
|
|
- 编译安装
|
|
测试摄像头
- 打开终端
1
roscore
- 打开新的终端
1 2 3
cd ~/catkin_ws/src/usb_cam/launch source ~/catkin_ws/devel/setup.bash roslaunch usb_cam usb_cam-test.launch
能正常打开摄像头,显示图像即可。
3. 安装ORB SLAM2
- 下载源码到工作空间
~/catkin_ws/src
|
|
分别打开build.sh和build_ros.sh,更改
make -j
为make -j2
(或j4)。编译安装(无ROS依赖):
|
|
- 添加路径
sudo vim ~/.bashrc
,在最后添加
|
|
|
|
配置库文件
- 打开终端,查找库文件
1 2 3 4 5 6 7 8 9
$ locate boost_system //查找到目录,然后加到cmakelist中。 /usr/lib/x86_64-linux-gnu/libboost_system.a /usr/lib/x86_64-linux-gnu/libboost_system.so /usr/lib/x86_64-linux-gnu/libboost_system.so.1.58.0 $ locate boost_filesystem //查找到目录 /usr/lib/x86_64-linux-gnu/libboost_filesystem.a /usr/lib/x86_64-linux-gnu/libboost_filesystem.so /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.58.0
- 拷贝库文件
1 2
sudo cp /usr/lib/x86_64-linux-gnu/libboost_system.so ~/catkin_ws/src/ORB_SLAM2/lib sudo cp /usr/lib/x86_64-linux-gnu/libboost_filesystem.so ~/catkin_ws/src/ORB_SLAM2/lib
- 打开CMakeLists.txt
1 2 3
vim ~/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/CMakeLists.txt 或 gedit ~/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/CMakeLists.txt
找到
set(LIBS ...
,添加以下内容:1 2 3
set(LIBS ${PROJECT_SOURCE_DIR}/../../../lib/libboost_filesystem.so ${PROJECT_SOURCE_DIR}/../../../lib/libboost_system.so
编译ORB SLAM2 ROS
1 2 3
cd ~/catkin_ws/src/ORB_SLAM2 chmod +x build_ros.sh ./build_ros.sh
4.运行ROS实例(笔记本摄像头)
标定相机
参考https://www.jianshu.com/p/c3e8c88edb64进行相机参数标定。
订阅usb_cam节点
在ROS目录下的ros_mono.cc文件中修改,双目,深度以及AR demo同理。
将
/camera/image_raw
改为/usb_cam/image_raw
。修改完成后删除
Examples/ROS/ORB_SLAM2/
下的build
文件夹:
1 2
cd ~/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/ sudo rm -r build
- 重编ORB SLAM ROS
1 2
cd ~/catkin_ws/src/ORB_SLAM2/ ./build_ros.sh
启动新的终端,运行usb_cam
1
roslaunch usb_cam usb_cam-test.launch
启动新的终端,运行orb_slam
1
rosrun ORB_SLAM2 Mono ~/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt ~/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml
5.后记
ORB SLAM是我第一个跑的开源项目,从配置到跑完折腾了挺久,期间还重装了三次系统。为了最顺利的跑通项目,最好使用一个新安装的Ubuntu 16.04 LTS系统,按照本文跑下来应该是没有什么问题的。在装完系统之后,提示的升级先都不要升,我有一次执行 sudo apt upgrade
之后,ROS就装不上了==虽然不太清楚究竟是什么原因,但还是不要做一些奇怪的操作比较好。
参考资料: