制作自己的rgb-d数据集

今天自己用机器人采了一波数据 尝试着用自己采集的RGB-D数据来跑slam2的RGB-D例程 下面来记录一下

该文章主要是参考这篇博客:
https://blog.csdn.net/qq_16481211/article/details/85255493

首先,在路径catkin_ws/src/iai_kinect2/下clone博客作者开源的代码

git clone https://github.com/MRwangmaomao/KinectV2_dataset_make

注意把文件夹dataset_make移到了顶层 删掉了它顶层的文件夹 如图:
在这里插入图片描述
再按照自己的要求修改源码 这是我做的修改
因为最后生成的depth.txt文件和rgb.txt文件中只有最后一次采集的数据 原因是生成的文件会被之前的文件覆盖 所以我把第三行语句和第四行语句从函数提到了函数外 避免每采一帧就生成一次txt文件

int counters = 0;
string save_path = "/home/linxiaorui/data";  //根据自己需要修改
ofstream frgb(save_path + "/rgb.txt");
ofstream fdepth(save_path + "/depth.txt");

修改好源码之后 记得新建你用来保存数据的data文件夹 在data下要新建两个空文件夹 depth和rgb 用来存放采集的深度图和rgb图像
如图:在这里插入图片描述万事具备 打开终端

roscore
rosrun kinect2_bridge kinect2_bridge.launch
//注意 如果在这里找不到包的话 source一下
//source ~/catkin_ws/devel/setup.bash

cd /home/linxiaorui/catkin_ws
catkin_make //编译
rosrun dataset_make get_image_node //运行节点

保存好图像之后 我们得到了四种数据:
depth图像 rgb图像 depth.txt rgb.txt 把associate.py文件拷到data文件夹下,终端输入

cd /home/linxiaorui/data/
python associate.py rgb.txt depth.txt >associates.txt

生成associates.txt文件

至此,我们就已经得到了一个标准RGB-D数据集所包含的数据(相机参数yaml文件)
我用自己高翔标定的相机参数改了一下TUM1.yaml文件 运行了RGB-D slam2的例程,效果如图:

 cd /home/linxiaorui/orb-slam2/ORB_SLAM2
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml /home/linxiaorui/data /home/linxiaorui/data/associate.txt

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_27452279/article/details/89929547