用于监测LiDAR传感器健康状况的系统和方法与流程

未命名 09-09 阅读:122 评论:0

用于监测lidar传感器健康状况的系统和方法
1.相关申请的交叉引用
2.本专利文件要求享有于2021年1月14日提交的美国专利申请号17/148,691的优先权,其全部内容通过引用并入本文。
技术领域
3.本公开总体上涉及计算设备。更具体地,本公开涉及实施用于监测lidar传感器健康状况的系统和方法。


背景技术:

4.现代车辆具有至少一个车载计算机并且具有互联网/卫星连接。在这些车载计算机上运行的软件监测和/或控制车辆的操作。车载计算机执行运动规划操作以确定车辆要遵循的轨迹。可以使用诸如lidar点云的传感器数据来生成车辆轨迹。lidar点云用被于跟踪对象(例如,行人和其他车辆)。


技术实现要素:

5.本公开涉及实施用于操作自动驾驶车辆的系统和方法。该方法包括由计算设备执行以下操作:获得由自动驾驶车辆的lidar系统生成的lidar点云数据;检查lidar点云数据以推断lidar波束的健康状况;基于推断出的lidar波束的健康状况来识别不良质量的点云数据;从lidar点云数据中移除不良质量的点云数据,以生成修改的lidar点云数据;以及使自动驾驶车辆基于修改的lidar点云数据执行至少一个自动驾驶操作或模式改变。
6.通过以下方式推断lidar波束的健康状况:基于由lidar点云数据定义的lidar点云的特性来计算多个度量;基于多个度量来计算置信度分数;以及基于置信度分数将lidar波束分类为故障波束或良好波束。例如,当置信度分数小于阈值时,lidar波束被分类为故障波束。度量可以包括但不限于异常值(outlier)度量、形状上下文(shape context)度量和/或高度度量。
7.在一些场景中,度量是基于lidar点云中的数据点的总数、lidar点云的强度值和lidar点云中的数据点的z坐标值中的至少一个来确定的。例如,给定度量等于lidar点云中的数据点的总数。通过以下步骤生成另一给定度量:确定多个数量,每个所述数量包括lidar点云的给定强度值的数据点的总数;以及将多个数量转换成单个数量。通过以下方式生成又一度量:使用z坐标值来计算从每个给定数据点到平均z坐标值的距离;确定lidar点云中的数据点的z坐标值的标准偏差;将每个距离除以标准偏差以获得值;以及计算该值的平均值。
8.实施系统包括:处理器;以及非暂时性计算机可读存储介质,其包括被配置为使处理器实施上述方法的编程指令。
附图说明
9.将参考以下附图描述本解决方案,其中在所有附图中相同的附图标记表示相同的项目。
10.图1是说明性系统的图示。
11.图2是车辆的说明性架构的图示。
12.图3是由图2中所示的车辆采用的lidar系统的说明性架构的图示。
13.图4是用于计算设备的说明性架构的图示。
14.图5提供了用于生成用于控制自动驾驶车辆的操作的高清晰度3d地图的说明性方法的流程图。
15.图6a-图6b(统称为“图6”)提供了用于地图生成的说明性方法的流程图。
16.图7提供了说明性组合3d点云的图示。
17.图8提供了可用于理解光线投射的(多个)曲线图。
18.图9提供了点云的图像。
19.图10示出了用于道路语义标签类别的说明性2d二元掩码。
20.图11示出了用于人行道语义标签类的说明性2d二元掩码。
21.图12提供了用于理解根据本解决方案如何实现车辆控制的框图。
22.图13示出了来自静止车辆的多个聚合lidar扫描。
具体实施方式
23.如本文件中所使用的,单数形式“一(a)”、“一(an)”和“该(the)”包括复数引用,除非上下文另有明确说明。除非另有定义,否则本文使用的所有技术和科学术语具有与本领域普通技术人员通常理解的含义相同的含义。如本文档中所使用的,术语“包括”意指“包括但不限于”。与本文档相关的附加术语的定义包括在本详细描述的末尾。
[0024]“电子设备”或“计算设备”是指包括处理器和存储器的设备。每个设备可以具有其自己的处理器和/或存储器,或者处理器和/或存储器可以与虚拟机或容器布置中的其他设备共享。存储器将包含或接收编程指令,该编程指令在由处理器执行时使电子设备根据编程指令执行一个或多个操作。
[0025]
术语“存储器”、“存储器设备”、“数据存储”、“数据存储设施”等各自是指其上存储计算机可读数据、编程指令或两者的非暂时性设备。除非另有特别说明,否则术语“存储器”、“存储器设备”、“数据存储”、“数据存储设施”等意图包括单个设备实施例、其中多个存储器设备一起或共同存储数据或指令的集合以及这些设备内的各个扇区的实施例。
[0026]
术语“处理器”和“处理设备”是指被配置为执行编程指令的电子设备的硬件组件。除非另有特别说明,否则单数术语“处理器”或“处理设备”意图包括单个处理设备实施例和多个处理设备一起或共同执行过程的实施例。
[0027]
术语“车辆”是指能够承载一个或多个人类乘员和/或货物并且由任何形式的能量提供动力的任何移动形式的运输工具。术语“车辆”包括但不限于汽车、卡车、货车、火车、自动驾驶车辆、飞机、空中无人机等。“自动驾驶车辆”是具有处理器、编程指令和传动系部件的车辆,该编程指令和传动系部件可由处理器控制而不需要人类操作者。自动驾驶车辆可以是完全自主的,它对于大多数或所有驾驶条件和功能不需要人类操作者,或者它可以是
半自主的,在某些条件下或对于某些操作可能需要人类操作者,或者人类操作者可以超控(override)车辆的自主系统并且可以控制车辆。
[0028]
在本文件中,当诸如“第一”和“第二”的术语用于修饰名词时,这种使用仅意图将一个项目与另一个项目区分开,并且不意图要求顺序次序,除非特别说明。另外,当使用时,诸如“垂直”和“水平”或“前”和“后”的相对位置术语意图相对于彼此并且不需要是绝对的,并且仅指代与这些术语相关联的设备的一个可能位置,这取决于设备的方位(orientation)。
[0029]
现代车辆具有至少一个车载计算机并且具有互联网/卫星连接。在这些车载计算机上运行的软件监测和/或控制车辆的操作。车载计算机执行运动规划操作以确定车辆要遵循的轨迹。可以使用诸如lidar点云的传感器数据来生成车辆轨迹。lidar点云被用于跟踪对象(例如,行人和其他车辆)。
[0030]
还可以采用lidar点云来生成用于控制自动驾驶车辆的操作的高清晰度地图。地图提供自动驾驶车辆和/或检测到的对象相对于彼此、道路、车道、交叉路口、人行横道、停车区域、障碍物等的位置的知识。然而,lidar点云的质量随时间降低,这影响自动驾驶车辆感知结果和地图生成的质量。本解决方案在地图生成的背景下和车辆感知结果的背景下解决了这种lidar点云劣化问题。
[0031]
例如,图13示出了来自静止车辆的多个聚合lidar扫描。在这种情景下,故障波束在半空中围绕车辆产生点的晕圈(halo)。波束不是永久故障的,因此为一次扫描提供有意义的lidar数据,并为另一次扫描提供无效数据。故障波束还针对每次扫描的一部分产生合理的测量。故障波束创建的无效数据导致地图损坏。本解决方案提供了一种解决由于故障波束引起的地图损坏的问题的新颖方法。
[0032]
新颖方法通常涉及通过监测波束强度值和波束点计数来检测lidar系统的故障波束。根据用于每个波束的简单监测算法,导出置信度数(number),该置信度数可以用于例如在地图生成过程期间从扫描中移除潜在故障波束。为了检测故障波束,可以为lidar系统的每个波束计算强度值的直方图,并且确定每个波束的lidar数据点的数量。已经观察到,大多数lidar数据点对于故障波束具有零强度。还观察到,与相邻健康波束相比,故障波束的每个波束的lidar数据点的数量更低。基于每个波束的强度直方图和点计数,可以跨连续lidar点云来计算和跟踪置信度分数。如果lidar波束被分类为超过给定百分比的lidar扫描的故障波束,则lidar波束被认为是故障波束。如果数据点与故障波束相关联,则可以从lidar点云中移除数据点。偶尔,即使当lidar波束按预期起作用时,lidar点云也由于诸如太阳干扰的环境影响而具有异常值和伪影。这样,如果数据点是异常点,则也可以从lidar点云中移除数据点。可以使用chauvanet关于数据点的z坐标值的标准来检测异常点。
[0033]
故障波束可以被表征为混乱的lidar点云、车辆上方的晕圈或死(dead)波束。混乱的lidar点云包括表现出错误的大范围的波束的数据点。极端高度处的波束突出,因为它们的数据点位于地面以下或天空以上。尽管这些数据点仅是与相应波束相关联的数据点的一小百分比,但是它们在最终地图中显著突出,因为它们在大的时间实例上累积。此外,这些数据点在相同方位角处并不一致地偏离(not consistently off)而是随时间变化。
[0034]
晕圈的特征在于在车辆框架中具有正仰角的lidar波束的数据点在一些方位角处表现出恒定的范围。即使当没有对象时,这也导致车辆上的鬼影晕圈,并且导致用于地图生
成的累积lidar点云中的伪点(spurious point)。形成晕圈的数据点在相应仰角处不处于固定方位角。
[0035]
死波束的特征在于lidar点云不存在数据点和/或包括始终在所有方位角处具有无意义值的数据点。通常,这样的波束在给定的lidar系统上孤立地发生,并且不会在累积的lidar点云中引入伪影。然而,如果足够的波束故障,则它们可能影响相应仰角处的数据点的密度。
[0036]
因此,本解决方案提供了用于通过检查lidar点云来推断lidar传感器的健康状况的实施系统和方法。本解决方案可以在自动驾驶车辆上实施,以在驾驶时和/或在远离自动驾驶车辆的计算设备中和在地图构建管线(pipeline)中实施时实时监测lidar传感器健康状况。当本解决方案集成在自动驾驶车辆上时,车载计算设备可以执行以下操作:接收lidar数据集;分析lidar数据集以生成指示lidar波束是否被分类为故障波束的诊断信号;以及通过基于诊断信号(即,推断出的lidar波束的健康状况)从lidar数据集中选择性地移除lidar数据来生成修改的lidar点云数据。
[0037]
在一些场景中,车载计算设备可以使用修改的lidar点云数据来生成和输出关于lidar健康问题的报告。车载计算设备可以替代地或附加地使av从自动驾驶操作模式切换到至少部分手动驾驶操作模式(即,需要用户输入的模式)。当给定数量的lidar波束被认为是故障波束时,可以执行模式改变。
[0038]
在其他场景中,车载计算设备还可以使用修改的lidar点云数据来生成地图。然后可以使用地图来控制自动驾驶车辆的自动驾驶操作。自动驾驶操作可以包括但不限于对象跟踪操作、对象轨迹预测操作、车辆轨迹确定操作和/或碰撞避免操作。例如,地图用于促进预测的对象轨迹、对象的预测的未来意图和/或车辆轨迹的生成。然后,如果与对象碰撞的风险水平可接受,则可以控制车辆遵循车辆轨迹,或者如果与对象碰撞的风险水平不可接受,则执行谨慎或紧急操纵。本解决方案不限于该示例的细节。
[0039]
本解决方案具有许多优点。例如,已知没有其他方法通过检查lidar点云来监测lidar波束的健康状况。实施系统以灵活的方式设计,使得其可以安装在车辆上以实时或接近实时地监测lidar波束健康状况并改进地图生成。
[0040]
例如,可以通过以下方式生成地图:获得包括由lidar系统从多个有利点或位置生成的lidar数据的修改的lidar点云;使用例如同时定位和映射(slam)来对准修改的lidar点云;以及组合对准的lidar点云以形成组合3d点云。
[0041]
可以执行光线追踪操作以测试lidar数据的任何对象是否在任何时间都是透视的(see-through)。从组合3d点云中移除与(多个)透视对象相关联的数据点,以生成修剪的3d点云。修剪的3d点云仍然可以包括与移动对象相关联的数据点。因此,还可以采用附加的基于语义标签的操作来从修剪的3d点云中移除与移动对象相关联的任何剩余数据点。执行基于语义标签的操作以一般地(i)创建语义表面图像以及(ii)移除道路和人行道的表面上方的数据点。通过从修剪的3d点云中移除道路和人行道上方的数据点来生成最终的3d点云。最终3d点云可以用于各种应用中。这些应用包括但不限于av应用、半自动驾驶车辆应用和/或机器人应用。
[0042]
本文在自动驾驶车辆(av)的背景下描述了本解决方案。本解决方案不限于av应用。本解决方案可以用于需要高清晰度道路/地形图来控制设备(例如,机器人)的操作的其
他应用中。
[0043]
说明性实施系统
[0044]
现在参考图1,提供了说明性系统100的图示。系统100包括以半自主或自主方式沿着道路行驶的车辆1021。车辆1021在本文中也称为av。av 1021可以包括但不限于陆地车辆(如图1所示)、飞机或船只。
[0045]
av 1021通常被配置为检测其附近的对象1022、114、116。对象可以包括但不限于车辆1022、骑行者114(诸如自行车、电动滑板车、摩托车等的骑行者)和/或行人116。根据任何已知或将要已知的对象检测过程来实现对象检测。对象检测过程可以在av 1021处、在远程计算设备110处执行,或者部分地在av 1021和远程计算设备110两者处执行。因此,可以经由网络108(例如,互联网、蜂窝网络和/或无线电网络)在av和远程计算设备110之间通信与对象检测有关的信息。对象检测相关信息也可以存储在数据库112中。
[0046]
例如,可以通过分析由av 1021上的至少一个传感器设备生成的传感器数据和/或经由通信链路150、152、154从对象的通信设备(例如,收发器、信标和/或智能电话)接收的信息来进行对象检测。通信链路150、152、154可以包括但不限于v2x通信链路。术语“v2x”是指车辆与可能影响车辆或可能受车辆影响的任何实体之间的通信。该信息可以包括但不限于指定对象已经执行、正在执行和/或将要执行的动作或操作的信息。
[0047]
当进行这样的对象检测时,av 1021执行操作以:为检测到的对象生成一个或多个可能的对象轨迹;以及分析所生成的可能的对象轨迹中的至少一个,以确定如果av将遵循给定轨迹,则在av和对象之间是否存在将发生碰撞的不期望的风险水平。给定车辆轨迹由av 1021使用根据本解决方案产生的高清晰度地图来生成。使用3d激光扫描数据产生高清晰度地图,其中某些点从配准点云中移除。移除的点可以包括与故障波束相关联的点和/或与动态对象相关联的点。随着讨论的进行,产生高清晰度地图的方式将变得更加明显。
[0048]
如果在av要遵循给定轨迹的情况下不存在av和对象之间将发生碰撞的不期望的风险水平,则使av 1021遵循给定的车辆轨迹。如果存在在av要遵循给定轨迹的情况下av和对象之间将发生碰撞的不期望的风险水平,则使av 1021(i)遵循与对象碰撞的风险相对较低的另一车辆轨迹,或者(ii)执行操纵以降低与对象碰撞的风险或避免与对象碰撞(例如,制动和/或改变行驶方向)。
[0049]
现在参考图2,提供了用于车辆的说明性系统架构200的图示。图1的车辆1021和/或1022可以具有与图2中所示的系统架构相同或相似的系统架构。因此,以下对系统架构200的讨论足以理解图1的车辆1021、1022。
[0050]
如图2所示,车辆200包括发动机或马达202和用于测量车辆的各种参数的各种传感器204-218。在具有燃料动力发动机的气体动力或混合动力车辆中,传感器可以包括例如发动机温度传感器204、电池电压传感器206、发动机每分钟转数(rpm)传感器208和节气门位置传感器210。如果车辆是电动车辆或混合动力车辆,则车辆可以具有电动马达,并且因此将具有传感器,诸如电池监测系统212(以测量电池的电流、电压和/或温度)、马达电流传感器214和电压传感器216以及马达位置传感器,诸如旋转变压器和编码器218。
[0051]
两种类型的车辆共有的操作参数传感器包括例如位置传感器236(诸如加速度计、陀螺仪和/或惯性测量单元)、速度传感器238和里程表传感器240。车辆还可以具有时钟242,系统使用时钟242来确定操作期间的车辆时间。时钟242可以被编码到交通工具车载计
算设备中,它可以是单独的设备,或者多个时钟可以是可用的。
[0052]
车辆还将包括各种传感器,其操作以收集关于车辆行驶的环境的信息。这些传感器可以包括例如位置传感器260(例如,全球定位系统(gps)设备)、对象检测传感器(例如,(多个)相机262)、lidar系统264和/或雷达/声纳系统266。传感器还可以包括环境传感器268,诸如降水传感器和/或环境温度传感器。对象检测传感器可以使得车辆能够检测在任何方向上在车辆200的给定距离范围内的对象,而环境传感器收集关于车辆的行驶区域内的环境状况的数据。
[0053]
在操作期间,信息从传感器通信到车载计算设备220。车载计算设备220分析由传感器捕获的数据,并且可选地基于分析的结果来控制车辆的操作。例如,车载计算设备220可以控制:经由制动控制器232进行制动;经由转向控制器224的方向;经由节气门控制器226(在气体动力车辆中)或马达速度控制器228(诸如电动车辆中的电流水平控制器)的速度和加速度;差速齿轮控制器230(在具有变速器的车辆中);和/或其他控制器。
[0054]
地理位置信息可以从位置传感器260通信到车载计算设备220,车载计算设备220然后可以访问对应于位置信息的环境的地图,以确定环境的已知固定特征,诸如街道、建筑物、停车标志和/或停车/行进信号。从相机262捕获的图像和/或从传感器(例如,lidar系统264)捕获的对象检测信息被通信到车载计算设备220。对象检测信息和/或捕获的图像由车载计算设备220处理,以检测车辆200附近的对象。根据任何已知或将要已知的对象检测技术进行对象检测。
[0055]
当车载计算设备220检测到移动对象时,车载计算设备220将为检测到的对象生成一个或多个可能的对象轨迹,并且如果av将遵循给定的车辆轨迹,则分析可能的对象轨迹以评估对象和av之间碰撞的风险。如果不存在碰撞风险,则使av遵循给定的车辆轨迹。如果存在碰撞风险,则可以生成替代车辆轨迹和/或可以使av执行特定操纵(例如,制动、加速和/或改变行驶方向)。使用根据本解决方案创建的高清晰度地图来生成车辆轨迹。随着讨论的进行,创建高清晰度地图的方式将变得明显。
[0056]
现在参考图3,提供了说明性lidar系统300的图示。图2的lidar系统264可以与lidar系统300相同或基本类似。这样,lidar系统300的讨论足以理解图2的lidar系统264。
[0057]
如图3所示,lidar系统300包括壳体306,壳体306可以围绕诸如毂或轴316的中心轴线旋转360
°
。壳体可以包括由对光透明的材料制成的发射器/接收器孔312。尽管在图2中示出了单个孔,但是本解决方案在这方面不受限制。在其他场景中,可以提供用于发射和/或接收光的多个孔。无论哪种方式,当壳体306围绕内部组件旋转时,lidar系统300可以通过(多个)孔312中的一个或多个发射光并且接收朝向(多个)孔211中的一个或多个返回的反射光。在替代场景中,壳体306的外壳可以是固定圆顶,其至少部分地由对光透明的材料制成,其中可旋转部件在壳体306内部。
[0058]
在旋转壳或固定圆顶内部是光发射器系统304,光发射器系统304被配置和定位成经由一个或多个激光发射器芯片或其他光发射设备生成并发射通过孔312或通过壳体306的透明圆顶的光脉冲。发射器系统304可以包括任何数量的单独发射器(例如,8个发射器、64个发射器或128个发射器)。发射器可以发射基本上相同强度或不同强度的光。由光发射器系统304发射的各个波束将具有在整个阵列上不相同的明确定义的偏振状态。作为示例,一些波束可以具有垂直偏振,并且其他波束可以具有水平偏振。lidar系统还将包括光检测
器308,光检测器308包含光电检测器或光电检测器阵列,光电检测器或光电检测器阵列被定位和配置为接收反射回到系统中的光。发射器系统304和光检测器308将与旋转壳一起旋转,或者它们将在外壳306的固定圆顶内旋转。一个或多个光学元件结构310可以定位在光发射单元304和/或光检测器308的前面,以用作聚焦和引导穿过光学元件结构310的光的一个或多个透镜或波片。
[0059]
一个或多个光学元件结构310可以定位在反射镜312的前面,以聚焦和引导穿过光学元件结构310的光。如下所示,该系统包括位于反射镜312前面并连接到系统的旋转元件的光学元件结构310,使得光学元件结构310与反射镜312一起旋转。替代地或另外地,光学元件结构310可以包括多个这样的结构(例如,透镜和/或波片)。可选地,多个光学元件结构310可以以阵列布置在壳体306的壳部分上或与壳体306的壳部分成一体。
[0060]
可选地,每个光学元件结构310可以包括分束器,该分束器将系统接收的光与系统生成的光分离。分束器可以包括例如四分之一波或半波波片,以执行分离并确保接收的光被引导到接收器单元而不是到发射器系统(这可能在没有这种波片的情况下发生,因为发射的光和接收的光应该表现出相同或相似的偏振)。
[0061]
lidar系统将包括用于为光发射单元304供电的电源单元318、马达316和电子组件。lidar系统还将包括分析器314,分析器314具有诸如处理器322和非暂时性计算机可读存储器320的元件,非暂时性计算机可读存储器320包含编程指令,该编程指令被配置为使得系统能够接收由光检测器单元收集的数据,分析它以测量接收到的光的特性,并生成连接的系统可以用于做出关于在收集数据的环境中操作的决定的信息。可选地,分析器314可以与如图所示的lidar系统300集成,或者分析器314中的一些或全部可以在lidar系统外部并且经由有线或无线通信网络或链路通信地连接到lidar系统。
[0062]
现在参考图4,提供了用于计算设备400的说明性架构的图示。图1的计算设备110和/或图2的交通工具车载计算设备220与计算设备400相同或相似。这样,对计算设备400的讨论足以用于理解图1的计算设备110和图2的车辆车载计算设备220。
[0063]
计算设备400可以包括比图4中所示的组件更多或更少的组件。然而,所示的组件足以公开实施本解决方案的说明性解决方案。图4的硬件架构表示被配置为操作车辆的代表性计算设备的一个实施方式,如本文所述。这样,图4的计算设备400实施本文描述的方法的至少一部分。
[0064]
计算设备400的一些或所有组件可以被实施为硬件、软件和/或硬件和软件的组合。硬件包括但不限于一个或多个电子电路。电子电路可以包括但不限于无源组件(例如,电阻器和电容器)和/或有源组件(例如,放大器和/或微处理器)。无源和/或有源组件可以适配于、被布置为和/或被编程为执行本文描述的方法、过程或功能中的一个或多个。
[0065]
如图4所示,计算设备400包括用户接口402、中央处理单元(cpu)406、系统总线410、通过系统总线410连接到计算设备400的其他部分并可由其访问的存储器412、系统接口460和连接到系统总线410的硬件实体414。用户接口可以包括输入设备和输出设备,其促进用于控制计算设备400的操作的用户-软件交互。输入设备包括但不限于物理和/或触摸键盘450。输入设备可以经由有线或无线连接(例如,连接)连接到计算设备400。输出设备包括但不限于扬声器452、显示器454和/或发光二极管456。系统接口460被配置为促进去往和来自外部设备(例如,诸如接入点的网络节点等)的有线或无线通信。
[0066]
硬件实体414中的至少一些执行涉及访问和使用存储器412的动作,存储器412可以是随机存取存储器(ram)、磁盘驱动器、闪存、光盘只读存储器(cd-rom)和/或能够存储指令和数据的另一硬件设备。硬件实体414可以包括磁盘驱动单元416,磁盘驱动单元416包括计算机可读存储介质418,计算机可读存储介质418上存储有一个或多个指令集420(例如,软件代码),一个或多个指令集420被配置为实施本文描述的方法、过程或功能中的一个或多个。指令420还可以在其由计算设备400执行期间完全地或至少部分地驻留在存储器412内和/或cpu 406内。存储器412和cpu 406还可以构成机器可读介质。这里使用的术语“机器可读介质”是指存储一个或多个指令集420的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。这里使用的术语“机器可读介质”还指能够存储、编码或携带一个或多个指令集420以供计算设备400执行并且使计算设备400执行本公开的任何一种或多种方法的任何介质。
[0067]
现在参考图5,提供了用于生成用于控制av(例如,图1的av 1021)的操作的高清晰度3d图的说明性方法500的流程图。方法500可以至少部分地由av的车载计算设备(例如,图2的车辆车载计算设备220)或远离av的计算设备(例如,图1的计算设备110和/或图4的计算设备400)执行。
[0068]
如图5所示,方法500开始于502并且继续于504,其中计算设备获得由av的lidar系统(例如,图2的lidar系统264)生成的lidar点云数据。lidar点云数据包括在时间上连续生成的多个点云。每个点云表示lidar系统扫描,并且因此包括给定lidar系统扫描中的所有lidar波束的所有数据点。lidar点云数据还包括点云中的每个数据点的以下信息:x坐标、y坐标、z坐标、强度值(例如,0到255)和激光数。
[0069]
接下来在506中,检查lidar点云数据以推断lidar波束的健康状况。通过以下方式推断给定lidar波束的健康状况:基于(多个)lidar点云的特性、特征和/或属性计算多个度量;基于该度量确定置信度分数c;以及基于置信度分数c将lidar波束分类为故障波束或良好波束。例如,当置信度分数c小于阈值thr时,lidar波束被分类为故障波束。相反,当置信度分数c等于或大于阈值thr时,lidar波束被分类为良好波束。可以根据给定的应用来选择度量的类型和数量。度量可以包括但不限于异常值度量、形状上下文度量和高度度量。基于度量和/或阈值中的至少一个来检测故障波束。阈值可以是静态预定义阈值或可调节阈值。
[0070]
度量所基于的lidar点云的特性、特征和/或属性可以包括但不限于点计数、点间隔、点密度、lidar点云的强度值、lidar点云的数据点的坐标值、激光数、激光扫描角度、范围和/或每个波束的方位角的范围梯度。lidar点云的特性、特征和/或属性被用于确定关于(多个)lidar点云的统计事实。统计事实可以包括但不限于异常值事实(例如,chauvenet统计事实)、形状上下文事实和/或高度事实(例如,高度的直方图)。统计事实可以定义度量。
[0071]
在一些场景中,使用多种方法的组合来推断lidar波束的健康状况。第一种方法使用来自点云的点的分布。从每个点的强度值中提取分布,并且使用基于先前观察的启发式公式来推断lidar点云的质量分数。聚合的质量分数被用于一个lidar健康监测度量。第二种方法使用chauvenet标准,其是断言样本是否是来自样本的异常值的规范方式。chauvenet标准是一种确定异常值的技术,但是在lidar健康监测的背景下,可以使用其他已知或将要已知的技术。第三种方法使用局部距离滤波器来进一步从点云中找到异常值。
[0072]
因此,在这些场景中,基于lidar点云中的数据点的总数、lidar点云的强度值和/
或lidar点云的数据点的z坐标值来确定度量值。例如,通过以下方式计算第一度量m1:确定给定lidar点云中的数据点的总数t;以及将第一度量的值设置为相同(即,设置m1=t)。
[0073]
附加地或替代地,通过生成每个lidar点云的强度值的直方图来计算第二度量m2。直方图通过以下方式生成:聚合给定lidar点云中的数据点的强度值;以及确定每个强度值的数据点的总数nn(例如,10个数据点具有强度值1,而5个数据点具有强度值55,等等)。然后将直方图定义为总数的集合(例如,n0,

,n
255
)。总数的集合被转换为单个数量n。该转换可以使用线性组合算法或机器学习模型来实现。单个数量n可以等于数量的加权和。例如,单个数量n可以由以下数学等式(1)定义。
[0074]
n=(w1*n0)+(w2*n2)+(w3*n3)+...w255*n
255
)+w0
ꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0075]
其中w0、w1、w2、w3,
……
w255表示权重。然后将第二度量的值设置为等于n(即,设置m2=n)。
[0076]
附加地或替代地,计算第三度量m3。对于每个数据点,计算设备使用z坐标值za来计算从给定数据点到平均z坐标值zm的距离d。然后,计算设备:确定数据点的z坐标值的标准偏差sd;通过将距离d除以标准偏差sd来计算值dn(即,m3=d/sd);并且计算为数据点计算的所有值d0,...,dn-1的平均值avg。第三度量m3的值被设置为等于平均值(即,m3=avg)。
[0077]
置信度分数c是基于第一度量m1、第二度量m2和第三度量m3的加权平均来确定的。置信度分数c由数学等式(2)定义。
[0078]
c=(w1*m1)+(w2*m2)+(w3*m3)+w0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0079]
(i)当置信度分数c小于阈值thr时,lidar波束被分类为故障波束,或者(ii)当置信度分数c等于或大于阈值thr时,lidar波束被分类为良好波束。本解决方案不限于这些场景的细节。
[0080]
在完成506时,方法500继续508,其中为每个lidar波束生成诊断信号。在506中,每个诊断信号指示相应的lidar波束是被分类为良好波束还是故障波束。例如,诊断信号包括数字信号,该数字信号具有值零以指示相应的lidar波束被分类为良好波束,或者具有值一以指示相应的lidar波束被分类为故障波束。本解决方案不限于该示例的细节。
[0081]
接下来在510中,基于诊断信号识别不良质量的lidar点云数据。不良质量的lidar点云数据是由与诊断信号相关联的lidar波束生成的数据,该诊断信号具有指示它们被分类为故障波束的值。从504中获得的lidar点云数据中移除不良质量的lidar点云数据,以生成修改的lidar点云数据。修改的lidar点云数据可以在514中用于在线和/或离线生成地图(例如,通过聚合多个lidar点云)。地图可以显示在计算设备的显示屏(例如,图4的显示器454)上。随着讨论的进行,用于生成地图的说明性方法将变得显而易见。地图可以在516中用于控制av的自动驾驶操作。自动驾驶操作可以包括但不限于对象跟踪操作、对象轨迹预测操作、车辆轨迹确定操作和/或碰撞避免操作。例如,地图用于促进预测的对象轨迹、对象的预测的未来意图和/或车辆轨迹的生成。然后,如果与对象碰撞的风险水平可接受,则可以控制车辆遵循车辆轨迹,或者如果与对象碰撞的风险水平不可接受,则执行谨慎或紧急操纵。本解决方案不限于该示例的细节。附加地或替代地,516可以包括使av的操作模式改变(例如,从自主模式改变为至少部分手动操作模式,该至少部分手动操作模式需要经由直接与av的用户-软件交互和/或经由远程操作控制信号来自用户的输入)。随后,执行518,其
中方法500结束或执行其他操作(例如,返回到504)。
[0082]
现在参考图6,提供了用于地图生成的说明性方法600的流程图。方法600可以在图5的514中执行,以使用修改的lidar点云数据生成地图。
[0083]
如图6a所示,方法600开始于602并继续于604,其中由计算设备(例如,图1的计算设备100、图1的220和/或图4的400)获得修改的lidar点云数据。可以从数据存储(例如,图1的数据存储112和/或图4的存储器412)获得修改的lidar点云数据。修改的lidar点云数据可以包括由lidar系统(例如,图2的lidar系统264和/或图3的lidar系统300)从多个有利点或位置生成的3d范围数据。为每个有利点或位置提供3d点云。在606中,3d点云由计算设备彼此对准。可以使用任何已知或将要已知的技术来实现该点云对准。例如,使用同步定位和映射(slam)来对准3d点云,slam是众所周知的数据点对准技术。在608中,由计算设备组合的对准3d点云以形成组合3d点云。图7中提供了说明性组合3d点云700的图示。
[0084]
在610中,计算设备获得指定lidar系统的已知姿态、已知有利点/位置和已知lidar系统校准参数的信息。姿态包括被定义为3d地图坐标的位置、lidar系统所设置到的车辆或其他结构的角度和指向方向。可以从数据存储(例如,图1的数据存储112和/或图4的存储器412)获得信息。
[0085]
接下来,由计算设备执行光线追踪操作,以测试修改的lidar点云数据的任何对象是否在任何时间透视。静止对象(例如,建筑物)在任何时间都将不是透视的,但是移动对象上的数据点在给定时间将是透视的。光线追踪技术在本领域中是公知的。这里可以使用任何已知或将要已知的光线追踪技术。在一些场景中,执行612-616的光线追踪操作。在612中,计算设备为每个3d点云创建3d单元(称为“体素”)的体素网格。体素网格是公知的。3d点云的单个数据点包含在给定的3d单元中。包括数据点的体素被称为占用体素,而不存在任何数据点的体素被称为未占用体素。
[0086]
614涉及使用在610中获得的信息(即,lidar系统的已知姿势、已知有利点/位置和已知lidar系统校准参数)为每个3d点云建模激光波束。通过定义从lidar系统的已知位置到其中的每个数据点的视线来为每个3d点云建模激光波束。图8中提供了示出说明性视线812、814、816、818、820、838、840、842的图示。图8中仅示出了x轴和y轴。为了简化讨论,z轴未在图8中示出。
[0087]
在图8的部分(a)中,示出了多个数据点802、804、806、808、810。当生成数据点802、804、806、808、810时,图8(a)的箭头800指向表示3d激光扫描仪的第一有利点/位置的图形上的位置。视线812从3d激光扫描仪的第一有利点/位置800延伸到数据点802。视线814从3d激光扫描仪的第一有利点/位置800延伸到数据点804。视线816从3d激光扫描仪的第一有利点/位置800延伸到数据点806。视线818从3d激光扫描仪的第一有利点/位置800延伸到数据点808。视线820从3d激光扫描仪的第一有利点/位置延伸到数据点810。
[0088]
在图8的部分(b)中,示出了多个数据点832、834、836。当生成数据点832、834、836时,图8(b)的箭头830指向表示3d激光扫描仪的第二有利点/位置的图形上的位置。视线838从3d激光扫描仪的第二有利点/位置延伸到数据点802。视线814从3d激光扫描仪的第一有利点/位置830延伸到数据点832。视线840从3d激光扫描仪的第一有利点/位置830延伸到数据点834。视线842从3d激光扫描仪的第一有利点/位置830延伸到数据点836。本解决方案不限于图8的细节。
[0089]
在616中,计算设备执行操作以使用在612中创建的体素网格和在614中创建的建模激波束来识别静态占用体素、动态占用体素和未占用体素。未占用体素包括不存在任何数据点的体素。静态占用体素包括单个3d点云的视线穿过的数据点。例如,在图8中,静态占用体素包括包含数据点802、804、806、810、832、834、836的体素。这些数据点可以例如与(多个)建筑物、(多个)树和/或(多个)标志相关联。动态占用体素包括包含至少两个3d点云的视线穿过的数据点的体素。例如,在图8中,动态占用体素包括包含数据点808的体素,因为部分(a)的视线818和部分(b)的视线840都与之相交。数据点808可以例如与移动车辆(例如,图1的车辆1022)、行人(例如,图1的行人116)或自行车骑行者(例如,图1的自行车骑行者114)相关联。通过使视线812-820、838-842穿过体素网格来标识静态占用体素和动态占用体素。本解决方案不限于这些示例的细节。
[0090]
再次参考图6a,方法600继续到618,其中计算设备执行操作以从组合3d点云中移除与动态占用体素相关联的数据点,以生成修剪的3d点云。图9中示出了说明性的修剪的3d点云900。随后,方法600继续图6b的语义标签类操作,以进一步从修剪的3d点云中移除与移动对象相关联的数据点。
[0091]
如图6b所示,620涉及由计算设备从数据存储(例如,图1的数据存储112和/或图4的存储器412)获得修剪的3d点云的语义标签。数据点的语义标签是公知的。语义标签可以包括但不限于无数据、未标记、道路、人行道、建筑物、栅栏、植被、地形、车辆、人、动物和/或标志。修剪的3d点云的每个数据点具有与其相关联的语义标签。然后,在操作622-640中使用语义标签以及修剪的3d点云来测试给定语义标签类别(例如,道路和/或人行道)的任何剩余数据点是否驻留在给定表面上方一定距离处。
[0092]
操作622-626涉及:从数据存储获得预定义的图块大小(例如,30米
×
30米);选择修剪的3d点云的具有预定义图块大小的部分(例如,图9的部分902);以及处理修剪的3d点云的所选部分中的数据点,以为每个感兴趣的语义标签类别(例如,道路和人行道)生成2d二元掩码。
[0093]
在一些场景中,为道路语义标签类和人行道语义标签类创建2d二元掩码。在图10中提供了用于道路语义标签类别的说明性2d二元掩码1000。通过将修剪的3d点云的所选部分的3d数据点投影到2d平面来创建2d二元掩码1000。与道路相关联的数据点以第一颜色(例如,白色)示出,而所有其他数据点以第二不同颜色(例如,黑色)示出。在图11中提供了用于人行道语义标签类别的说明性2d二元掩码1100。通过将修剪的3d点云的所选部分的3d数据点投影到2d平面来创建2d二元掩码1100。与人行道相关联的数据点以第一颜色(例如,白色)示出,而所有其他数据点以第二不同颜色(例如,黑色)示出。本解决方案不限于图10-图11的细节。
[0094]
再次参考图6b,方法600继续到628,其中计算设备选择2d二进制掩码中的一个以用于后续处理。然后,计算设备在630中处理所选择的2d二元掩码,以确定定义给定语义标签类别的对象(例如,道路或人行道)的2d体积的x坐标和y坐标。接下来在632中,计算设备识别修剪的3d点云中的数据点,该数据点(i)与由2d体积定义的对象具有相同的语义标签类别(例如,道路或人行道)并且(ii)具有包含在2d体积中的x坐标/y坐标。
[0095]
在634中,将每个识别的数据点的z坐标与最小阈值和最大阈值进行比较。阈值是针对多个语义标签类别中的相应语义标签类别(例如,道路或人行道)预定义的。语义标签
类别可以具有与其相关联的相同或不同的(多个)阈值。在636中基于比较操作的结果可选地标记数据点以用于移除。例如,标记具有大于最小阈值(0.3米)且小于最大阈值(对于道路表面4.5米且对于人行道表面2.5米)的z坐标的数据点以用于移除。
[0096]
针对接下来的(多个)2d二元掩码重复630-636的操作,如638所示。此外,针对修剪的3d点云的(多个)接下来的部分重复操作626-638,如640所示。在642中,从修剪的3d点云中移除数据点以生成最终3d点云。图9中示出了最终3d点云904的图示。3d点云904不存在或具有减少数量的与移动对象相关联的数据点。值得注意的是,驻留在道路和/或人行道上方的静止结构(例如,树木和固定装置)的数据点已经保存在最终3d点云904中。最终3d点云定义高清晰度地图。随后,执行644,其中方法600结束或执行其他处理(例如,返回到图5a的602)。
[0097]
如上所述,av可以使用高清晰度地图来进行对象轨迹预测、车辆轨迹生成和/或碰撞避免。图12中提供了可用于理解如何根据本解决方案实现车辆控制的框图。图12中执行的操作中的全部或一些可以由车辆的车载计算设备(例如,图1的av 1021)和/或远程计算设备(例如,图1的计算设备110)执行。
[0098]
在框1202中,检测车辆的位置。可以基于从车辆的位置传感器(例如,图2的位置传感器260)输出的传感器数据来进行该检测。该传感器数据可以包括但不限于gps数据。然后,将指定车辆的检测到的位置的信息1220传递到框1206。
[0099]
在框1204中,在车辆附近检测到对象。该检测是基于从车辆的相机(例如,图2的相机262)输出的传感器数据进行的。这里可以使用任何已知或将要已知的对象检测技术。关于检测到的对象1222的信息被传递到框1206。该信息包括但不限于对象的位置、对象的方位、对象的空间范围、对象的初始预测轨迹、对象的速度和/或对象的分类。初始预测对象轨迹可以包括但不限于指向对象的前进方向的线性路径。可以使用根据上述方法500和600生成的高清晰度地图1226(或最终3d点云)来生成对象的初始预测轨迹。
[0100]
在框1206中,使用来自框1202和1204的信息以及高清晰度地图1226来生成车辆轨迹。用于确定车辆轨迹的技术在本领域中是公知的。本文可以使用用于确定车辆轨迹的任何已知或将要已知的技术。例如,在一些场景中,这种技术涉及确定当对象在av前方时将经过对象的av的轨迹,对象具有与av移动的方向对准的航向方向,并且对象具有大于阈值的长度。本解决方案不限于该场景的细节。可以基于位置信息1220、对象检测信息1222和/或存储在车辆的数据存储中的高清晰度地图1226来确定车辆轨迹1224。车辆轨迹1224可以表示不具有突然变化的平滑路径,否则突然变化将提供乘客不适。例如,车辆轨迹由沿着道路的给定车道的行驶路径定义,其中在给定时间量内不预测对象行驶。然后将车辆轨迹1224提供给框1208。可以另外向框1208提供其它信息。该其他信息可以包括但不限于车辆和对象之间的碰撞的风险水平、关于风险水平是可接受的还是不可接受的指示、谨慎操纵标识符/细节、和/或紧急操纵标识符/细节。
[0101]
在框1208中,基于车辆轨迹1224生成转向角和速度命令。转向角和速度命令被提供给框1210以用于车辆动态控制。车辆动态控制是公知的。车辆动态控制使车辆遵循车辆轨迹1224(例如,如果与对象碰撞的风险水平可接受)或执行谨慎或紧急操纵(例如,如果与对象碰撞的风险水平不可接受)。本解决方案不限于该示例的细节。
[0102]
尽管已经关于一个或多个实施方式示出和描述了本解决方案,但是在阅读和理解
本说明书和附图后,本领域技术人员将想到等同的改变和修改。另外,虽然本解决方案的特定特征可能已经仅关于若干实施方式中的一个公开,但是这样的特征可以与其他实施方式的一个或多个其他特征组合,如对于任何给定或特定应用可能是期望的和有利的。因此,本解决方案的广度和范围不应受任何上述实施例的限制。相反,本解决方案的范围应当根据所附权利要求及其等同物来限定。

技术特征:
1.一种用于操作自动驾驶车辆的方法,包括:由计算设备获得由所述自动驾驶车辆的lidar系统生成的lidar点云数据;由所述计算设备检查所述lidar点云数据以推断lidar波束的健康状况;由所述计算设备基于推断出的所述lidar波束的健康状况来识别不良质量的点云数据;由所述计算设备从所述lidar点云数据中移除所述不良质量的点云数据,以生成修改的lidar点云数据;以及由所述计算设备使所述自动驾驶车辆基于所述修改的lidar点云数据执行至少一个自动驾驶操作或模式改变。2.根据权利要求1所述的方法,其中,通过基于由所述lidar点云数据定义的lidar点云的特性计算多个度量来推断所述lidar波束的健康状况。3.根据权利要求2所述的方法,其中,通过基于所述多个度量进一步计算置信度分数来推断所述lidar波束的健康状况。4.根据权利要求3所述的方法,其中,通过基于所述置信度分数将所述lidar波束进一步分类为故障波束或良好波束来推断所述lidar波束的健康状况。5.根据权利要求4所述的方法,其中,当所述置信度分数小于阈值时,所述lidar波束被分类为故障波束。6.根据权利要求2所述的方法,其中,所述多个度量包括异常值度量、形状上下文度量和高度度量中的至少一个。7.根据权利要求2所述的方法,其中,基于所述lidar点云中的数据点的总数、所述lidar点云的强度值和所述lidar点云中的数据点的z坐标值中的至少一个来确定所述多个度量。8.根据权利要求2所述的方法,其中,所述多个度量中的给定度量等于所述lidar点云中的数据点的总数。9.根据权利要求2所述的方法,其中,通过以下方式生成所述多个度量中的给定度量:确定多个数量,每个所述数量包括针对所述lidar点云的给定强度值的数据点的总数;以及将所述多个数量转换成单个数量。10.根据权利要求1所述的方法,其中,通过以下方式生成所述多个度量中的给定度量:使用z坐标值来计算从每个给定数据点到平均z坐标值的距离;确定lidar点云中的数据点的z坐标值的标准偏差;将每个距离除以所述标准偏差以获得值;计算所述值的平均值。11.一种系统,包括:处理器;非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质包括编程指令,所述编程指令被配置为使所述处理器实施用于操作自动驾驶车辆的方法,其中所述编程指令包括用于以下操作的指令:获得由所述自动驾驶车辆的lidar系统生成的lidar点云数据;
检查所述lidar点云数据以推断lidar波束的健康状况;基于推断出的所述lidar波束的健康状况来识别不良质量的点云数据;从所述lidar点云数据中移除所述不良质量的点云数据,以生成修改的lidar点云数据;以及使所述自动驾驶车辆基于所述修改的lidar点云数据执行至少一个自动驾驶操作或模式改变。12.根据权利要求11所述的系统,其中,通过基于由所述lidar点云数据定义的lidar点云的特性计算多个度量来推断lidar波束的健康状况。13.根据权利要求12所述的系统,其中,通过基于所述多个度量进一步计算置信度分数来推断所述lidar波束的健康状况。14.根据权利要求13所述的系统,其中,通过基于所述置信度分数将所述lidar波束进一步分类为故障波束或良好波束来推断所述lidar波束的健康状况。15.根据权利要求14所述的系统,其中,当所述置信度分数小于阈值时,所述lidar波束被分类为故障波束。16.根据权利要求12所述的系统,其中,所述多个度量包括异常值度量、形状上下文度量和高度度量中的至少一个。17.根据权利要求12所述的系统,其中,基于所述lidar点云中的数据点的总数、所述lidar点云的强度值和所述lidar点云中的数据点的z坐标值中的至少一个来确定所述多个度量。18.根据权利要求12所述的系统,其中,所述多个度量中的给定度量等于所述lidar点云中的数据点的总数。19.根据权利要求12所述的系统,其中,所述多个度量中的给定度量通过以下方式生成:确定多个数量,每个所述数量包括针对所述lidar点云的给定强度值的数据点的总数;以及将所述多个数量转换成单个数量。20.一种存储指令的非暂时性计算机可读介质,所述指令在由至少一个计算设备执行时被配置为使所述至少一个计算设备执行操作,所述操作包括:获得由所述自动驾驶车辆的lidar系统生成的lidar点云数据;检查所述lidar点云数据以推断lidar波束的健康状况;基于推断出的所述lidar波束的健康状况来识别不良质量的点云数据;从所述lidar点云数据中移除所述不良质量的点云数据,以生成修改的lidar点云数据;以及使所述自动驾驶车辆基于所述修改的lidar点云数据执行至少一个自动驾驶操作或模式改变。

技术总结
用于生成操作自动驾驶车辆的系统和方法。该方法包括:获得由自动驾驶车辆的LiDAR系统生成的LiDAR点云数据;检查LiDARLiDAR点云数据以推断LiDARLiDAR波束的健康状况;基于推断出的LiDARLiDAR波束的健康状况来识别不良质量的点云数据;从LiDAR点云数据中移除不良质量的点云数据,以生成修改的LiDAR点云数据;以及基于修改的LiDAR点云数据使自动驾驶车辆执行至少一个自动驾驶操作或模式改变。行至少一个自动驾驶操作或模式改变。行至少一个自动驾驶操作或模式改变。


技术研发人员:H
受保护的技术使用者:埃尔构人工智能有限责任公司
技术研发日:2021.11.16
技术公布日:2023/9/7
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐