ElasticFusion 使用TUM RGB-D数据集

目标

将TUM数据集的RGB-D图像序列作为ElasticFusion(https://github.com/mp3guy/ElasticFusion)的输入数据,旨在使用TUM数据集的工具量化ElasticFusion估计的估计误差,这样可以与其他方法对比。

方法

在github上发下一个公开代码,https://github.com/HTLife/png_to_klg,将TUM数据集的RGB-D数据集转化为klg格式后输入到ElasticFusion中处理。
按照png_to_klg的readme转换图像数据的格式,但是执行的时候,程序卡在RawLogReader.cpp的RawLogReader::getCore()方法处

    std::cout << "RawLogReader getCore ..." << std::endl;
    auto tmp = fread(&timestamp,sizeof(int64_t),1,fp);
    assert(tmp);
    std::cout << "fread is over" << std::endl;

    tmp = fread(&depthSize,sizeof(int32_t),1,fp);
    assert(tmp);
    std::cout << "depthSize = " << depthSize << std::endl;

    tmp = fread(&imageSize,sizeof(int32_t),1,fp);
    assert(tmp);
    std::cout << "imageSize = " << imageSize << std::endl;

    tmp = fread(depthReadBuffer,depthSize,1,fp);
    assert(tmp);

depthReadBuffer一直无法返回。

# include<cstdio>
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
从文件中读取指定大小的数据块到内存中
ptr:将要不存数据的地址
size:每一项的字节数
count:总共读取多少项
stream:文件指针

最后发现是生成association.txt的时候,rgb和depth文件的先后顺序弄反了。应该是:

$ ./associate.py depth.txt rgb.txt  > associations.txt

之后进入png_to_klg目录:

$ cd png_to_klg
$ mkdir build
$ cd build
$ cmake ..
$ make
$ ./pngtoklg -w '/home/turtlebot/Database/TUM/rgbd_dataset_freiburg1_360/' -o '/home/turtlebot/Database/TUM/rgbd_dataset_freiburg1_360/fr1360.klg' -t

之后在/home/turtlebot/Database/TUM/rgbd_dataset_freiburg1_360/下生成文件fr1360.klg。最后进入ElasticFusio/GUI/build/中

$ ./ElasticFusion -l ~/Database/TUM/rgbd_dataset_freiburg1_360/fr1360.klg -f

执行结束后会在/home/turtlebot/Database/TUM/rgbd_dataset_freiburg1_360/下生成fr1360.klg.freiburg文件,即就是ElasticFusion估计的相机位姿,之后就可以使用TUM提供的工具了,比如evaluate_ate.py。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
您好!要在ORB-SLAM2中运行TUM数据集,需要进行以下步骤: 1. 下载TUM数据集:您可以从TUM官方网站上下载TUM RGB-D数据集(例如,TUM RGB-D数据集)。 2. 准备数据:解压缩下载的数据集,并确保数据集的文件结构符合ORB-SLAM2的要求。ORB-SLAM2需要RGB图像和深度图像作为输入。您可以将RGB图像和深度图像放在同一文件夹中,并使用与图像序列对应的时间戳命名图像文件(例如,rgb/,depth/ 文件夹下的文件名为 "rgb/1305031910.938850.png" 和 "depth/1305031910.938850.png")。 3. 配置参数:ORB-SLAM2提供了一个配置文件,您可以根据需要进行修改。在ORB-SLAM2的主目录下,有一个名为"Examples/RGB-D/TUMX.yaml"的配置文件,其中X代表数据集的名称(例如,TUM1.yaml, TUM2.yaml等)。您可以打开该配置文件并根据需要进行修改,例如设置相机内参、深度图缩放系数等。 4. 运行ORB-SLAM2:在终端中导航到ORB-SLAM2的主目录,并执行以下命令来运行ORB-SLAM2: ``` ./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUMX.yaml 数据集文件夹路径 ``` 其中,Vocabulary/ORBvoc.txt 是ORB-SLAM2的词典文件路径,Examples/RGB-D/TUMX.yaml 是您在第3步中修改的配置文件路径,数据集文件夹路径是您存储TUM数据集的文件夹路径。 5. 可视化结果:ORB-SLAM2将输出相机轨迹和地图。您可以使用ORB-SLAM2提供的可视化工具(例如,rgbd_tum)来查看结果。在终端中导航到ORB-SLAM2的主目录,并执行以下命令来可视化结果: ``` ./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUMX.yaml 数据集文件夹路径 ``` 此命令将打开一个窗口,显示相机轨迹和地图。 这些是在ORB-SLAM2中运行TUM数据集的基本步骤。请确保按照上述步骤进行操作,并根据需要进行相应的配置和参数调整。祝您成功运行ORB-SLAM2!如果您有任何问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值