发明内容
在一些实施方式中,提供了一种基于附加车辆的所确定的横摆参数而适配自动驾驶车辆的自主控制的方法。该方法包括从车辆的相位相干光检测和测距(LIDAR)组件接收相位相干LIDAR组件的感测周期的相位相干LIDAR数据点的组。该组的相位相干LIDAR数据点中的每个指示环境中的对应点的对应范围(range)和对应速度,并且该组的相位相干LIDAR数据点中的每个基于相位相干LIDAR组件在感测周期期间的对应感测事件来生成。该方法进一步包括确定该组的相位相干LIDAR数据点的子组对应于除车辆之外的附加车辆。该方法进一步包括基于确定子组对应于附加车辆,基于子组中的多个相位相干LIDAR数据点来确定附加车辆的横摆参数。该方法进一步包括基于附加车辆的所确定的横摆参数来适配车辆的自主控制。
本文描述的技术的这些和其它实施方式能够包括以下特征中的一个或多个。
在一些实施方式中,确定该组的相位相干LIDAR数据点的子组对应于附加车辆包括:使用经训练的机器学习模型处理该组的相位相干LIDAR数据点;基于使用经训练的机器学习模型对该组的相位相干LIDAR数据点的处理,生成指示子组具有车辆分类的输出;以及基于指示子组具有车辆分类的输出,确定子组对应于附加车辆。
在一些实施例中,基于子组中的多个相位相干LIDAR数据点确定附加车辆的横摆参数包括:确定子组的多个相位相干LIDAR数据点中的一个或多个的第一集合;基于子组的多个相位相干LIDAR数据点中的一个或多个的第二集合在空间上与第一集合的偏移,确定该第二集合;以及基于第一集合与第二集合的比较确定横摆参数。在那些实施方式的一些版本中,确定第一集合和第二集合相对于彼此在空间上偏移至少部分地基于由第一集合和第二集合指示的对应范围。在那些实施方式的一些附加或可替代版本中,基于第一集合与第二集合的比较来确定附加车辆的横摆参数包括:基于第一集合的第一设定速度量值与第二集合的第二设定速度量值的比较来确定横摆参数。第一设定速度量值基于第一集合的对应速度,而第二设定速度量值基于第二集合的对应速度。在各种实施方式中,附加车辆的横摆参数可以包括附加车辆的横摆率,并且基于第一集合与第二集合的比较来确定附加车辆的横摆参数可以进一步包括:基于第一集合和第二集合之间的空间偏移来确定距离;和基于第一设定速度量值与第二设定速度量值的比较以及距离来确定横摆率。基于第一设定速度量值和第二设定速度量值的比较以及距离来确定横摆率可以包括:基于第一设定速度量值和第二设定速度量值的比较来确定第一设定速度量值和第二设定速度量值之间的速度差;和基于距离将速度差转换成横摆率。在各种实施方式中,附加车辆的横摆参数可以是附加车辆的下限横摆率,并且该方法可以进一步包括确定附加车辆的附加横摆参数,该附加横摆参数是上限横摆率并且基于第一集合与第二集合之间的比较来确定。例如,该方法可以进一步包括基于第一设定速度量值与第二设定速度量值的比较来确定第一设定速度量值和第二设定速度量值之间的速度差,并且确定下限横摆率可以包括将速度差除以距离,并且确定上限横摆率可以包括将速度差除以下述值:该值基于距离,但是该值的量值相对于距离减小。在确定相位相干LIDAR数据点的第一集合和第二集合的各种实施方式中,第一集合包括多个相位相干LIDAR数据点中的多个,并且第一设定速度量值基于多个相位相干LIDAR数据点中的多个的对应速度来确定。例如,第一设定速度量值可以基于多个相位相干LIDAR数据点中的多个的对应速度的平均值。在其中横摆参数包括横摆率并且其中确定附加车辆的横摆参数基于第一集合与第二集合的比较的各种实施方式中,确定横摆参数包括:基于第一设定速度量值与第二设定速度量值的比较来确定速度差;识别附加车辆的存储模型;以及基于附加车辆的存储模型将速度差转换成横摆率。第一设定速度量值可以基于第一集合的对应速度,而第二设定速度量值可以基于第二集合的对应速度。在那些各种实施方式中的一些中,识别附加车辆的存储模型包括基于子组的相位相干LIDAR数据点,从多个候选存储模型中选择存储模型。
在各种实施方式中,横摆参数包括横摆率和横摆方向。在那些实施方式中的一些中,基于子组的多个相位相干LIDAR数据点来确定附加车辆的横摆参数包括:使用经训练的机器学习模型来处理子组的多个相位相干LIDAR数据点;基于使用经训练的机器学习模型对该组的相位相干LIDAR数据点的处理,生成指示横摆率的输出;以及基于该输出来确定横摆率和横摆方向。在那些实施方式的一些版本中,使用经训练的机器学习模型来处理子组的多个相位相干LIDAR数据点包括使用经训练的机器学习模型来处理子组的所有相位相干LIDAR数据点。
在一些实施方式中,附加车辆的横摆参数是指示横摆率的速度差。在那些实施方式中的一些中,基于附加车辆的所确定的横摆参数适配车辆的自主控制包括基于速度差超过阈值来适配自主控制。
在一些实施方式中,基于附加车辆的所确定的横摆参数适配车辆的自主控制包括改变车辆的速度和/或车辆的方向。在那些实施方式中的一些中,横摆参数是横摆率,并且基于附加车辆的所确定的横摆率适配车辆的自主控制响应于确定所确定的横摆率满足阈值。
在一些实施方式中,基于附加车辆的所确定的横摆参数适配车辆的自主控制包括:基于所确定的横摆参数确定附加车辆的至少一个候选轨迹;和基于至少一个候选轨迹适配车辆的自主控制。
在一些实施方式中,该组相位相干LIDAR数据点包括三维点云。
在一些实施方式中,相位相干LIDAR组件是相位相干LIDAR单脉冲组件。在那些实施方式中的一些中,相位相干LIDAR组件的对应感测事件均包括在相位相干LIDAR单脉冲组件的第一接收器处的第一接收器感测事件以及在相位相干LIDAR单脉冲组件的第二接收器处的第二接收器感测事件。在那些实施方式的一些版本中,相位相干LIDAR组件的对应感测事件进一步包括在相位相干LIDAR单脉冲组件的第三接收器处的第三接收器感测事件。
在一些实施方式中,相位相干LIDAR组件是调频连续波(FMCW)LIDAR组件。
在一些实施方式中,提供了一种基于附加车辆的所确定的横摆率适配自动驾驶车辆的自主控制的方法,并且该方法包括从车辆的相位相干LIDAR组件接收捕获车辆的环境的相位相干LIDAR数据。对于车辆的环境中的多个点中的每个点,相位相干LIDAR数据指示基于相位相干LIDAR组件的对应感测事件的至少一个对应范围和至少一个对应速度。该方法进一步包括确定相位相干LIDAR数据的子组对应于处于环境中、除车辆之外的附加车辆。该方法进一步包括确定附加车辆的横摆率以及基于附加车辆的所确定的横摆率适配车辆的自主控制。确定附加车辆的横摆率基于由子组的相位相干LIDAR数据指示的多个对应速度。
本文描述的技术的这些和其它实施方式能够包括以下特征中的一个或多个。
在一些实施方式中,确定相位相干LIDAR数据的子组对应于附加车辆包括:使用经训练的机器学习模型处理相位相干LIDAR数据;基于使用经训练的机器学习模型处理相位相干LIDAR数据生成指示子组具有车辆分类的输出;以及基于指示子组具有车辆分类的输出选择子组。
在一些实施方式中,确定附加车辆的横摆率包括:基于子组的相位相干LIDAR数据指示的多个对应速度确定速度梯度;并且基于速度梯度确定横摆率。
在一些实施方式中,基于附加车辆的所确定的横摆率适配车辆的自主控制包括改变车辆的速度以及车辆的方向其中之一或两者。
在一些实施方式中,相位相干LIDAR数据包括:距离多普勒图像、三维点云和/或中频波形。中频波形可以基于本地光学振荡器在对应的感测事件期间与时间延迟反射的混合来生成。
在一些实施方式中,相位相干LIDAR组件是至少包括第一相干接收器和第二相干接收器的相位相干LIDAR单脉冲组件。在那些实施方式中的一些中,相位相干LIDAR组件的对应感测事件每个都包括相位相干LIDAR单脉冲组件的第一相干接收器处的第一接收器感测事件以及相位相干LIDAR单脉冲组件的第二相干接收器处的第二接收器感测事件(以及可选的进一步接收器处的进一步接收器感测事件)。
在一些实施方式中,相位相干LIDAR组件是FMCW LIDAR组件。
在一些实施方式中,提供了一种基于附加车辆的所确定的横摆参数适配自动驾驶车辆的自主控制的方法,并且该方法包括从车辆的相位相干LIDAR单脉冲组件接收捕获车辆的环境的相位相干LIDAR单脉冲数据。相位相干LIDAR单脉冲组件包括激光源以及至少第一相干接收器和第二相干接收器。对于车辆的环境中的多个点中的每个点,相位相干LIDAR单脉冲数据都指示基于相位相干LIDAR单脉冲组件的对应感测事件的至少一个对应范围和至少一个对应速度。相位相干LIDAR组件的对应感测事件每个都包括通过第一接收器进行的第一接收器感测事件和通过第二接收器进行的第二接收器感测事件。该方法进一步包括基于由相位相干LIDAR单脉冲数据指示的多个对应速度确定车辆的环境中的附加车辆的横摆参数。该方法进一步包括基于附加车辆的所确定的横摆参数适配车辆的自主控制。
本文公开的技术的这些和其他实施方式可以可选地包括一个或多个下列特征。
在一些实施方式中,基于相位相干LIDAR单脉冲数据确定附加车辆的横摆参数包括:确定相位相干LIDAR单脉冲数据的第一集合;基于相位相干LIDAR单脉冲数据的第二集合在空间上与第一集合的偏移确定该第二集合;以及基于第一设定速度和第二设定速度确定横摆参数。第一设定速度基于第一集合的至少一个对应速度,第二设定速度基于第二集合的至少一个对应速度。在那些实施方式中的一些中,附加车辆的横摆参数包括附加车辆的横摆率。在那些实施方式的一些版本中,基于第一设定速度与第二设定速度的比较确定附加车辆的横摆参数进一步包括:基于第一集合与第二集合之间的空间偏移确定距离;和根据第一设定速度、第二设定速度以及距离确定横摆率。在那些版本中的一些中,根据第一设定速度、第二设定速度和距离确定横摆率包括:确定第一设定速度与第二设定速度之间的速度差;和基于距离将速度差转换成横摆率。
在一些实施方式中,横摆参数包括横摆率,并且基于由相位相干LIDAR单脉冲数据指示的多个对应速度确定横摆参数包括:识别附加车辆的存储模型;和基于多个对应速度并且基于附加车辆的存储模型确定横摆率。在那些实施方式中的一些中,基于多个对应速度并基于附加车辆的存储模型确定横摆率包括:基于多个对应速度确定速度差;和基于附加车辆的存储模型将速度差转换成横摆率。
在一些实施方式中,横摆参数包括横摆率,并且基于相位相干LIDAR单脉冲数据确定附加车辆的横摆参数包括:使用经训练的机器学习模型处理相位相干LIDAR单脉冲数据的至少一部分;基于使用经训练的机器学习模型处理相位相干LIDAR单脉冲数据的至少一部分来生成指示横摆率的输出;以及基于输出确定横摆率。
在一些实施方式中,相位相干LIDAR组件是FMCW LIDAR组件。
在一些实施方式中,提供了一种方法,包括从车辆的相位相干LIDAR组件接收捕获车辆的环境的相位相干LIDAR数据。对于车辆的环境中的多个点中的每个点,相位相干LIDAR数据都指示基于相位相干LIDAR组件的对应感测事件的至少一个对应范围和至少一个对应速度。该方法进一步包括确定相位相干LIDAR数据的子组对应于处于环境中并附加于车辆的附加车辆。该方法进一步包括基于由子组的相位相干LIDAR数据指示的多个对应速度,确定附加车辆的横摆参数。该方法进一步包括向车辆的至少一个子系统(诸如车辆的规划子系统和/或控制子系统)提供所确定的横摆参数。
在一些实施方式中,提供了一种方法,该方法包括从车辆的相位相干组件接收相位相干LIDAR数据,该相位相干LIDAR数据捕获车辆的环境并且对于车辆的环境中的多个点中的每个点都指示基于相位相干LIDAR组件的对应感测事件的至少一个对应范围和至少一个对应速度。该方法进一步包括基于由相位相干LIDAR数据指示的多个对应速度,确定处于车辆的环境中的附加车辆的横摆参数。该方法进一步包括向车辆的至少一个子系统(诸如车辆的规划子系统和/或控制子系统)提供所确定的横摆参数。
上述两个实施方式,以及本文公开的技术的其他实施方式可以包括一个或多个下列特征。
在一些实施方式中,横摆参数包括横摆率,并且基于相位相干LIDAR数据确定附加车辆的横摆参数包括使用经训练的机器学习模型处理相位相干LIDAR数据的至少一部分;基于使用经训练的机器学习模型处理相位相干LIDAR数据的至少一部分来生成指示横摆率的输出;以及基于输出确定横摆率。
在一些实施方式中,相位相干LIDAR组件是相位相干单脉冲组件,并且相位相干LIDAR数据是相位相干LIDAR单脉冲数据。在一些附加或可替代实施方式中,相位相干LIDAR组件是FMCW LIDAR组件。
在一些实施方式中,提供了一种训练机器学习模型的方法。该机器学习模型将用于至少一辆自动驾驶车辆的自主控制,并且该方法包括生成多个训练实例。生成每个训练实例包括:基于来自对应自动驾驶车辆的视觉组件的视觉数据的对应实例,生成训练实例的训练实例输入;并且基于附加车辆数据的对应实例生成训练实例的监督训练实例输出,该附加车辆数据的对应实例基于由视觉数据的对应实例捕获的对应附加车辆的一个或多个传感器。附加车辆数据的对应实例指示对应附加车辆的至少一个动态特性的对应当前状态。附加车辆数据的对应实例用于基于确定附加车辆数据的对应实例在时间上对应于视觉数据的对应实例来生成监督训练实例输出。该方法进一步包括基于多个训练实例来训练机器学习模型,以及提供经训练的机器学习模型以用于控制至少一辆自动驾驶车辆。
本文公开的技术的这些和其他实施方式可以可选地包括一个或多个下列特征。
在一些实施方式中,视觉数据的对应实例是光检测和测距(LIDAR)数据,视觉组件是LIDAR组件。在那些实施方式中的一些中,LIDAR组件是相位相干LIDAR组件,并且LIDAR数据包括相位相干LIDAR组件的感测周期的一组LIDAR数据点。该组的LIDAR数据点中的每个都指示环境中的对应点的对应范围和对应速度,并且每个都基于感测周期的对应感测事件来生成。
在一些实施方式中,训练实例的监督训练实例输出进一步包括限制区域的指示,限制区域限制了捕获对应附加车辆的视觉数据的一部分。
在一些实施方式中,训练机器学习模型包括:使用机器学习模型处理训练实例的训练实例输入,以生成预测输出;基于预测输出和训练实例的监督训练实例输出生成损失;并基于所生成的损失来更新机器学习模型。
在一些实施方式中,附加车辆数据的实例包括一个或多个横摆参数,并且对应附加车辆的一个或多个传感器至少包括横摆率传感器。在那些实施方式中的一些中,附加车辆数据基于对对应附加车辆的控制器局域网的监控来确定。
在一些实施方式中,附加车辆数据的实例包括对应附加车辆的速度和加速度其中之一或两者。
在一些实施方式中,附加车辆数据的实例包括横摆参数以及速度和加速度其中之一或两者。
在一些实施方式中,该方法进一步包括:由至少一个自动驾驶车辆的给定自动驾驶车辆的至少一个处理器使用经训练的机器学习模型来处理(由给定自动驾驶车辆的给定视觉组件捕获的)给定视觉数据;基于处理,生成由给定视觉数据捕获的给定附加车辆的预测状态;以及基于预测状态控制给定自动驾驶车辆。在那些实施方式中的一些中,给定视觉数据是在视觉组件的感测周期期间捕获的视觉数据的子组,并且该方法进一步包括基于确定子组对应于给定附加车辆来生成视觉数据的子组。在那些实施方式的一些版本中,确定子组对应于给定附加车辆包括:使用附加对象检测和分类模型处理视觉数据;和基于根据使用附加对象检测和分类模型处理视觉数据而生成的输出来确定子组对应于给定附加车辆。
在一些实施方式中,提供了一种使用经训练的机器学习模型控制自动驾驶车辆的方法。该方法由自动驾驶车辆的一个或多个处理器实现,该方法包括使用经训练的机器学习模型来处理给定视觉数据,其中,给定视觉数据被自动驾驶车辆的视觉组件捕获。该方法进一步包括基于处理,生成由给定视觉数据捕获的给定附加车辆的至少一个动态特性的预测状态。该方法进一步包括基于预测状态控制自动驾驶车辆。经训练的机器学习模型基于多个训练实例来训练,这些训练实例每个都包括:基于来自对应的自动驾驶车辆的视觉组件的视觉数据的对应实例的训练实例输入;和基于附加车辆数据的对应实例的监督训练实例输出,附加车辆数据的对应实例基于由视觉数据的对应实例捕获的对应附加车辆的一个或多个传感器。
本文公开的技术的这些和其他实施方式可以包括一个或多个下列特征。
在一些实施方式中,给定视觉数据是在视觉组件的感测周期期间捕获的视觉数据的子组,并且该方法进一步包括基于确定子组对应于给定附加车辆生成视觉数据的子组。在那些实施方式中的一些中,确定子组对应于给定附加车辆包括:使用附加对象检测和分类模型处理视觉数据;并且基于根据使用附加对象检测和分类模型处理视觉数据而生成的输出来确定子组对应于给定附加车辆。
在一些实施方式中,控制自动驾驶车辆包括控制自动驾驶车辆的速率和/或方向。
在一些实施方式中,至少一个特性包括附加车辆的横摆率和/或横摆方向。
在一些实施方式中,至少一个特性包括附加车辆的速度和/或加速度。
在一些实施方式中,至少一个特性包括附加车辆的横摆参数、速度和/或加速度。
此外,一些实施方式包括一种具有一个或多个处理器的自动驾驶车辆,所述一个或多个处理器可操作来执行存储在相关存储器中的指令,并且其中指令被配置成使得执行本文描述的方法中的任一种。一些实施方式附加地或替换地包括一种或多种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储可由一个或多个处理器执行以执行本文描述的方法中的任一种的计算机指令。
应该领会,在本文中更详细地描述的前述构思和附加构思的所有组合被设想为是本文公开的主题的一部分。例如,在本公开的结尾处出现的要求保护的主题的所有组合被设想为是本文公开的主题的一部分。
具体实施方式
在对车辆的各种级别的自主控制(例如,上述SAE级别1-5中的任何一个)中,有必要确定所谓的自我车辆(即,该车辆被自动控制)的各种参数——并基于自动驾驶车辆自身的各种确定的参数适配对自我车辆的自主控制。这样的参数之一是自我车辆的横摆率。车辆的横摆率是车辆绕车辆的横摆轴线旋转的角速度,通常以弧度/秒或度/秒为单位。例如,可以基于来自自我车辆的横摆率传感器的输出来确定自我车辆的横摆率,该横摆率传感器诸如为测量自我车辆的科里奥利力的压电或微机械传感器。自我车辆的横摆率已经被用于各种车辆控制技术(诸如自我车辆的电子稳定性控制(ESC))中。在ESC中,来自横摆率传感器和其他传感器的输出可以用于适配例如对防抱死制动系统(ABS)的控制,由此减轻自我车辆的牵引力损失/打滑。
在自我车辆(为了简单起见,在下文中也称为“车辆”)的各种级别的自主控制中,还期望和/或有必要确定处于自我车辆环境中并附加于自我车辆的附加车辆的各种参数。例如,可能有必要确定附加车辆相对于车辆的姿态(位置以及可选地定向),并确定附加车辆正相对于车辆如何移动。例如,当确定附加车辆的姿态和移动可能导致如果车辆在其当前有意轨迹上继续行驶,附加车辆太靠近车辆时,则可能需要车辆的自主回避制动和/或自主回避转向。
本文公开的实施方式主要涉及确定附加车辆的横摆参数,并且基于附加车辆的所确定的横摆参数来适配对车辆的自主控制。例如,可以基于附加车辆的所确定的横摆参数来适配车辆的自主转向、加速和/或减速。附加车辆的横摆参数可以包括例如附加车辆的至少一个横摆率。横摆率可以指示附加车辆绕其横摆轴线旋转的角速度,并可选地指示该旋转的方向。附加车辆的横摆参数可以附加地或可替代地包括至少一个速度差,该速度差指示附加车辆的两个部分之间的速度差的量值,可选地连同附加车辆绕其横摆轴线的旋转方向的指示。横摆参数可以附加地或可替代地包括附加车辆是否正在经历横摆移动的指示(例如,附加车辆是否正在经历绕其横摆轴线的至少阈值移动程度)。
在本文公开的许多实施方式中,基于来自车辆的相位相干光检测和测距(LIDAR)组件的数据来确定附加车辆的横摆参数。来自车辆的相干LIDAR组件的数据在本文中被称为“相位相干LIDAR数据”。如本文所描述的,相位相干LIDAR数据能够针对环境中的多个点中的每一个,指示至少点的范围和点的速度。点的范围指示从相位相干LIDAR组件的接收器到该点的距离。点的速度指示点的速度的幅度(和任选地方向)。所指示的点的范围和速度基于相位相干LIDAR组件的对应感测事件。因此,通过感测周期的感测事件,能够确定指示环境中的大量点的瞬时范围和瞬时速度的相位相干LIDAR数据。本文公开的实施方式能够基于通过FMCW LIDAR数据中的至少一些所指示的瞬时范围和瞬时速度确定附加车辆的瞬时横摆参数。因此,基于感测周期的相位相干LIDAR数据确定的横摆参数基于附加车辆在感测周期期间的横摆运动为附加车辆提供横摆信息,而无需参考来自未来感测周期的相位相干LIDAR数据。这使得能够快速解析附加车辆的当前横摆参数,并且结果使得能够鉴于当前横摆参数快速确定是否需要适配车辆的控制(并且在确定了需要适配时使得能实现快速适配)。
通常,LIDAR是使用光谱中的电磁波的反射来确定点在环境中的范围的技术。例如,一些LIDAR实施方式基于测量光脉冲到点的往返延迟确定点的范围。LIDAR组件能够包括用于在光谱中生成光脉冲的光源(例如,激光器)、用于引导光源(例如,以扫描方位角和仰角)的光学器件(例如,反射镜)、用于测量反射脉冲的传感器以及用于处理反射脉冲的本地处理器和/或其它电子组件。能够对反射脉冲进行处理以基于发射脉冲与反射脉冲之间的时间延迟(并且使用光速)来确定环境中的目标到点的范围。在一些实施方式中,LIDAR组件基于处理生成输出,该输出是可能具有强度值(基于反射脉冲的强度)的三维(3D)点云。
通常,相位相干LIDAR是使用光谱中的电磁波的反射来确定指示环境中的点的范围和径向速度的数据的技术。相位相干LIDAR组件包括生成波形的至少一个可调谐激光器(或其它光源),并且包括至少一个接收器,诸如相干光接收器。相位相干LIDAR组件也能够包括用于引导可调谐激光器的一个或多个组件,诸如能够用于将波形从可调谐激光器(在方位角和/或仰角上)引导到环境中的多个点的光学器件。另外,相位相干LIDAR组件能够包括用于处理波形的反射的本地处理器和/或其它电子组件。相位相干LIDAR组件的可调谐激光器是可调谐的,因为它能够被控制为使得它生成的波形通过跨波形适配波形的一种或多种性质被编码。能够控制可调谐激光器以生成各种类型的编码波形中的一种或多种,诸如啁啾波形、阶跃波形和/或脉冲波形。
调频连续波(FMCW)LIDAR组件是一种特定类型的相位相干LIDAR组件。FMCW LIDAR组件至少选择性地(例如,总是当在使用中时)控制其可调谐激光器,使得它生成既通过频率调制来编码且连续的波形。例如,波形可以是通过频率调制编码的连续阶跃波形。例如,能够控制可调谐激光器以生成通过适配阶跃频率来编码的阶跃波形。来自车辆的FMCWLIDAR组件的数据在本文中被称为“FMCW LIDAR数据”。因此,当“相位相干FMCW LIDAR数据”由FMCW LIDAR组件基于既通过频率调制来编码且又是连续的波形来生成时,“相位相干FMCW LIDAR数据”可以是“FMCW LIDAR数据”。
在相位相干LIDAR组件的感测周期期间,所发射的编码波形被依次引导到环境中的多个点中的每一个,并且依次从环境中的多个点中的每一个中反射出来。编码波形的反射部分各自由相位相干LIDAR组件的至少一个接收器在感测周期的对应感测事件中检测。例如,感测事件的反射部分能够由至少一个相干光接收器使用相干检测方案来检测,在该相干检测方案中,反射部分与对应于所发射的编码波形的本地光信号混合。相干检测方案可以是例如零差混合、外差混合、自外差混合或其它相干检测方案。从将反射部分与本地光信号混合生成的所得信号指示以下两者:(1)到对应点的范围和(2)对应点的速度。例如,能够通过对信号应用二维傅立叶变换来处理所得信号,以生成具有直接维度上的频率坐标和间接维度上的频率坐标的2D频谱。能够利用直接维度上的频率坐标来确定范围,并且能够利用间接维度上的频率坐标来确定速度。作为一个特定示例,能够使用零差检测方案,其中本地光信号是所发射的编码波形的分离部分并且被用作光接收器的光本地振荡器信号。在感测事件期间将本地振荡器与延时反射部分混合产生时变中频(IF)波形,该时变IF波形与对应点的范围直接有关。另外,当点正在移动时,多普勒频移将被叠加到IF波形,这能够用于确定点的径向速度。通过在感测周期的多个感测事件时的检测,为车辆的环境中的多个点中的每一个生成相位相干LIDAR数据,并且指示在感测周期内的环境中的每个点的范围、速度和任选地强度。
如上所述,在本文公开的各种实施方式中,在确定附加车辆的横摆参数时利用由相位相干LIDAR组件生成的相位相干LIDAR数据。在那些实施方式中,感测周期的相位相干LIDAR数据直接或间接指示与相位相干LIDAR组件联接的车辆环境中的多个点中的每一个的对应范围和对应速度。在那些实施方式中的一些实施方式中,相位相干LIDAR数据包括三维(3D)点云,其中3D点云中的每个点定义对应范围(经由其在3D点云中的3D坐标)、对应速度和任选地对应强度。在一些其它实施方式中,相位相干LIDAR数据包括距离多普勒图像,诸如每个像素为对应范围和横向距离定义对应速度(和任选地强度)的距离多普勒图像。换句话说,距离多普勒图像中的每个像素与对应范围和横向范围(其对应于环境中的一点)相对应,并且为该范围和横向范围定义速度。在又一其它的实施方式中,相位相干LIDAR数据包括由FMCW LIDAR组件的光接收器基于将本地振荡器与延时反射混合而生成的时变中频(IF)波形。时变IF波形能够直接用于确定横摆参数并且/或者能够使用傅里叶变换和/或其它技术来处理,并且经处理的数据用于确定横摆参数。例如,能够对时变IF波形的每个分片进行处理以确定环境中的对应点的范围和速度,并且在确定横摆参数时利用多个点的范围和速度。因此,根据本文公开的实施方式,能够由相位相干LIDAR组件生成并在确定附加车辆的横摆参数时利用前述的一种或多种和/或其它类型的相位相干LIDAR数据。在确定横摆参数时生成和利用的相位相干LIDAR数据的类型能够取决于例如被利用的特定相位相干LIDAR组件。另外,注意在一些实施方式中,在接收到的相位相干LIDAR数据中指示的速度能够减去自我车辆的速度(例如,基于根据自我车辆的传感器确定的自我车辆的速度,或者基于根据相位相干LIDAR数据中的静态对象的速度推理自我车辆的速度)。在一些其它实施方式中,可能不从所接收到的相位相干LIDAR数据中减去自我车辆的速度。在那些实施方式中,可以任选地处理所接收到的相位相干LIDAR数据以减去自我车辆的速度。
在一些实施方式中,相位相干LIDAR数据来自包括至少诸如第一相干光接收器和第二相干光接收器的第一接收器和第二接收器的相位相干LIDAR单脉冲组件。在那些实施方式中,每个感测事件包括通过第一接收器的第一接收器感测事件和通过第二接收器的第二接收器感测事件。例如,第一接收器感测事件能够包括本地振荡器与对波形的反射部分的第一检测的相干混合,而第二接收器感测事件能够包括本地振荡器与对波形的反射部分的第二检测的相干混合。第一接收器感测事件和第二接收器感测事件在本文中被表示为单独的事件,因为它们通过单独的接收器。然而,注意感测事件能够各自具有相同的反射并且能够同时或基本上同时发生(例如,在彼此的一个毫秒内、在彼此的一个微秒内或在彼此的一个纳秒内)。
第一接收器和第二接收器相对于彼此在位置上偏移,从而使第一检测和第二检测变化(例如,在时间上和/或在特性上(例如,同相)变化)。这使得能够基于对第一接收器感测事件和第二接收器感测事件的比较来为感测事件确定数据的至少一个额外的通道。能够利用额外的通道来提高基于感测事件确定的点的角度准确度。例如,额外的通道能够基于第一接收器感测事件与第二接收器感测事件之间的振幅和/或相位差异(例如,由第一接收器和第二接收器中的每一个在与本地振荡器信号混合时生成的时变IF波形中的差异)。例如,对于基于感测事件确定的一个或多个点中的每一个,能够比较振幅和/或相位差异以确定角度(特定角度或角度范围),其中每个角度被解析使得点小于产生了感测事件的反射的波束宽度。因此,能够将对应范围的角度(例如,相对于接收器的方位角和仰角)确定到子波束宽度级别,从而提供所确定的角度的更大准确度。此外,由于点的位置由角度和范围定义,所以能够将点定位到子波束宽度级别。
注意,在一些实施方式中,能够基于单个感测事件(例如,基于由距离多普勒图像和/或IF波形所指示的多个范围/速度当中的范围/或速度中的差异)确定多个范围/速度对。在那些实施方式中,能够为多个范围/速度对中的每一个确定对应角度,并且可以将对应角度各自解析到子波束宽度级别。换句话说,能够利用感测周期的单个感测事件来确定两个或更多个点中的每一个的对应范围和对应速度。在那些实施方式的一些版本中,与非增厚波束宽度比较,能够有意地使由相位相干LIDAR组件的激光器输出的电磁输出的波束宽度增厚/变宽以使得波束宽度能够覆盖更多空间。例如,能够使波束宽度固定,使得在距相位相干LIDAR组件的给定距离(例如,10米、15米、20米、50米或其它距离)处,在感测周期的波束之间不存在覆盖范围间隙。能够利用本文描述的提高的角准确度技术来确定在感测周期的每个波束的增厚波束宽度内的两个或更多个点中的每一个的对应范围和对应速度。这使得能够以一定准确度确定范围和速度,在缺少本文描述的提高的角速度技术情况下,这将另外在感测周期中需要更大量的波束和感测事件。因此,本文描述的提高的角速度技术使得能够在感测周期中以给定准确度解析范围和速度,同时减少实现该准确度所需的感测周期中的感测事件的量。这能够减少在每个感测周期中发生的感测事件的量,从而保存硬件资源(例如,激光资源和/或电源资源)。这能够附加地或替换地使得能够在减少的时间量内解析一个区域的给定量的范围和速度,从而提供过剩时间用于解析附加区域的范围和速度(例如,使得能够在不增加感测周期的持续时间的情况下在每个感测周期中覆盖更大的总区域)和/或使得能够快速重新解析该区域更新的范围和速度(例如,使得能够使感测周期缩短,而不会降低角准确度)。
因此,利用相位相干LIDAR单脉冲组件,在通过跨两个接收器使反射分离来降低信噪比(SNR)(即,提高噪声)同时,能够实现超像素分辨率。这在确定遥远的(远离相位相干LIDAR单脉冲组件)和/或小的附加车辆的点的范围和速度时可能是有益的。例如,它能够提高能够针对给定返回/感测事件确定范围和速度的角准确度(对于给定点,在角度意义上为更准确的定位)—从而提高分辨率并且使得能够确定(或至少更准确地确定)遥远的和/或小的附加车辆的横摆参数,然而横摆参数对遥远的和/或小的附加车辆来说将不会是可确定的(或将至少是不太准确的)。
在各种实施方式中,利用相位相干LIDAR单脉冲组件,在通过跨两个或更多个接收器使反射分离来降低信噪比(SNR)(即,提高噪声),同时能够附加地和/或替换地实现超分辨率。两个或更多个接收器相对于彼此在位置上偏移,从而使接收器的相应的检测变化(例如,在时间上和/或在特性上(例如,同相)变化)。这使得来自每个接收器处的感测事件的非冗余LIDAR数据能够被组合,以生成与来自相应的接收器处的感测事件中的任何一个的LIDAR数据比具有更高分辨率(例如,更高分辨率范围和/或速度)的LIDAR数据(例如,距离多普勒图像和/或IF波形)。换句话说,每个感测事件能够包括每个接收器处的接收器感测事件(例如,第一接收器处的第一接收器感测事件、第二接收器处的第二接收器感测事件等)并且为相应的接收器感测事件产生相应的LIDAR数据。能够将接收器感测事件的非冗余LIDAR数据组合以构造感测事件的超分辨率LIDAR数据。非冗余LIDAR数据能够基于例如相应的接收器感测事件之间的振幅和/或相位差异(例如,由第一接收器和第二接收器中的每一个在与本地振荡器信号混合时生成的时变IF波形中的差异)。能够利用各种技术来从多个接收器感测事件生成超分辨率LIDAR数据,这些技术诸如频域技术(例如,基于连续和离散傅立叶变换的移位和混叠性质)和/或空间域技术(例如,非迭代和/或迭代技术)。能够利用空间域技术来在从来自接收器感测事件的较低分辨率LIDAR数据构造超分辨率LIDAR数据时应用一个或多个灵活的估计器。此类灵活的估计器包括例如最大似然、最大后验、凸集投影、贝叶斯处理等。在本文中提供了包括单脉冲组件和技术的一些相位相干LIDAR技术和一些相位相干LIDAR组件的附加描述。
如上所述,在相位相干LIDAR组件的感测周期期间,发射的编码波形被依次引导到环境中的多个点中的每一个,并且依次从环境中的多个点中的每一个中反射出去,并且编码波形的反射部分各自由相位相干LIDAR组件的至少一个接收器在感测周期的对应感测事件中检测。在感测周期期间,波形被引导到环境的区域中的多个点,并且检测对应反射,而不会在感测周期中将波形重新引导到那些点。因此,通过感测周期的相位相干LIDAR数据所指示的点的范围和速度可以是瞬时的,因为它基于单个感测事件而不参考在先或后续感测事件。在一些实施方式中,多个(例如,所有)感测周期中的每一个能够具有相同的持续时间、相同的视场和/或相同的波形分布图案(通过在感测周期期间引导波形)。例如,各自为扫描的多个感测周期中的每一个能够具有相同的持续时间、相同的视场和相同的波形分布图案。然而,在许多其它实施方式中,持续时间、视场和/或波形分布图案能够在一个或多个感测周期之间变化。例如,第一感测周期能够具有第一持续时间、具有第一视场和第一波形分布图;而第二感测周期能够具有比第一持续时间短的第二持续时间、具有作为第一视场的子集的第二视场、并且具有比第一波形分布图案更密集的第二波形分布图案。
现在转向图,图1图示可以在其内实现本文公开的各种技术的示例自动驾驶车辆100。例如,车辆100可以包括:动力总成102,该动力总成102包括由能量源106供以动力并能够向传动系统108提供动力的原动机104;以及控制系统110,该控制系统110包括方向控件112、动力总成控件114和制动控件116。可以将车辆100实现为任何数目的不同类型的车辆,包括能够运送人和/或货物并能够由陆地、由海路、在空中、在地下、在海面下和/或在太空中行进的交通工具,应领会,前述组件102-116能够基于利用这些组件的车辆的类型而广泛地变化。
例如,在下文中讨论的实施方式将集中于轮式陆地车辆,诸如汽车、货车、卡车、公共汽车等。在此类实施方式中,原动机104可以包括一个或多个电动机和/或内燃机(等等)。能量源106可以包括例如燃料系统(例如,提供汽油、柴油、氢等)、电池系统、太阳能电池板或其它可再生能量源和/或燃料电池系统。传动系统108可以包括车轮和/或轮胎以及适合于将原动机104的输出转换成车辆运动的变速器和/或任何其它机械驱动组件,以及被配置成可控制地使车辆100停止或慢下来的一个或多个制动器和适合于控制车辆100的轨迹的方向或转向组件(例如,使得车辆100的一个或多个车轮能够绕通常垂直轴线枢转以改变车轮的旋转平面相对于车辆的纵向轴线的角度的齿条和小齿轮转向连杆)。在一些实施方式中,可以(例如,在电动/燃气混合动力车辆的情况下)使用动力总成和能量源的组合,并且在一些情况下,可以将多个电动机(例如,专用于个别车轮或轮轴)用作原动机。
方向控件112可以包括一个或多个致动器和/或传感器以用于控制并接收来自方向或转向组件的反馈以使得车辆100能够遵循期望轨迹。动力总成控件114可以被配置成控制动力总成102的输出,例如,控制原动机104的输出动力,控制传动系统108中的变速器的齿轮等,从而控制车辆100的速率和/或方向。制动控件116可以被配置成控制使车辆100慢下来或停止的一个或多个制动器,例如,联接到车辆的车轮的盘式或鼓式制动器。
如受益于本公开的普通技术人员将领会的,其它车辆类型,包括但不限于飞机、太空车辆、直升机、无人机、军用车辆、全地形或履带车辆、轮船、潜艇、建筑装备等,将必定利用不同的动力总成、传动系统、能量源、方向控件、动力总成控件和制动控件。此外,在一些实施方式中可以组合这些组件中的一些,例如,在主要通过改变一个或多个原动机的输出来处理车辆的方向控制的情况下。因此,本文公开的实施方式不限于本文描述的技术在自主轮式陆地车辆中的特定应用。
在所图示的实施方式中,在车辆控制系统120中实现对车辆100的完全或半自主控制,该车辆控制系统可以包括一个或多个处理器122和一个或多个存储器124,其中每个处理器122被配置成执行存储在存储器124中的程序代码指令126。处理器122能够包括例如图形处理单元(GPU)和/或中央处理单元(CPU)。
传感器130可以包括适合于从车辆的周围环境收集信息以供在控制车辆的操作时使用的各种传感器。例如,传感器130能够包括车辆的调频连续波(FMCW)光检测和测距(LIDAR)组件132(FMCW)。如本文所描述的,FMCW LIDAR组件132能够生成FMCW LIDAR数据,该FMCW LIDAR数据能够用于确定车辆100的环境中的一个或多个附加车辆中的每一个的对应横摆参数。对于车辆的环境中的多个点中的每一个,由FMCW LIDAR组件132生成的FMCWLIDAR数据指示基于FMCW LIDAR组件的对应感测事件的对应范围和对应速度。尽管在图1(和其它图)中图示并在本文中与许多图关联地描述FMCW LIDAR组件,但是在许多实施方式中,能够替换地利用不是FMCW LIDAR组件的相位相干LIDAR组件。另外,在那些实施方式中能够利用不是FMCW LIDAR数据的相位相干LIDAR数据代替FMCW LIDAR数据。
传感器130也能够任选地包括无线电检测和测距(RADAR)组件134和/或LIDAR组件136(非相位相干的,其生成能够用于确定范围而不是速度的数据)。另外,传感器也能够任选地包括例如与诸如GPS、GLONASS、伽利略、Compass等的各种卫星导航系统中的任一种兼容的卫星导航(SATNAV)组件138。SATNAV组件138能够用于使用卫星信号来确定车辆在地球上的定位。传感器130也能够任选地包括相机140、惯性测量单元(IMU)142和/或一个或多个车轮编码器144。相机140可以是单像相机或立体相机并且能够记录静止和/或视频成像器。IMU 142能够包括能够检测车辆100在三个方向上的线性和旋转运动的多个陀螺仪和加速度计。车轮编码器142可以用于监视车辆100的一个或多个车轮的旋转。
可以将传感器130的输出提供给一组控制子系统150,包括定位子系统152、规划子系统156、感知子系统154和控制子系统158。定位子系统152主要负责精确地确定车辆100在其周围环境内并且通常在某个参考系内的定位和定向(有时也称为“姿态”)。感知子系统154主要负责检测、跟踪和/或识别车辆100周围环境内的元素。例如,并且如本文所描述的,感知子系统154可以除了别的之外还确定车辆100周围环境中一个或多个附加车辆的横摆率。规划子系统156主要负责考虑到环境内的期望目的地以及静止和移动对象规划车辆100在某个时间帧期间的轨迹。例如,并且如本文所描述的,规划子系统156能够至少部分地基于车辆100周围环境中的附加车辆的(通过感知子系统154确定的)所确定的横摆参数来规划车辆100的轨迹。控制子系统158主要负责生成合适的控制信号以用于控制控制系统110中的各种控件以便实现车辆100的所规划的轨迹。
应领会,在图1中针对车辆控制系统120图示的组件的合集在性质上仅仅是示例性的。可以在一些实施方式中省略个别传感器。附加地或替换地,在一些实施方式中,图1中图示的类型的多个传感器可以被用于冗余和/或覆盖车辆周围的不同区域,并且可以使用其它类型的传感器。同样地,可以在其它实施方式中使用不同类型和/或组合的控制子系统。另外,虽然子系统152-160被图示为与处理器122和存储器124分开,但是应领会在一些实施方式中,子系统152-160的功能性中的一些或全部可以用驻留在一个或多个存储器124中并由一个或多个处理器122执行的程序代码指令126来实现,并且这些子系统152-160可以在一些情况下使用同一处理器和/或存储器来实现。一些实施方式中,子系统可以至少部分地使用各种专用电路逻辑、各种处理器、各种现场可编程门阵列(“FPGA”)、各种专用集成电路(“ASIC”)、各种实时控制器和/或子系统等来实现,并且如上所指出的,多个子系统可以利用电路、处理器、传感器和/或其它组件。另外,车辆控制系统120中的各种组件可以以各种方式联网。
在一些实施方式中,车辆100也可以包括辅助车辆控制系统(未图示),该辅助车辆控制系统可以被用作车辆100的冗余或备用控制系统。在一些实施方式中,辅助车辆控制系统可以能够在车辆控制系统120中发生不利事件的情况下完全地操作自动驾驶车辆100,然而在其它实施方式中,辅助车辆控制系统可以仅具有有限的功能性,例如,以响应于在主车辆控制系统120中检测到的不利事件而执行车辆100的受控停止。在仍然其它的实施方式中,可以省略辅助车辆控制系统。
通常,无数种不同的架构,包括软件、硬件、电路逻辑、传感器、网络等的各种组合,可以用于实现图1中图示的各种组件。每个存储器可以例如作为微处理器被实现,并且每个存储器可以表示包括主存储装置的随机存取存储器(RAM)设备,以及任何补充级别的存储器,例如高速缓存存储器、非易失性或备用存储器(例如,可编程或闪速存储器)、只读存储器等。此外,每个存储器可以被认为包括物理上位于车辆100中其它地方的存储器存储装置,例如,处理器中的任何高速缓存存储器,以及用作虚拟存储器的任何存储容量,例如,如存储在大容量存储设备上或在另一计算机或控制器上的。图1中图示的一个或多个处理器或完全单独的处理器可以用于实现车辆100中除自主控制的目的外的附加功能性,例如,以控制娱乐系统,以操作门、灯、方便特征等。
此外,对于附加存储,车辆100也可以包括一个或多个大容量存储设备,例如,可移动磁盘驱动器、硬盘驱动器、直接存取存储设备(DASD)、光驱(例如,CD驱动器、DVD驱动器等)、固态存储驱动器(SSD)、网络附连存储、存储区域网络和/或磁带驱动器等。此外,车辆100可以包括使得车辆100能够从用户或操作者接收许多输入并且为用户或操作者生成输出的用户接口164,例如,一个或多个显示器、触摸屏、话音和/或手势接口、按钮和其它触觉控件等。否则,可以经由另一计算机或电子设备例如经由移动设备上的应用或经由web接口接收用户输入。
此外,车辆100可以包括适合于与一个或多个网络(例如,LAN、WAN、无线网络和/或因特网等等)进行通信以允许与其它计算机和电子设备一起传递信息的一个或多个网络接口,例如网络接口162,其它计算机和电子设备包括例如中央服务,诸如云服务,车辆100从该中央服务接收环境和其它数据以供在其自主控制中使用。
如将在下面更详细描述的,图1中图示的每个处理器以及本文公开的各种附加控制器和子系统通常在操作系统的控制下操作,并且执行或以其它方式依靠各种计算机软件应用、组件、程序、对象、模块、数据结构等。此外,各种应用、组件、程序、对象、模块等也可以在例如在分布式、基于云的或客户端-服务器计算环境中的经由网络耦合到车辆100的另一计算机上的一个或多个处理器上执行,由此可以通过网络将实现计算机程序的功能所需要的处理分配给多个计算机和/或服务。
通常,被执行以实现本文描述的各种实施方式的例程,无论是作为操作系统的一部分还是作为具体应用、组件、程序、对象、模块或指令序列或甚至其子集被实现,都将在本文中被称为“程序代码”。程序代码通常包括一个或多个指令,该一个或多个指令在各个时间驻留在各种存储器和存储设备中,并且当由一个或多个处理器读取和执行时,执行实行体现本发明各个方面的步骤或元素所必需的步骤。此外,虽然已经并在下文中将在功能完全的计算机和系统的上下文中描述实施方式,但是应领会,本文描述的各种实施方式能够被以各种形式作为程序产品分发,并且能够不管用于实际地执行分发的计算机可读介质的特定类型都实现这些实施方式。计算机可读介质的示例包括有形的非暂时性介质,诸如易失性和非易失性存储设备、软盘和其它可移动盘、固态驱动器、硬盘驱动器、磁带和光盘(例如,CD-ROM、DVD等)等等。
此外,可以基于在特定实施方式中实现的应用识别在下文中描述的各种程序代码。然而,应该领会,接下来的任何特定程序术语是仅仅为了方便被使用,因此本发明不应该限于仅在由此类术语识别和/或暗示的任何具体应用中使用。此外,给定可以将计算机程序组织成例程、程序、方法、模块、对象等的通常无数种方式以及可以在驻留在典型计算机内的各种软件层(例如,操作系统、库、API、应用、小程序等)之间分配程序功能性的各种方式,应该领会,本发明不限于本文描述的程序功能性的具体组织和分配。
受益于本公开的本领域的技术人员应认识到,图1中图示的示例性环境不旨在限制本文公开的实施方式。实际上,本领域的技术人员将认识到,在不脱离本文公开的实施方式的范围的情况下,可以使用其它替代硬件和/或软件环境。
现在转向图2A和图2B,示意性地图示了图1的FMCW LIDAR组件132的两个实施方式。图2A图示包括单个接收器132A3的FMCW LIDAR组件132A,然而图2B图示包括两个接收器132B3A和132B3B的FMCW LIDAR单脉冲组件132B。
在图2A中,FMCW LIDAR组件132A包括可调谐激光器132A1,其光输出由信号生成器132A2控制。信号生成器132A2驱动激光器132A1,使得激光器132A1生成电磁输出,该电磁输出在光谱中并且通过适配电磁输出的频率来编码。信号生成器132A2生成使波形被编码的信号。能够经由信号生成器132A2和激光器132A1生成各种类型的频率编码波形。
图2A图示来自激光器132A1的发送波束192A,该发送波束如前面段落中所描述的那样被编码,并且被导向目标对象191上的点。发送波束192A被反射离开目标对象191上的点并且在感测事件期间在接收器132A3处接收反射193A。发送波束192A包括编码波形的分片并且反射193A也包括编码波形的分片。编码波形的分片由接收器132A3在感测事件期间检测。
接收器132A3可以是相干接收器并且反射193A能够由接收器132A3使用相干检测方案来检测,在该相干检测方案中,反射193A与本地光信号混合,该本地光信号诸如为发送波束192A的分离部分的本地光信号。注意,由接收器132A3对反射193A的检测相对于对本地光信号(例如,发送波束192A的分离部分)的检测将被延时。相干检测方案能够由处理器132A4实现并且可以是例如零差混合、外差混合、自外差混合或其它相干检测方案。从将反射部分与本地光信号混合而生成的所得信号指示以下两者:(1)到目标对象191的点的范围,和(2)目标对象191的点的速度。在一些实施方式中,处理器132A4提供所得信号作为来自FMCW LIDAR组件132A的点的FMCW LIDAR数据。在一些其它实施方式中,处理器132A4执行进一步处理以生成点的FMCW LIDAR数据,其直接指示点的范围和速度。例如,能够在FMCWLIDAR数据中直接指示点的范围和速度,该FMCW LIDAR数据是指示范围和速度值的3D点云或距离多普勒图像。通过对多个感测事件的检测,在来自激光器132A1的光输出的方向变化(例如,在方位角和/或仰角上变化)的情况下,FMCW LIDAR数据由FMCW LIDAR组件针对环境中的多个点中的每一个来生成并且指示环境中的每个点的范围、速度和任选地强度。
尽管以上图2A的描述描述了FMCW LIDAR组件,但是注意,不是FMCW的相位相干LIDAR组件能够具有相同和/或类似的组件。然而,利用非FMCW LIDAR组件,信号生成器132A2能够驱动激光器132A1以生成非连续的和/或使用除频率调制以外的技术来编码的波形。
在图2B中,FMCW LIDAR单脉冲组件132B包括可调谐激光器132B1,其光输出由信号生成器132B2控制。信号生成器132B2驱动激光器132B1,使得激光器132B1生成电磁输出,该电磁输出在光谱中并且通过适配电磁输出的频率来编码。信号生成器132B2生成使波形被编码的信号。能够经由信号生成器132B2和激光器132B1生成各种类型的编码波形。
图2B图示来自激光器132B1的发送波束192B,该发送波束如前面段落中所描述的那样被编码并且被导向目标对象191上的点。发送波束192B被反射离开目标对象191上的点,并且在感测事件期间,在第一接收器132B3A处接收第一反射193B1并且在第二接收器132B3B处接收第二反射193B2。发送波束192B包括编码波形的分片并且反射193B1和193B2也包括编码波形的分片。第一接收器132B3A和第二接收器132B3B可以是相干接收器,并且感测事件能够包括第一接收器感测事件和第二接收器感测事件。第一接收器感测事件能够包括本地振荡器(例如,发送波束192B的分离部分)与对第一反射193B1的第一检测的相干混合,并且第二接收器感测事件能够包括本地振荡器与对第二反射193B2的第二检测的相干混合。第一接收器132B3A和第二接收器132B3B相对于彼此在位置上偏移,从而使第一检测和第二检测变化。这使得处理器132B4能够基于对第一接收器感测事件和第二接收器感测事件的比较确定感测事件的数据的至少一个额外的通道。例如,处理器132B4能够基于第一接收器感测事件与第二接收器感测事件之间的振幅和/或相位差异(例如,由第一接收器和第二接收器中的每一个在与本地振荡器信号混合时生成的时变IF中的差异)来确定额外的通道。例如,对于基于感测事件确定的一个或多个点中的每一个,能够比较振幅和/或相位差异以确定角度(特定角度或角度范围),其中每个角度被解析使得点小于产生了感测事件的反射的波束宽度。因此,能够将对应范围的角度(例如,相对于接收器的方位角和仰角)确定到子波束宽度级别。此外,因为点的位置由角度和范围定义,所以能够将点定位到子波束宽度级别。因此,在通过跨两个接收器使反射分离来降低信噪比(SNR)(即,提高噪声)同时,能够实现提高的角准确度。这在确定遥远的(远离FMCW LIDAR单脉冲组件)和/或小的附加车辆的多个点的范围和速度时可能是有益的。附加地或替换地,并且如本文所描述的,处理器132B4能够使用来自第一检测和第二检测的非冗余数据来确定具有超分辨率的LIDAR数据。例如,处理器132B4能够从来自第一检测和第二检测的较低分辨率LIDAR数据构造超分辨率LIDAR数据。因此,在通过跨两个接收器使反射分离来降低SNR的同时,能够确定超分辨率范围和速度。
在一些实施方式中,处理器132B4提供从第一接收器感测事件和第二接收器感测事件生成的信号作为来自FMCW LIDAR单脉冲组件132B的点的FMCW LIDAR单脉冲数据。在一些其它实施方式中,处理器132B4执行进一步处理以生成点的FMCW LIDAR单脉冲数据,其直接指示点的范围和速度。例如,能够在作为3D点云或距离多普勒图像的FMCW LIDAR单脉冲数据中直接指示点的范围和速度。通过对多个感测事件的检测,在来自激光器132B1的光输出的方向变化(例如,在方位角和/或仰角上变化)的情况下,FMCW LIDAR单脉冲数据由FMCWLIDAR单脉冲组件132B针对环境中的多个点中的每一个来生成并且指示环境中的每个点的范围、速度和任选地强度。
尽管以上图2B的描述描述了FMCW LIDAR单脉冲组件,但是注意,不是FMCW的相位相干LIDAR单脉冲组件能够具有相同和/或类似的组件。然而,利用非FMCW LIDAR组件,信号生成器132B2能够驱动激光器132B1以生成非连续的和/或使用除频率调制以外的技术来编码的波形。
现在参考图3,其中示出了示例附加车辆300,连同附加车辆300的横摆轴线371、俯仰轴线372和滚转轴线373。附加车辆300的横摆轴线371垂直于附加车辆300的车轴。在一些情况下,横摆轴线371可以与附加车辆300的后车轴交叉,虽然这不是必需的——并且根据附加车辆300的横摆移动的原因和/或程度,横摆轴线371在某些情况下甚至可以转移。附加车辆300绕横摆轴线371的旋转可能由各种因素引起,诸如附加车辆300的转弯、附加车辆300的牵引力损失(例如,水漂)、附加车辆300撞击另一对象等等。附加车辆300的横摆移动是附加车辆300绕横摆轴线371的旋转,附加车辆300的横摆率是其绕横摆轴线371的旋转的角速度。横摆率通常是以弧度/秒或度/秒为单位测量的。
附加车辆300的滚转轴线373垂直于横摆轴线371,并沿附加车辆300以从前到后的方式延伸。当附加车辆300在运动时,附加车辆将具有沿滚转轴线373的绝对对象速度。这种绝对对象速度也可以在本文所述的实施方式中适配对自动驾驶车辆的控制中考虑。然而,应注意,绝对对象速度与附加车辆300的横摆率分开。例如,附加车辆300可以在移动期间具有相对高的绝对对象速度,同时具有零或最小的横摆率(例如,如果其正在沿相对直线路径移动而没有任何牵引力损失)。附加车辆300的俯仰轴线垂直于横摆轴线371和滚转轴线373,并沿附加车辆300以从一侧到另一侧的方式延伸。
现在参考图4,提供了示出了基于附加车辆的所确定的横摆参数适配对车辆的自主控制的方框图。图4示出了车辆控制系统120的子系统152、154、156和158,以及它们可以如何交互以确定附加车辆的横摆参数和/或基于所确定的横摆参数适配自主控制的示例。
定位子系统152通常负责定位其环境内的车辆。例如,定位子系统152可以确定其周围环境内的自动驾驶车辆100的姿态(通常是位置,并且在一些情况下是定向)。定位子系统152能够利用来自FMCW LIDAR组件132的FMCW LIDAR数据492和/或来自其它传感器491的数据来确定自动驾驶车辆100的姿态,其它传感器诸如图1的相机140、RADAR组件134、LIDAR组件136和/或其它传感器130(例如,IMU 142、编码器144)。例如,由定位子系统152确定的姿态可以是相对于由车辆控制系统120利用的地图。姿态能够随着车辆100在其环境中各处移动而由定位子系统152更新,或者姿态被提供给其它子系统154、156和/或158中的一个或多个(或者变得可由其它子系统154、156和/或158中的一个或多个访问)以供由子系统使用。
感知子系统154主要负责感知环境中的动态对象,诸如行人和附加车辆,并且可以利用FMCW LIDAR数据492以及可选地来自其他传感器491(例如,相机140、RADAR组件134)的数据来识别和跟踪动态对象。在跟踪附加车辆时,感知子系统154可以在多个迭代中的每个迭代中确定附加车辆的各种特征,诸如它们的姿态(位置和/或定位)以及它们的绝对对象速度和/或横摆参数(例如,横摆率)。
感知子系统154可以包括对象检测和分类模块154A,该对象检测和分类模块154利用FMCW LIDAR数据492和/或来自其他传感器491的数据来检测各种对象(例如,确定对象的姿态)并且可选地对检测到的对象进行分类。例如,对象检测和分类模块154A可以处理FMCWLIDAR数据492和/或来自其他传感器491的数据来检测和分类车辆100的环境中的附加车辆、行人和/或其他动态对象。在各种实施方式中,对象检测和分类模块154A可以利用一个或多个经训练的机器学习模型来检测和/或分类各种对象。例如,经训练的机器学习模型可以包括神经网络模型,该神经网络模型经训练以用于处理FMCW LIDAR数据(和/或其他数据),以生成在数据中指示的对象的姿态以及可选地对象的对应分类的指示作为输出。例如,输出可以指示在数据中检测到的一个或多个对象中的每个对象的包围框、限制球或其他限制区域,可选地连同每个限制区域的对应分类。
作为一个特定示例,FMCW LIDAR数据492可以包括3D点云,3D点云定义了对应范围(通过其在3D点云中的3D坐标)、对应速度以及可选地对应强度。对象检测和分类模块154A可以使用经训练的机器学习模型来处理FMCW LIDAR数据492,以生成指示一个或多个包围框的输出,每个包围框都对应于包括检测到的对象的3D点云的一部分。在一些实施方式中,输出还可以针对每个包围框都指示检测到的对象所属的分类。例如,针对每个包围框,输出都可以指示检测到的对象是附加车辆、行人、动物等的相应概率。在一些其他实施方式中,经训练的机器学习模型可以被训练以仅检测附加车辆,并且可以用于生成指示包围框和/或其他限制形状的输出,无需明确指示限制形状的分类。
在一些实施方式中,在检测和/或分类各种对象时,对象检测和分类模块154A可以附加地或可替代地处理FMCW LIDAR数据492和/或来自其他传感器491的数据,无需利用机器学习模型。例如,可以利用最近邻和/或其他聚类技术来确定可能对应于附加车辆和/或其他对象的数据部分。
与所利用的技术无关,对象检测和分类模块154A可以向感知子系统154的横摆模块154B提供附加车辆493的姿态的指示。姿态可以相对于车辆控制系统120所利用的地图和/或相对于FMCW LIDAR数据492。横摆模块154B使用附加车辆的所提供的姿态493来确定FMCW LIDAR数据492的对应于姿态的子组。此外,横摆模块154B基于FMCW LIDAR数据492的子组来确定附加车辆494的一个或多个横摆参数。
横摆模块154B可以基于由FMCW LIDAR数据492的全部或部分子组指示的量值和可选的方向来确定附加车辆494的横摆参数。例如,横摆参数模块154B可以基于确定速度的至少阈值梯度由FMCW LIDAR数据492的至少一些子组指示来确定指示车辆是否正在经历横摆移动(例如,至少横摆移动的阈值程度)的横摆参数。例如,如果FMCW LIDAR数据492的子组具有4m/s的速度梯度(例如,速度范围从+2m/s到-2m/s或速度范围从+9m/s到+5m/s),则横摆参数模块154B可以基于4m/s的速度梯度确定车辆正在经历横摆移动。另一方面,如果FMCW LIDAR数据492的子组具有小于0.1m/s的速度梯度,则横摆参数模块154B可以基于低速度梯度来确定车辆正在经历很小或没有经历横摆移动。
同样地,例如,横摆参数模块154B可以基于由FMCW LIDAR数据492的子组的多个集合指示的速度来确定附加车辆的横摆参数。例如,横摆参数模块154B可以基于第一组FMCWLIDAR数据492的速度与空间上偏移的第二组FMCW LIDAR数据492的速度的比较来确定速度差。横摆参数模块154B可以利用速度差作为横摆参数,或者可以基于速度差确定横摆率。在一些实施方式中,横摆参数模块154B可以基于速度差并且基于第一集合和第二集合之间的所确定的距离来确定横摆率。在那些实施方式中的一些中,横摆参数模块154B可以基于将速度差除以距离(可选地乘以常数)来确定横摆率,以确定以弧度/秒为单位的横摆率。在那些实施方式的一些版本中,横摆参数模块154B可以确定横摆率的范围。例如,下限横摆率可以基于速度差除以距离,而上限横摆率可以基于速度差除以:距离乘以0到1之间的常数,诸如介于0.4和0.9之间的值、介于0.4和0.75之间的值或介于0.4和0.7之间的值。例如,如果速度差为1m/s,距离为1.5m,则下限横摆率可以为0.67弧度/秒((1m/s)/(1.5m)),而如果速度差为1m/s,并且距离大于4.0m,则下限横摆率可以为0.25弧度/秒。常数的值例如可以基于附加车辆相对于自我车辆的角度的余弦。例如,附加车辆相对于FMCW LIDAR接收器的角度,该角度可以基于由FMCW LIDAR数据指示的对应于附加车辆的一个或多个角度。
作为一个特定示例,第一集合可以是单一数据点,第一集合的速度可以是单一数据点的速度,第二集合可以是单独的单一数据点,并且第二集合的速度可以是针对单独的单一数据点的速度。横摆参数模块154B可以基于第一和第二集合的速度量值的差(速度差)并基于第一和第二集合之间的所确定的距离来确定横摆率。横摆参数模块154B也可以基于第一和第二集合的速度的量值(并且可选地在极端横摆移动情况下的方向(例如,失去对附加车辆的控制))的比较来确定横摆移动的方向(当速度差不为零时)。
作为另一特定示例,横摆参数模块154B可以基于确定FMCW LIDAR数据的第一和第二集合,确定附加车辆的横摆率,其中,第一集合和第二集合每个都包括多个对应数据点。此外,横摆率模块154B可以确定第一集合的数据点的速度的平均速度或其他统计测量值(例如,平均值),第二集合的数据点的速度的统计测量值,并基于第一集合的速度的统计测量值和第二集合的速度的统计测量值的比较来确定横摆率。本文提供了用于确定横摆率的这些和其他技术的附加说明。另外,下面与对图5至图8的说明相关联地提供对各种技术的附加说明。
在一些实施方式中,横摆参数模块154B可以附加或可替代地基于由FMCW LIDAR数据492的至少一些子组指示的速度并且基于附加车辆的存储模型来确定附加车辆的横摆率。附加车辆的存储模型描述了附加车辆的几何特征。存储模型例如可以是附加车辆的三维(3D)模型。横摆参数模块154B可以将由FMCW LIDAR数据492的至少一些子组指示的速度映射到存储模型上的对应定位,并且使用速度及其在存储模型上的定位确定附加车辆的横摆率。例如,横摆参数模块154B可以向存储模型应用多个速度,以确定在所应用的速度下的存储模型绕横摆轴线的横摆率。横摆参数模块154B例如可以使用以所应用的速度模拟存储模型的移动的模拟器确定横摆率。
在其中利用附加车辆的存储模型的一些实施方式中,横摆参数模块154B可以可选地利用针对所有附加车辆的一般存储模型。在一些其他实施方式中,横摆参数模块154B可以基于确定所选择的存储模型最接近地符合捕获附加车辆的传感器数据,从多个候选存储模型中选择针对给定附加车辆的存储模型。例如,横摆参数模块154B可以基于确定(被确定为对应于附加车辆的)子组的FMCW LIDAR数据比任何其他存储模型都更接近地符合所选模型而选择存储模型。
在一些实施方式中,横摆参数模型154B可以附加地或可替选地利用经训练的横摆机器学习(ML)模型154B1确定附加车辆的横摆率。例如,横摆参数模型154B可以使用经训练的横摆ML模型154B1处理全部或部分FMCW LIDAR数据492,从而生成指示横摆率的输出。例如,可以使用经训练的横摆ML模型154B1处理被确定为对应于附加车辆的至少FMCW LIDAR数据492的子组,以生成指示横摆率的输出。经训练的横摆ML模型154B1例如可以如下文关于图12的方法1200所述地进行训练。
感知子系统154将用于附加车辆494的横摆参数提供给计划子系统156(或者以其他方式使其可用于计划子系统156)。计划子系统156主要负责计划车辆在某个时间框架内(例如,几秒钟)的轨迹,并且可以从位置子系统152和感知子系统154两者接收输入。计划子系统156可以基于附加车辆494的所提供的横摆参数适配车辆的轨迹。例如,如果横摆参数494指示附加车辆的速度差和/或横摆率超过指示附加车辆已经失去控制的阈值,则计划子系统154可以适配车辆的轨迹,以便回避附加车辆。而且,例如,如果横摆参数494指示横摆率和横摆方向,则计划子系统154可以利用附加车辆494的横摆率和横摆方向来确定附加车辆的一个或多个候选轨迹,并且可以适配车辆的轨迹,使得如果附加车辆行进经过候选轨迹之一,则车辆不会接触和/或进入附加车辆的阈值距离内。本文中提供了用于基于附加车辆的所确定的横摆参数来适配对车辆的控制的这些和其他技术的附加说明。例如,下面结合图9的说明提供了一些技术的附加说明。
然后,将由计划子系统156鉴于所确定的横摆参数而生成的轨迹和/或其他数据传递到控制子系统158,以将期望轨迹转换成适合于控制在控制系统110中的各种车辆控件112、114的轨迹命令195,并且还向控制子系统158提供位置数据,以使控制子系统158可以发出适当的命令,从而在车辆定位随时间框架变化时实现期望轨迹。
现在参考图5至图8,这些图每个都示出了车辆的示例环境,其中环境包括附加车辆300。此外,图5至图8每个也示出了可以对应于环境中的附加车辆300的一些FMCW LIDAR数据点的示例。例如,图5示出了示例FMCW LIDAR数据点582A-B、583A-B、584A-C以及585A-C。数据点可以例如是来自作为3D点云的FMCW LIDAR数据的实例,其中3D点云的每个点都指示对应范围(通过其在3D点云中的定位),并且包括对应速率/速度,以及可选的对应强度值。应理解,附加FMCW LIDAR数据点将被提供有FMCW LIDAR数据,包括对应于车辆300的附加点——以及对应于附加环境对象的附加点。然而,为了简单起见,在图5至图8的每一个中仅示出了一些FMCW LIDAR数据点。此外,应理解,车辆300在图5至图8中出现时将不会以FMCW LIDAR数据呈现(尽管可以经由对应FMCW LIDAR数据点在视觉上确定)。然而,在图5至图8中的每一个中示出了车辆300以供参考。另外,应理解,虽然关于FMCW LIDAR数据点描述了图5至图8,但是附加或可替代类型的FMCW LIDAR数据可以用于确定附加车辆的横摆参数,诸如本文中也描述的那些横摆参数。
在图5中,在附加车辆300周围描绘了包围框581。包围框581指示可以对应于附加车辆300的FMCW LIDAR数据的子组。包围框581可以例如由图4的对象检测和分类模块154A基于对FMCW LIDAR数据和/或其他数据的处理以检测车辆及其姿态来确定。例如,对象检测和分类模块154A可以使用机器学习模型来处理FMCW LIDAR数据,以生成输出,该输出指示被包围框581所包围的FMCW LIDAR数据点对应于车辆。在包围框581内示出了示例FMCWLIDAR数据点。即,数据点582A-B的第一集合582、数据点583A-B的第二集合583、数据点584A-C的第三集合584以及数据点585A-C的第四集合。
图4的横摆参数模块154B可以基于第一集合582、第二集合583、第三集合584和/或第四集合585之间的比较来确定附加车辆300的横摆参数。例如,横摆参数模块154B可以基于由数据点582A和582B指示的速度,确定第一集合582的速度的统计测量值。例如,如果数据点582A指示速度为+3.1m/s,而数据点582B指示速度为+3.3m/s,则横摆参数模块154B可确定第一集合582的平均速度为+3.2m/s。此外,横摆参数模块还可以基于数据点583A和583B指示的速度来确定第二集合583的速度的统计测量值。例如,如果数据点583A指示速度为+3.8m/s,而数据点583B指示速度为+4.0m/s,则横摆参数模块154B可以确定第二集合583的平均速度为+3.9m/s。然后,横摆参数模块154B可以确定第一集合582和第二集合583之间的速度差。例如,其中第一集合582和第二集合583具有相应的平均速度+3.1m/s和+3.9m/s时,速度差可以为0.8m/s。在一些实施方式中,可以将0.8m/s的速度差用作横摆参数。此外,横摆参数模块154B还可以基于对第一集合582和第二集合583的速度量值的比较来确定横摆移动的方向。例如,其中第一集合582和第二集合583具有相应的平均速度+3.1m/s和+3.9m/s,则横摆移动的方向(横摆方向)可以沿图5的箭头371A所示的方向。
在一些实施方式中,横摆参数可以附加地或可替代地包括基于0.8m/s的速度差确定的横摆率。例如,至少上限横摆率和下限横摆率可以基于0.8m/s的速度差以及基于以第一集合582和第二集合583之间的空间偏移为基础的距离588来确定。距离588可以是例如点582A和582B的平均距离与点583A和583B的平均距离之间的3D距离。作为一个示例,如果距离588为4.5米,并且速度差为0.8m/s,则下限横摆速率可以是0.18弧度/秒((0.8m/s)/(4.5m)),上限横摆速率可以是0.36弧度/秒((0.8m/s)/(4.5m)(0.5))。
横摆参数模块154B可以附加地或可替代地确定第三集合584的速度的统计测量值、第四集合585的速度的统计测量值,确定第三集合584和第四集合585之间的速度差,并且基于第三集合584和第四集合585之间的速度差来确定横摆参数。例如,横摆参数可以仅基于第三集合583和第四集合584之间的速度差,或者可以基于该速度差与第一集合582和第二集合583之间的速度差的组合(例如,平均值)。此外,附加集合(未示出的集合和/或所示集合的不同组合)之间的附加速度差可以被确定并用于确定横摆参数。
在图6中,在附加车辆300周围描绘了包围框681。包围框681指示可以对应于附加车辆300的FMCW LIDAR数据的子组。包围框681可以例如由图4的对象检测和分类模块154A基于对FMCW LIDAR数据和/或其他数据的处理以检测车辆及其姿态来确定。在包围框681内示出了示例FMCW LIDAR数据点682A-H。
图4的横摆参数模块154B可以基于两个或多个FMCW LIDAR数据点682A-H之间的比较来确定附加车辆300的横摆参数。例如,横摆参数模块154B可以:基于由数据点682E和682H指示的速度之间的第一速度差以及数据点682E和682H之间的所确定的距离来确定第一横摆率(或者第一下限和上限横摆率);基于由数据点682F和682H指示的速度之间的第二速度差以及数据点682F和682H之间的所确定的距离来确定第二横摆率(或者第二下限和上限横摆率);基于由数据点682A和682D指示的速度之间的第三速度差以及数据点682A和682D之间的所确定的距离来确定第三横摆率(或者第三下限和上限横摆率);等等。继续该示例,横摆参数模块154B然后可以基于多个横摆率的组合(或多个下界横摆率的组合和多个上限横摆率的组合)确定总横摆率(或总下限和上限横摆率)。此外,横摆参数模块154B还可以基于一个或多个数据点对的量值的比较来确定横摆移动的方向。
在图7中,附加车辆300被示出为处于与图5和图6所示的不同的姿态(相对于FMCWLIDAR组件)。即,在图7中,附加车辆300垂直于FMCW LIDAR组件。在图7的附加车辆300周围描绘了包围框781,并且包围框781指示了FMCW LIDAR数据的可以对应于附加车辆300的子组。在包围框781内示出了示例FMCW LIDAR数据点782A和782B。
由于附加车辆300在图7中是垂直的,所以如果附加车辆300不正在进行横摆运动,则数据点782A和782B将指示零(或接近零)速度。另一方面,如果附加车辆300正在进行横摆运动,则数据点782A和782B将指示非零速度。图4的横摆参数模块154B可以基于数据点782A和782B之间的比较确定附加车辆300的横摆参数。例如,横摆参数模块154B可以基于确定由数据点782A和782B指示的速度之间的第一速度差是否满足阈值来确定附加车辆300是否正在进行横摆运动。
在图8中,在附加车辆300周围描绘了包围框881,并且包围框881指示了仅有两个FMCW LIDAR数据点882A和882B对应于附加车辆300。在图8中,附加车辆300远离FMCW LIDAR组件。图8中的FMCW LIDAR数据点882A和882B可以是由FMCW LIDAR单脉冲组件生成的FMCWLIDAR单脉冲数据点。图8的示例是其中FMCW LIDAR单脉冲数据点可能特别有益的一个示例。即,图8示出了下列情况:其中FMCW LIDAR单脉冲组件的更大角度精度使得能够确定两个FMCW LIDAR数据点882A和882B,而可能已经可通过FMCW LIDAR(非单脉冲组件)确定其中一个(或没有)。虽然图8是一个示例,但是应注意,图5至图7的FMCW LIDAR数据点也可以是FMCW LIDAR单脉冲数据点,并且也可以是有益的,因为例如其提高了附加车辆300的可以用于根据本文公开的实施方式确定横摆率的FMCW LIDAR数据的角度精度。FMCW LIDAR数据的这种更大角度精度可以在一些实施方式中产生更精确的横摆率确定。
图4的横摆参数模块154B可以基于FMCW LIDAR数据点882A和882B的比较确定附加车辆300的横摆参数。例如,横摆参数模块154B可以基于由数据点882A和882B指示的速度之间的速度差以及数据点882A和882B之间的所确定的距离来确定横摆率。此外,横摆参数模块154B也可以基于数据点882A和882B的速度量值的比较来确定横摆移动的方向。
根据本文公开的技术确定的横摆参数可以用于适配自我车辆的控制。关于图9描述了这种适配的一个示例,图9示出了可以如何基于所确定的横摆参数确定附加车辆300的候选轨迹,以及可以如何基于附加车辆300的候选轨迹适配车辆100的自主控制的示例。
在图9中,车辆100可以在给定实例中利用来自车辆100的FMCW LIDAR组件的FMCWLIDAR数据确定附加车辆300的横摆率。候选轨迹991示出了如果所确定的横摆率为零或接近零可以确定的候选轨迹。可以基于附加车辆300的所确定的绝对对象速度方向和量值来确定候选轨迹991,不需要基于横摆率的任何适配(因为所确定的横摆率为零或接近零)。
另一方面,候选轨迹992示出了如果所确定的横摆率指示车辆在作为相对于图9的鸟瞰图的顺时针方向的横摆方向上的横摆移动则可以确定的候选轨迹。候选轨迹992可以根据所确定的绝对速度方向和量值以及所确定的横摆率的所确定的量值和方向来确定。可以利用各种技术来确定绝对对象速度,诸如附加车辆在传感器数据(例如,MCW LIDAR数据和/或其他数据)的多个实例上的跟踪。虽然在图9中仅示出了单个候选轨迹992,但是在一些实施方式中,可以确定多个候选轨迹。例如,在如本文所述地确定下限和上限横摆率的情况下,可以基于下限横摆率确定第一候选轨迹,可以基于上限横摆率确定第二候选轨迹,并且处于第一和第二候选轨迹之间的多个轨迹(以及可选地它们之间的第一和第二候选轨迹)可以被视为是附加车辆300的候选轨迹(例如,候选轨迹区域)。
通过观察图9应明白,如果确定了车辆300的候选轨迹991,则可能必需适配对车辆100的控制,以回避附加车辆300(因为如果附加车辆300行进经过候选轨迹991,它将进入车辆100的车道)。另一方面,如果作为代替确定了候选轨迹992,则可以不必对车辆进行回避适配控制。
图9示出了可以基于给定实例的所确定的横摆率针对给定实例确定的候选轨迹。横摆率和候选轨迹将继续在多个附加实例的每一个上生成(例如,更新的横摆率和候选轨迹可以在每个控制周期(例如,以60Hz和/或其他速率)生成),由此使得能够考虑改变横摆率而连续地更新候选轨迹。此外,在给定实例中生成实例轨迹时,来自一个或多个先前实例的一个或多个候选轨迹和/或一个或多个横摆率可以被视为在给定实例中基于例如错误地确定的横摆率(例如,基于噪音数据)和/或短暂且间歇的横摆率变化平滑候选轨迹并且防止不必要的回避适配。
现在参考图10,其中提供了示出确定横摆参数以及基于所确定的横摆参数控制自动驾驶车辆的示例方法1000的流程图。为了方便,参考执行操作的系统来描述流程图的操作。该系统可以包括各种组件,诸如图1的自动驾驶车辆100的一个或多个处理器。同时,虽然以特定顺序示出了方法1000的操作,但是这无意作为限制。可以重新排序、省略或添加一个或多个操作。
在方框1002,系统从车辆的FMCW LIDAR组件接收FMCW LIDAR数据。方框1002的以迭代所接收的FMCW LIDAR数据可以是FMCW LIDAR组件所生成的数据的最近未处理(使用方法1000未处理)的实例。数据的实例可以由FMCW LIDAR组件在感测周期期间生成,并且可以被系统例如作为数据流的一部分或作为数据包接收,或经由访问共享存储器接收。
在方框1004,系统确定FMCW LIDAR数据的子组对应于附加车辆。方框1004可以可选地包括子方框1004A,其中,系统基于使用经训练的机器学习模型处理FMCW LIDAR数据和/或其他传感器数据来确定子组具有车辆分类。在一些实施方式中,可以省略子方框1004A,并且系统可以确定子组对应于附加车辆,无需利用机器学习模型。例如,系统可以利用最近邻居和/或其他聚类技术,以确定FMCW LIDAR数据的子组可能对应于附加车辆。
在方框1006,系统基于子组的FMCW LIDAR数据来确定附加车辆的一个或多个横摆参数。基于子组的FMCW LIDAR数据对应于附加车辆,系统基于子组的FMCW LIDAR数据确定横摆参数。
方框1006可以可选地包括子方框1006A和/或子方框1006B。在子方框1006A,系统基于子组的FMCW LIDAR数据的第一集合与子组的FMCW LIDAR数据的第二集合的比较确定横摆参数。例如,系统可以基于第一集合和第二集合之间的速度差,并且基于第一集合和第二集合之间的3D距离确定横摆率。系统可以基于第一集合和第二集合的比较单独地,或者也基于附加集合的附加比较来确定横摆参数。
在子方框1006B,系统可以基于使用经训练的横摆机器学习模型对子组的FMCWLIDAR数据的处理来确定横摆参数。例如,系统可以使用经训练的横摆机器学习模型处理子组的全部或部分FMCW LIDAR数据,以生成指示横摆率的输出。例如,可以如下文参考图12的方法1200所述地训练经训练的横摆机器学习模型。
在一些实施方式中,系统仅使用子方框1006A和子方框1006B其中之一确定横摆参数。在其他实施方式中,系统使用子方框1006A和子方框1006B两者确定横摆参数。例如,系统可以基于子方框1006A确定第一横摆率,基于子方框1006B确定第二横摆率,并且基于第一横摆率和第二横摆率的组合确定最终横摆率。虽然在图10中示出了子方框1006A和1006B,但是应理解,可以在方框1006中包括附加和/或可替代的子方框,诸如利用附加车辆的存储的3D模型确定横摆参数的子方框。
在方框1008,系统基于所确定的横摆参数确定是否适配对车辆的自主控制。例如,系统可以至少部分地基于所确定的横摆参数选择性地适配自主转向和/或加速/减速。方框1008可以可选地包括子方框1008A,其中,系统基于所确定的横摆参数确定附加车辆的候选轨迹,并且基于候选轨迹确定是否适配对车辆的自主控制。例如,如果附加车辆的候选轨迹以及车辆的当前有意轨迹指示附加车辆和/或附加车辆指示车辆和附加车辆之间存在碰撞的可能性,则系统可以适配对车辆的自主控制。
在方框1008,系统返回到方框1002,在方框1002,系统接收新FMCW LIDAR数据(例如,还未使用方法1000处理的最新近生成的数据),然后进行到执行方框1002、1004、1006和1008的另一迭代。虽然在图10中示出为串行的,但是方框1002、1004和/或1006的下一次迭代可以在一个或多个后续方框的前一次迭代之前并行地执行(例如,通过多个处理器和/或线程)。通过图10的方框在车辆正在行驶的同时的继续迭代,附加车辆的横摆参数可以被连续地确定并更新(当存在附加车辆时),并且基于横摆参数选择性地适配对车辆的自主控制。
现在参考图11,提供了示出确定横摆参数并基于所确定的横摆参数控制自动驾驶车辆的另一示例方法1100的流程图。为了方便,参考执行操作的系统来描述流程图的操作。该系统可以包括各种组件,诸如图1的自动驾驶车辆100的一个或多个处理器。同时,虽然以特定顺序示出了方法1000的操作,但是这无意作为限制。可以重新排序、省略或添加一个或多个操作。
在方框1102,系统从车辆的FMCW LIDAR组件接收FMCW LIDAR数据。作为一个非限制性工作示例,FMCW LIDAR数据可以是测距多普勒图像。
在方框1104,系统基于所接收的FMCW LIDAR数据确定附加车辆的横摆参数。方框1104可以可选地包括子方框1004A,在子方框1004A,系统基于使用经训练的横摆机器学习模型对FMCW LIDAR数据的处理来确定横摆参数。继续工作示例,系统可以使用经训练的横摆机器学习模型来处理全部或部分距离多普勒图像,以生成至少指示在距离多普勒图像中捕获的附加车辆的横摆率的输出。例如,系统可以处理整个距离多普勒图像以生成指示附加车辆的横摆率以及附加车辆在距离多普勒图像中的定位的指示的输出。同样地,例如,系统可以处理距离多普勒图像的与单个附加车辆相对应的一部分,并生成指示单个附加车辆的横摆率的输出。经训练的横摆机器学习模型例如可以被如下面关于图12的方法1200所述地训练。
在方框1106,系统基于所确定的横摆参数确定是否适配对车辆的自主控制。方框1106可以可选地包括子方框1106A,在子方框1106A,系统基于所确定的横摆参数确定附加车辆的候选轨迹,并基于候选轨迹确定是否适配车辆的自主控制。
在方框1106,系统返回到方框1102,在方框1102,系统接收新的FMCW LIDAR数据(例如,还未使用方法1100处理的最新近生成的数据),然后进行到执行方框1104和1106的另一迭代。虽然在图11中示出为串行的,但是方框1102、1104和/或1106的下一次迭代可以在一个或多个后续方框的前一次迭代之前并行地执行(例如,通过多个处理器和/或线程)。通过图11的方框在车辆正在行驶的同时的继续迭代,附加车辆的横摆参数可以被连续地确定并更新(当存在附加车辆时),并且基于横摆参数选择性地适配对车辆的自主控制。
现在参考图12,提供了示出训练可以用于基于FMCW LIDAR数据确定横摆率的机器学习模型的示例方法1200的流程图。为了方便,参考执行操作的系统来描述流程图的操作。该系统可以包括各种组件,诸如一个或多个计算设备的一个或多个处理器,诸如一个或多个计算设备的一个或多个图形处理单元。同时,虽然以特定顺序示出了方法1200的操作,但是这无意作为限制。可以重新排序、省略或添加一个或多个操作。
在方框1202,系统生成每个都包括训练实例输入和训练实例输出的训练实例。训练实例输入包括FMCW LIDAR数据。训练实例输出包括与训练实例输入的FMCW LIDAR数据相对应的附加车辆的横摆率的指示。附加车辆可以包括附加的自动驾驶车辆和/或非自动驾驶车辆。
作为一个特定示例,每个训练实例的训练实例输入都可以包括实例的整个FMCWLIDAR数据。例如,每个训练实例输入都可以是对应的距离多普勒图像、对应的3D点云(具有速度值和强度值)或对应的时变中频(IF)波形。在这样的特定示例中,每个训练实例的训练实例输出都可以包括例如:包围框(或其他限制指示)(如果存在),每个包围框都指示FMCWLIDAR数据的包括附加车辆的一部分;以及每个包围框(如果存在)的横摆率和横摆方向。例如,对于具有包括没有捕获任何附加车辆的FMCW LIDAR数据的训练实例输入的第一训练实例,训练实例输出可以指示没有限制指示。同样地,例如,对于具有包括捕获了单个附加车辆的FMCW LIDAR数据的训练实例输入的第二训练实例,训练实例输出可以指示单个限制指示,该限制指示指示了FMCW LIDAR数据的与单个附加车辆相对应的部分,以及该限制指示的横摆率和横摆方向。同样地,例如,对于具有包括捕获了多个附加车辆的FMCW LIDAR数据的训练实例输入的第三训练实例,训练实例输出可以指示多个限制指示,该限制指示中的每一个均指示了FMCW LIDAR数据的与多个附加车辆中的对应一个相对应的部分,以及每个限制指示的对应横摆率和对应横摆方向。
作为另一特定示例,每个训练示例的训练实例输入都可以包括实例的FMCW LIDAR数据的子组,其中,FMCW LIDAR数据的子组基于确定FMCW LIDAR数据的对应于附加车辆的子组(例如,基于使用单独的经训练对象检测和分类机器学习模型来处理实例的FMCWLIDAR数据)来选择。由于FMCW LIDAR数据的对应于附加车辆的子组可能因实例而异(例如,基于附加车辆在实例时的相应姿态),所以可以采用一种或多种技术来生成每个都为相同尺寸的训练实例输入。例如,可以将填充数据添加到小于该尺寸的子组中。同样地,例如,FMCW LIDAR数据可以上采样(小于该尺寸时)或下采样(小于该尺寸时)。在这样的特定示例中,每个训练实例的训练实例输出都可以包括例如横摆率和横摆方向。
用于训练实例的训练实例输出的附加车辆的横摆率可以基于在与训练实例的FMCW LIDAR数据的捕获时间相对应的时间的横摆率的确定。在一些实施方式中并且对于至少一些训练实例,可以基于来自附加车辆的车载横摆率传感器的输出来确定横摆率。例如,来自车载横摆率传感器的输出可以与FMCW LIDAR数据时间同步,并且被用来向多个FMCWLIDAR数据实例中的每一个指配横摆率和横摆方向。在这些实施方式中,应注意,附加车辆的车载横摆率传感器可以用于生成用于训练横摆机器学习模型的训练实例的训练实例输出。然而,在推断时间,可以使用经训练的横摆机器学习模型来生成附加车辆的横摆率预测,而无需利用来自附加车辆的横摆率传感器的数据。例如,在推断时间,可以基于使用经训练的横摆机器学习模型仅处理给定实例的FMCW LIDAR数据,生成给定实例的横摆率预测。
在各种实施方式中,可以基于对来自附加车辆的控制器局域网(CAN总线)或包括来自横摆传感器的数据的附加车辆的其他通信网络的数据的监控,确定用于生成训练实例输出的来自附加车辆的车载横摆率传感器的输出。在那些各种实施方式中的一些中,膝上型计算机或其他计算设备可以在附加车辆的移动期间被结合在附加车辆中或附加车辆上,并且可以被耦合到附加车辆的通信网络,以记录在通信网络上传输的横摆率传感器数据和/或其他数据。在附加的或可替代的实施方式中,附加车辆的车载横摆率传感器可以是附加车辆的不与CAN总线和/或附加车辆的其他集成通信网络通信的孤立传感器。例如,在附加车辆的移动期间,包括横摆率传感器和计算设备的设备套件可以被结合在附加车辆中或附加车辆上,并且计算设备可以与横摆率传感器通信地耦合,以记录和时间戳记来自传感器的传感器数据。
可以利用各种技术来使(附加车辆的)车载横摆率速度传感器的输出与(自动驾驶车辆的)FMCW LIDAR数据时间同步,以使得能够将给定横摆率和给定横摆方向指配给对应的FMCW LIDAR数据实例。例如,记录来自附加车辆的横摆率数据的附加车辆的计算设备可以使用计算设备的本地时钟来对横摆率数据进行时间戳记。同样地,自动驾驶车辆的本地时钟可以对FMCW LIDAR数据进行时间戳记。横摆率数据的时间戳和FMCW LIDAR数据的时间戳可以用于配对FMCW LIDAR数据实例和对应的横摆率数据。例如,本地时钟可能在收集数据之前已被最近同步,并且时间戳被认为是同步的。同样地,例如,可以(在收集数据之前或之后)确定本地时钟之间的增量,该增量用于确定FMCW LIDAR数据的哪些时间戳对应于横摆率数据的哪些时间戳。
在一些附加的或可替代的实施方式中,并且对于至少一些训练实例,可以基于自动化横摆率确定技术确定横摆率,自动化横摆率确定技术至少部分地基于对捕获附加车辆的FMCW LIDAR数据(和/或其他传感器数据)的一个或多个先前/后续实例的分析,确定针对给定实例的横摆率。在这些实施方式中,应注意,可以在生成用于训练横摆机器学习模型的训练实例的训练实例输出时利用FMCW LIDAR数据的先前和/或后续实例。然而,在推断时间,可以使用针对给定实例的经训练的横摆机器学习模型和FMCW LIDAR数据,无需采用先前和/或后续FMCW LIDAR数据,生成针对给定实例的附加车辆的横摆率预测。例如,在推断时间,可以使用经训练的横摆机器学习模型,无需处理任何后续FMCW LIDAR数据(以及可选地在已经生成和/或接收后续FMCW LIDAR数据之前),基于对给定实例的FMCW LIDAR数据的处理,生成针对给定实例的横摆率预测。
在方框1204,系统选择在方框1202生成的训练实例中的训练实例。
在方框1206,系统基于使用机器学习模型处理实例的训练实例输入来生成预测。在一些实施方式中,机器学习模型可以是神经网络模型,诸如前馈神经网络模型。例如,机器学习模型可以是包括一个或多个卷积层的前馈卷积神经网络(CNN)。
在方框1208,系统基于预测与训练实例的训练实例输出的比较来生成损失。例如,可以基于预测与训练实例输出之间的差来确定误差,并基于误差的量值来确定损失。
在方框1210,系统基于损失更新机器学习模型。例如,系统可以通过基于损失执行机器学习模型的反向传播,更新机器学习模型的感知机权重。
在方框1212,系统确定是否执行进一步的训练。如果系统确定执行进一步的训练,则系统执行方框1204、1206、1208和1210的另一迭代。在一些实施方式中,如果仍存在任何未处理的训练实例,则系统确定执行进一步的训练。在一些实施方式中,系统基于一个或多个附加或可替代标准确定是否执行进一步的训练。例如,系统可以基于是否执行了阈值数量的训练时期,基于确定使用机器学习模型生成的最近预测满足标准,和/或基于其他标准/多条标准,确定是否执行进一步的训练。
如果,在方框1214,系统确定不执行进一步的训练,则系统进行到方框1214。在方框1214,系统提供经训练的机器学习模型,以用于基于FMCW LIDAR数据确定附加车辆的横摆率。例如,系统可以提供经训练的机器学习模型,以用于图10的方法1000或图11的方法1100。
虽然关于基于预测和单个训练实例的训练实例输出生成损失描述了方法1200,但是在各种实施方式中,可以利用批处理技术,其中基于一批训练实例的一批预测和训练实例输出确定损失。例如,可以在方框1208的每次迭代之前执行方框1204和1206的多次迭代,并且在方框1208每次迭代时,系统都可以基于方框1204和1206的最近迭代生成损失。
如本文所述,可以利用根据图12的方法1200的实施方式训练的经训练机器学习模型来确定附加车辆的横摆参数。如进一步所述的,可以使用经训练的机器学习模型的一些实施方式来处理LIDAR数据并基于对LIDAR数据的处理来生成输出,该输出直接地或间接地指示被LIDAR数据捕获的附加车辆的横摆参数。在那些实施方式中的一些中,经处理的LIDAR数据可以是已经被确定为对应于附加车辆的LIDAR数据的子集。例如,可以利用附加的经训练机器学习模型来检测对应于附加车辆的一部分LIDAR数据,并且使用经训练的机器学习模型来处理该部分LIDAR数据。如进一步所述的,可以使用经训练的机器学习模型的各种实施方式来处理LIDAR数据并基于对LIDAR数据的处理生成输出,该输出指示限制指示,每个限制指示都指示与对应车辆相对应的FMCM LIDAR数据的一部分,以及每个限制指示的对应横摆率和对应横摆方向。因而,在那些各种实施方式中,可以训练经训练的机器学习模型来用于执行附加车辆的检测,以及确定经检测的附加车辆的横摆参数。
关于训练可以用于基于FMCM LIDAR数据确定横摆率的机器学习模型描述了图12的方法1200。然而,在许多实施方式中,方法1200可以被适配以训练下列机器学习模型,该机器学习模型可以用于基于FMCM LIDAR数据和/或基于其他传感器数据(例如,非FMCMLIDAR数据、基于相机的图像和/或其他视觉传感器数据)来确定附加车辆的附加和/或可替代参数。
作为这种适配的一个示例,在步骤1202的变体中,系统可以生成训练实例,每个训练实例都包括具有相位相干LIDAR数据(FMCM LIDAR数据或其他相位相干LIDAR数据)的训练实例输入,并且包括训练实例输出,该训练实例输出包括与训练实例输入的相位相干LIDAR数据相对应的附加车辆的速度、加速度和/或航向的指示。附加车辆可以包括附加自动驾驶车辆和/或非自动驾驶车辆。在训练实例输出中,针对给定附加车辆的速度、加速度和/或航向的指示可以基于来自附加车辆的对应传感器的输出。例如,指示可以基于对来自CAN总线或附加车辆的其他通信网络的对应数据的监控和/或基于对不与CAN总线和/或附加车辆的其他集成通信网络通信的附加车辆的孤立传感器的监控来确定。可以利用各种技术将(附加车辆的)速度、加速度和/或航向与(自动驾驶车辆的)相位相干LIDAR数据时间同步,从而使得能够将给定速度、给定加速度和/或给定航向指配给对应的相位相干LIDAR数据实例。
作为适配的一个特定示例,每个训练实例的训练实例输入都可以包括实例的整个相位相干LIDAR数据。例如,每个训练实例输入都可以是对应的距离多普勒图像、对应的3D点云(具有速度值和强度值),或者对应的时变中频(IF)波形。这种特定示例中的每个训练实例的训练实例输出都可以包括例如:每个都指示包括附加车辆的相位相干LIDAR数据一部分的包围框(或其他限制指示)(如果存在);以及针对每个包围框(如果存在)的速度、加速度和/或航向的指示。
作为适配的另一特定示例,每个训练示例的训练实例输入都可以包括实例的相位相干LIDAR数据的子组,其中,相位相干LIDAR数据的子组基于确定相位相干LIDAR数据的子组对应于附加车辆(例如,基于使用单独的经训练的对象检测和分类机器学习模型对实例的相位相干LIDAR数据的处理)来选择。这种特定示例中的每个训练实例的训练实例输出都可以包括例如针对附加车辆的速度、加速度和/或航向的指示。
因而,本文所述的各种实施方式可以生成训练实例,该训练实例包括基于自动驾驶车辆的传感器数据的训练实例输入并且包括基于附加车辆的传感器数据的训练实例输出,其中,附加车辆至少部分地由自动驾驶车辆的传感器数据捕获。基于这些训练实例训练机器学习模型可以使得能够使用机器学习模型处理来自自动驾驶车辆的传感器数据,从而预测被至少部分地基于传感器数据捕获的附加车辆的一个或多个特性。通过本文的说明应明白,可以自动地并且没有(或很少)人工干预地执行这些训练实例的生成。例如,可以基于附加车辆的传感器数据生成针对训练实例的监督标签,消除了人工审核员提供此类监督标签的需求(并避免了与此类人工加标签相关联的各种计算资源的消耗),和/或在人工无法基于对训练实例输入的审查而生成标签的情况下,能够进行准确的自动加监督标签。