DSO在Euroc上运行经验贴,关于时间戳为0的结局方法

发布时间:2023年12月19日

网上DSO基本上都是在TUM数据集上跑得,教程也比较多,写论文需要,使用DSO跑了一下Euroc数据集,踩了很多坑,花了一天的时间才调通,记录一下。

本机运行环境:Ubuntu16.04 其它环境只要安装过ORB-SALM2的应该不用做额外的配置

1.安装DSO,教程很多,不做赘述,不过ziplib这个包需要注意,如果图片数据集是以zip格式存储方式进行读取的话需要安装这个包,当然直接建一个文件夹放图片也行。

2.按照教程运行DSO,运行Euroc数据集的命令为

./dso_dataset files=/home/SLAM/DSO/dso-master/EuRoc/V203/mav0/cam0/data calib=./camera.txt mode=1

注意这里files后的路径是存放Euroc数据集的路径,另外有一个重要的问题在于需要在“data”文件夹下放置“times.txt”,此文件每行包含文件名、时间戳、曝光时间(Euroc没有),这个times.txt可以用Euroc/mav0/cam0下的data.csv来生成,写一个python四行就可以搞定了。最后times.txt的格式应该像这样,每行第一个是图片的名字,但是“.png”被去掉了,时间戳注意小数点格式转换否则最后无法用evo拿来与真值评估:
(python代码)

finename = "data.csv"
filename2="times.txt"

f = open(finename,'r')
f2=open(filename2,'a')
#line = f.readline()

for line in f:
#print(line)
line=line.replace(","," ")
line=line.replace(".png"," ")
print(line)
f2.write(line)


f2.close()
f.close()

在这里插入图片描述

得到之后便可运行,成功读取times.txt的话在执行界面时会显示如下格式:

在这里插入图片描述

成功运行如下:

在这里插入图片描述

3.运行后会在./build/bin下生成result.txt,如果第二步没有成功读取times.txt的话时间戳会全是0。

在这里插入图片描述

典型的TUM格式,但是生成的多了空格,需要处理一下才能用evo工具评估:

cat result.txt | tr -s [:space:] > DSO.txt

4.DSO格式就是最终的轨迹文件,直接用evo工具与Euroc的真值作对比即可,网上教程颇多,不做赘述。

文章来源:https://blog.csdn.net/qq_41880787/article/details/135074575
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。