在目前的自动驾驶领域,主要的感知手段一般分为雷达感知以及相机视觉感知。本文主要介绍雷达及其相关的感知手段。
20世纪90年代,随着毫米波雷达的技术发展,雷达感知技术逐渐应用于辅助驾驶领域,如自适应巡航(ACC),前向碰撞预警(FCW)等。雷达的作用主要是实现对障碍物的距离以及速度测量。
在21世纪10年代,谷歌启动”Google Self-Driving Car Project”项目,开始在自动驾驶领域进行技术研究。其感知方案为:
摄像头识别语义、激光雷达获取三维空间信息、毫米波雷达测量障碍物与自身的相对速度。
在这之后,Waymo成立,逐渐发展成了多传感器融合的感知技术框架,也是目前无人驾驶以及机器人领域中常见的技术思路。
延续这个思路,在大学生无人驾驶方程式赛事中,我们面临的赛道工况是由红黄蓝三色锥桶摆成的赛道。因此,我们提取其中多传感器融合的核心思想。我们使用激光雷达来探测锥桶的坐标位置,然后利用摄像头读取颜色信息,区分左右边界以及终点等含义。
(1) 激光雷达分类
目前,按结构进行分类,激光雷达主要分为三类:机械式、半固态式、全固态式。
机械式:使用电机带动激光发射模块以及接收模块。在早期的自动驾驶中普遍使用的是这种雷达。然而这种雷达成本高,电机消耗大,寿命短,体积大不便于安装。随着技术进步逐渐被半固态式取代。
半固态:与机械式使用电机转动激光和接收模块不同,半固态式让内部的反射镜进行旋转,来扫描一个范围内的环境。
这样做的优点就是在与机械式的精度相近的情况下,体积大幅度降低,成本也降低,实现了量产。然而因为内部还有机械式旋转结构,还是面临着寿命问题。目前大部分车规级雷达都选用半固态式的雷达。
全固态式:目前这方面的技术还不是很成熟,还在发展中。其思路就是使用电子方式,来控制光束的方向,实现对环境的感知。如OPA(光学相列阵)
整个系统采用硅光子集成在一个单芯片上。OPA由一系列发光元件组成,相位可控。通过改变相位,实现光学信号不同方向的传输。
图6 全固态式雷达示意图
(2) 测距原理
对于在大学生无人驾驶方程式中,普遍使用的激光雷达而言,其测距原理是飞行时间法(ToF),基本原理就是我们小学就会的
传感器记录发射时间t1,接收时间t2,那么飞行时间也就是Δt=t2-t1,可以得出距离。
在介绍完雷达简单的基本知识后,我们得到了由雷达传进来的众多点,那我们怎么对这些点进行处理呢?
首先我们要明白一个概念,我们在进行点云处理时,我们处理的不是“点”,而是“点的数据”。我们得到的点实际上是一个拥有XYZ坐标和强度的元素,而点云是拥有这些点的集合。那我们把这些作为我们算法的输出量。我们的输出量就应该是一个个含有锥桶坐标的向量。明确了输入量和输出量后,我们的任务就是撰写中间处理程序,使输入量变成输出量。
其中最传统的方法就是写雷达聚类程序。聚类程序距离的聚类和基于密度的聚类。其中,欧式聚类(Euclidean Clustering)是点云处理中应用较广的一种方法,它通过计算点与点之间的空间距离,将距离较近的点划分为同一类别。例如,在无人赛车中,多个靠近的激光雷达点可能属于同一个锥桶,通过欧式聚类可以将这些点组合起来,得到锥桶的位置。另一类常见方法是DBSCAN(Density-Based Spatial Clustering of Applications with Noise)密度聚类算法,它根据点云分布密度进行分类,不需要提前设定聚类数量,并且能够有效识别噪声点。相比欧式聚类,DBSCAN对于复杂环境中的目标检测具有更好的适应能力。这里要注意,聚类后得到的只是点云簇,并不是坐标向量,还需要计算点云簇的质心坐标,来代替检测目标的坐标。
这就是一个基础的利用雷达进行环境感知以及目标检测的思路。那在实际应用中,目标检测会更复杂,需要探测不同的物体,这时候可能会使用PointNet++,Point RCNN等算法,这里就留给大家感兴趣的话自行了解。
从毫米波雷达的测速测距,到激光雷达的三维点云,再到聚类算法把一堆散乱的点变成一个个锥桶坐标,雷达始终扮演着无人赛车"感知世界"的重要一环。
它测得准、不受光照影响,但也有自己的短板——比如无法直接分辨颜色。这也是为什么实际系统里雷达往往还要和摄像头配合,才能既知道锥桶在哪,又知道锥桶是什么颜色。下一期,我们将聚焦感知的另一条路一相机视觉,看看摄像头是如何弥补雷达的短板,帮助无人赛车更完整地"看懂"赛道的。