摘要(Abstract)
在非常有限的内存和计算能力的条件下实现准确定位是下一代汽车序列的一大挑战。本文提出了基于几何图元的定位算法,该几何图元的表示形式紧凑,对于其他任务(如规划和行为生成)更有价值。这些图元缺乏独特的签名,这使得检测和地图元素之间的关联非常不明确。我们通过在线构建局部地图来避免传递过程中的歧义,这对于提高运行效率至关重要。此外,我们基于鲁棒的位姿图优化引入了一种新的框架来融合与里程计观测的关联。
我们根据城市场景中记录的30分钟以上数据评估定位框架。我们的地图具有小于8KB/km的存储效率,并且以50Hz的定位更新频率实现了较高的定位精度,平均位置误差小于10cm,平均偏航角误差小于0.25°。
1.引言(INTRODUCTION)
到目前为止,汽车序列还无法准确定位自身。由于下一代汽车序列将使用高清地图,因此准确定位变得越来越重要。高清地图提供有关例如车道、道路基础设施等,精度达到厘米。这些信息将是弥合当今在感知、场景理解、规划和行为产生方面的缺陷的关键,从而将汽车序列的自主性提高到一个新的水平。为此,下一代系列汽车必须能够以厘米级精度定位在高清地图中。向汽车序列引入高度精确的定位的主要挑战是计算能力和内存使用的可靠性和效率。基于GNSS的定位非常有效,但由于遮挡、多径和多变的天气状况,其定位不够可靠。通过将GNSS与里程计融合在一起(例如来自IMU或摄像机),可以改善这些问题。但是,这些方法可能会失败,例如在初始化阶段条件不好时。因此,基于GNSS的定位被认为是不可靠的。其他方法使用定位专用的3D地图。基于专用3D地图的定位都是高度准确的,但需要大量内存用于专用定位地图。
如果仅使用特定的结构或对象,则可以减小地图大小:在许多情况下,基于道路标识的定位可以实现厘米范围内的定位精度。另一种方法是使用路灯、交通标志和树木等立杆结构作为地标。特别是在城市场景中,立杆结构经常出现,可以用于精确定位。房屋角落也显示出潜在的定位特征,但更流行的是用于室内定位的墙。由于并非每种类型的特征都无处不在,因此所有上述方法都缺乏鲁棒性和可靠性。
我们针对资源有限的下一代汽车序列提出了高度精确的自我定位问题的解决方案。我们的主要贡献是:
•一组定位特征,它们可以提高内存的使用效率,并可用于其他任务,例如规划和行为生成(请参阅第二章)
•在线构建的局部地图,用于将检测与地图元素相关联时解决歧义
•一种新开发的位姿图调整算法,用于基于异步和延迟观测实现鲁棒定位
在地图上的评估(请参阅第四章)表明,我们的方法可以在充满挑战的城区场景中实现高度准确和可靠的定位(请参见第五章,图1中的快照)。
图1:具有定位位次(绿色箭头)和图元检测的评估驾驶快照
2.定位特征(LOCALIZATION FEATURES)
特征的选择对整体定位性能有重大影响。我们基于两类标准选择特征:第一类关注准确性。这包括最常用的标准,例如特征应易于检测,频繁出现,视点和天气不变,仅举几例。第二类标准与效率有关。我们的特征应具有紧凑的表示形式,以提高存储效率。此外,这些特征应可用于定位以外的其他任务,例如规划和行为生成。这将使地图中的专用定位层变得多余,并且进一步无需在系统上运行其他检测器。根据上述标准,我们发现立杆、立面和道路标识是合适的。在下文中,给出了关于不同类型的特征的更多细节。
A. 立杆(Poles)
在道路场景中,经常有很多标志物,如交通信号灯,路灯和树木。它们都是持久的静态对象,因此适合定位。此外,由于立杆是高大的结构,即使汽车遮挡了下部,也可以看到它们。标志物和交通信号灯是道路基础设施的功能元素,无人驾驶汽车需要对其进行检测以进行规划和产生行为。为了检测立杆,我们使用3D LIDAR用[15]中类似的方法进行测量。我们通过立杆与地面的交点、半径和倾角将立杆存储在地图中。最后两个属性用作弱信号,以区分不同的立杆。这有助于建图和定位的立杆在传递过程中创建关联。
B. 立面(Facades)
基于立面的定位是受以下事实推动的:在使用GNSS时,高层房屋会降低定位质量。此外,由于房屋的大小,可以从远距离检测房屋。房屋立面的几何变化很少见,因此地图可以长期使用。除定位外,立面还可以用作导航和推断可观测空间的精准目标地址。我们使用3D LIDAR检测立面。我们使用平面来近似立面的几何形状,这在大多数情况下是合适的。在地图中,检测到的立面缩小为与地面的交叉,并存储为2D线段。
C. 道路标识(Road Markings)
道路标识是为了易于识别而设计的。选择它们的颜色相对于街道其余部分来说更为醒目。所以,从街道上分割道路标识相对容易。除了易于检测之外,道路标识还频繁出现,这使其易于定位。不利之处在于道路特征会定期发生,因此在将检测与地图元素相关联时存在许多歧义。可以使用其他特征并通过构建局部地图来解决此问题(请参阅第III-B节)。道路标识检测已经在汽车序列中用于车道协助。此外,道路标识的类型(例如,虚线、直线或停止线)定义了对于行为产生和规划很重要的规则。为了检测,我们使用了立体摄像机和方法[20]。检测表示为两个2D点,它们描述了标记长轴方向上的中心线。另外,还要存储标识的类别。
图2:定位框架概要图
3.定位框架(LOCALIZATION FRAMEWORK)
A. 概览(Overview)
定位框架可以分为四个层,即传感层、检测层、关联层和优化层(见图2)。第一层包括用于定位的传感器。摄像头和LIDAR用于检测定位特征。此外,GNSS接收器用于对当前位姿进行粗略估计,测距单元提供局部运动估计。探测层由道路标识,立面和立杆的探测器组成。关联层将检测结果作为输入,并将其与全局地图中的特征相关联。这是一个两个阶段的过程。首先,通过使用里程计将对过去和现在的检测累积在局部地图中。这增加了关联步骤中的检测次数,从而避免了歧义。其次,地图匹配器使用来自GNSS的粗略位姿估计以及定位的最后位姿估计作为先验,以找到局部地图和全局地图中要素之间的最佳关联。在最后的优化层中,基于特征关联对和里程计观测,使用位姿图BA来更新位姿。
B. 局部地图生成器(Local Map Generator)
并且停用损失函数以放弃鲁棒性。
4.建图框架(MAPPING FRAMEWORK)
我们的地图生成方法可以分为四个部分。首先,基于融合了GNSS位姿的视觉特征点的车辆轨迹估计。第二,将检测结果从局部参考系转换为地图参考系。第三,将潜在地描述相同元素的检测进行聚类。最后,将聚类的检测合并到单个地图特征。
图4:德国辛德芬根的道路
5.结果与评估(RESULTS AND EVALUATION)
A. 数据集(Dataset)
为了进行评估,我们使用实验车辆BerthaONE收集了数据。对于此数据集,我们使用了四个平整安装在车顶上的Velodyne VLP16 LIDAR,两个位于挡风玻璃后面的BlackFly PGE-50S5M摄像机,一个Ublox C94-M8P GNSS接收器以及一个融合了转向角和车轮速度的里程计单元。用球形目标物作为摄像机-LIDAR和LIDAR-LIDAR的外在参照物,可以精确地校准传感器的设置。棋盘格用于校准摄像机内参和摄像机之间的外参。
数据集记录在德国辛德尔芬根中心(见图4)。它包括不同的日期、白天的不同时间和不同的天气情况下相同轨道的三次驾驶。3.8公里的赛道单驱车大约需要10分钟。
我们之所以选择这条路,是因为两个原因:首先,它代表着房屋和道路基础设施建设在内的一般市内场景。因此,即使密度不同,我们所有的定位特征也都存在。第二个原因是,该轨道被认为对自动驾驶具有挑战性。道路大多狭窄,因此准确的定位对于安全至关重要。此外,基于GNSS的定位条件很差,因为高层房屋经常遮挡大多数GNSS卫星。有很多急弯和一个环岛交叉路口,使快速定位更新对于车道保持很重要。另一个挑战是交通繁忙,通常会遮挡传感器的部分视场。
B. 真实地况(Groundtruth)
我们的定位框架的设计目的在于实现厘米级的定位精度。这就给定了评估所需的地面数据的准确性。我们生成以下内容:
如前所述,我们在同一轨迹上有了三次驾驶记录。其中之一我们称为建图驾驶,用于生成地图。其他我们称为评估驾驶,用于评估相对于地图的定位精度。我们使用基于具有视点特征的位姿图BA的建图方式。我们可以同时解决建图驾驶和评估驾驶的BA问题,就好像它们是单次驾驶一样。因此,地图和评估驾驶将一同注册。可以通过分析定位噪声来估计注册精度,定位噪声在位置1cm以下,在偏航角0.1°以下。
C. 建图结果(Mapping Results)
通过建图驾驶,我们检测到33k道路标识,20k立杆和90k立面。我们的地图框架将这些检测结果合并到大约600个道路标识,500个立杆和760个立面。平均而言,将55个道路标识,40个立杆和118个立面合并为一个地图元素。立面地图元素受到了更多检测,因为立面是可以从远处检测到的较大对象。整个地图的大小约为30KB,每公里小于8KB。与我们的groundtruth方法生成的特征图所需的2.1GB相比,这非常紧凑。
D. 定位精度(Localization Accuracy)
我们通过评估驾驶来评估我们的定位框架,并使用通过地图驾驶生成的地图。我们根据位置误差和偏航角误差评估定位精度。位置误差通常分为横向位置误差和纵向位置误差,因为它们受到的限制是不同的。横向位置误差必须小于50cm才能保持在车道内,但实际上,为了确保安全,我们的目标是小于15 cm。纵向车道误差的界限不太严格,因为车道在纵向上不会很快离开。小于25cm的纵向位置误差足以确保安全。
本文利用数据采集车在同一路段进行三次行驶,其中第一次行驶用于生成高精度地图(采用BA方法),其余两次行驶用于定位算法的验证。实验结果如下:
在下文中,我们评估了不同特征集的准确性(请参见表I)。
仅使用立面时,我们在位置和方向上的误差已很小。特别是和较低。由于大多数房屋的立面都与道路方向正交,因此对侧面方向具有很强的约束力,因此可以实现较低的。此外,由于立面延伸得很远,因此可以进行精确的偏航角估算,这使也低。仅当检测到面向行驶方向的立面的频率较低时,才给出纵向方向的约束。这就解释了为什么比大两倍。平均位置误差为12cm,仅在立面上进行定位已经可以在市内道路上获得准确的结果。
与仅基于立面相比,仅基于立杆的定位显示较高的和。由于立杆(表示为2D点)没有单一约束方向(例如立面)(表示为2D线),因此在纵向和横向方向上的误差几乎相同。通常,可以通过使用远距离检测来准确估算偏航角。由于与立面相比,立杆是小物体,因此只能在附近找到。因此,与仅使用立面相比,仅使用立杆进行定位的更大。仅使用立杆时的平均位置误差为12cm,类似于仅使用立面时的结果。
在这条道路上,仅基于道路标识进行定位更具挑战性,因为道路标识并不总是存在。一些没有标记的区域必须依靠里程计进行衔接。因此,与基于其他功能的定位相比,准确性明显差很多也就不足为奇了。此外,在某些地方,周期性会导致定位在纵向方向上移动一个周期长度。这就是为什么更高的原因。
图5:具有所有功能类型的一个评估驱动器的结果,颜色代码:
低动态(绿色),正常动态(蓝色),高动态(红色)
图6:在时间点60s处的环形交叉路口。来自定位框架(黄色)的位姿,和地面真实轨迹(红色)。
与仅使用一种要素类型相比,将所有要素类型用于定位都可以显著提高准确性。主要原因是特征的可用性更高。此外,特征的优势互补有利于提升精度。例如,立面提供准确的横向定位精度但纵向定位精度较差。在这种情况下,道路标识或立杆在纵向上能强烈约束。图5显示了一个评估驾驶的误差图。我们注意到,除了60s,220s和440s的峰值外,和的方差很小。在移动时,偏航角的误差必然导致横向位置误差的增加。这就是为什么和峰值同时出现的原因。我们注意到,这些峰值全都是尖锐曲线,偏航率高达30°/s。图6显示了时间点60s的情况,其中和最大。导致此结果的原因有多种:首先,由于时间戳不同,要生成成对的地面位姿和定位位姿,我们必须执行插值。时差最长为50毫秒。我们执行球面线性插值,这对于非线性旋转(改变偏航率)而言并不理想。例如。对于最大30º/s的偏航率线性上升,最坏情况的误差为0.38º。另一个错误源是由于延迟。传感器延迟(对于我们的相机,最长为50ms)加上检测和关联时间总计可以超过100ms。因此,优化窗口的最后大约100ms仅由测距数据组成。我们的里程表单元是汽车上的内置系统,我们只能在数据到达我们系统的时间标记数据。因此,当我们假设偏航角速度为30º/s的阶跃时,33ms的延迟可能会导致1º偏航角的误差。此外,我们注意到地图中存在由LIDAR检测到的错误特征。我们的LIDAR是旋转速度为10 Hz的旋转传感器。我们通过补偿由里程计单元估算的车辆运动来生成360度伪单次扫描。同样,里程计单元的延迟很快会导致动态驾驶出现明显的错误。将这些误差源相加可以说明动态曲线中的驾驶在和中的峰值。
纵向方向的位置误差比横向方向的噪声更大。这是可以预期的,因为与横向相比,限制纵向位置的特征更少。
总体而言,位置误差在小于25厘米的时间内占98%,最大误差为38厘米。在位姿图优化器上使用100ms的运行时限制可以达到这些结果。表一显示,运行时间限制为50ms和20ms时,结果会恶化,但对于自动驾驶仍然足够。将运行时限制设置为低于20ms会越来越多地导致异常值。此外,我们仅基于GNSS评估了定位。我们使用了ublox提供的解决方案。与基于特征的解决方案相比,这些错误要大得多。
6.结论与后续工作(CONCLUSIONS AND FUTURE WORK)
在这项工作中,我们提出了一个定位框架,该框架使用基本的几何图元作为定位标志。我们对真实数据的评估表明,在市内场景中,满足了下一代汽车序列定位的准确性,可靠性和效率方面的要求。平均位置误差小于10厘米,证明道路标识,立杆和立面是在城市道路上精确定位的合适地标。通过局部地图生成和位姿图优化的鲁棒性来实现可靠性。98%的时间小于25cm的位置误差证明了这一点。通过几何图元的紧凑表示,可以达到8KB/km的存储效率。通过将位姿图优化运行时间限制在最小20ms,可以体现出更好的计算效率。
在实际情况下,即使最好的定位方法也会在一段时间内失败。因此,我们希望通过一种措施来扩展我们的框架,以评估当前的定位质量。除了基于特征可用性和关联代价的标准外,我们还计划使用其他交通参与者(例如汽车和行人)来检测丢失的定位。
本文仅做学术分享,如有侵权,请联系删文。