目录
一、使用lidatr2rosbag工具包流程
1、创建工作空间
2、数据集文件要求
3、编译
4、运行工具包程序
二、遇到的问题
1、缺少times.txt文件
***************************** 运行环境Ubuntu20.04+Noetic *************************
引言
在运行SLAM算法时,常常用到多种格式的数据,例如:
- A-LOAM算法的示例数据集nsh_indoor_outdoor.bag
- 自己非velodyne雷达采集的数据
- KITTI数据集xxx.bin
对于自己使用激光雷达采集的数据,以本人的速腾雷达为例,转换点云话题即可,具体内容见另一篇博客速腾激光雷达rslidar(RS 16)运行ALOAM建图_abanchao的博客-CSDN博客_速腾雷达
然而,KITTI数据集的点云文件为bin格式,配置比较复杂。有大佬编写了KITTI数据集转化为ROS bag包的lidatr2rosbag工具包,这里将具体介绍这个功能包的使用,以及使用过程中遇到的问题和解决方法。
一、使用lidatr2rosbag工具包流程
1、创建工作空间
为方便使用,在主目录下新建一个工作空间,将以下网站下载的源码添加到src文件夹中。
https://github.com/AbnerCSZ/lidar2rosbag_KITTI
2、数据集文件要求
数据集文件路径下必须包含“velodyne”和“times.txt”,即数据必须有对应的时间戳。
└── dataset
└── sequences
└── 04
├── calib.txt
├── image_0 [271 entries exceeds filelimit, not opening dir]
├── image_1 [271 entries exceeds filelimit, not opening dir]
├── times.txt
└── velodyne [271 entries exceeds filelimit, not opening dir]
3、编译
方法同其他程序包略有不同!编译指令如下:
cd ~/catkin_ws
catkin_make -DCMAKE_BUILD_TYPE=Release
source ~/catkin_ws/devel/setup.bash
4、运行工具包程序
首先要启动roscore!
命令语句结构如下:
rosrun lidar2rosbag lidar2rosbag KITTI_input_dir output_name
例如:
rosrun lidar2rosbag lidar2rosbag /YOUR_FOLDER/KITTI/dataset/sequences/04/ 04
rosrun lidar2rosbag lidar2rosbag /YOUR_FOLDER/KITTI/dataset/sequences/01/ bag01
其中,YOUR_FOLDER指KITTI数据集存放路径,可以包含中文。显示下图后表示转换完成,在工作空间下会生成一个bag文件。
这个bag文件就可以用来运行SLAM算法了!
二、遇到的问题
1、缺少times.txt文件
打开下载好的数据集,发现路径下只有velodyne文件夹,而没有times.txt文件,网上查找资料的时候,发现很多人也遇到了这个问题,转换终端只显示bin数量,但是并没有执行数据转换。报错“
段错误 (核心已转储)”
报错原因:产生这个问题的原因是数据集路径下没有times.txt文件。
解决方法:为数据路径下增加该文件。可是,这个文件该从哪找呢?点云数据集没有欸。其实,KITTI数据集分为图像和点云的三个类别,图像数据集里是包含这个times.txt文件的。
可以从博主分享的百度网盘进行下载,避免了下载整个数据集,感谢博主下页依然如故。