从零开始做自动驾驶定位(二): 数据集
本文章配套源代码地址:https://github.com/Little-Potato-1990/localization_in_auto_driving
测试数据:https://pan.baidu.com/s/1TyXbifoTHubu3zt4jZ90Wg 提取码: n9ys
本篇对应代码Tag为 2.0
1. 数据集介绍
1.1 整体介绍
做算法,首先要先搞数据,开源代码自然用公开的数据集最好,本系列文章的代码就选KITTI数据集为测试数据。
KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的专门面向自动驾驶的数据集。该数据集用于评测激光里程计(lidar odometry),视觉里程计(visual odometry),立体图像(stereo),光流(optical flow),3D物体检测(object detection)和3D跟踪(tracking)等算法在车载环境下的性能。KITTI包含市区、乡村和高速公路等场景采集的真实图像数据。
1.2 采集平台
如下图2-1所示:
图2-1 数据采集车示例图
这张图可以看出它的传感器组成,包括一个64线激光雷达,在车顶的正中心,激光雷达两侧各放一个彩色摄像头和一个黑白摄像头,也就是一共四个摄像头。在雷达左后方,有一个组合导航系统(OXTS RT 3003),它可以输出RTK/IMU组合导航结果,包括经纬度和姿态,同时也输出IMU原始数据。
各个传感器之间的安装关系如下图2-2所示:
图2-2 采集车传感器之间的安装关系
根据这张图可以很容易计算各个传感器之间,以及他们和车之间的相对位移。不过不需要自己计算,KITTI为每组数据都提供了对应的标定文件。
1.3 选择和使用
我们的主要目的是利用激光雷达点云数据和RTK数据做融合,所以只使用数据集里的RawData数据,它包含RTK、IMU、激光雷达、摄像头等传感器的数据和他们之间的标定关系,并且时间戳已经对应好。
由于我们是使用ROS作为调试环境,所以我把一部分数据转成了ROS的bag文件,放在百度网盘里,如果不想自己转换数据,就可以直接下载这里面的bag文件使用,文件在“转换后的bag文件/2011_10_03”文件夹里。由于百度网盘单个文件大小有限制,所以我做了分卷压缩,下载完成之后需要在当前目录下输入如下指令,把他们再合成一个文件才能解压:
cat bag_file*>bag.tar.gz
本文章后半部分会介绍数据转换的方法,如果想用数据集里其他数据做测试,可以根据介绍的方法自行生成bag文件。
2. KITTI数据转成ROS的bag文件
转换是通过一个开源工具kitti2bag来完成,它可以通过pip安装。
- 升级numpy
这一步很重要,不然后面运行会报错。使得numpy的版本满足kitti2bag的依赖要求:
sudo pip install -U numpy
- 安装kitti2bag
sudo pip install kitti2bag
-
下载文件并设置目录
从我给的百度网盘链接里找到“RawData原始数据”文件夹,找到文件“2011_10_03_drive_0027_sync.zip”和文件“2011_10_03_calib.zip”,下载下来,并解压缩。
最终文件应该按照这样的目录存放:
图2-3 数据集文件结构图 -
转换文件
在系统中打开终端,cd进入上一步目录,即对应的"2011_10_03"文件夹的上一级目录,输入下面的指令,就会自动开始转换:
kitti2bag -t 2011_10_03 -r 0027 raw_synced
执行结束之后,会生成一个文件“kitti_2011_10_03_drive_0027_synced.bag
”,这个就是使用KITTI数据集生成的bag文件了。
3. bag文件测试
制作完bag文件之后,要播放文件测试一下,看显示出来的数据对不对。
使用rviz查看bag文件。
制作好的rviz文件放在了github上的代码里,在kitti_test文件夹下。
执行步骤如下:
- 启动ros
roscore
-
启动rviz
打开终端,cd到“kitti_test”文件夹下,输入指令:rviz display_bag.rviz
-
播放bag
再次强调一下
由于百度网盘单个文件大小有限制,所以我做了分卷压缩,需要下载文件夹中bag_file所有的分卷,即bag_file00,bag_file01…,下载完成之后需要在当前目录下输入如下指令,把他们再合成一个文件才能解压:
cat bag_file*>bag.tar.gz
打开终端,cd到bag所在目录,输入指令:
rosbag play kitti_2011_10_03_drive_0027_synced.bag
如果不出意外,此时我们就会在rviz上看到下面的画面了:
图2-4 数据包播放截图
参考文献
上一篇: 11. 盛最多水的容器
下一篇: 修改数据