openvslam配置与实际测试(使用Docker安装)
日本先进工业科技研究所(National Institute of Advanced Industrial Science and Technology )
最近开源了一套视觉SLAM的框架:
OpenVSLAMgithub.com
特色:
- 支持多种相机:
monocular
stereo
RGBD
- 相机模型多样:
perspective
fisheye
equirectangular
- 地图存储与加载还有利用已构建的地图进行重定位的功能
- 模块化的代码结构,方便用户自己定义新的模型或者算法
openvslam
1. 使用Docker配置openvslam
ps:之所以选择Docker主要是因为只是测试一下程序效果,并且程序依赖复杂,Docker更加省心.
1.1 安装Docker
网上有各种各样的教程,按照教程走就完事了.我自己用的Docker一键安装脚本(老板自己写的,用着还挺不错)
JiaoYanMoGu/system_configsgithub.com
1.2 构建Docker镜像
安装好了Docker之后,执行如下命令即可:
cd /path/to/openvslam
docker build -t openvslam-desktop -f Dockerfile.desktop .
# 如果电脑性能不错,可以选择多线程构建镜像
# docker build -t openvslam-desktop -f Dockerfile.desktop . --build-arg NUM_THREADS=4
一般网络正常的话,几十分钟就能构建完毕,主要是里面听过包需要从Github上下载,偶尔会网络问题中断,记得重新执行一下上面的构建命令即可.
1.3 使用Docker运行openvslam
首先需要执行:
xhost +local:
因为openvslam有GUI显示部分,如果不开启电脑的X11服务的权限,Docker内部的容器无法调用X11服务在外部显示.
docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix:ro -v /home/dell/workspace:/workspace --volume /home/dell/Dataset/openvslam_dataset:/dataset:rw openvslam-desktop
前面的一坨参数是Docker内运行GUI程序的一些配置,在自己电脑上运行主要要修改的是后面这段:
-v /home/dell/workspace:/workspace --volume /home/dell/Dataset/openvslam_dataset:/dataset:rw openvslam-desktop
# 把本机目录/home/dell/workspace挂载到Docker容器中对应的文件夹为/workspace
-v /home/dell/workspace:/workspace
# 同上 rw为读写权限,你也可以设定为ro只读,最后的为镜像名
--volume /home/dell/Dataset/openvslam_dataset:/dataset:rw openvslam-desktop
1.4 运行程序
如果一切正常的话,现在已经进入Docker容器内,接下来直接运行/openvslam/build
下的一些可执行文件即可.官方提供了常见的数据集:kitti
euroc
tum
数据集的运行程序,直接按照要求输入参数即可运行.
下面以官方提供的数据集为例:
DATASET_PATH=/dataset/equirectangular_datasets/aist_entrance_hall_1
/openvslam/build/run_video_slam -v /dataset/orb_vocab.dbow2 -m $DATASET_PATH/video.mp4 -c $DATASET_PATH/config.yaml --map-db map.db --eval-log # 最后一个参数用来输出运行轨迹
如果一切正常,终端中会显示如下内容,并弹出窗口运行slam程序:
2. 实际运行效果