ORB-SLAM2的布置(三)ORB-SLAM2的测试使用

目标

在上一节,我们完成了ORB-SLAM2的编译与测试,这一节使用完整的数据集进行测试

普通模式

这里的普通模式直接运行编译之后的可执行文件

单目摄像头

首先是单目摄像头
这里我们使用TUM数据集进行离线测试
去到TUM 数据集存放的位置

https://vision.in.tum.de/data/datasets/rgbd-dataset/download

这里采用了第一个数据集 fr1/xyz,然后下载压缩包
ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第1张图片

下载完成后移动到/home/heying/ORB_SLAM2/Examples/datasets并解压
ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第2张图片

然后进行测试

 ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml Examples/datasets/rgbd_dataset_freiburg1_xyz

ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第3张图片
可以看到终端显示输入传感器设置为:单目
等待一会后会出现一下的内容
ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第4张图片
并且这个图中有除终端程序呼出了两个窗口,右侧的窗口一直在显示一张一张的图片,图片中绿色方形和圆圈标注的就是该图像中提取的ORB特征点。左侧的窗口用于显示相机的位姿(也就是关键帧)和地图点(每个地图点和图像中的特征点有对应关系)。
其中绿色的为当前相机的展示,蓝色的是历史相机位姿展示。缩小一下窗口,可以看到相机走过的轨迹


当使用的数据集播放结束后,测试完成
ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第5张图片

双目摄像头

使用KITTI数据集
https://www.cvlibs.net/datasets/kitti/eval_odometry.php

这里使用了Download odometry data set (grayscale, 22 GB)这个数据集
https://www.cvlibs.net/download.php?file=data_odometry_gray.zip


但是下载要求要使用电子邮箱

当下载完成后,解压进行测试,使用KITTI 数据集,sequence 00
也就是只解压00这个文件夹,因为全部解压的话有点占空间,而且测试阶段不与要其他的,不过你可以解压其他的文件夹进行测试
ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第6张图片

那么在00文件夹中有两个存放图片的文件夹,对应着双目摄像头中分别的左右两个摄像头的数据集
ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第7张图片

解压完成后进行测试

./Examples/Stereo/stereo_kitti Vocabulary/ORBvoc.txt Examples/Stereo/KITTI00-02.yaml Examples/datasets/KITTI/00

ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第8张图片
可以看到在终端显示输入传感器设置为:双目

可以看到程序呼出的窗口
ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第9张图片

RGB-D

依然采用之前的 TUM 数据集,这次加入深度信息。
这里需要对 rgb 图和 depth 图做一下匹配,官方提供了脚本程序 associate.py
https://svncvpr.in.tum.de/cvpr-ros-pkg/trunk/rgbd_benchmark/rgbd_benchmark_tools/src/rgbd_benchmark_tools/associate.py

将associate.py文件进行下载
ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第10张图片

然后使用python运行associate.py,可以看到在指定的路径中生成了associations.txt文件

python associate.py Examples/datasets/rgbd_dataset_freiburg1_xyz/rgb.txt Examples/datasets/rgbd_dataset_freiburg1_xyz/depth.txt > Examples/datasets/rgbd_dataset_freiburg1_xyz/associations.txt

ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第11张图片

可以看到在指定的路径中生成了associations.txt文件,

然后进行测试

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml Examples/datasets/rgbd_dataset_freiburg1_xyz Examples/datasets/rgbd_dataset_freiburg1_xyz/associations.txt

在终端中可以看到输入传感器设置为:RGB-D

ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第12张图片

效果查看
ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第13张图片

ROS模式

那么接下来就是测试ROS操作系统中的使用,那么就需要从rosbag中发布数据,所以要下载对应的rosbag数据包

单目摄像头

这里继续下载刚刚测试的TUM数据集,只不过是以rosbag包的形式
https://vision.in.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_xyz.bag

ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第14张图片

那么这个bag包的信息是
ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第15张图片

其中要用到的 topic 是 /camera/rgb/image_color,而 rosnode ORB_SLAM2/Mono 接收的 topic 名字为 /camera/image_raw
我们可以在 play rosbag 时将 rosbag 中的/camera/rgb/image_color转换为 /camera/image_raw

进行测试

roscore
rosrun ORB_SLAM2 Mono Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml

ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第16张图片


可以看到呼出了程序的窗口,现在正在等待摄像头的话题
ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第17张图片


播放bag包

rosbag play --pause  Examples/datasets/rgbd_dataset_freiburg1_xyz.bag /camera/rgb/image_color:=/camera/image_raw

ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第18张图片


按下空格播放后,可以看到正常运行
ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第19张图片

单目AR

和以上的差不多,只需要修改ORB_SLAM2 MonoAORB_SLAM2 MonoAR

roscore
rosrun ORB_SLAM2 MonoAR Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml

ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第20张图片

播放bag包

 rosbag play --pause  Examples/datasets/rgbd_dataset_freiburg1_xyz.bag /camera/rgb/image_color:=/camera/image_raw


程序会跳出可视化窗口。可以点击左上角的Insert Cube来添加立方体,可以看到这些个立方体会随着镜头的变化牢牢地定位自己地位姿
ORB-SLAM2的布置(三)ORB-SLAM2的测试使用_第21张图片

自此, ORB_SLAM2的安装与测试完成

你可能感兴趣的:(人工智能,深度学习,计算机视觉,ubuntu,算法)