本文经自动驾驶之心公众号授权转载,转载请联系出处。
大规模4D radar数据集
近年来,毫米波雷达因其在恶劣条件下的鲁棒性而被用于里程计和建图。常用的雷达类型有两种:
- 扫描雷达,它们通过旋转捕获360°视野的扫描
- 固态单芯片雷达,通常具有大约120°的水平视野。
单芯片雷达频率更高且不如扫描雷达笨重。通过多普勒速度,单芯片雷达可以轻松检测移动物体,从而解决基于摄像头或激光雷达里程计方法中遇到的重要挑战。然而,传统汽车雷达的垂直分辨率较差,导致低高物体在同一视野中的混淆。
近期的单芯片4D成像雷达进展,使得垂直分辨率提高,能精确测量高度,同时具备距离、方位角和多普勒速度(因此称为4D)。利用毫米波,4D雷达能轻松区分移动物体,并在雾、雨和雪等恶劣条件下正常感知。这些特性使4D雷达对需要在动态和恶劣环境中可靠运行的自主系统(如机器人和汽车)具有吸引力。
现有的公共4D雷达数据集在参考轨迹的准确性、数据采集平台的多样性、地理范围以及同一路线的数据采集重复性等方面常常有所欠缺。
武汉大学SNAIL小组从2022年8月开始的数据采集计划的精心制作的数据集Snail-Radar[1]。该数据集包含了在一年内使用手持设备、电动自行车和SUV等多种平台采集的各种数据序列。虽然每个平台的传感器配置略有不同,但每个传感器架通常包括立体摄像头、一到两个4D雷达、一个3D激光雷达、一到两个IMU和一个GNSS/INS系统。发布的序列数据覆盖了从密集植被的大学校园到高速公路隧道等多种环境,在晴天或雨天和夜间进行采集。
考虑到在同步定位与地图构建(SLAM)中的应用,我们提供了使用地面激光扫描仪(TLS)数据生成的参考轨迹。基于已验证的技术进行同步和精心校准,确保了我们数据的可靠性。我们相信这一数据集将大大有助于评估基于4D雷达点云的里程计、建图和位置识别算法。数据集和配套工具可在我们的网站上获取。
- 数据集链接:https://snail-radar.github.io/
- 数据集工具:https://github.com/snail-radar/dataset_tools
该数据集的贡献总结如下:
- 发布了一个大规模多样化的4D雷达数据集,覆盖多种环境条件下由三种不同平台在选定路线多次采集的数据,包括雨天和夜晚、校园道路和高速公路。提供了数据在ROS包和文件夹格式之间转换的工具及校准结果。
- 提出了严格的程序,同步所有传感器的运动相关信息,并校准它们之间的外部参数。同步程序从激光雷达和GNSS的硬件同步开始,然后所有传感器时间映射到GNSS时间,以激光雷达时间为桥梁,最后估计所有运动相关信息类型之间的恒定时间偏差。外部参数通过手动测量初始化并通过相关方法优化。
- 提出了一个定位流水线,用于生成提供序列的参考位姿。流水线从使用TLS捕获测试区域的点云开始,这些拼接的点云在定位模式下被用作LIO方法中的子地图。为了便于在序列末尾生成参考位姿,还提出了一种反向处理激光雷达里程计信息的方法。
雷达信号处理背景
如图1顶部所示,发射天线发送频率递增的射频信号。接收天线检测由物体反射的波,并通过将信号与发射载波混频来获得中频信号。这些信号然后通过模数转换器(ADC)采样,得到复数(同相和正交分量,I/Q)ADC样本。这些ADC样本被传送到数字信号处理器(DSP)进行进一步处理。
数字信号处理,如图1底部所示,包括四个基本组件:距离处理、多普勒处理、恒虚警率(CFAR)检测和2D到达角(AoA)处理。每个组件在TI mmwave SDK文档中有详细说明。这些组件的数学原理在Iovescu和Rao(2017)中解释。这里我们提供这些组件的功能性高层描述,并省略了高级选项以便清晰。
以下是一些符号表示:
- :每帧的多普勒脉冲数
- :接收天线数
- $N_{T_x}:发射天线数
- :每脉冲的ADC样本数
- $N_{D_b}:快速傅里叶变换(FFT)中的多普勒频谱数
- :FFT中的距离频谱数
距离处理过程以ADC脉冲样本I/Q值为输入,在活动帧时间内执行1D距离FFT和可选的直流距离校准,输出一个雷达立方体。ADC数据的大小为 · · · 。雷达立方体的大小为 · · · 。
多普勒处理过程以先前的雷达立方体为输入,在帧间时间内执行2D多普勒FFT和能量求和,输出一个大小为 · 的检测矩阵。
CFAR过程从检测矩阵开始,执行CFAR检测和峰值分组,输出范围-多普勒域中的CFAR检测列表。
2D AoA处理过程以雷达立方体和CFAR检测列表为输入,对检测到的物体的相关条目进行2D多普勒FFT,随后进行2D角度FFT和CFAR选择峰值,以确定检测物体的方位角和仰角,生成具有1D多普勒速度的3D点云。
图1描述了典型的德州仪器(TI)4D雷达的工作原理(Iovescu和Rao,2017)。发射天线发射的射频信号被物体反射,并由接收天线接收。信号被下变频为中频信号,通过模数转换器(ADC)进行采样,得到复数(同相和正交分量,I/Q)ADC样本。这些样本被传送到数字信号处理器(DSP)进行进一步处理。
数字信号处理过程包括距离处理、多普勒处理、恒虚警率(CFAR)检测和2D到达角(AoA)处理。每个步骤的详细说明可以在TI mmwave SDK文档中找到。这些组件的数学原理在Iovescu和Rao(2017)中解释。
距离处理过程包括对ADC样本进行1D距离FFT变换,并在活动帧时间内进行可选的直流距离校准,最终生成一个雷达立方体。多普勒处理过程则是在帧间时间内对雷达立方体进行2D多普勒FFT变换和能量求和,生成检测矩阵。CFAR过程基于检测矩阵进行CFAR检测和峰值分组,生成CFAR检测列表。最后,2D AoA处理过程对CFAR检测列表中的相关条目进行2D多普勒FFT和2D角度FFT,确定检测物体的方位角和仰角,生成3D点云。
数据集
传感器设置
数据集使用了三个平台:手持设备、电动自行车和SUV。这些平台的传感器配置几乎相同,包括一个Hesai Pandar XT32激光雷达、一个Oculii Eagle雷达、一个ZED2i立体摄像头和一个Bynav X36D GNSS/INS系统。电动自行车和SUV还配备了Continental ARS548雷达和XSens MTi3DK IMU。数据通过一台运行Ubuntu 20.04的ThinkPad P53笔记本实时预处理和记录。
文件格式
每个序列的数据以一个整体的rosbag文件和一个包含单独消息的文件夹形式提供。传感器数据类型包括点云、图像、IMU数据和GNSS/INS解决方案。文件夹内的点云数据以pcd文件保存,压缩图像以jpg格式保存,其他类型数据以txt文件保存。
数据集提供了每个序列的参考轨迹,这些轨迹是在TLS地图帧中以10Hz生成的。然而,对于大规模的SUV序列,仅提供起始子序列和结束子序列的参考位姿,这些子序列在TLS覆盖范围内。所有TLS点云及其优化后的位姿也提供在数据集中。数据还包括实时GNSS/INS解决方案及其相应的UTM50N坐标转换结果。
Ground truth
在数据集中,Bynav GNSS RTK/INS系统的解决方案在高度上经常会出现跳跃现象,误差可达几米。因此,我们使用精确的地面激光扫描仪(TLS)点云来生成参考位姿,类似于Ramezani等(2020)的方法,但我们采用的是逐帧对齐未失真的激光雷达帧到TLS地图。
TLS扫描使用Leica RTC360扫描仪在晴天捕获,覆盖了“星湖”和“星湖塔”路线。这些扫描首先通过Cyclone Register 360程序处理,并在Open3D中进一步通过点到平面ICP进行优化。最终的TLS地图由93个扫描拼接而成,期望精度在5厘米以内。
对于完全覆盖在TLS地图内的序列,我们通过两步法将激光雷达扫描相对于TLS地图进行定位:首先获取初始位姿,然后在定位模式下运行LIO方法。对于大型序列,由于TLS地图仅覆盖序列的开始和结束部分,我们仅生成起始和结束子序列的参考轨迹。为了实现反向LIO处理,我们提出了数据反向技术,通过时间反转处理序列信息,从而在序列末端生成参考位姿。
反向处理还提供了一种验证参考精度的方法,通过比较前向和反向处理结果,我们确认参考位置的精度通常在10厘米以内。这一技术保证了数据集的高参考精度,有助于评估和开发基于4D雷达的SLAM算法。
同步
由于在硬件上同步所有传感器具有挑战性,我们提出了一种方案,确保所有传感器消息由同一个虚拟时钟标记。该方案首先使用激光雷达数据作为桥梁,将所有传感器消息的时间戳映射到GNSS时间,以消除抖动和长期漂移。然后,使用里程计和相关算法估算传感器数据与GNSS/INS解决方案之间的恒定时间偏差:
- 激光雷达同步:对所有传感器消息的主机时间进行平滑处理,以消除传输抖动。XT32激光雷达通过GNSS时间同步,因此可以通过主机时间将所有消息时间戳映射到GNSS时间。
- 时间偏差估算:使用相关算法估算不同传感器消息流之间的恒定时间偏差。对于激光雷达数据,使用KISS-ICP方法计算3D激光雷达位姿,并通过中心差分法计算INS位姿和LO位姿之间的角速度,从而确定时间偏差。对于4D雷达,通过GNC方法估算其自我速度,并与INS解进行比较来确定时间偏差。对于IMU,直接计算IMU数据的角速度,并与INS解进行比较来确定时间偏差。
- ZED2i同步:使用Swift-VIO方法估算ZED2i IMU和摄像头之间的时间偏差。虽然在挑战性序列中Swift-VIO的轨迹可能会漂移,但时间偏差通常能迅速稳定下来,精度在1ms以内。
整体同步精度预计在10ms以内,这得益于GNSS/INS解的高频率(100Hz)和相关算法的精细优化,以及ZED2i曝光时间的合理设置(不超过5ms)。
最终,发布的数据集中的所有消息时间戳都已经补偿了与GNSS时间的时间偏差,确保了数据的高精度同步。
传感器刚体标定
为了确保数据集的准确性,定义了基于激光雷达(XT32)的机体坐标系,其x轴指向前方,y轴指向左侧,z轴指向上方。所有传感器的外参相对于机体坐标系进行标定。
初始标定
- 传感器的相对位置通过手动测量获得。
- 相对方向通过CAD图纸确定。
精细标定
- 使用激光雷达IMU校准工具对ZED2i IMU或MTi3DK与XT32激光雷达之间的外部参数进行优化。
- 通过Swift-VIO方法获取ZED2i摄像头和IMU的时间偏差及其外部参数。
- 使用相关算法对Bynav系统的激光雷达与IMU之间的相对方向进行校准。
- 使用相关算法对Oculii Eagle和ARS548雷达与X36D IMU之间的相对方向进行优化。
每个传感器的外部参数都经过多种方法优化,并提供在数据集中,以确保传感器数据的准确性和一致性。
总结一下
Snail-Radar是一个大规模的4D雷达数据集,专为基于多传感器融合的定位和建图应用而设计。该数据集使用三种平台在各种环境条件下进行采集,包括雨天、夜晚、校园道路和隧道,共采集了44个序列,遍布八条路线的多次重复采集。
参考位置(对于大规模序列仅在开始和结束部分)是使用LIO方法生成的,该方法依次将去失真的Hesai激光雷达帧定位到TLS地图上。数据反向处理技术实现了时间上的反向LIO。传感器数据通过两步方案同步:
- 首先使用硬件同步的激光雷达数据将消息主机时间映射到GNSS时间,以消除抖动和长期漂移
- 使用里程计和相关算法估算传感器数据与GNSS/INS解之间的恒定时间偏差。
所有传感器之间的外部参数通过多种方法进行优化,并随数据集一同提供。