从零开始做自动驾驶定位(二): 数据集

本文纯属转载,并认真学习一遍,感谢大佬分享!

本文章配套源代码地址:https://github.com/Little-Potato-1990/localization_in_auto_driving

测试数据:https://pan.baidu.com/s/1TyXbifoTHubu3zt4jZ90Wg 提取码: n9ys

本篇对应代码Tag为 2.0

代码在后续可能会有调整,如和文章有出入,以实际代码为准

========================================

一、数据集介绍

1. 整体介绍

做算法,首先要先搞数据,开源代码自然用公开的数据集最好,本系列文章的代码就选KITTI数据集为测试数据。

KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的专门面向自动驾驶的数据集。该数据集用于评测激光里程计(lidar odometry),视觉里程计(visual odometry),立体图像(stereo),光流(optical flow),3D物体检测(object detection)和3D跟踪(tracking)等算法在车载环境下的性能。KITTI包含市区、乡村和高速公路等场景采集的真实图像数据。

2. 采集平台

一张图可以解释

从零开始做自动驾驶定位(二): 数据集

这张图可以看出它的传感器组成,包括 一个64线激光雷达,在车顶的正中心,激光雷达两侧各放一个彩色摄像头和一个黑白摄像头,也就是一共四个摄像头。在雷达左后方,有一个组合导航系统(OXTS RT 3003),它可以输出RTK/IMU组合导航结果,包括经纬度和姿态,同时也输出IMU原始数据。

各个传感器之间的安装关系如下图所示

从零开始做自动驾驶定位(二): 数据集

根据这张图可以很容易计算各个传感器之间,以及他们和车之间的相对位移。不过不需要自己计算,KITTI为每组数据都提供了对应的标定文件

3. 选择与使用

我们的主要目的是 利用激光雷达点云数据和RTK数据做融合,所以只使用数据集里的RawData数据,它包含RTK、IMU、激光雷达、摄像头等传感器的数据和他们之间的标定关系,并且时间戳已经对应好。

由于我们是使用ROS作为调试环境,所以我把一部分数据转成了ROS的bag文件,放在百度网盘里,如果不想自己转换数据,就可以直接下载这里面的bag文件使用,文件在“转换后的bag文件/2011_10_03”文件夹里。由于百度网盘单个文件大小有限制,所以我做了分卷压缩,下载完成之后需要在当前目录下输入如下指令,把他们再合成一个文件才能解压

cat bag_file*>bag.tar.gz

本文章后半部分会介绍 数据转换 的方法,如果想用数据集里其他数据做测试,可以根据介绍的方法自行生成bag文件

二、KITTI数据转成ROS的bag文件

转换是通过一个开源工具 kitti2bag 来完成,它可以通过 pip 安装。

1. 升级numpy

这一步很重要,不然后面运行会报错。kitti2bag 要求numpy版本>=1.12,ubuntu 16.04默认的是1.11,升级可以通过一条指令来完成

sudo pip install -U numpy

升级之后,我的版本是1.16

2. 安装kitti2bag

也是一条指令

sudo pip install kitti2bag

如果遇到问题,可以上网查一查,一般都是常见问题,都很好解决。

3. 下载文件并设置目录

从我给的百度网盘链接里找到“RawData原始数据”文件夹,找到文件 “2011_10_03_drive_0027_sync.zip” 和文件“2011_10_03_calib.zip”,下载下来,并解压缩。

最终文件应该按照这样的目录存放

从零开始做自动驾驶定位(二): 数据集

4. 转换文件

在系统中打开终端,cd进入上一步目录对应的 "2011_10_03" 文件夹的上一级目录,输入下面的指令,就会自动开始转换

kitti2bag -t 2011_10_03 -r 0027 raw_synced

如果指令正常执行,会出现下面的画面,耐心等他执行完就好了

从零开始做自动驾驶定位(二): 数据集

执行结束之后,会生成一个文件“kitti_2011_10_03_drive_0027_synced.bag”,这个就是使用KITTI数据集生成的bag文件了。

三、bag文件测试

制作完bag文件之后,要播放文件测试以下,看显示出来的数据对不对。

我们就直接用rviz了。制作好的rviz文件放在了github上的代码里,在kitti_test文件夹下。

执行步骤如下:

1) 终端1启动ros

roscore

2) 终端2启动rviz

打开终端,cd到 “kitti_test”文件夹下,输入指令

rviz display_bag.rviz

3) 终端3播放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上看到下面的画面了,手托香腮,静静地欣赏一会儿吧

从零开始做自动驾驶定位(二): 数据集

 

上一篇:从零开始做自动驾驶定位(一): 开篇

下一篇:从零开始做自动驾驶定位(三): 软件框架