ORB-SLAM2测试1

ORB-SLAM2路人皆知,下面只记录自己的笔记:

0.安装ORB-SLAM2,并生成库

这篇github不错,可以根据提示先配置好依赖,编译ORB-SLAM2包,并生成目标库文件

https://github.com/Vincentqyw/ORB-SLAM2-CHINESE

1.运行离线数据集

离线数据集分为单目、双目和深度,分别测试了一个数据集查看效果:

a.单目数据集测试

下载TUM Dataset数据集,http://vision.in.tum.de/data/datasets/rgbd-dataset/download

选择下载fr1/xyz,(也可以下载另外两个,但KITTI Dataset数据集过大几十个G,不再进行测试),执行命令

cd ~/ORB-SLAM2

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUMX.yaml PATH_TO_SEQUENCE_FOLDER

对于freiburg1、freiburg2和freiburg3序列,分别将TUMX.yaml更改为TUM1.yaml、TUM2.yaml或TUM3.yaml。将PATH_TO_SEQUENCE_folder更改为未压缩序列文件夹。

由于测试的是fr1/xyz,所以我的执行命令是:

 

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/chen/ORB-SLAM2/rgbd_dataset_freiburg1_xyz/

测试结果:

b. 双目立体声(Stereo)示例,KITTI Dataset数据集太大(几十个G),所以选用EuRoC Dataset数据集。

(1)下载EuRoC Dataset数据集,下载一个序列 (ASL format格式),http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets

我下载了一个最简单的第一个:

Machine Hall 01linklinkDataset machine hall “easy”

(2)运行


对V1和V2序列执行以下第一个命令,或对MH序列执行第二个命令。并根据要运行的序列更PATH_TO_SEQUENCE_FOLDER and SEQUENCE。

./Examples/Stereo/stereo_euroc Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml PATH_TO_SEQUENCE/mav0/cam0/data PATH_TO_SEQUENCE/mav0/cam1/data Examples/Stereo/EuRoC_TimeStamps/SEQUENCE.txt
./Examples/Stereo/stereo_euroc Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml PATH_TO_SEQUENCE/cam0/data PATH_TO_SEQUENCE/cam1/data Examples/Stereo/EuRoC_TimeStamps/SEQUENCE.txt

由于我下载的是MH序列,所以使用第二条命令:

chen@chen:~/ORB_SLAM2$ ./Examples/Stereo/stereo_euroc Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml /home/chen/ORB_SLAM2/data_test/mav0/cam0/data /home/chen/ORB_SLAM2/data_test/mav0/cam1/data Examples/Stereo/EuRoC_TimeStamps/MH01.txt

(3)运行结果

 

c. RGB-D示例,数据集测试,TUM Dataset数据集测试

(1)下载数据集,http://vision.in.tum.de/data/datasets/rgbd-dataset/download 与单目使用的相同,选择下载fr1/xyz


使用python脚本Associate.py关联RGB图像和深度图像。我们已经为Examples/RGB-D/associations/中的一些序列提供了关联。您可以生成自己的关联文件执行:

python associate.py PATH_TO_SEQUENCE/rgb.txt PATH_TO_SEQUENCE/depth.txt > associations.txt

(2)下载RGB-D基准测试的有用工具,一组工具,可用于预处理数据集和评估SLAM/跟踪结果。一个Python脚本association.py,https://vision.in.tum.de/data/datasets/rgbd-dataset/tools

为什么要这么做???

关联颜色和深度图像。Kinect以非同步的方式提供颜色和深度图像。这意味着彩色图像的时间戳集与深度图像的时间戳集不相交。因此,我们需要一些方法将彩色图像与深度图像相关联。为此,可以使用“associate.py”脚本。它从rgb.txt文件和depth.txt文件中读取时间戳,并通过找到最佳匹配来连接它们。

(3)运行


执行以下命令。对于freiburg1、freiburg2和freiburg3序列,分别将TUMX.yaml更改为TUM1.yaml、TUM2.yaml或TUM3.yaml。将PATH_TO_SEQUENCE_folder更改为未压缩序列文件夹。将关联文件更改为相应关联文件的路径。

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUMX.yaml PATH_TO_SEQUENCE_FOLDER ASSOCIATIONS_FILE

上一步骤中我把下载的associate.py脚本放在~/ORB_SLAM2/Examples/RGB-D/associations/目录下,执行以下命令生成associations.txt,也位于该目录下。

chen@chen:~/ORB_SLAM2/Examples/RGB-D/associations$ python associate.py /home/chen/ORB_SLAM2/rgbd_dataset_freiburg1_xyz/rgb.txt /home/chen/ORB_SLAM2/rgbd_dataset_freiburg1_xyz/depth.txt > associations.txt

接下来执行(也就是第二行命令在~/ORB_SLAM2/目录下执行):

cd /../../../
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml /home/chen/ORB_SLAM2/rgbd_dataset_freiburg1_xyz/ /home/chen/ORB_SLAM2/Examples/RGB-D/associations/associations.txt

(4)运行结果

 

2. ROS示例

a. 为mono、monoAR、stereore和RGB-D构建节点

(1) 将包含Examples/ROS/ORB_SLAM2的path添加到ROS_PACKAGE_PATH环境变量中。打开.bashrc文件并在最后添加以下行。用克隆ORB SLAM2的文件夹替换PATH:

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM2/Examples/ROS

。。。待续,报错

 

3.实时测试

(1)笔记本ubuntu16.04+单目测试

a.插入摄像头检查驱动

$: ls -la /dev/vid*
crw-rw----+ 1 root video 81, 0 11月 11 11:23 /dev/video0
crw-rw----+ 1 root video 81, 1 11月 12 09:30 /dev/video1

一般video0是笔记本自带,video1是usb外接摄像头。

。。。。未完,待续

打算明天再开始研究读取摄像头实时数据,下篇博客见。

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值