自动驾驶过程中往往需要对所驾驶的环境进行比较精确而完整的表示,通常会采用网格图的方式进行信息表示,网格图是将车辆环境划分为多个单元格,这些不同子单元格是以离散单元的方式表示的。这些图谱中的每一个单元格都代表一个位置点,各个单元格都包含相应的位置数据信息。当感知端从不同的传感器中推断出网格细胞的状态,网格图中的映射对应到了传感器数据融合间接表示位置形式。

常用的网格图分为二维或者三维两种表示形式,存储在各个单元中的信息类型以及单元的大小和形状也有所不同,网格图可以参考固定的全局坐标系或基于车辆的局部坐标系,并且可以在操作过程中在线生成,也可以在后处理步骤中离线生成。其过程可以通过自车的运动估计来确定,占用栅格图的生成主要使用距离测量传感器(例如激光雷达或毫米波雷达传感器)完成。此外,通过基于相机数据的生成网格图的方式也正在探索中。移动对象在网格地图的构造中起着特殊的作用,特别是如果随着时间的推移对可以对测量结果进行过滤。另外,关于实际应用的重要问题也包含有效的存储器管理。如下将详细介绍如何生成网格图。

基于网格映射对自动驾驶环境信息表示方法_java

航位推算法计算自车运动关系
为了产生一致的栅格图,必须考虑车辆的运动。为了生成二维网格图,还必须估计车辆的姿态(位置和方向),使用GNSS可以估算车辆的绝对位置。该方法的缺点在于,不能保证接收一致性并且精度波动很大,因此,对于许多应用而言,建议在网格图和全局坐标系之间建立一定的关系,也即使用航位推算来完成建图。下图中示出了在两个时间点t1,t2(t2> t1)处的车辆姿态。基于网格映射对自动驾驶环境信息表示方法_java_02在时间t 1处,在网格图的坐标系中车辆姿态表示为p1=[x1,y1,ψ1] T。此处,x和y对应于车辆位置,ψ对应于车辆的方位角(亦或称为偏航角)。现在的目标是将在时间t2进行的测量输入到网格图中。因此,必须确定在时间t2的车辆姿态p2,其中,车速v和偏航率yawrate是可测量的。另外,假设在每个时间点,车辆均沿着航向角ψ的方向上运动,即车辆位置的变化可以表示如下左边等式,而车辆在位置点2的姿态可以通过如下右边等式计算出来:基于网格映射对自动驾驶环境信息表示方法_java_03            基于网格映射对自动驾驶环境信息表示方法_java_04假设在时间间隔[t1,t2]内,车辆以恒定速度基于网格映射对自动驾驶环境信息表示方法_java_05、恒定偏航角速度基于网格映射对自动驾驶环境信息表示方法_java_06在圆形路径上行驶,其中基于网格映射对自动驾驶环境信息表示方法_java_07。在这种情况下,等式中的积分可以通过如下等式计算得到:当沿着直线行驶时,其偏航角速度,位置p2计算如下:通常通过测量轮速并分别通过偏航率传感器来估计横摆角速度ψ,高速情况下,汽车满足线性关系,车辆的航向角近似于偏航角正比例函数。实际的运动方向由航向角v给出,该方向值v与偏航角ψ有所不同,其差异项用动态侧滑角表示。如果已知车辆的侧滑角和侧滑率,则不可以再利用横摆率来近似航向角。根据网格图的预期用途,可以采用各种方法来估计自车位置。只要不发生对侧滑角估计产生负面影响的极端驾驶操作(如湿滑路面急速打方向盘),就可以使用航位推算来构建具有较高精度的栅格地图。但是,由于自车运动估计中的误差是累加的,导致其生成的网格图相对于实际车辆环境表现出失真,该失真通常随行进距离而增加。因此,这些栅格图主要适合于在有限的空间区域内,例如仅几百m的路段内的车辆环境的表示。另一个应用是周围环境的地图绘制,车辆在该环境中反复通过一个点,例如在停车场。重新进入先前映射的区域时,栅格地图中的会产生干扰性失真。另一种类似情况是在估计车辆姿态时使用高精度GPS测量来支持车载传感器探测过程。此外,定位和映射(SLAM)算法可以将来自环境检测传感器的测量结果包括在自车运动估计中。

生成网格地图的算法
对于许多先进的驾驶员辅助系统,有关车辆环境中可行使区域free space的信息预测是进行自动驾驶控制的前提条件,这里的可行使区域是指车辆可以行驶而不会发生碰撞的区域,占用栅格地图提供了详细描述障碍物占据车辆环境的哪个区域的可能性。在这种情况下,经典的占用栅格图尤其适合于描绘静态或缓慢变化的环境。1、基于雷达(激光或毫米波雷达)的格栅图生成测量距离的传感器最适合生成占用栅格图,因为它们可以直接推断各个单元的占用状态,基本概念可以根据以下简化示例进行说明。上图示意性地说明了多光束激光雷达传感器对二维占用栅格图的可行使区域探测。激光雷达的光束被障碍物反射后,假定位于传感器和反射点之间的像元是自由的(如白色),这就可以推断出相应单元格的占用情况(以黑色显示),且此测量过程中不提供有关其他单元格的信息(显示为灰色)。这种模型也被称为反向传感器模型,且假定在一定时间内其单元格的占用状态不会随时间变化,但是通常来说,它要复杂得多。因为传感器测量固有地受到不确定性的困扰,因此,仅仅靠测量值不可能对单元的占用率做出明确的表述。为每个细胞单元计算出占用概率p(o),其中o表示单元被占用的事件。对立事件的概率(自由像元)对应于互补概率概率逆传感器模型是基于传感器测量值将某个单元可能被占用的情况进行概率统计。下图显示了一个示例的概率逆传感器模型,该模型基于使用激光雷达的单波束距离测量。其中,左侧部分显示了占用概率p(o)与传感器的距离r的关系,各个单元彼此独立建模,反射点区域中的像元接收到的概率大于0.5。相反,传感器和反射点之间的单元的占用概率低于0.5。该区域通常称为自由空间,逆传感器模型的相应部分通常称为自由空间函数。逆传感器模型考虑了传感器的测量精度以及网格图中车辆姿态估计的不确定性。因此,除了包含反射点的像元外,其他多个像元也被分配了更高的占用概率。在此示例中,假定越靠近传感器的自由空间,其是否被暂用的概率的确定性就越大,这说明错误测量的可能性随着与传感器的距离的增加而增加。同时在计算过程中还应该考虑对三维车辆环境的二维建模可能导致结果测量的不确定性。例如,当障碍物由于其合适的大小或在车辆恰当的俯仰状态下才能位于LIDAR光束探测范围内时,就会导致对于障碍物的探测结果鲁棒性降低,这也是自由空间安全性降低的另一个原因。航向角方向上的建模类似地执行,上图中的右手部分示出了反向传感器模型的鸟瞰图。在逆传感器模型的此示例中,每个LIDAR光束都是单独建模的,由于该映射算法基于由许多独立光束组成的完整LIDAR测量来计算占用概率,因此这种建模影响了映射算法集成。反向传感器模型设计的基本目标是在保持较小复杂度和计算量的同时,尽可能精确地重建传感器的特性,当然,一些方法还应用机器学习算法来推导逆传感器模型。毫米波雷达的反向传感器模型的不同之处在于,RADAR反射也可能会穿过物体。因此,雷达传感器的自由空间功能更加复杂。对于毫米波雷达而言,方位分量的不确定性通常比对激光雷达传感器更大。此外,RADAR测量通常以网格图的形式存在,以传感器为参考并以极坐标构造。由于不同雷达传感器的特性不同,相应的反向传感器型号也会有很大差异。可以创建一个简单的传感器模型,将来自RADAR的强度测量值输入为栅格地图中的位置,而无需使用自由空间功能。然而,这导致占用率较大幅度增加的情况。2、基于摄像机数据生成网格图相机数据也可以用于生成三维网格图,立体相机可在传感器的近距离检测范围内提供近距离的距离测量,单目摄像机不提供任何三维信息。根据针孔相机模型,在三维空间中为图像的每个像素分配光束。然而,在某些假设下,可以推断出图像像素与二维网格图的坐标之间的变换。假定车辆所在的行驶表面是平坦的,并且该表面上方的摄像头高度是恒定的,并且车辆没有进行任何俯仰或侧倾运动。这些假设合在一起就是平坦世界的假设。为了计算变换,必须在网格地图坐标中知道相机的三维姿态坐标。该姿势是由车辆姿势和外部摄像机校准产生的。然后最终允许从相对于相机的三维空间转换为相机图像中的像素。总而言之,称为反向透视映射(IPM)的此过程允许将二维路面上的每个点分配给一个图像像素,只要前者位于相机的检测范围内即可。基于网格映射对自动驾驶环境信息表示方法_java_08IPM使摄像机数据可以引入网格地图中。示例是灰色调或视频图像中分类的对象。上图显示了IPM应用于生成网格图的示例。在此,一个单元的占用概率与存在道路标记的概率相对应。分类算法检测道路标记,然后根据合适的反向传感器模型将其引入到栅格地图中。

基于网格映射对自动驾驶环境信息表示方法_java_09

基于贝叶斯滤波器的融合
如果尚无关于单元格占用的信息,则将占用概率假定为p(o)=0.5,并设定该值为每个单元格的初始值。如果一个单元存在多个信息源,则将信息合并。根据反向传感器的型号,前面的例子中如果测量激光雷达发出的每个波束都被单独处理,则会发生信息合并的这种情况。这也取决于应用,通常情况是将多个连续的测量值合并到占用栅格图中。基于如上假设,多个测量值zi可以使用静态二进制贝叶斯滤波器进行合并:假设如下两种条件概率基于网格映射对自动驾驶环境信息表示方法_java_10,其中测量值z1,z2是独立的,假设初始概率假定值为p(o)=0.5,则合并后的概率表示如下:基于网格映射对自动驾驶环境信息表示方法_java_11其中合并规则如下:基于网格映射对自动驾驶环境信息表示方法_java_12占用概率基于网格映射对自动驾驶环境信息表示方法_java_13会增加以前的占用概率,占用概率基于网格映射对自动驾驶环境信息表示方法_java_14对应于中性元素,并且组合顺序无效。使用组合规则,可以将来自不同传感器或时间点的测量结果相互组合,但是,实际实现网格图的一个重要假设是各个单元具有独立性。单元之间的依赖关系实际上存在,原则上可以解决,但是它们极大地增加了创建网格图所需的计算量。1)网格映射过程下图显示了所提出的逆传感器模型的映射算法的序列计划。在此示例中,激光雷达测量由多个单独的光束组成。如果在时间ti进行输入的测量,则首先估算在时间ti的栅格图中的传感器姿态。随后,将每个光束zh分别合并到网格图中。首先根据逆传感器模型计算每个受影响单元格的占用概率p(o|zh),然后将其与占用概率p(o|zh-1,…,z1)相结合,z1是先前激光雷达光束的结果。对于每个像元,可将来自前一时间步长的占用概率用作当前像元的假设预测值。基于网格映射对自动驾驶环境信息表示方法_java_15如下图表示了一种利用逆传感器模型生成的占用网格图,该传感器为多波束激光雷达产生。基于网格映射对自动驾驶环境信息表示方法_java_162)实践过程中的格栅占用解析车辆随时间变化是格栅占用情况变化的基本事实,二维网格图和二维反向传感器模型仅描述了三维车辆环境的一部分,而在某些特定的三维环境情况中这可能会导致矛盾,因为周围环境的海拔轮廓也会影响网格图,例如,某个时间点在交通标志或桥梁下方进行LIDAR传感器的多光束检测时,其检测到的对象在随后的时间点可能被该对象反射回来。逆传感器模型的示例未解决如何对不产生反射的光束进行建模。在这种情况下,逆向传感器模型通常会假设光束所穿过单元格的自由空间达到设定的最大距离。但是,此类单元的自由空间概率低于反射和传感器之间的单元,因为尤其是在街道环境中,比如测量波束反射到黑色的亚光表面或光滑的表面(例如以锐角撞击的护栏)上时,LIDAR光束可能撞击物体而无需测量反射。3)如何进行运动物体的网格表示在许多应用中,显式的使用网格图来检测动态对象。应用静态二进制贝叶斯滤波器的前提条件是假设单元格不改变其占用状态,对于几乎同时记录的单个LIDAR光束的组合,由于单元在如此短的时间间隔内不会改变其占用或空闲状态,因此该滤波器算法中的假设在计算期间始终是成立的。而对于较长的时间间隔,该车辆环境的动态对象存在违反了相应的假设约束。从本质上讲,在动态对象检测中,可以通过相对简单的动态对象分割方法加以区分,从而从静态环境中识别它们。一种简便方法是引入记忆因子,在该情况下,对单元格占用率的推断不仅取决于空间,还取决于时间条件。因此,随着测量值的增加,在加权计算过程中需要利用较新的度量值代替比较旧的度量值,对于单元格占用概率的推断就不太确定。同时通过确定单元格占用概率的时间一致性来完成此操作,将始终被占用或空闲的单元分配给静态环境,将占用概率波动很大的单元格标记为动态占用区域。尤其针对在前一时刻被检测为空闲的区域中在下一时刻发生占用的情况通常被视为检测到动态对象。网格图的生成通常用作轨迹跟踪算法的预处理,更精细的系统体系结构需要建立网格图和跟踪算法之间的依赖关系。

基于网格映射对自动驾驶环境信息表示方法_java_17

总结
自动驾驶系统开发过程中往往需要对驾驶环境进行定性描述,也需要在轨迹规划过程中对轨迹形状点,潜在风险目标等进行定量描述,比如针对比较常用的可行使区域的定义就需要定义比较对环境障碍物进行打点,然后依次画图构建相关的行驶边缘来构建驾驶安全框架。这一过程就需要在开发前期对环境进行有效的建模,通常采用的方式是通过定义网格的形式进行障碍物建模的,而网格定义过程中需要充分考虑到传感器探测过程可能带来的失真。同时,在探测过程中需要充分考虑目标是移动的还是静止的,对于移动的物体需要进行提前分割,对于分割后的运动物体进行单独的目标跟踪估计。