在线LIDAR到地面对准
文献发布时间:2024-01-17 01:27:33
背景技术
在这一部分中提供的信息是为了一般地呈现本公开的上下文的目的。在本部分中描述的程度上,当前署名的发明人的工作以及在提交时可能不构成现有技术的描述的各方面,既不明示地也不暗示地被认为是本公开的现有技术。
本公开涉及车辆物体检测系统,并且更具体地涉及车辆光检测和测距(LIDAR)系统。
车辆可以包括用于检测周围环境和该环境中的物体的各种传感器。传感器可以包括摄像机、无线电检测和测距(RADAR)传感器、LIDAR传感器等。车辆控制器可以响应于检测到的周围环境来执行各种操作。操作可以包括执行部分和/或完全自主的车辆操作、碰撞避免操作和信息报告操作。所执行的操作的准确度可以基于从传感器收集的数据的准确度。
发明内容
一种LIDAR到车辆对准系统包括:传感器数据收集模块,其被配置成收集基于一个或多个LIDAR传感器的输出而提供的数据点;以及对准模块,其被配置成基于数据点来识别车道标识,基于所识别的车道标识来确定车道标识方向,基于所确定的车道标识方向来计算LIDAR坐标系相对于车辆坐标系的偏航,基于数据点来识别地平面,基于所识别的地平面来计算LIDAR坐标系相对于车辆坐标系的翻滚和俯仰,以及基于LIDAR坐标系的所计算的偏航、翻滚和俯仰来更新变换矩阵。
在其他特征中,该系统还包括自主驾驶模块,该自主驾驶模块被配置成基于变换矩阵执行一个或多个自主驾驶操作。
在其他特征中,对准模块被配置成在计算LIDAR坐标系的偏航、翻滚和俯仰之前确定是否满足至少一个启用条件。
在其他特征中,所述对准模块被配置成基于强度阈值识别所述车道标识。
在其他特征中,所述对准模块被配置成基于预定的感兴趣区域中的数据点的强度来动态地确定所述强度阈值。
在其他特征中,所述对准模块被配置成使用主分量分析来确定所述车道标识方向。
在其他特征中,所述对准模块被配置成确定所述地平面的法线,并且基于所述地平面的法线来计算所述翻滚和所述俯仰。
在其他特征中,所述对准模块被配置成使用主成分分析来确定所述接地平面的法线。
在其他特征中,对准模块被配置成识别所计算的偏航、翻滚和俯仰中的统计离群值,并且从对变换矩阵的更新中移除统计离群值。
一种执行LIDAR到车辆对准的方法,包括:收集基于一个或多个LIDAR传感器的输出而提供的数据点;基于数据点来识别车道标识;基于所识别的车道标识来确定车道标识方向;基于所确定的车道标识方向来计算LIDAR坐标系相对于车辆坐标系的偏航;基于数据点来识别地平面;基于所识别的地平面来计算LIDAR坐标系相对于车辆坐标系的翻滚和俯仰;以及基于LIDAR坐标系的所计算的偏航、翻滚和俯仰来更新变换矩阵。
在其他特征中,该方法还包括:基于变换矩阵执行一个或多个自主驾驶操作。
在其他特征中,该方法还包括:在计算LIDAR坐标系的偏航、翻滚和俯仰之前确定是否满足至少一个启用条件。
在其他特征中,该方法还包括:基于强度阈值识别车道标识。
在其他特征中,所述方法还包括:基于预定的感兴趣区域中的数据点的强度来动态地确定所述强度阈值。
在其他特征中,该方法还包括:使用主成分分析来确定车道标识方向。
在其他特征中,该方法还包括:确定地平面的法线,并基于地平面的法线计算翻滚和俯仰。
在其他特征中,该方法还包括:使用主成分分析来确定地平面的法线。
在其他特征中,该方法还包括:识别所计算的偏航、翻滚和俯仰中的统计离群值;以及从对变换矩阵的更新中移除统计离群值。
本发明还可包括下列方案。
1. 一种LIDAR到车辆对准系统,其包括:
传感器数据收集模块,其被配置成收集基于一个或多个LIDAR传感器的输出而提供的数据点;以及
对准模块,其被配置成:
基于所述数据点来识别车道标识,
基于所识别的车道标识来确定车道标识方向,
基于所确定的车道标识方向来计算LIDAR坐标系相对于车辆坐标系的偏航,
基于数据点来识别地平面,
基于所识别的地平面来计算LIDAR坐标系相对于车辆坐标系的翻滚和俯仰,以及
基于所述LIDAR坐标系的所计算的偏航、翻滚及俯仰来更新变换矩阵。
2. 根据方案1所述的系统,还包括自主驾驶模块,所述自主驾驶模块被配置成基于所述变换矩阵来执行一个或多个自主驾驶操作。
3. 根据方案1所述的系统,其中,所述对准模块被配置成在计算所述LIDAR坐标系的所述偏航、翻滚和俯仰之前确定是否满足至少一个启用条件。
4. 根据方案1所述的系统,其中,所述对准模块被配置成基于强度阈值来识别所述车道标识。
5. 根据方案4所述的系统,其中,所述对准模块被配置成基于预定的感兴趣区域中的数据点的强度来动态地确定所述强度阈值。
6. 根据方案1所述的系统,其中,所述对准模块被配置成使用主分量分析来确定所述车道标识方向。
7. 根据方案1所述的系统,其中,所述对准模块被配置成确定所述地平面的法线,并且基于所述地平面的所述法线来计算所述翻滚和所述俯仰。
8. 根据方案7所述的系统,其中,所述对准模块被配置成使用主成分分析来确定所述地平面的法线。
9. 根据方案1所述的系统,其中,所述对齐模块被配置成识别所计算的偏航、翻滚和俯仰中的统计离群值,以及从对所述变换矩阵的更新中移除所述统计离群值。
10. 一种执行LIDAR到车辆对准的方法,所述方法包括:
收集基于一个或多个LIDAR传感器的输出而提供的数据点;
基于所述数据点来识别车道标识;
基于所识别的车道标识来确定车道标识方向;
基于所确定的车道标识方向来计算LIDAR坐标系相对于车辆坐标系的偏航;
基于所述数据点来识别地平面;
基于所识别的地平面来计算所述LIDAR坐标系相对于所述车辆坐标系的翻滚和俯仰;以及
基于所述LIDAR坐标系的所计算的偏航、翻滚及俯仰来更新变换矩阵。
11. 根据方案10所述的方法,还包括:基于所述变换矩阵来执行一个或多个自主驾驶操作。
12. 根据方案10所述的方法,还包括:在计算所述LIDAR坐标系的所述偏航、翻滚和俯仰之前确定是否满足至少一个启用条件。
13. 根据方案10所述的方法,还包括:基于强度阈值来识别所述车道标识。
14. 根据方案13所述的方法,还包括:基于预定的感兴趣区域中的数据点的强度来动态地确定所述强度阈值。
15. 根据方案10所述的方法,还包括:使用主成分分析来确定所述车道标识方向。
16. 根据方案10所述的方法,还包括:确定所述地平面的法线,并基于所述地平面的法线来计算所述翻滚和所述俯仰。
17. 根据方案16所述的方法,还包括:使用主成分分析来确定所述地平面的法线。
18. 根据方案10所述的方法,还包括:识别所述所计算的偏航、翻滚和俯仰中的统计离群值;以及从对所述变换矩阵的更新中移除所述统计离群值。
本公开的进一步的应用领域从详细描述、权利要求和附图将变得显而易见。详细描述和具体示例旨在仅用于说明的目的,而不旨在限制本公开的范围。
附图说明
本公开从详细描述和附图将变得更完全地被理解,其中:
图1是根据本公开的包括对准有效模块的示例车辆系统的功能框图;
图2是根据本公开的包括车辆和后台的示例对准系统的功能框图;
图3A、3B和3C示出了相对于车辆坐标系的LIDAR对准的偏航、俯仰和翻滚;
图4示出了根据本公开的确定LIDAR对准的示例方法的步骤;
图5A示出了根据本公开的从所收集的传感器数据进行的车道标识的示例识别;以及
图5B示出了根据本公开的从所收集的传感器数据进行的地平面的示例识别。
在附图中,可以重复使用附图标记来标识类似和/或相同的元件。
具体实施方式
自主驾驶模块可以执行传感器对准和融合操作、感知和定位操作、以及路径规划和车辆控制操作。可基于从各种传感器(例如LIDAR传感器、RADAR传感器、摄像机和惯性测量传感器(或惯性测量单元))收集的数据和从全球定位系统(GPS)收集的数据来执行所述操作。传感器对准和融合可以包括每个传感器的坐标系与参考坐标系(例如车辆坐标系)的对准。融合可以指收集和组合来自各种传感器的数据。
感知是指车辆周围环境的监测以及周围环境中的各种特征和/或物体的检测和识别。这可以包括确定特征和物体的各个方面。本文所使用的术语“特征”是指可以可靠地用于确定物体的位置的一个或多个检测点。这与所检测的其他数据点不同,其他数据点不提供关于物体(例如,树的叶子或树枝上的点)的位置的可靠信息。所确定的方面可以包括物体距离、位置、大小、形状、取向、轨迹等。这可以包括确定所检测的物体的类型,例如诸如物体是否是交通标志、车辆、杆、行人、地面等。还可以检测车道标识信息。特征可以指建筑物的表面、边缘或角落。定位指的是关于主车辆确定的信息,诸如位置、速度、航向等。基于所收集的感知和定位信息来执行路径规划和车辆控制(例如,制动、转向和加速)。
车辆可以包括多个LIDAR传感器。包括LIDAR到车辆对准和LIDAR到LIDAR对准的LIDAR传感器对准影响所确定的感知和定位信息的准确性,所述感知和定位信息包括例如上文所描述的特征和物体信息。GPS测量用于车辆定位、测绘和LIDAR对准。
从不同的LIDAR传感器收集的数据在被评估之前被变换(或投影)到相同的坐标系。例如,LIDAR数据可以被变换到车辆坐标系或世界坐标系。这种变换的准确性基于对准系统的对准状态。在一个示例中,对准是指用于将LIDAR坐标数据变换成车辆坐标数据的对准或变换矩阵中的条目(entry)是否有效。变换矩阵可用于将车辆坐标系中的坐标变换为LIDAR坐标数据。随着时间的推移,对准可能变得劣化或不正确,使得变换矩阵的条目不再有效。例如,由于传感器的未对准、传感器的震动、事故等,对准可能变得劣化。LIDAR传感器的重新对准可以由经过训练的维修技术人员使用特殊设备在对准服务中心离线执行。车辆的客户通常不能执行LIDAR传感器的离线对准。
LIDAR帧的聚合包括使用诸如GPS数据的定位数据和来自惯性测量单元(IMU)的数据、LIDAR数据和LIDAR到车辆坐标对准变换矩阵。变换矩阵用于提供车辆坐标系中的所得数据。如果不执行对准,则由于变换矩阵中的误差,所得图像变模糊。未对准在执行例如自主车辆操纵、物体检测、碰撞避免等时可能导致误差。
根据本公开的对准系统和方法被配置成基于LIDAR到车辆对准估计(例如,相对于车辆坐标系的LIDAR对准,其基于到环境特征的LIDAR对准来估计)来确定LIDAR对准。作为一个示例,基于相对于车道标识和地平面的LIDAR对准来确定车辆坐标系。例如,相对于车道标识的对准指示偏航,而相对于地平面的对准指示翻滚和俯仰。根据相对于车辆坐标系的所确定的LIDAR对准来更新变换矩阵。在其他的示例中,通过校正悬架行为、航向角等的变化,可以减小相对于地平面和车道标识的车辆未对准的影响。
图1示出了根据本公开的包括对准模块104(例如,在线对准模块)的车辆102的示例车辆系统100。下面将参考图1-5B进一步描述由对准模块104执行的操作。车辆系统100可包括自主驾驶模块105、车身控制模块(BCM)107、远程信息处理模块106、推进控制模块108、动力转向系统109、制动系统111、导航系统112、信息娱乐系统114、空调系统116以及其他车辆系统和模块118。自主驾驶模块105包括对准模块104、融合模块113、感知模块115、测绘和定位模块117以及路径规划模块121。测绘和定位模块117可包括GPS校正模块。下面进一步描述这些模块的操作。
模块和系统104-108、112-115、118和121可以经由控制器局域网(CAN)总线、以太网、局域互连网络(LIN)总线、另一总线或通信网络和/或无线地相互通信。物品119可以指代和/或包括CAN总线、以太网、LIN总线和/或其他总线和/或通信网络。该通信可以包括其他系统,例如系统109、111、116。电源122可以被包括,并且为自主驾驶模块105和其他系统、模块、装置和/或部件供电。电源122可以包括附件电源模块、一个或多个电池、发电机和/或其他电源。
远程信息处理模块106可以包括收发器130和远程信息处理控制模块132。推进控制模块108可控制推进系统136的操作,该推进系统可包括发动机系统138和/或一个或多个电动机140。发动机系统138可包括内燃机141、起动电动机142(或起动器)、燃料系统144、点火系统146和节气门系统148。
自主驾驶模块105可以基于来自传感器160的数据来控制模块和系统106、108、109、111、112、114、116、118以及其他装置和系统。其他装置和系统可以包括窗和门致动器162、内部灯164、外部灯166、行李箱电机和锁168、座椅位置电机170、座椅温度控制系统172和车辆反光镜电机174。传感器160可以包括温度传感器、压力传感器、流率传感器、位置传感器等。传感器160可以包括LIDAR传感器180、RADAR传感器182、摄像机184、惯性测量传感器186、GPS传感器190和/或其他环境和特征检测传感器。GPS传感器190可以被实现为导航系统112的一部分。LIDAR传感器180、惯性测量传感器186和GPS传感器190可以提供下面提到的LIDAR数据点、惯性测量数据和GPS数据。
自主驾驶模块105可以包括存储器192,其可以存储传感器数据、历史数据、对准信息等。存储器192可以包括将在下面描述的专用缓存。
图2示出了示例对准系统200,其包括第一(或主)车辆(例如,图1的车辆102)和/或其他车辆、分布式通信网络202和后台204。主车辆包括自主驾驶模块105、车辆传感器160、远程信息处理模块106和致动器210。致动器210可以包括电机、驱动器、阀、开关等。
后室204可以是中心局,其为车辆提供包括数据收集和处理服务的服务。后台204可以包括收发器211和具有控制模块216和存储器218的服务器214。另外或作为替代,车辆可以与除了服务器之外的其他基于云的网络装置通信。
自主驾驶模块105可以包括传感器数据收集模块212、对准模块104、融合模块113、感知模块115、测绘和定位模块117以及路径规划模块121。传感器数据收集模块212可以从传感器160收集数据,包括来自多个LIDAR传感器的LIDAR数据。如下面进一步描述的,对准模块104可以基于传感器160(例如,传感器180、182、184、186、190)的输出执行传感器对准操作。融合模块113在从不同传感器接收的数据被变换为例如车辆或世界坐标之后对所述数据进行聚合。该聚合可以是基于时间的。
对准模块104确定LIDAR传感器和/或其他传感器是否对准,意味着LIDAR传感器和/或其他传感器针对相同的一个或多个特征和/或物体所提供的信息的差异在彼此的预定范围内。对准模块104可确定LIDAR传感器的六个自由度的差值,包括翻滚、俯仰、偏航、x、y和z差值,并相应地确定LIDAR传感器是否对准。x坐标可以指前后或纵向水平方向。y坐标可以指横向(例如,左和右)方向。z方向可以指垂直方向。x、y、z坐标可以被不同地切换和/或定义。如果未对准,则可以重新校准LIDAR传感器中的一个或多个,和/或可以执行如下面进一步描述的对准过程。
感知模块115可以基于从融合模块113提供的经变换和聚合的传感器数据来执行感知操作。所接收的数据可以用于确定围绕相应主车辆(例如,图1的车辆102)的环境的方面。这可以包括(i)生成如上所述的感知信息,和/或(ii)如果尚未执行,则检测和识别特征和物体,并且确定特征和物体相对于主车辆102的位置、距离和轨迹。测绘和定位模块117可以执行GPS测绘和定位操作,包括实时GPS定位,其涉及提供主车辆的当前位置的GPS信息。
路径规划模块121可以基于测绘和定位模块117的输出来确定车辆的路径。路径规划模块121可以执行自主车辆操作,包括基于所确定的路径控制车辆102的操作,包括控制动力转向系统109、推进控制模块108、制动系统111和/或图1的其他系统和装置的操作。这可以包括控制致动器210的操作和/或执行报告信息、生成警报消息、警告附近车辆等。自主车辆操作可以包括碰撞避免操作和/或信息报告操作。
自主驾驶模块105可以在离线模式或在线模式下操作。离线模式是指后台204收集数据并执行自主驾驶模块105的数据处理时(例如,当车辆当前未被驾驶时)。这可以包括例如从车辆102收集GPS数据并且执行GPS定位校正和用于数据注释的LIDAR对准,并且将校正的GPS数据和数据注释提供回自主驾驶模块105。自主驾驶模块105的神经网络可以基于数据注释来训练。可以在数据注释之前进行GPS位置校正。尽管图2中未示出,服务器214的控制模块216可以包括模块212、104、113中的一个或多个,和/或执行与模块212、104和/或113中的一个或多个的操作类似的操作。
在离线模式期间,服务器214处理在延长的时间段上先前收集的数据。在在线模式期间(例如,当车辆当前正在被驾驶时),自主驾驶模块105执行GPS定位校正和/或LIDAR对准。这可以在有或没有基于云的网络装置(例如服务器214)的帮助下实现。在在线模式期间,自主驾驶模块105使用所收集的数据和/或历史数据执行实时GPS定位和LIDAR对准。这可以包括从其他车辆和/或基础设施装置收集的数据。基于云的网络装置可以提供历史数据、历史结果和/或执行其他操作以辅助实时GPS定位和LIDAR对准。实时GPS定位是指提供主车辆的当前位置的GPS信息。针对一个或多个LIDAR传感器的当前状态生成LIDAR对准信息。
模块105、212、104、113、115、117、121可以访问存储器192。存储器192可包括例如原始数据缓存220、目标数据缓存222、结果变换矩阵缓存224和其他缓存226。原始数据缓存220可以存储从诸如图1的LIDAR传感器180的传感器收集的原始数据。目标数据缓存222可以存储与一个或多个所选目标相关联的数据。结果变换矩阵缓存224可以存储使用各种方法和算法确定的所确定的变换矩阵。
图3A、3B和3C示出了相对于车辆坐标系(例如,包括x轴304-1、y轴304-2和z轴304-3的车辆坐标系,统称为车辆坐标系304)的LIDAR对准(例如,包括x轴300-1、y轴300-2和z轴300-3的LIDAR坐标系,统称为LIDAR坐标系300)的偏航、俯仰和翻滚。偏航指的是LIDAR x轴300-1相对于车辆x轴304-1在水平方向上的对准或偏移,或者LIDAR y轴300-2相对于车辆y轴304-2在水平方向上的对准或偏移,如图3A中的308所示。俯仰指的是LIDAR x轴300-1相对于车辆x轴304-1在竖直方向上的对准或偏移,或者LIDAR z轴300-3相对于车辆y轴304-3在向前或向后的水平方向(即,沿着车辆的x轴)上的对准或偏移,如图3B中的312所示。翻滚指的是LIDAR y轴300-2相对于车辆x轴304-2在竖直方向上的对准或偏移,或者LIDAR z轴300-3相对于车辆z轴304-3在横向水平方向(即,沿着车辆的y轴)上的对准或偏移,如图3B中的316所示。
根据本公开的对准模块104被配置成基于(i)环境特征和(ii)基于环境特征的车辆坐标系304的识别(例如,确定或计算)来确定相对于车辆坐标系304的LIDAR对准(即,LIDAR坐标系300的偏航、俯仰和翻滚)。作为一个示例,环境特征包括车道标识320和地平面324。对准模块104识别车道标识320,基于车道标识320确定车辆坐标系304的x轴304-1和/或y轴304-2,并且基于所确定的x轴304-1和/或y轴304-2计算偏航308。
相反,对准模块104识别地平面324,基于地平面324确定车辆坐标系304的x轴304-1和/或z轴304-3,并且基于所确定的x轴304-1和/或z轴304-3计算俯仰312。类似地,对准模块104基于地平面324确定车辆坐标系304的y轴304-2和/或z轴304-3,并且基于所确定的y轴304-2和/或z轴304-3计算翻滚316。
现在参考图4,示出了根据本公开的确定LIDAR对准(例如,如由对准模块104和自主驾驶模块105的其他部件执行)的示例方法400。在402,方法400确定是否满足车辆的启用条件。如果是,则方法400继续到404。如果否,则方法400重复步骤402。
例如,在某些驾驶条件期间收集的数据可能干扰LIDAR对准的准确计算。作为一个示例,低于第一阈值(例如,10 mph)或高于第二阈值(例如,70 mph)的车辆速度可以导致车辆偏航、俯仰和/或翻滚与依赖于环境特征(例如,车道标识和地平面)的未对准。作为另一个示例,车辆加速、制动、转弯等可能导致车辆偏航、俯仰和/或翻滚与依赖于环境特征的未对准。作为又一示例,不平坦的路面(例如,影响车辆悬架行为的颠簸或其他特征)可能导致车辆偏航、俯仰或翻滚与依赖于环境特征的未对准。因此,在402,方法400可确定车辆速度是否在预定范围内,车辆是否不在加速、减速或转弯,以及道路表面是否基本平坦。
在404,方法400识别道路上的车道标识。例如,方法400收集从环境(例如,在车辆任一侧的环境中)捕获的传感器数据,从传感器数据提取指示车道标识的特征,并且基于所提取的特征识别车道标识。换句话说,方法400识别传感器数据中的指示车道标识的特定特征,并且丢弃与车道标识不一致的特征。虽然被示为单个步骤404,但是方法400在多个帧上收集传感器数据。换句话说,传感器数据不对应于环境的单个样本或帧。相反,方法400在预定时段(例如,多个连续的加时间戳的帧)内收集传感器数据,以建立指示车道标识的特征的直线。
在408,方法400基于所识别的车道标识确定车道标识方向或航向(即,对应于车道标识的直线或向量)。在一个示例中,方法400使用主分量分析(PCA)确定车道标识方向。
在图5A中示出了在(例如,在多个帧上)所收集的传感器数据的点云504中识别的车道标识500的示例。点云504包括一组点,每个点对应于感兴趣区域(例如,位于车辆前方和/或车辆侧面预定距离处的矩形区域或框)中的由一个或多个LIDAR传感器检测到的特征。可以执行平面拟合以去除点云中的不位于道路表面上的点。方法400将点云504中的选定点识别为可能的车道标识。例如,方法400基于强度阈值选择车道标识点。更具体地,方法400将每个点的强度(例如,激光反射的测量)与强度阈值进行比较。大于强度阈值的点被识别为车道标识点,而小于强度阈值的点被丢弃。
根据本公开的强度阈值是动态的(即,不固定的)。例如,强度阈值可以根据点云504中的所有点的全局强度阈值来确定。作为一个示例,部分地基于点云504中的所有点的平均和/或中值强度来计算强度阈值。
如图5A所示,沿着拟合车道标识500的线的点对应于被识别为车道标识点的点。换句话说,沿着与LIDAR传感器所捕获的环境中的实际车道标识相对应的线来聚类被识别为车道标识点的点。作为一个示例,根据核密度估计(KDE)来识别聚类。与车道标识不一致的聚类(例如,距车辆大于预定距离的点的聚类,具有与车道标识不一致的航向或尺寸等)被丢弃,并且不被考虑用于车道标识确定。然后,车道标识聚类中的点被拟合到线或向量(例如,使用PCA)。
在412,方法400基于车道标识方向计算LIDAR坐标系的偏航。例如,方法400基于车道标识方向确定车辆航向。在一个示例中,方法400假设车辆航向(并且因此车辆的x轴)平行于车道标识方向。因此,相对于车道标识方向的计算偏航类似于LIDAR坐标系到车辆坐标系的偏航。在一些示例中,可以在旋转整个点云之后使用424处的翻滚和俯仰的计算结果来执行412处的偏航计算,这给出了在共同的欧拉角定义中的翻滚、俯仰和偏航的结果。
在416,方法400识别地平面。例如,方法400从指示地平面的传感器数据提取特征,并且基于所提取的特征来识别地平面。类似于步骤404,方法400在多个帧上收集传感器数据以建立指示地平面的特征平面。
在图5B中示出了用于确定地平面的(例如,在多个帧上)所收集的传感器数据的点云508的示例。点云508包括一组点,每个点对应于感兴趣区域(例如,位于车辆前方和/或车辆侧面预定距离处的矩形区域或框)中的由一个或多个LIDAR传感器检测到的特征。方法400将点云508中的选定点标识为可能的地平面。例如,方法400基于诸如随机采样一致性(RANSAC)的平面拟合方法来选择接地平面点。如图5B所示,可使用在所识别的地平面的第一区域512(例如,直接邻近车辆的较窄区域)中的点来计算俯仰。相反,可使用在所识别的地平面的第二区域516(例如,稍微更远离车辆的较宽区域)中的点来计算翻滚。
在420,方法400基于所识别的地平面确定地平面的法向向量(即,法向于地平面的线)。在一个示例中,方法400使用PCA确定法向向量。在424,方法400基于地平面和地平面的法线计算LIDAR坐标系的翻滚和俯仰。例如,方法400假设车辆的x轴和y轴平行于地平面,并且车辆的z轴法向于地平面。因此,相对于地平面和地平面法线的所计算的翻滚和俯仰类似于LIDAR坐标系相对于车辆坐标系的翻滚和俯仰。
在428,方法400基于所计算的偏航、翻滚和俯仰来更新LIDAR对准。例如,方法400根据LIDAR坐标系相对于车辆坐标系的所计算的偏航、翻滚和俯仰来更新变换矩阵。
尽管在图4中示出为在步骤416、420和424之前发生,但是步骤404、408和412可以在步骤416、420和424之后执行,与步骤416、420和424并行执行,等等。
自主驾驶模块105基于LIDAR传感器数据和更新的变换矩阵来执行自主驾驶操作。例如,自主驾驶模块105将LIDAR传感器数据的点转换成车辆坐标、世界坐标等,并且相应地执行自主驾驶操作。
在一些示例中,方法400可从所计算的偏航、翻滚和俯仰值中移除统计离群值(例如,作为步骤412、424和/或428的一部分)。例如,如上所述,各种环境和/或车辆操作因素可能导致车辆相对于地平面和车道标识的未对准。在未对准的情况期间收集的传感器数据可能导致统计离群值。方法400被配置成相应地识别和移除离群值。例如,对于偏航、翻滚或俯仰计算,方法400可计算每个计算结果的平均值、中值和/或标准偏差,并且移除超过预定标准偏差阈值的计算。然后,方法400基于剩余计算结果的平均值和/或中值计算偏航、翻滚或俯仰。
如本文所述,本公开的原理解决用于车辆的LIDAR确定和LIDAR对准校正,并且所要求保护的实施例包括配置成具体解决用于车辆的LIDAR对准的对准模块和/或方法。因此,要求保护的实施例提供了车辆的LIDAR对准的技术领域中的改进。
前述描述本质上仅是说明性的,并且不意图限制本公开、其应用或使用。本公开的广泛教导可以以各种形式实施。因此,虽然本公开包括特定示例,但是本公开的真实范围不应如此限制,因为在研究附图、说明书和所附权利要求书之后,其他修改将变得显而易见。应当理解,在不改变本公开的原理的情况下,方法内的一个或多个步骤可以以不同的顺序(或同时)执行。此外,尽管上文将实施例中的每一者描述为具有某些特征,但关于本公开的任何实施例描述的那些特征中的任何一者或一者以上可在其他实施例中的任一者的特征中实施及/或与其他实施例中的任一者的特征组合,即使未明确地描述所述组合。换句话说,所描述的实施例不是相互排斥的,并且一个或多个实施例彼此的置换保持在本公开的范围内。
使用各种术语描述元件之间(例如,模块、电路元件、半导体层等之间)的空间和功能关系,包括“连接”、“接合”、“耦合/联接”、“相邻”、“紧挨着”、“在顶部”、“之上”、“之下”和“设置”。除非明确地描述为“直接的(地)”,当第一和第二元件之间的关系在上述公开中描述时,该关系可以是在第一和第二元件之间不存在其他中间元件的直接关系,但是也可以是在第一和第二元件之间(在空间上或功能上)存在一个或多个中间元件的间接关系。如在本文使用的,短语A、B和C中的至少一个应该被解释为表示使用非排他逻辑OR的逻辑(A ORB OR C),并且不应该被解释为表示“A中的至少一个、B中的至少一个、和C中的至少一个”。
在附图中,箭头的方向,如箭头所指示的,通常表示图示感兴趣的信息(例如数据或指令)的流动。例如,当元素A和元素B交换各种信息,但是从元素A发送到元素B的信息与图示相关时,箭头可以从元素A指向元素B。该单向箭头不暗示没有其他信息从元素B发送到元素A。此外,对于从元素A发送到元素B的信息,元素B可以向元素A发送对该信息的请求或对该信息的接收确认。
在本申请中,包括下面的定义,术语“模块”或术语“控制器”可以用术语“电路”代替。术语“模块”可以指以下各项、作为以下各项的一部分或者包括以下各项:专用集成电路(ASIC);数字、模拟或混合模拟/数字离散电路;数字、模拟或混合模拟/数字集成电路;组合逻辑电路;现场可编程门阵列(FPGA);执行代码的处理器电路(共享、专用或组);存储器电路(共享、专用或组),其存储由所述处理器电路执行的代码;提供所述功能的其他合适的硬件组件;或者上述中的一些或全部的组合,例如在片上系统中。
该模块可以包括一个或多个接口电路。在一些示例中,接口电路可以包括连接到局域网(LAN)、因特网、广域网(WAN)或其组合的有线或无线接口。本公开的任何给定模块的功能可以分布在经由接口电路连接的多个模块中。例如,多个模块可以允许负载平衡。在进一步的示例中,服务器(也已知为远程或云)模块可以代表客户端模块完成一些功能。
如上所使用的术语“代码”可以包括软件、固件和/或微代码,并且可以指代程序、例程、函数、类、数据结构和/或对象。术语“共享处理器电路”包括执行来自多个模块的一些或所有代码的单个处理器电路。术语“组处理器电路”包括与附加处理器电路结合执行来自一个或多个模块的一些或所有代码的处理器电路。对多处理器电路的引用包括离散管芯上的多处理器电路、单个管芯上的多处理器电路、单个处理器电路的多个核、单个处理器电路的多个线程、或以上的组合。术语“共享存储器电路”包括存储来自多个模块的一些或所有代码的单个存储器电路。术语“组存储器电路”包括与附加存储器结合存储来自一个或多个模块的一些或所有代码的存储器电路。
术语“存储器电路”是术语计算机可读介质的子集。如本文所使用的术语“计算机可读介质”不包括通过介质(诸如在载波上)传播的暂时的电信号或电磁信号;因此,术语“计算机可读介质”可以被认为是有形的和非暂时性的。非暂时性有形计算机可读介质的非限制性示例是非易失性存储器电路(诸如闪存存储器电路、可擦除可编程只读存储器电路或掩模只读存储器电路)、易失性存储器电路(诸如静态随机存取存储器电路或动态随机存取存储器电路)、磁存储介质(诸如模拟或数字磁带或硬盘驱动器)和光存储介质(诸如CD、DVD或蓝光光盘)。
本申请中描述的设备和方法可以部分地或完全地由通过配置通用计算机以执行计算机程序中实施的一个或多个特定功能而创建的专用计算机来实现。上述功能块、流程图部件和其他元素用作软件规范,其可以由熟练技术人员或程序员的例行工作转换成计算机程序。
计算机程序包括存储在至少一个非暂时性有形计算机可读介质上的处理器可执行指令。计算机程序还可以包括或依赖于所存储的数据。计算机程序可以包括与专用计算机的硬件交互的基本输入/输出系统(BIOS)、与专用计算机的特定装置交互的装置驱动器、一个或多个操作系统、用户应用、后台服务、后台应用等。
计算机程序可以包括:(i)要解析的描述性文本,诸如HTML(超文本标记语言)、XML(可扩展标记语言)或JSON(JavaScript对象符号);(ii)汇编代码;(iii)由编译器从源代码生成的目标代码;(iv)由解释器执行的源代码;(v)由即时编译器编译和执行的源代码,等等。仅作为示例,可以使用来自包括C、C + +、C #、Objective-C、Swift、Haskell、Go、SQL、R、Lisp、Java®、Fortran、Perl、Pascal、Curl、OCaml、Javascript®、HTML5(超文本标记语言第5次修订)、Ada、ASP(活动服务器页面)、PHP(PHP:超文本预处理器)、Scala、Eiffel、Smalltalk、Erlang、Ruby、Flash®、Visual Basic®、Lua、MATLAB、SIMULINK和Python®的语言的语法来编写源代码。
- LIDAR传感器对准系统
- LIDAR传感器对准系统
- LIDAR对LIDAR对准和LIDAR对车辆对准的在线验证
- 一种光纤陀螺调制电压的在线对准装置及在线对准方法