验证在自动驾驶车辆中使用的传感器的定时的制作方法

文档序号:25599993发布日期:2021-06-22 17:20阅读:80来源:国知局
验证在自动驾驶车辆中使用的传感器的定时的制作方法

本公开的实施方式总体上涉及操作自动驾驶车辆。更具体地,本公开的实施方式涉及验证在自动驾驶车辆中使用的传感器的操作。



背景技术:

以自动驾驶模式运行(例如,无人驾驶)的车辆可以将乘员、尤其是驾驶员从一些驾驶相关的职责中解放出来。当以自动驾驶模式运行时,车辆可以使用车载传感器导航到各个位置,从而允许车辆在最少人机交互的情况下或在没有任何乘客的一些情况下行驶。

动作规划和控制是自动驾驶中的关键操作。路径描述用于自动驾驶车辆的运动的几何形状。自动驾驶车辆可以使用各种传感器来检测自动驾驶车辆所处的环境中的对象。自动驾驶车辆可以基于检测到的对象来确定穿梭环境的路径。



技术实现要素:

根据第一方面,本公开的实施方式提供了一种方法,其包括:在第一时间使传感器获取传感器数据,其中传感器通过向检测器发射波来获取传感器数据;确定检测器在第二时间检测到波;在第三时间接收来自传感器的传感器数据;以及基于第一时间、第二时间或第三时间中的至少一者来验证传感器的操作,其中传感器用于感测自动驾驶车辆的自动驾驶期间的驾驶环境。

根据第二方面,本公开的实施方式提供了一种方法,其包括:在第一时间使传感器获取传感器数据;在第二时间生成用于使传感器进行检测的激励;在第三时间接收来自传感器的传感器数据;以及基于第一时间、第二时间或第三时间中的至少一者来验证传感器的操作,其中传感器用于感测自动驾驶车辆的自动驾驶期间的驾驶环境。

根据第三方面,本公开的实施方式提供了一种非暂时性机器可读介质,在该非暂时性机器可读介质中存储有指令,该指令在由处理器执行时使得处理器执行操作,该操作包括:在第一时间使传感器获取传感器数据,其中传感器通过向检测器发射波来获取传感器数据;确定检测器在第二时间检测到波;在第三时间接收来自传感器的传感器数据;以及基于第一时间、第二时间或第三时间中的至少一者来验证传感器的操作。

附图说明

本公开的实施方式在附图的各图中以示例的方式而不是限制的方式示出,在附图中相同的附图标记表示类似的元件。

图1是示出根据一个实施方式的网络化系统的框图。

图2是示出根据一个实施方式的自动驾驶车辆的示例的框图。

图3a至图3b是示出根据一个实施方式的与自动驾驶车辆一起使用的感知和规划系统的示例的框图。

图4a是示出根据一个实施方式的决策和规划过程的示例的框图。

图4b是示出根据一个实施方式的用于自动驾驶的系统架构的框图。

图5是示出根据一个实施方式的传感器单元的示例的框图。

图6a是示出根据一个实施方式的高精度时间生成单元的示例的框图。

图6b是示出根据一个实施方式的具有三个计数器生成器的高精度时间生成单元的示例的框图。

图7是根据一个实施方式的示例性同步模块的框图。

图8a是示出根据一个实施方式的两个传感器的操作的时序的曲线图。

图8b是示出根据一个实施方式的两个传感器的操作的时序的曲线图。

图9是示出根据一个实施方式的用于使自动驾驶车辆的传感器同步的示例性过程的流程图。

图10a是示出根据一个实施方式的示例性传感器验证系统的框图。

图10b是示出根据一个实施方式的示例性传感器验证系统的框图。

图11是示出根据一个实施方式的示例性验证系统的框图。

图12是示出根据一个实施方式的用于验证在自动驾驶车辆中使用的传感器的示例性过程的流程图。

图13是示出根据一个实施方式的示例性验证系统的框图。

图14是示出根据一个实施方式的用于验证在自动驾驶车辆中使用的传感器的示例性过程的流程图。

具体实施方式

将参考以下所讨论的细节来描述本公开的各种实施方式和方面,附图将示出所述各种实施方式。下列描述和附图是对本公开的说明,而不应当解释为限制本公开。描述了许多特定细节以提供对本公开各种实施方式的全面理解。然而,在某些情况下,并未描述众所周知的或常规的细节以提供对本公开的实施方式的简洁讨论。

本说明书中对“一个实施方式”或“实施方式”的提及意味着结合该实施方式所描述的特定特征、结构或特性可以包括在本公开的至少一个实施方式中。短语“在一个实施方式中”在本说明书中各个地方的出现不必全部指同一实施方式。

一些实施方式涉及用于同步自动驾驶车辆(adv)的传感器的方法、设备和系统。如上所述,adv可以使用各种传感器来检测adv所处的环境和/或行进的环境中的对象。如果传感器不是同步的,则传感器可能无法同时或同一时间捕获、获得、记录、感测数据。这使得adv更难于关联和/或使用来自传感器的传感器数据。例如,adv可能更难以确定由一个传感器检测到的物体是否与由第二传感器检测到的物体相同。因此,可能有用的是:使传感器同步从而使得多个传感器在同一时间(例如同时地)捕获和/或获得传感器数据。

图1是示出根据本公开的一个实施方式的自动驾驶车辆网络配置的框图。参考图1,网络配置100包括可以通过网络102通信地联接到一个或多个服务器103至104的自动驾驶车辆101。尽管示出一个自动驾驶车辆,但多个自动驾驶车辆可以通过网络102联接到彼此和/或联接到服务器103至104。网络102可以是任何类型的网络,例如,有线或无线的局域网(lan)、诸如互联网的广域网(wan)、蜂窝网络、卫星网络或其组合。服务器103至104可以是任何类型的服务器或服务器群集,诸如,网络或云服务器、应用服务器、后端服务器或其组合。服务器103至104可以是数据分析服务器、内容服务器、交通信息服务器、地图和兴趣点(mpoi)服务器或者位置服务器等。

自动驾驶车辆是指可以被配置成处于自动驾驶模式下的车辆,在所述自动驾驶模式下车辆在极少或没有来自驾驶员的输入的情况下导航通过环境。这种自动驾驶车辆可以包括传感器系统,所述传感器系统具有被配置成检测与车辆运行环境有关的信息的一个或多个传感器。所述车辆和其相关联的控制器使用所检测的信息来导航通过所述环境。自动驾驶车辆101可以在手动模式下、在全自动驾驶模式下或者在部分自动驾驶模式下运行。在下文中,术语“自动驾驶车辆”和“自动驾驶车辆”(adv)可交换地使用。

在一个实施方式中,自动驾驶车辆101包括,但不限于,感知和规划系统110、车辆控制系统111、无线通信系统112、用户接口系统113、信息娱乐系统114和传感器系统115。自动驾驶车辆101还可以包括普通车辆中包括的某些常用部件,诸如:发动机、车轮、方向盘、变速器等,所述部件可以由车辆控制系统111和/或感知和规划系统110使用多种通信信号和/或命令进行控制,该多种通信信号和/或命令例如,加速信号或命令、减速信号或命令、转向信号或命令、刹车信号或命令等。

部件110至115可以经由互连件、总线、网络或其组合通信地联接到彼此。例如,部件110至115可以经由控制器局域网(can)总线通信地联接到彼此。can总线是被设计成允许微控制器和设备在没有主机的应用中与彼此通信的车辆总线标准。它是最初是为汽车内的复用电气布线设计的基于消息的协议,但也用于许多其它环境。

现在参考图2,在一个实施方式中,传感器系统115包括但不限于一个或多个相机211、全球定位系统(gps)单元212、惯性测量单元(imu)213、雷达单元214以及光探测和测距(lidar)单元215。gps系统212可以包括收发器,所述收发器可操作以提供关于自动驾驶车辆的位置的信息。imu单元213可以基于惯性加速度来感测自动驾驶车辆的位置和定向变化。雷达单元214可以表示利用无线电信号来感测自动驾驶车辆的本地环境内的对象的系统。在一些实施方式中,除感测对象之外,雷达单元214可以另外感测对象的速度和/或前进方向。lidar单元215可以使用激光来感测自动驾驶车辆所处环境中的对象。除其它系统部件之外,lidar单元215还可以包括一个或多个激光源、激光扫描器以及一个或多个检测器。相机211可以包括用来采集自动驾驶车辆周围环境的图像的一个或多个设备。相机211可以是静物相机和/或视频相机。相机可以是可机械地移动的,例如,通过将相机安装在旋转和/或倾斜平台上。

传感器系统115还可以包括其它传感器,诸如:声纳传感器、红外传感器、转向传感器、油门传感器、刹车传感器以及音频传感器(例如,麦克风)。音频传感器可以被配置成从自动驾驶车辆周围的环境中采集声音。转向传感器可以被配置成感测方向盘、车辆的车轮或其组合的转向角度。油门传感器和刹车传感器分别感测车辆的油门位置和刹车位置。在一些情形下,油门传感器和刹车传感器可以集成为集成式油门/刹车传感器。

在一个实施方式中,车辆控制系统111包括但不限于转向单元201、油门单元202(也被称为加速单元)和刹车单元203。转向单元201用来调整车辆的方向或前进方向。油门单元202用来控制电动机或发动机的速度,电动机或发动机的速度进而控制车辆的速度和加速度。刹车单元203通过提供摩擦使车辆的车轮或轮胎减速而使车辆减速。应注意,如图2所示的部件可以以硬件、软件或其组合实施。

回到图1,无线通信系统112允许自动驾驶车辆101与诸如设备、传感器、其它车辆等外部系统之间的通信。例如,无线通信系统112可以与一个或多个设备直接无线通信,或者经由通信网络进行无线通信,诸如,通过网络102与服务器103至104通信。无线通信系统112可以使用任何蜂窝通信网络或无线局域网(wlan),例如,使用wifi,以与另一部件或系统通信。无线通信系统112可以例如使用红外链路、蓝牙等与设备(例如,乘客的移动设备、显示设备、车辆101内的扬声器)直接通信。用户接口系统113可以是在车辆101内实施的外围设备的部分,包括例如键盘、触摸屏显示设备、麦克风和扬声器等。

自动驾驶车辆101的功能中的一些或全部可以由感知和规划系统110控制或管理,尤其当在自动驾驶模式下操作时。感知和规划系统110包括必要的硬件(例如,处理器、存储器、存储设备)和软件(例如,操作系统、规划和路线安排程序),以从传感器系统115、控制系统111、无线通信系统112和/或用户接口系统113接收信息,处理所接收的信息,规划从起始点到目的地点的路线或路径,随后基于规划和控制信息来驾驶车辆101。替代地,感知和规划系统110可以与车辆控制系统111集成在一起。

例如,作为乘客的用户可以例如经由用户接口来指定行程的起始位置和目的地。感知和规划系统110获得行程相关数据。例如,感知和规划系统110可以从mpoi服务器中获得位置和路线信息,所述mpoi服务器可以是服务器103至104的一部分。位置服务器提供位置服务,并且mpoi服务器提供地图服务和某些位置的poi。替代地,此类位置和mpoi信息可以本地高速缓存在感知和规划系统110的永久性存储设备中。

当自动驾驶车辆101沿着路线移动时,感知和规划系统110也可以从交通信息系统或服务器(tis)获得实时交通信息。应注意,服务器103至104可以由第三方实体进行操作。替代地,服务器103至104的功能可以与感知和规划系统110集成在一起。基于实时交通信息、mpoi信息和位置信息以及由传感器系统115检测或感测的实时本地环境数据(例如,障碍物、对象、附近车辆),感知和规划系统110可以规划路径或路线并且根据所规划的路线例如经由控制系统111来驾驶车辆101,以安全且高效到达指定目的地。

服务器103可以是为各种客户端执行数据分析服务的数据分析系统。在一个实施方式中,数据分析系统103包括数据采集器121和机器学习引擎122。数据采集器121采集来自各种车辆的驾驶统计数据123,所述车辆是自动驾驶车辆或由人类驾驶员驾驶的常规车辆。驾驶统计数据123包括指示所发布的驾驶命令(例如,油门、刹车、转向命令)以及在不同时间点由车辆的传感器捕获的、车辆的响应(例如,速度、加速度、减速度、方向)的信息。驾驶统计数据123还可以包括描述在不同时间点的驾驶环境的信息,例如,路线(包括起始位置和目的地位置)、mpoi、道路状况、天气状况等。

基于驾驶统计数据123,机器学习引擎122为各种目的生成或训练一组规则、算法和/或预测模型124。在一个实施方式中,算法124可以包括这样的路径算法,该路径算法接收输入、约束和成本函数,并且考虑到与路径相关联的舒适度以及对于路径的偏好来为adv生成路径,从而保持靠近车道中心线并且在具有缓冲区的情况下远离障碍物。还可以作为算法124的一部分生成路径规划的成本函数。然后,算法124可以被上传到adv上,以便在自动驾驶期间被实时地利用。

图3a和图3b是示出根据一个实施方式的与自动驾驶车辆一起使用的感知和规划系统的示例的框图。系统300可以实现为图1的自动驾驶车辆101的一部分,包括但不限于感知和规划系统110、控制系统111和传感器系统115。参照图3a至图3b,感知和规划系统110包括但不限于定位模块301、感知模块302、预测模块303、决策模块304、规划模块305、控制模块306、路线制定模块307、静态障碍映射器308、路径规划器309。

模块301至309中的一些或全部可以以软件、硬件或其组合实施。例如,这些模块可以安装在永久性存储设备352中、加载到存储器351中,并且由一个或多个处理器(未示出)执行。应注意,这些模块中的一些或全部可以通信地联接到图2的车辆控制系统111的一些或全部模块或者与它们集成在一起。模块301至309中的一些可以一起集成为集成模块。

定位模块301确定自动驾驶车辆300的当前位置(例如,利用gps单元212),并且管理与用户的行程或路线有关的任何数据。定位模块301(也被称为地图与路线制定模块)管理与用户的行程或路线相关的任何数据。用户可以例如经由用户接口登录并且指定行程的起始位置和目的地。定位模块301与自动驾驶车辆300的诸如地图和路线信息311的其它部件通信,以获得行程相关数据。例如,定位模块301可以从位置服务器和地图与poi(mpoi)服务器获得位置和路线信息。位置服务器提供位置服务,并且mpoi服务器提供地图服务和某些位置的poi,从而可以作为地图和路线信息311的一部分高速缓存。当自动驾驶车辆300沿着路线移动时,定位模块301也可以从交通信息系统或服务器获得实时交通信息。

基于由传感器系统115提供的传感器数据和由定位模块301获得的定位信息,感知模块302确定对周围环境的感知。感知信息可以表示普通驾驶员在驾驶员正驾驶的车辆周围将感知到的东西。感知可以包括例如采用对象形式的车道配置、交通灯信号、另一车辆的相对位置、行人、建筑物、人行横道或其它交通相关标志(例如,停止标志、让行标志)等。车道配置包括描述车道或各车道的信息,诸如,车道的形状(直或弯)、车道的宽度、道路中有几条车道、单向或双向车道、汇入或分岔车道、驶出车道等。

感知模块302可以包括计算机视觉系统或计算机视觉系统的功能,以处理并分析由一个或多个相机采集的图像,从而识别自动驾驶车辆环境中的对象和/或特征。所述对象可以包括交通信号、道路边界、其它车辆、行人和/或障碍物等。计算机视觉系统可以使用对象识别算法、视频跟踪以及其它计算机视觉技术。在一些实施方式中,计算机视觉系统可以绘制环境地图,跟踪对象,以及估算对象的速度等。感知模块302也可以基于由诸如雷达和/或lidar的其它传感器提供的其它传感器数据来检测对象。

对于每个对象,预测模块303预测对象在环境下将表现的行为。根据一组地图/路线信息311和交通规则312,基于在各时间点感知驾驶环境所得的感知数据来执行预测。例如,如果对象是处于相反方向的车辆并且当前驾驶环境包括交叉路口,则预测模块303将预测车辆可能直接向前运动还是转弯。如果感知数据指示交叉路口没有交通灯,则预测模块303可以预测车辆在进入交叉路口之前可能必须完全停止。如果感知数据指示车辆当前处于仅左转弯车道或仅右转弯车道,则预测模块303可以预测车辆将更可能分别进行左转弯或右转弯。

对于每个对象,决策模块304做出关于如何应对对象的决策。例如,对于特定对象(例如,交叉路口中的另一车辆)及其描述该对象的元数据(例如,速度、方向、转向角),决策模块304决策如何与该对象会车(例如,超车、让行、停止、通过)。决策模块304可根据可存储在永久性存储设备352中的一组规则(例如交通规则或驾驶规则312)来做出这样的决策。

路线制定模块307被配置为提供从起始点到目的地点的一个或多个路线或路径。对于例如从用户接收的从起始位置到目的地位置的给定行程,路线制定模块307获得路由和地图信息311,并确定从起始位置到目的地位置的所有可能的路线或路径。路线制定模块307可以为它所确定的从起始位置到达目的地位置的每条路线生成地形图形式的参考线。参考线指的是没有来自其它车辆、障碍物或交通状况的任何干扰的理想路线或路径。也就是说,如果在道路上没有其它车辆、行人或障碍物,则adv应该精确地或紧密地遵循参考线。然后将地形图提供给决策模块304和/或规划模块305。决策模块304和/或规划模块305考虑由其它模块提供的其它数据,例如来自定位模块301的交通状况、由感知模块302感知的驾驶环境以及由预测模块303预测的交通状况,检查所有可能的路线以选择和修改最佳路线之一。用于控制adv的实际路径或路线可以接近或不同于由路线制定模块307提供的参考线,这取决于在该时间点的特定驾驶环境。

基于针对所感知的对象中的每一者的决策,规划模块305使用由路线制定模块307提供的参考线作为基础来规划自动驾驶车辆的路径或路线以及驾驶参数(例如,距离、速度和/或转向角度)。也就是说,对于给定的对象,决策模块304决策对该对象做什么,而规划模块305决策如何做它。例如,对于给定的对象,决策模块304可以决策通过该对象,而规划模块305可以确定是在该对象的左侧还是右侧通过。规划和控制数据由规划模块305生成,其中,该规划模块305包括描述车辆300将如何在下一运动周期(例如,下一路线/路径段)中运动的信息。例如,规划和控制数据可以指示车辆300以每小时30英里(mph)的速度移动10米,然后以25mph的速度改变到右车道。

作为规划过程的一部分,路径规划器309可以基于成本函数313生成多个规划的adv状态,所述多个规划的adv状态可以被存储在永久存储设备352中。

基于规划和控制数据,控制模块306根据规划和控制数据所定义的路线或路径,通过向车辆控制系统111发送适当的命令或信号来控制和驾驶自动驾驶车辆。规划和控制数据包括这样的信息,该信息足以沿着路径或路线在不同时间点处使用适当的车辆设置或驾驶参数(例如,油门、刹车、转向命令)将车辆从路径或路径的第一点驾驶到第二点。

在一个实施方式中,规划阶段以多个规划周期(也称为驱动周期)执行,例如,以100毫秒(ms)的每个时间间隔执行。对于每个规划周期或驾驶周期,将基于规划和控制数据发出一个或多个控制命令。也就是说,对于每100ms,规划模块305规划下一个路线段或路径段,例如,包括目标位置和adv到达目标位置所需的时间。或者,规划模块305可进一步指定特定速度、方向和/或转向角等。在一个实施方式中,规划模块305在下一预定时间段(例如5秒)内规划路线段或路径段。对于每个规划周期,规划模块305基于在前一个周期中规划的目标位置来规划当前周期的目标位置(例如,下一个5秒)。控制模块306然后基于当前周期的规划和控制数据生成一个或多个控制命令(例如,油门、刹车、转向控制命令)。

应注意,决策模块304和规划模块305可以集成为集成模块。决策模块304/规划模块305可以包括导航系统或导航系统的功能,以确定自动驾驶车辆的驾驶路径。例如,导航系统可以确定用于实现自动驾驶车辆沿着以下路径移动的一系列速度和前进方向:所述路径在使自动驾驶车辆沿着通往最终目的地的基于车行道的路径前进的同时,基本上避免感知到的障碍物。目的地可以根据经由用户接口系统113进行的用户输入来设定。导航系统可以在自动驾驶车辆正在运行的同时动态地更新驾驶路径。导航系统可以将来自gps系统和一个或多个地图的数据合并,以确定用于自动驾驶车辆的驾驶路径。

在一个实施方式中,在sl坐标系中规划路径。可以相对于参考线(道路/车道中心线)定义sl坐标系。纵向距离或s距离表示沿着参考线的切线方向的距离。相应地,横向距离或l距离表示垂直于s方向的距离。sl空间中的纵向尺寸表示特定物体距假定沿参考线驾驶的车辆的当前位置的纵向距离。sl空间中的横向尺寸表示在由纵向尺寸表示的特定时间或位置处物体和参考线之间的最短距离。sl空间中的这种图被称为sl图。在一个实施方式中,横向距离可以简单地定义为离参考线的距离。因此,除了在笛卡尔坐标系(xy平面)中表示之外,车辆位置(位姿)可以在sl坐标系中表示为相对于参考线的有序对(纵向位姿/位置“s位姿”、横向位姿/位置“l位姿”),或者简单地表示为(s,l)。

在一些实施方式中,感知和规划系统110的一个或多个组件可以包括和/或可以使用一个或多个神经网络。例如,规划模块305可以包括和/或可以使用一个或多个神经网络来执行各种任务、功能、操作、动作等。在另一个示例中,预测模块302可以包括和/或可以使用一个或多个神经网络来执行各种任务、功能、操作、动作等。在一个实施方式中,可以包括在感知系统的一个或多个组件中和/或可以由感知系统的一个或多个组件使用的一个或多个神经网络可以检测由adv的传感器捕获和/或生成的图像中的车道(例如,道路车道)。例如,由感知模块302使用的神经网络可以确定可以指示图像中的道路的车道的线路指示符。

如图3a所示,系统300包括人工智能(ai)加速器360。ai加速器360可以是能够针对人工智能应用设计、定制和/或配置的处理设备。例如,ai加速器可用于加速人工神经网络的操作,以执行机器视觉和/或机器学习操作等。ai加速器的示例可包括图形处理单元(gpu)、专用集成电路、现场可编程门阵列等。

图4a是示出根据一个实施方式的决策和规划过程400的示例的框图。决策和规划过程400包括定位/感知数据401、路径决策过程403、速度决策过程405、路径规划过程407、速度规划过程409、聚合器411和轨迹计算器413。

路径决策过程403和速度决策过程405可以由图3b所示的决策模块304执行。参照图3b,决策模块304可以使用动态规划生成粗略路径配置文件作为路径规划过程407/速度规划过程409的初始约束。决策模块304可以使用路径状态机,该路径状态机提供先前的规划结果和重要信息(例如adv是正在行驶还是正在改变车道)以及交通规则。根据状态、交通规则、由路线制定模块307提供的参考线以及由adv感知的障碍物,路径决策过程403可以决策如何应对所感知的障碍物(即,忽略、超车、让行、停止、通过)以作为粗略路径配置文件的一部分。

例如,在一个实施方式中,基于路径的曲率和从参考线和/或参考点到障碍物的距离,通过由成本构成的成本函数来生成粗略路径配置文件。选择参考线上的点,并将其移动到参考线的左边或右边,作为代表候选路径的候选运动。每个候选运动具有相关联的成本。可以使用针对最佳成本的动态规划来一次一个点地顺序地求解参考线上的一个或多个点的候选运动的相关联的成本。动态规划(或动态优化)可以是这样的数学优化方法,其将要求解的问题分解为值函数序列,从而每次仅求解这些值函数中的每一个并存储它们的解。下一次出现相同的值函数时,简单地查找先前计算的解,而不是重新计算其解。

速度决策过程405可以使用速度状态机、速度交通规则和一个或多个行驶距离-时间(station-time)图。速度决策过程405可以使用动态规划生成粗略的速度分布,作为路径规划过程407/速度规划过程409的初始约束。根据速度状态机的状态、速度交通规则、由决策过程403生成的粗略路径配置文件以及感知到的障碍物,速度决策过程405可以生成粗略速度配置文件以控制何时对adv加速和/或减速。

路径规划过程407可以使用粗略路径配置文件(例如,行驶距离-横向偏移(station-lateral)图)作为初始约束以通过使用二次规划重新计算最优参考线。二次规划涉及最小化或最大化遵从边界、线性等式和/或不等式约束的目标函数(例如,具有几个变量的二次函数)。动态规划和二次规划之间的一个不同之处在于,二次规划针对参考线上的所有点一次性优化所有候选运动。路径规划过程407可以将平滑算法(例如b样条或回归)应用于输出的行驶距离-横向偏移图。可利用路径成本函数使用路径成本重新计算参考线,以优化用于参考点的候选运动的总成本,例如,使用二次规划(qp)优化来进行优化。

速度规划过程409可以使用粗略速度分布(例如,行驶距离-时间图)和一个或多个s-t图来确定adv的一个或多个速度。在一些实施方式中,s-t图可以包括s-t轨迹。s-t轨迹可以指示如下面更详细讨论的、adv在不同时间点沿着路径行进的距离。因此,(s-t图的)s-t轨迹可用于指示或确定车辆在不同时间点的速度。s-t图还可以包括或指示一个或多个停止条件。例如,s-t图还可以指示adv应当停止以避免障碍物的距离和时间,所述障碍物例如为行人、人行道、道路分隔物(例如,中心分隔物)、另一车辆等。尽管可以在图4中描述st图,但是可以在其它实施方式中使用其他类型的图(例如sl图,使用笛卡尔坐标系的图等)。速度规划过程409还可以使用一个或多个约束来确定adv的一个或多个速度。约束可以是当速度规划过程409确定该组速度时应该满足的一个或多个条件。例如,约束可以是对候选解应该满足的qp优化问题强加的条件。一个或多个约束可以使用如下面更详细讨论的速度约束函数来表示。

聚合器411执行聚合路径和速度规划结果的功能。例如,在一个实施方式中,聚合器411可以将二维s-t图和s-l图组合成三维slt图。在另一个实施方式中,聚合器411可基于s-l参考线或s-t曲线上的2个连续点来进行内插(或填充额外的点)。在另一个实施方式中,聚合器411可以将参考点从(s,l)坐标转换为(x,y)坐标。轨迹生成器413可以计算最终轨迹以控制adv。例如,轨迹生成器413基于由聚合器411提供的slt图,计算指示adc应当在什么时间通过特定(x,y)坐标的(x,y,t)点的列表。

因此,返回参考图4,路径决策过程403和速度决策过程405将考虑障碍和/或交通状况来生成粗略路径配置文件和粗略速度配置文件。在给出关于障碍物的所有路径和速度决策的情况下,路径规划过程407和速度规划过程409将使用qp规划考虑到障碍物来优化粗略路径配置文件和粗略速度配置文件,以生成具有最小路径成本和/或速度成本的最佳轨迹。

图4b是示出根据一个实施方式的用于自动驾驶的系统架构450的框图。系统架构450可以表示如图3a和图3b所示的自动驾驶系统的系统架构。参照图4b,系统架构450包括但不限于应用层451、规划和控制(pnc)层452、感知层453、驱动器层454、固件层455和硬件层456。应用层451可以包括与自动驾驶车辆的用户或乘客交互的用户接口或配置应用,例如,与用户接口系统113相关联的功能。pnc层452可以至少包括规划模块305和控制模块306的功能。感知层453可以至少包括感知模块302的功能。在一个实施方式中,存在包括预测模块303和/或决策模块304的功能的附加层。或者,这种功能可以包括在pnc层452和/或感知层453中。系统架构450还包括驱动器层454、固件层455和硬件层456。固件层455可以至少表示传感器系统115的功能,其可以以现场可编程门阵列(fpga)的形式实现。硬件层456可以表示自动驾驶车辆的硬件,诸如控制系统111和/或传感器系统115。层451-453可经由设备驱动器层454与固件层455和硬件层456通信。

图5是示出根据本公开的一个实施方式的传感器系统的示例的框图。参照图5,传感器系统115包括多个传感器510和联接到主机系统110的传感器单元500。主机系统110表示如上所述的规划和控制系统,其可以包括如图3a和3b所示的模块中的至少一些。传感器单元500可以以fpga器件或asic(专用集成电路)器件的形式实现。在一个实施方式中,传感器单元500尤其包括一个或多个传感器数据处理模块501(也简称为传感器处理模块)、数据传送模块502和传感器控制模块或逻辑503。模块501-503可以经由传感器接口504与传感器510通信,并且经由主机接口505与主机系统110通信。可选地,可以利用内部或外部缓冲器506来缓冲用于处理的数据。

在一个实施方式中,对于接收路径或上游方向,传感器处理模块501配置为经由传感器接口504从传感器接收传感器数据,并处理传感器数据(例如,格式转换、错误检查),该传感器数据可以被临时存储在缓冲器506中。数据传送模块502配置为使用与主机接口505兼容的通信协议将处理后的数据发送到主机系统110。类似地,对于发送路径或下游方向,数据传送模块502配置为从主机系统110接收数据或命令。然后,传感器处理模块501将数据处理成与相应传感器兼容的格式。然后将处理后的数据发送到传感器。

在一个实施方式中,传感器控制模块或逻辑503配置为响应于经由主机接口505从主机系统(例如感知模块302)接收的命令来控制传感器510的某些操作,例如捕获传感器数据的激活的时机。主机系统110可以配置传感器510使其以协同和/或同步的方式捕获传感器数据,使得传感器数据可以用于在任何时间点感知车辆周围的驾驶环境。

传感器接口504可以包括以太网、usb(通用串行总线)、lte(长期演进)或蜂窝、wifi、gps、相机、can、串行(例如,通用异步接收器发射器或uart)、sim(用户识别模块)卡和其它通用输入/输出(gpio)接口中的一个或多个。主机接口505可以是任何高速或高带宽接口,诸如pcie接口。传感器510可以包括例如在自动驾驶车辆中使用的各种传感器,诸如相机、lidar设备、radar设备、gps接收器、imu、超声波传感器、gnss(全球导航卫星系统)接收器、lte或蜂窝sim卡、车辆传感器(例如,油门、刹车、转向传感器)和系统传感器(例如,温度、湿度、压力传感器)等。

例如,相机可以通过以太网或gpio接口联接。gps传感器可经由usb或特定gps接口联接。车辆传感器可以通过can接口联接。radar传感器或超声波传感器可以通过gpio接口联接。lidar设备可以经由以太网接口联接。外部sim模块可以经由lte接口联接。类似地,可将内部sim模块插入到传感器单元500的sim插口上。诸如uart的串行接口可以与控制台系统联接以用于调试目的。

注意,传感器510可以是任何类型的传感器,并且由各种供应商或供应者提供。传感器处理模块501配置为应对不同类型的传感器以及它们各自的数据格式和通信协议。根据一个实施方式,每个传感器510与用于处理传感器数据和在主机系统110和相应传感器之间传送处理后的传感器数据的特定信道相关联。每个信道包括已被配置或编程为应对相应的传感器数据和协议的特定传感器处理模块和特定数据传送模块。

在一个实施方式中,传感器单元500包括高精度时间生成电路517。如图6a至图6b所示,高精度时间生成电路517可以生成由每个传感器510使用的时间和/或时间戳,以跟踪传感器数据何时由各传感器510发送或捕获/触发和/或由传感器单元500接收。

传感器系统115还包括同步模块519。在实施方式中,同步模块519可以使一个或多个跟随传感器与引导传感器的数据获取时间同步。如下面更详细讨论的那样,这可以允许引导传感器和跟随传感器在同一时间(例如,同时、在相同时间等)对传感器数据进行获取、记录、捕获等)。如果传感器不能在相同的时间或同时捕获、获取、记录传感器数据,则adv可能更难以关联和/或使用来自传感器s1和s2的传感器数据。例如,adv可能更难以确定由一个传感器检测到的物体是否与由第二传感器检测到的物体相同。在另一个示例中,如果两个传感器在不同的时间点检测物体,则adv可能更难以确定物体的位置。在一些实施方式中,使adv的传感器同步可以允许adv使来自不同传感器的不同传感器数据相关或更容易相关。使来自不同传感器的传感器数据相关可以允许adv在环境中更快速、有效、容易和/或更精确地检测车辆、物体、障碍物、行人、车道等。

现在参考图6a,高精度时间生成电路517可以包括时间同步单元550、gps传感器551和本地定时器553。时间同步单元550可以使本地定时器553相对于从来自gps传感器551的每秒脉冲(pps)信号导出的时间同步。pps可用于将用于精确时间测量的本地定时器553对准到毫微秒。gps传感器551可以是图2的传感器系统115的gps单元212的一部分,或者gps传感器551可以是集成在高精度时间生成电路517内的专用gps传感器。本地定时器553可以为传感器单元500生成时间。本地定时器553可以是来自传感器单元500的任何本地rtc(例如,cpurtc或fpgartc)或传感器的定时器,或从诸如蜂窝源的外部源(例如4g、长期演进(lte)、5g)、wifi源、fm接收器等检索的时间。

参照图6b,时间同步单元550可以包括监控模块555、调整模块557、毫秒生成器603、微秒生成器605、毫微秒生成器607、解多路复用器609和配置611。毫秒生成器603、微秒生成器605和毫微秒生成器607可以基于本地定时器553的振荡器分别生成毫秒、微秒和毫微秒振荡周期(例如,三个不同粒度的振荡器计数器)。配置611可以配置选择信号以选择毫秒生成器603、微秒生成器605和毫微秒生成器607的输出中的哪一个将被路由到监控模块555。监控模块555可监控所生成的振荡周期以对这些周期进行计数。调整模块557可以调整计数(或修改计数表示),以便使本地定时器553与来自gps传感器551的pps信号同步。在一个实施方式中,用于配置611的选择信号可以由传感器单元500的用户或者由反馈回路中的监控模块555/调整模块557来编程。例如,如果确定本地定时器553相对精确,则用户可以配置以禁用毫秒生成器。

根据所使用的晶体振荡器的类型,本地定时器553可以具有范围从0.1到100ppm的精度,例如,任何脉冲可以偏移0.1到100微秒,而来自gps传感器551的每秒脉冲(pps)信号具有小于0.1ppm的精度速率或小于0.1微秒的每秒脉冲的偏差。对于0.1ppm的gpspps信号,从gps传感器551接收的pps信号可以推断出连续脉冲每秒在999,999.9和1,000,000.1微秒之间,而典型的100ppm的本地定时器553可以推断出连续脉冲每秒在999,900和1,000,100微秒之间。此外,由于本地定时器553使用的晶体振荡器ic的环境温度的变化,本地定时器553的脉冲偏差的变化可以实时改变。因此,目的是调整或同步本地定时器553以实时地匹配gps传感器551。

为了使本地定时器553与gps传感器551同步,在一个实施方式中,gps传感器551接收gps脉冲信号(pps),该gps脉冲信号是由卫星以一定的准确率(例如,<0.1ppm)在空间中广播其信号而发送的rf信号。在一些实施方式中,gps传感器551从第一gps卫星接收pps信号,接着如果第一gps卫星超出范围,则从第二gps卫星接收pps信号。因为gps卫星使用其自己的精确时间测量且每个卫星具有其自己的原子时钟的机载集合,所以来自gps卫星的pps信号可以被看作一个或多个参考定时器。然而,注意,因为本地定时器553被实时调整以匹配任何一个gpspps信号,所以假设,假设当两个或多个不同gps卫星的gpspps信号时的任何时间差异都将无关紧要,因为本地定时器553可以被实时平滑地同步,如下面进一步描述的。

一旦接收到gpspps信号,监控模块555就可以确定pps信号的时间和本地定时器553的时间的任何偏差,并且可以基于所确定的偏差生成第二本地实时时钟/定时器。例如,基于pps信号,日期和时间信息(协调通用时间或utc格式)可以最初由gps(国家海洋电子协会)nmea数据信息提供,精确到几秒。接下来,在一个实施方式中,毫秒生成器603可以使用本地定时器553生成接近1毫秒的振荡计数(例如,第一粒度)。可以使用分频器电路对本地定时器553的信号频率进行分频来生成接近1毫秒的振荡计数。监控模块555然后可以针对具有一秒的gpspps信号时间间隔检测来自毫秒生成器603的周期的数量(例如,999个周期)或对其进行计数,例如,本地定时器553将gpspps信号滞后大约一毫秒。因为毫秒生成器603滞后于gpspps,所以在一个实施方式中,调整模块557调整毫秒生成器输出以表示每次振荡1.001毫秒。毫秒生成器603然后针对每秒生成以下1000个振荡表示:0.000、1.001、2.002、……、999.999和1001毫秒。因此,来自毫秒生成器603的第999周期计数到999.999毫秒。

接下来,微秒生成器605可以使用本地定时器553生成接近一微秒的振荡计数。可以使用第二分频器电路对本地定时器553的信号频率进行分频来生成接近一微秒的振荡计数(例如,第二粒度)。监控模块555可针对1毫秒的gpspps时间间隔对来自微秒生成器605的998个周期或2微秒偏差进行计数。同样,由于微秒生成器605滞后于gpspps,因此调整模块557调整微秒生成器输出以表示每次振荡1.002微秒。然后,微秒生成器针对每毫秒生成以下1000个振荡表示:0.000、1.002、2.004、……、999.996、1000.998和1002微秒。因此,第998个周期计数到999.996微秒。

接下来,毫微秒生成器607可以使用本地定时器553生成接近一毫微秒的振荡计数。可以使用第三分频器电路对本地定时器553的信号频率进行分频来生成接近一毫微秒的振荡计数(例如,第三粒度)。监控模块555可以针对一微秒的gpspps信号时间间隔对来自毫微秒生成器607的997个周期进行计数或者检测3毫微秒偏差。同样,调整模块557可以调整毫微秒生成器输出以表示每次振荡的1.003毫微秒。然后,毫微秒生成器针对每微秒生成以下1000个振荡表示:0.000、1.003、2.006、……、999.991、1000.994、1001.997和1003毫微秒。因此,从毫微秒生成器607开始的第977个周期计数到999.991毫微秒。这样,任何生成器输出(例如,表示)或其组合可以实时地生成高精度时间。然后可以将高精度时间提供给传感器单元500的传感器。在上述示例中,使用毫微秒生成器生成的时间具有高达一毫微秒的精度。注意,尽管描述了三个生成器(例如,三个粒度),但是可以使用任何数量的生成器和粒度来生成高精度时间。

在一些实施方式中,配置611可以经由解多路复用器609选择性地启用/禁用生成器603-607中的任何一个。可以选择性接通/断开任何生成器。当仅需要输出的子集时,所述选择性对于选择生成器输出的子集(例如,仅毫微秒生成器)是有用的。在另一个实施方式中,监控模块555缓冲(例如,保存)不同粒度的偏差,并且如果gps传感器信号丢失,则保持第一计数值、第二计数值和第三计数值(例如,每个振荡的值表示),直到gps传感器信号再次被恢复。

图7是根据一个实施方式的示例性同步模块519的框图。如上所述,同步模块519可以是传感器系统115的一部分。同步模块519可以经由传感器接口(例如,图5中所示的传感器接口504)联接到传感器710a、720a-720z、740a和760a-760z。传感器接口可以包括以太网、usb(通用串行总线)、lte(长期演进)或蜂窝、wifi、gps、相机、can、串行(例如,通用异步接收器发射器或uart)、sim(用户识别模块)卡、pcie和/或其它通用输入/输出(gpio)接口中的一种或多种。传感器710a、720a-720z、740a和760a-760z可以是自动驾驶车辆的一部分,并且可以由自动驾驶车辆用来检测自动驾驶车辆所处的环境中的对象(例如,检测对象、车辆、行人、骑车者、车道、建筑物、标志等)。传感器的示例可以包括相机、lidar设备/传感器、radar设备传感器、gps接收器、imu、超声设备/传感器、gnss(全球导航卫星系统)接收器传感器、lte或蜂窝sim卡、车辆传感器(例如,油门、刹车、转向传感器)和系统传感器(例如、温度、湿度、压力传感器)等。

传感器710a和740a可以是引导传感器,而传感器720a-720z可以是跟随传感器。引导传感器可以与一组跟随传感器(例如,一个或多个跟随传感器)相关联。引导传感器可以是用于确定其它传感器(例如,一个或多个跟随传感器的集合)何时应当对传感器数据进行记录、捕获、获取、获得、感测等的传感器。例如,引导传感器可以在某个时间捕获或获取传感器数据。与引导传感器相关联的跟随传感器的集合可以被配置为同时捕获或获取传感器数据。例如,引导传感器和跟随传感器集合可以同时捕获/获取传感器数据。跟随传感器可以与引导传感器相关联(例如,可以与引导传感器相组合)。如上所述,跟随传感器可以是基于相关联的引导传感器捕获/获取传感器数据的时间来捕获/获取传感器数据的传感器。在不同的实施方式中,在传感器系统115中可以使用任何组合和/或任何数量的引导传感器和/或跟随传感器。例如,传感器可以被组织成不同的集合,并且每个集合可以具有一个或多个引导传感器和一个或多个跟随传感器。

每个传感器可以具有一个或多个数据获取特性。传感器的数据获取特性可以是特性、特性、参数、属性、功能等。其可以指示和/或可以用于确定传感器捕获数据可能花费多长时间。例如,如果传感器是相机,则相机的数据获取特性可以包括快门速度、曝光设置、孔径设置、iso速度等。这些数据获取特性可指示和/或可用于确定(例如,计算)相机拍摄或记录图像可能花费的时间。在另一个示例中,如果传感器是lidar传感器/设备,则lidar传感器/设备的数据获取特性可以包括激光器或反射镜的旋转速度。旋转速度可以指示和/或可以用于确定(例如,计算)lidar传感器/设备捕获lidar数据可能花费多长时间。

在一个实施方式中,传感器的数据获取特性可以包括使传感器在接收到指令、消息、包等之后传感器开始捕获/获取传感器数据的时间量。例如,相机可能花费时间来启动相机中的ccd(电荷联接器件)和cmos(互补金属氧化物半导体)传感器。在另一个示例中,雷达设备/传感器可能花费时间来为发射器加电。在另一个示例中,lidar设备/传感器可能花费时间来为激光器加电。接收指令、消息、包等与开始捕获传感器数据之间的时间可以被称为传感器的启动延迟。在又一个示例中,对于lidar设备/传感器,激光器或反射镜旋转到特定位置/位置可能花费时间。启动延迟可以是传感器的数据获取特性的示例。

在一个实施方式中,传感器的数据获取特性可以包括传感器捕获/获得传感器数据所花费的时间量。例如,相机可能花费一定的时间来捕获或记录图像。在另一个示例中,雷达传感器/设备可能花费时间来执行足够的测量以确定到对象的距离。传感器对所花费的时间量进行捕获、获得、记录、生成等。传感器数据可以被称为获取延迟。获取延迟可以是传感器的数据获取特性的示例。获取延迟可以基于传感器的其它数据获取特性(例如,相机的快门速度、曝光时间等)。

同步模块519包括引导传感器模块731a和751a。在一个实施方式中,引导传感器模块可以确定引导传感器的一个或多个数据获取特性。例如,引导传感器模块731a可以确定传感器710a(例如引导传感器)的一个或多个数据获取特性,而引导传感器模块751a可以确定传感器740a(例如引导传感器)的一个或多个数据获取特性。引导传感器模块可以通过访问引导传感器的设置/参数、读取配置文件、向引导传感器查询数据获取特性(例如,向引导传感器查询数据获取特性)等来确定引导传感器的一个或多个特性。

同步模块519还包括跟随传感器模块733a-733z和753a-753z。在一个实施方式中,跟随传感器模块可以确定跟随传感器的一个或多个数据获取特性。例如,跟随传感器模块733a可以确定传感器720a(例如,跟随传感器)的一个或多个数据获取特性。跟随传感器模块可以通过访问跟随传感器的设置/参数、读取配置文件、向跟随传感器查询数据获取特性(例如,向跟随传感器请求数据获取特性)等来确定跟随传感器的一个或多个特性。

同步模块519还包括启动模块732a-732z和752a-752z。在一个实施方式中,启动模块可以启动对传感器数据的捕获、获取、记录等。例如,启动模块732a可以向传感器720a发送帧、消息、包、指令等,以使得传感器开始捕获传感器数据。消息、包、指令等可以启动、触发、致使传感器720a捕获传感器数据,等等。启动模块向传感器发送消息、包、指令等的时间(以触发或致使传感器捕获传感器数据)可以被称为启动时间。

在一个实施方式中,如上所述,同步模块519(例如,引导传感器模块或跟随传感器模块)可以确定引导传感器(例如,传感器710a)的一组数据获取特性以及与引导传感器(例如,传感器720a-720z)相关联的一组跟随传感器。同步模块519(例如,启动模块)可以基于引导传感器(例如,传感器710a)和一个或多个跟随传感器(例如,传感器720a-720z)的数据获取特性来同步引导传感器(例如,传感器710a)和一个或多个跟随传感器(例如,传感器720a-720z)的数据获取时间。例如,同步模块519可以使引导传感器在第一数据获取时间(例如,第一时间或时间段)获取传感器数据,并且可以使跟随传感器在第二数据获取时间(例如,第二时间或时间段)获取传感器数据。数据获取时间也可以被称为其中传感器可以获得传感器数据的时间周期、时间帧等。第一数据获取时间和第二数据获取时间可以重叠。例如,同步模块519可以使引导传感器和一个或多个跟随传感器(与引导传感器相关联)同时获得数据(例如,用于传感器的获取延迟的时间周期可以至少部分重叠)。

在一个实施方式中,同步模块519(例如,启动模块)可以基于引导传感器和/或一个或多个跟随传感器的数据获取特性来确定引导传感器和/或一个或多个跟随传感器的数据获取时间。例如,如下面更详细讨论的,同步模块519可以基于引导传感器和/或一个或多个跟随传感器的启动延迟和/或获取延迟来确定引导传感器和/或一个或多个跟随传感器的数据获取时间。在一个实施方式中,传感器的数据获取时间可以包括获取延迟,和/或可以与获取延迟相同(例如,数据获取时间是获取延迟)。

在一个实施方式中,同步模块519(例如,启动模块)可以基于引导传感器和/或一个或多个跟随传感器的传感器历史来确定引导传感器和/或一个或多个跟随传感器的数据获取时间。例如,同步模块519可以对引导传感器和/或一个或多个跟随传感器的先前启动延迟和获取延迟进行跟踪,记录等。同步模块519可以确定引导传感器和/或一个或多个跟随传感器的平均启动延迟和平均获取延迟。同步模块519可以基于用于引导传感器和/或一个或多个跟随传感器的平均启动延迟和平均获取延迟来确定引导传感器和/或一个或多个跟随传感器的数据获取时间。

在一个实施方式中,同步模块519(例如,启动模块)可以基于传感器的数据获取时间来确定传感器的启动时间。基于传感器捕获数据的时间量和期望的数据获取时间,同步模块519可以确定何时启动或触发传感器,使得传感器将在期望的数据获取时间(例如,在期望的时间、时间帧、时间周期等期间)捕获/获得传感器。例如,如下面更详细讨论的,如果传感器(捕获/获得传感器数据)的期望数据获取时间是时间t,则同步模块519可以确定传感器的启动时间应该是t减去传感器的启动延迟(以及减去获取延迟的一部分或全部)。

在一个实施方式中,引导传感器能够支持使用启动时间,并且一个或多个跟随传感器能够支持启动时间的使用。例如,可以触发引导传感器和一个或多个跟随传感器以在特定时间开始获取传感器数据(例如,可以指示在特定时间开始获取传感器数据)。在另一个实施方式中,引导传感器可能不能支持使用启动时间,并且一个或多个跟随传感器可能能够支持启动时间的使用。例如,一旦传感器开始获得传感器数据,传感器就可能不能调整用于捕获传感器数据的频率或定时(例如,传感器可以每15毫秒捕获数据,并且可能不能以不同的时间间隔捕获数据)。因为引导传感器可能不在某个时间被触发或启动,所以一个或多个跟随传感器可以使用引导传感器的定时(例如,获取延迟和/或启动延迟)来确定应该触发一个或多个跟随传感器以开始获得传感器数据的时间。

图8a是示出根据一个实施方式的两个传感器s1和s2的操作的时序的曲线图800。传感器s1和s2可以是自动驾驶车辆中的传感器。例如,传感器s1可以是相机,而传感器s2可以是lidar传感器/设备。传感器s2可以是引导传感器,而传感器s1可以是与传感器s2相关联(例如,与引导传感器相关联)的跟随传感器。如上所述,引导传感器可以是用于确定何时一个或多个跟随传感器应当对传感器数据进行记录、捕获、获取、获得、感测等。传感器s1和s2可以各自具有一个或多个数据获取特性。如上所述,传感器的数据获取特性可以是能够指示和/或可以用于确定传感器捕获数据可能花费多长时间的特性、性能、参数、属性、功能等。例如,启动延迟和/或获取延迟可以是传感器的数据获取特性。

如图8a所示,传感器s1和s2可以在5ms被启动。例如,传感器s1和s2可以接收消息、指令、数据等,以开始在5ms对传感器数据进行捕获、记录、获取等。t1a可以是传感器s1的启动延迟,t2a可以是传感器s2的启动延迟。如上所述,启动延迟可以是传感器在接收到消息、指令、数据等后开始对传感器数据进行捕获、记录、获得等所花费的时间。t1a表示5ms的启动延迟,t2a表示15ms的启动延迟。t1b可以是传感器s1的获取延迟,t2b可以是传感器s2的获取延迟。如上所述,获取延迟可以是传感器捕获传感器数据所花费的时间量(例如,相机捕获和成像所花费的时间)。t1b表示10ms的获取延迟,t2b表示15ms的获取延迟。

如图8所示,传感器s1和s2可以不同时对传感器数据进行收集、记录、获得、捕获等。例如,传感器s1在获取延迟t1b期间记录/获取传感器日,该获取延迟t1b在10ms开始并在20ms结束。传感器s2在获取延迟t2b期间记录/获取传感器日,该获取延迟t2b在20ms开始并在35ms结束。因为传感器s1和s2在不同的时间点捕获/获取传感器数据,所以它们可在不同的时间检测环境中的对象。例如,传感器s1可在t1b期间检测另一车辆,而传感器s2可在t2b期间检测同一车辆。然而,因为传感器s1和s2检测车辆的时间、时间周期、时间帧等不重叠(例如,因为s1和s2没有同时获得/捕获传感器数据),所以adv可能更难以关联和/或使用来自传感器s1和s2的传感器数据。例如,传感器s1可以在t1b期间捕获车辆的图像。传感器s2可以使用激光在t2b期间检测车辆的距离和/或形状。然而,因为传感器s1首先捕获s1的图像,并且s2随后检测到车辆的距离,所以当s2检测到车辆的距离时,车辆可能不再处于相同的位置(例如,可能不再处于相距adv相同的距离处)。因此,adv可能更难使从传感器s1和s2接收的传感器数据相关。例如,adv可能更难(或不可能)确定来自s1的图像中捕获的车辆与s2检测到的车辆相同。

图8b是示出根据一个实施方式的两个传感器s1和s2的操作的时序的曲线图800。传感器s1和s2可以是自动驾驶车辆中的传感器。传感器s2可以是引导传感器,而传感器s1可以是与传感器s2相关联(例如,与引导传感器相关联)的跟随传感器。如上所述,引导传感器可以是用于确定何时一个或多个跟随传感器应当对传感器数据进行记录、捕获、获取、获得、感测等的传感器。传感器s1和s2可以各自具有一个或多个数据获取特性。如上所述,传感器的数据获取特性可以是可以指示和/或可以用于确定传感器捕获数据可能花费多长时间的特性、性质、参数、属性、功能等。

在一个实施方式中,adv可以基于传感器s1和s2的数据获取特性来确定传感器s1和s2的启动时间。例如,传感器s1具有5ms的启动延迟和10ms的获取延迟。传感器s2具有15ms的启动延迟和15ms的获取延迟。adv可以确定传感器s1和s2的数据获取时间,使得传感器s1和s2的数据获取时间至少部分重叠,或者使得传感器s1和s2同时(例如,在s1的数据获取时间和s2的数据获取时间之间存在至少一些重叠)对传感器数据进行捕获、记录、获得等。

如图8b所示,adv(例如,图5和图7中所示的同步模块519)可以确定传感器s1和s2的启动时间。如上所述,传感器s1和s2的启动时间可以是传感器s1和s2可以启动对传感器数据的记录、捕获、收集等的时间。传感器s1的启动时间可以是15ms,传感器s2的启动时间可以是5ms。因为传感器s1的启动延迟是5ms,而传感器s2的启动延迟是15ms,所以传感器s2可以较早地启动。这可以允许传感器s1和s2同时开始对传感器数据进行捕获、记录等。例如,传感器s1和s2都可以在20ms的时间处开始对传感器数据进行捕获、记录等。因此,传感器s1和s2可以同时对传感器数据进行记录、捕获等。

在其它实施方式中,如果在传感器的数据获取时间之间存在至少一些重叠(例如,在传感器的获取延迟的时间周期之间存在一些重叠),则启动时间和/或数据获取时间可偏移。例如,传感器s1的启动时间可以在时间20ms,并且获取延迟t1b可以在25ms和35ms之间。这可以允许传感器s1和s2同时完成捕获、记录、获取等。

如上所述,当传感器不同时对传感器数据进行捕获、记录、获得等时,adv可能难以使来自不同传感器的传感器数据相关。如图8所示,adv可以使传感器s1和s2同步(例如,使传感器s1和s2的操作同步),使得在传感器s1和s2对数据进行捕获、记录、获得等的时间段中存在至少一些重叠。因为传感器s1和s2获得传感器数据的时间、时间周期、时间帧等重叠,所以这可以允许adv更容易地使来自传感器s1和s2的传感器数据相关。例如,传感器s1可以是相机,并且可以在t1b期间捕获车辆的图像。传感器s2可以是lidar设备/传感器,并且可以在t2b期间使用激光器检测车辆的距离和/或形状。因为传感器s1首先捕获s1的图像并且传感器s2同时检测到距离,所以adv可以确定由传感器s2(使用激光)检测到的车辆与由传感器s1生成的图像中的车辆相同。

在一些实施方式中,使来自不同传感器的传感器数据相关可以允许adv在环境中更容易和/或更精确地检测车辆、物体、障碍物、行人、车道等。例如,如果相机和lidar设备/传感器同时检测到车辆,则adv能够更容易地使传感器数据相关,并且可以更确信在环境中存在对象。在另一个示例中,如果adv能够更容易地关联来自多个传感器的传感器数据,则adv能够更容易地确定环境中的对象的位置、速度和/或行驶方向。

图9是示出根据一个实施方式的用于同步自动驾驶车辆的传感器的示例性过程900的流程图。过程900可由可包括软件、硬件或其组合的处理逻辑来执行。过程900可由可包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(cpu)、片上系统(soc)等)、软件(例如,在处理设备上运行、执行的指令)、固件(例如,微代码)或其组合的处理逻辑来执行。在一些实施方式中,过程900可以由处理设备、同步模块(例如,图5和图7中所示的同步模块519)、同步模块的部分(例如,图7中所示的引导传感器模块、启动模块和/或跟随传感器模块)等来执行。

在框905,过程900可以确定引导传感器的一个或多个数据获取特性。例如,过程900可以查询引导传感器或者可以访问配置文件。在框910,过程900可以确定一个或多个跟随传感器的一个或多个数据获取特性。例如,过程900可以查询一个或多个跟随传感器或者可以访问一个或多个配置文件。

在框915处,过程900可使引导传感器的数据获取时间与一个或多个跟随传感器的数据获取时间同步。例如,过程900可以确定引导传感器和一个或多个跟随传感器的数据获取时间(例如,当传感器应该同时对传感器数据进行获得、收集、记录、收集等时)。引导传感器和一个或多个跟随传感器的数据获取时间可以基于引导传感器和一个或多个跟随传感器的数据获取特性(例如,基于启动延迟、获取延迟等)来确定。在框917,过程900可以确定引导传感器和/或一个或多个跟随传感器的启动时间。例如,如果引导传感器能够支持用户的启动时间,则过程900可以确定引导传感器和一个或多个跟随传感器的启动时间。在另一个示例中,如果引导传感器不能支持用户的启动时间,则过程900可以确定一个或多个跟随传感器的启动时间。在框917,过程900可以在启动时间启动传感器(例如,引导传感器和/或一个或多个跟随传感器)。因此,可以使引导传感器和/或一个或多个跟随传感器对传感器数据进行采集、记录、获得、收集等。

在框920,过程900可以基于传感器数据确定adv的路径。例如,可以确定道路上避免由adv的传感器检测到的障碍物的路径。在框925,过程900可以基于路径来控制adv。例如,过程900可以使adv沿着路径行驶。

图10a是示出根据一个实施方式的示例性传感器验证系统1000的框图。验证系统1000包括传感器系统115和验证设备1020。传感器系统115包括传感器510、验证模块101和传感器单元500。如上所述,传感器系统115还可以包括主机系统(图10a中未示出)。传感器510可以包括在自动驾驶车辆中使用的各种传感器,例如相机、lidar设备、radar设备、gps接收器、imu、超声波传感器、gnss(全球导航卫星系统)接收器、lte或蜂窝sim卡、车辆传感器(例如,油门、刹车、转向传感器)和系统传感器(例如,温度、湿度、压力传感器)等。尽管在图10a中示出了一个传感器510,但是在其它实施方式中,传感器系统115可以包括多个传感器。

在一个实施方式中,传感器510可以是有源传感器。有源传感器可以是可以对波进行发射、发送、传播、生成等的传感器。例如,有源传感器可以发送或发射电磁波(例如,无线电波、光波、红外波等),并且可以检测电磁波的反射以检测自动驾驶车辆周围的环境中的对象。在另一个示例中,有源传感器可以发送或发射声波,并且可以检测声波的反射以检测在自动驾驶车辆周围的环境中的对象。有源传感器的示例可以包括雷达传感器/设备、lidar传感器/设备、超声传感器/设备等。在另一个实施方式中,传感器510可以是无源传感器。无源传感器可以是不发射、发送、传播、生成波等的传感器。例如,无源传感器可以检测电磁波或声波以检测自动驾驶车辆周围的环境中的对象。无源传感器的示例可以包括麦克风、相机、摄像机等。

传感器单元500可以以fpga器件或asic器件的形式实现。如上所述,传感器单元500可以经由传感器接口与传感器510通信,并且可以经由主机接口与主机系统通信。传感器接口可以包括以太网、usb、lte或蜂窝、wifi、gps、相机、can、串行、sim卡和/或其它gpio接口中的一个或多个。主机接口505可以是任何高速或高带宽接口,例如pcie接口。传感器单元500可以经由传感器接口从传感器510接收传感器数据并处理传感器数据(例如,格式转换、错误检查)。传感器单元500可以使用与主机接口兼容的通信协议将处理后的数据传送到主机系统。类似地,对于发送路径或下游方向,传感器单元500可以从主机系统接收数据或命令。然后,传感器单元500将数据处理成与传感器510兼容的格式。然后将处理后的数据发送到传感器510。

在一个实施方式中,传感器控制模块或逻辑503配置为响应于经由主机接口505从主机系统(例如感知模块302)接收的命令来控制传感器510的某些操作,例如对捕获传感器数据的激活的定时。主机系统110可以配置传感器510使其以协同和/或同步的方式捕获传感器数据,使得传感器数据可以用于在任何时间点感知车辆周围的驾驶环境。注意,传感器510可以是任何类型的传感器,并且由各种供应商或供应者提供。传感器单元500被配置成应对不同类型的传感器以及它们各自的数据格式和通信协议。

在一个实施方式中,传感器单元500还包括时间生成电路(图10a中未示出)。时间生成电路可生成用于验证系统1000的组件的、可指示时间和/或可用于确定时间(例如,全局时间、参考时间等)的信号。例如,时间生成电路可以是可以连续输出当前时间的时钟或指示当前时间的定时信号。传感器510和验证模块可以使用定时信号来确定时间戳和/或确定何时执行操作、动作等。在一个实施方式中,时间生成电路可以是验证模块1010的一部分。在另一个示例中,如上所述,时间生成电路可以是传感器单元500的一部分。在另一个实施方式中,时间生成电路可以与验证模块1010和传感器单元500分离。

验证系统1000包括验证设备101。在一个实施方式中,验证设备1020可以是检测器。检测器可以是可以检测由传感器510生成、发射、发送的波等的设备。例如,传感器510可以是lidar设备(例如,有源传感器),并且验证设备1020可以是可以检测由lidar设备发射的光波的光电检测器(例如,激光器)。在另一个示例中,传感器510可以是雷达设备(例如,有源传感器),并且验证设备1020可以是检测雷达设备发射的无线电波的天线。在另一个示例中,传感器510可以是超声设备(例如,有源传感器),并且验证设备1020可以是检测超声设备发射的声波的麦克风。

传感器系统115还包括验证模块1010。在实施方式中,验证模块1010可以验证传感器510的操作。例如,验证模块1010可以确定传感器510是否能够足够快速地启动传感器数据的捕获(例如,启动延迟是否具有可接受的时间/范围)。在另一个示例中,验证模块1010可以确定传感器510是否能够足够快速地捕获传感器数据(例如,获取延迟是否在可接受的时间/范围内)。在另一个示例中,验证模块1010可确定传感器510是否能够足够快速地将传感器数据发送到另一设备(例如,发送到主机系统)。在又一个示例中,验证模块1010可基于由传感器510生成的传感器数据来确定传感器510是否能够检测对象。

如上所述,如果传感器不同时或不在同一时间捕获、获得、记录传感器数据(例如,如果传感器不同步),则adv可能更难以关联和/或使用来自多个传感器的传感器数据。例如,adv可能更难于确定由一个传感器检测到的对象与由第二传感器检测到的对象是否相同,或者如果两个传感器在不同的时间点检测到对象,则adv可能更难于确定对象的位置。使adv的传感器同步可以允许adv使来自不同传感器的不同传感器数据相关或更容易相关。使来自不同传感器的传感器数据相关可以允许adv在环境中更快速、有效、容易和/或更精确地检测车辆、物体、障碍物、行人、车道等。例如,adv能够更容易地关联传感器数据,并且可以更确信在环境中存在对象。在另一个示例中,如果adv能够更容易地关联来自多个传感器的传感器数据,则adv能够更容易地确定环境中的对象的位置、速度和/或行驶方向。

验证传感器510的操作可以允许传感器系统115(例如,图5和图7中所示的同步模块519)正确地使传感器510与自动驾驶车辆中的其它传感器同步。例如,如果传感器没有正确地操作(例如,花费太长的时间来获取传感器数据、花费太长的时间来启动等),则传感器系统115可能无法正确地使传感器510与其它传感器同步。验证模块1010可以允许传感器系统115验证传感器510正在正确地操作,这可以允许传感器与自动驾驶车辆中的其它传感器正确地同步。如果传感器510没有正确操作,则验证模块1010能够提供传感器510没有正确操作的指示(例如,发送错误消息、显示错误消息等)。这可以允许用户(例如,驾驶员/乘客、机械师、技术人员等)知晓传感器510何时未正确地操作并更换传感器510。

图10b是示出根据一个实施方式的示例性传感器验证系统1050的框图。验证系统1050包括传感器510、验证模块1010和验证设备1020。传感器510可以包括在自动驾驶车辆中使用的各种传感器(例如,lidar设备,雷达设备、超声波传感器、相机、摄像机、gps接收器等)。尽管在图10b中示出了一个传感器510,但是在其它实施方式中,验证系统1050可以包括多个传感器。

在一个实施方式中,传感器510可以是有源传感器(例如,lidar传感器、设备、雷达传感器/设备、ir传感器/设备、超声波传感器/设备)。有源传感器可以是这样的传感器,其可以发射、发送、传播、生成波(例如,无线电波、光波、红外波、声波等)等,并且可以检测波的反射以检测自动驾驶车辆周围的环境中的对象。在另一个实施方式中、传感器510可以是无源传感器。无源传感器可以是不发射、发送、传播、生成波等的传感器(例如,相机、摄像机、gps接收器、麦克风等)。传感器510可以经由传感器接口联接到验证模块1010。如上所述,传感器接口可以包括以太网、usb、lte或蜂窝、wifi、gps、相机、can、串行、sim卡、pcie接口和/或其它gpio接口中的一个或多个。验证模块1010可经由传感器接口从传感器510接收传感器数据并处理传感器数据(例如,格式转换、错误检验)。在一个实施方式中,验证模块1010被配置成控制传感器510的某些操作,例如对捕获传感器数据的激活的定时。这可以允许验证模块1010验证传感器510的操作。

在一个实施方式中,传感器单元500还包括时间生成电路(图10a中未示出)。时间生成电路可生成用于验证系统1000的组件的、可指示时间和/或可用于确定时间(例如,全局时间、参考时间等)的信号。例如,时间生成电路可以是可以连续输出当前时间的时钟或指示当前时间的定时信号。传感器510、验证设备和验证模块1030可以使用定时信号来确定时间戳和/或确定何时执行操作、动作等。在一个实施方式中,时间生成电路可以是验证模块1010的一部分。在另一个示例中,如上所述,时间生成电路可以是传感器单元500的一部分。在另一个实施方式中,时间生成电路可以与验证模块1010和传感器单元500分离。

验证系统1000包括验证设备101。在一个实施方式中,验证设备1020可以是检测器。检测器可以是可以检测由传感器510生成、发射、发送波等的设备。例如,传感器510可以是lidar设备(例如,有源传感器),并且验证设备1020可以是可以检测由lidar设备发射的光波的光电检测器(例如,激光器)。在另一个示例中,传感器510可以是雷达设备(例如,有源传感器),并且验证设备1020可以是检测雷达设备发射的无线电波的天线。在另一个示例中,传感器510可以是超声设备(例如,有源传感器),并且验证设备1020可以是检测超声设备发射的声波的麦克风。

传感器系统115还包括验证模块1010。在实施方式中,验证模块1010可以验证传感器510的操作。例如,验证模块1010可以确定传感器510是否能够足够快速地启动传感器数据的捕获(例如,启动延迟是否具有可接受的时间/范围)。在另一个示例中,验证模块1010可以确定传感器510是否能够足够快速地捕获传感器数据(例如,获取延迟是否在可接受的时间/范围内)。在另一个示例中,验证模块1010可确定传感器510是否能够足够快速地将传感器数据发送到另一设备(例如,发送到主机系统)。在又一个示例中,验证模块1010可基于由传感器510生成的传感器数据来确定传感器510是否能够检测对象。

如上所述,如果传感器不同时或不在同一时间捕获、获得、记录传感器数据,则adv可能更难以关联和/或使用来自多个传感器的传感器数据。使adv的传感器同步可以允许adv使来自不同传感器的不同传感器数据相关或更容易相关。使来自不同传感器的传感器数据相关可以允许adv在环境中更快速、有效、容易和/或更精确地检测车辆、物体、障碍物、行人、车道等。验证传感器510的操作可以允许用户(例如,技术员、机械师等)确定传感器510是否能够与自动驾驶车辆中的其它传感器正确地同步。验证模块1010可以允许传感器系统115验证传感器510正在正确地操作,这可以允许传感器510与自动驾驶车辆中的其它传感器正确地同步。如果传感器510没有正确操作,则验证模块1010能够提供传感器510没有正确操作的指示(例如,发送错误消息、显示错误消息等),这可以允许用户知晓传感器510何时未正确地操作并更换传感器510。

图11是示出根据一个实施方式的示例性验证系统1100的框图。验证系统1100包括传感器510、验证模块1010和检测器1150。传感器510可以是有源传感器,例如lidar设备、雷达设备、超声设备、红外设备/传感器(例如,发射红外波的设备)、紫外设备/传感器(例如,发射紫外波的设备)等。如上所述,有源传感器可以是对波(例如,无线电波、光波、电磁波、声波等)进行发射、传输、生成等的设备。验证模块1010包括启动模块1110、检测模块1120、操作模块1130和定时模块1140。

在一个实施方式中,启动模块1110(例如,验证模块)可以使传感器获得传感器510获得传感器数据和/或开始获得传感器数据(例如,启动操作、过程、功能、动作等以获得传感器数据)。例如,启动模块1110可以启动对传感器数据的捕获、获取、记录等。在一个实施方式中,启动模块1110可以向传感器510发送帧、消息、包、指令等,以使传感器510开始捕获传感器数据。消息、包、指令等可以启动、触发、致使传感器510,等等,以使其捕获传感器数据。在另一个实施方式中,启动模块1110可以向传感器510发送信号(例如,电线上的一个或多个电压),以使传感器510开始捕获传感器数据。如下面更详细讨论的,启动模块1110可以基于由定时模块1140生成的定时信号来确定启动模块1110使传感器开始捕获传感器数据的时间。启动模块1110可以生成时间戳或一些其它信息,以指示启动模块1110使传感器开始捕获传感器数据的时间。

在一个实施方式中,检测模块1120(例如,验证模块1010)可以确定检测器1150是否已经检测到由传感器510发射、生成、发送的波等。如上所述,检测器1150可以是能够检测由传感器510发射、生成、发送等波(例如,电磁波、声波等)等的某种类型的检测器和/或检测设备。检测器1150可以是光电检测器、天线、麦克风等。检测模块1120(例如,验证模块1010)可以联接到检测器1150。检测模块1120还可以确定检测器1150检测到由传感器510发射的波的时间。例如,检测模块1120可以接收来自检测器1150的、指示检测器1150已经检测到由传感器510发射的波的信号(例如,电线上的一个或多个电压)和/或消息。检测模块1120可以基于由定时模块1140(下面将更详细地讨论)生成的定时信号来确定何时从检测器1150接收到信号和/或消息。检测模块1120可生成时间戳或一些其它信息以指示从检测器1150接收到信号和/或消息的时间。

在一个实施方式中,操作模块1130可以从传感器510接收传感器数据。传感器数据可以是由传感器获得和/或生成的数据。传感器数据可以指示关于自动驾驶车辆在其中运行的环境的信息。例如,传感器数据可以指示和/或识别在自动驾驶车辆所处的环境中的一个或多个对象。操作模块1130可以确定何时从传感器510接收到传感器数据。例如,操作模块1130可以基于由定时模块1140(下面将更详细地讨论)生成的定时信号来确定何时从传感器510接收到传感器数据。操作模块1130可生成时间戳或一些其它信息以指示从传感器510接收到传感器数据的时间。

操作模块1130可以基于由启动模块1110、检测模块1120和操作模块1130确定的一个或多个时间和/或时间戳来验证传感器510的操作。在一个实施方式中,操作模块1130可以基于启动模块1110使传感器510获得传感器数据的时间(例如,第一时间和/或时间戳)以及检测器1150检测到由传感器510发射的波的时间(例如,第二时间和/或时间戳)来确定传感器510的启动延迟。例如,操作模块1130可基于第一时间与第二时间之间的差来确定启动延迟。如果启动延迟小于或等于阈值时间(例如,小于阈值时间段),则操作模块1130可确定传感器510正在正确地操作和/或在可接受的性能水平内操作。如果启动延迟大于阈值时间,则操作模块1130可以确定传感器510不正确地操作和/或不在可接受的性能水平内。在另一个示例中,操作模块1130可确定传感器510的启动延迟是否在传感器的参考启动延迟的阈值内。参考启动延迟可以基于传感器510的数据获取特性。如果启动延迟在参考启动延迟的阈值内,则传感器510可以正确地工作,反之亦然。

在一个实施方式中,操作模块1130可以通过基于启动模块1110使传感器510获得传感器数据的时间(例如,第一时间和/或时间戳)、检测器1150检测到由传感器510发射的波的时间(例如,第二时间和/或时间戳)以及操作模块1130从传感器510接收到传感器数据的时间(例如,第三时间和/或时间戳)确定传感器510的获取延迟,来验证感测的操作。例如,操作模块1130可基于第二时间与第三时间的差来确定获取延迟。如果获取延迟小于或等于阈值时间(例如,小于阈值时间段),则操作模块1130可确定传感器510正在正确地操作和/或在可接受的性能水平内操作。如果获取延迟大于阈值时间,则操作模块1130可以确定传感器510没有正确地操作和/或不在可接受的性能水平内。在另一个示例中,操作模块1130可确定传感器510的获取延迟是否在传感器的参考获取延迟的阈值内。参考获取延迟可以基于传感器510的数据获取特性。如果获取延迟在参考获取延迟的阈值内,则传感器510可以正确地操作,反之亦然。

在一个实施方式中,操作模块1130可基于第一时间与第三时间之间的差异来验证传感器510的操作。第一时间和第三时间之间的差值可以指示传感器510获得传感器数据所花费的总时间量。操作模块1130可确定总时间量是否小于或等于阈值(例如,传感器510用于获得传感器数据的总时间量是否小于10毫秒、200毫秒或某一其它适当的时间段)。如果总时间量小于或等于阈值,则操作模块1130可以确定传感器510正确地操作。如果总时间量大于阈值,则操作模块1130可以确定传感器没有正确地操作。

在一个实施方式中,由操作模块1130接收的传感器数据可以包括时间戳。时间戳可以指示传感器510生成传感器数据的时间。操作模块1130可以确定时间戳是否准确地为检测器1150检测到由传感器510发射的波的时间(例如,第二时间和/或时间戳)以及操作模块1130从传感器510接收到传感器数据的时间(例如,第三时间和/或时间戳)。例如,操作模块1130可确定时间戳是否指示小于或早于第三时间且晚于第一时间的时间。如果时间戳指示小于或早于第三时间并且晚于第一时间的时间,则操作模块1130可以确定传感器正确地操作,反之亦然。

在一个实施方式中,操作模块1130可以确定从传感器510接收到的传感器数据是否指示传感器检测到了物体。例如,参考对象可以存在于环境中。操作模块1130可以确定传感器数据是否指示传感器510检测到环境中存在参考对象。如果传感器510检测到参考对象的存在、位置、速度和/或方向,则操作模块1130可以确定传感器510正确地操作,反之亦然。

在一个实施方式中,定时模块1140可生成定时信号。定时信号可以被传感器510和检测器1150用于确定参考时间。例如,定时信号可以指示当前时间和/或可以由传感器510和/或检测器1150用于确定当前时间。这可以允许验证系统1100的所有组件(例如,传感器510、检测器1150和验证模块1010)使用相同的参考时间进行操作。

如上所述,使adv的传感器同步可以允许adv使来自不同传感器的不同传感器数据相关或更容易相关。使来自不同传感器的传感器数据相关可以允许adv在环境中更快速、有效、容易和/或更精确地检测车辆、物体、障碍物、行人、车道等。验证传感器510的操作可以允许用户(例如,技术员、机械师等)确定传感器510是否能够与自动驾驶车辆中的其它传感器适当地同步。验证模块1010可以允许传感器系统115验证传感器510正在正确地操作,这可以允许传感器510与自动驾驶车辆中的其它传感器正确地同步。如果传感器510没有正确操作,则验证模块1010能够提供传感器510没有正确操作的指示(例如,发送错误消息、显示错误消息等),这可以允许用户知晓传感器510何时未正确地操作(例如,传感器是否有缺陷)并更换传感器510。

图12是示出根据一个实施方式的用于验证在自动驾驶车辆中使用的传感器的示例性过程的流程图。过程1200可由可包括软件、硬件或其组合的处理逻辑来执行。过程1200可由可包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(cpu)、片上系统(soc)等)、软件(例如,在处理设备上运行/执行的指令)、固件(例如、微代码)或其组合的处理逻辑来执行。在一些实施方式中,过程1200可以由处理设备、验证模块(例如,图10a、图10b、图11和图13中所示的验证模块1010)、验证模块的部分(例如,图11中所示的启动模块、检测模块、操作模块和/或定时模块)等来执行。

在框1205处,过程1200可以生成定时信号。例如,过程1200可以生成指示当前时间的连续信号。在框1205处,过程1200可以将定时信号提供给传感器和/或检测器。这可以允许传感器和/或检测使用相同的当前时间进行操作。在框1215处,过程1200可以在第一时间使传感器获得传感器数据。例如,过程1200可以向传感器发送消息和/或信号,以使传感器获得传感器数据。在框1220处,过程1200可以确定检测器已经在第二时间检测到由传感器生成的波。例如,过程1200可以从检测到的接收信号或消息,该信号或消息指示检测到的已经检测到由传感器生成的电磁波或声波。在框1225处,过程1200可以在第三时间从传感器接收传感器数据。

在框1230处,过程1200可以基于第一时间、第二时间和/或第三时间中的一个或多个来验证传感器的操作。例如,如上所述,过程1200可以确定传感器的启动时间是否在参考启动时间的阈值内。在另一个示例中,如上文所讨论,过程1200可确定传感器的获取时间是否在参考获取时间的阈值内。

图13是示出根据一个实施方式的示例性验证系统1300的框图。验证系统1300包括传感器510、验证模块1010和激励生成器1350。传感器510可以是无源传感器,例如相机、摄像机、麦克风、gps接收器等。如上所述,无源传感器可以是不发射、发送、生成波(例如,无线电波、光波、电磁波、声波等)等的设备。验证模块1010包括启动模块1310、激励模块1320、操作模块1330和定时模块1340。

在一个实施方式中,如上所述,启动模块1310(例如,验证模块)可以使传感器获得传感器510获得传感器数据和/或开始获得传感器数据(例如,启动操作、过程、功能、动作等以获得传感器数据)。启动模块1310可以向传感器510发送帧、消息、包、指令等,以使传感器510开始捕获传感器数据。启动模块1310还可以向传感器510发送信号(例如,电线上的一个或多个电压),以使传感器510开始捕获传感器数据。启动模块1310可以基于由定时模块1340生成的定时信号来确定启动模块1310使传感器开始捕获传感器数据的时间。启动模块1310可以生成时间戳或一些其它信息,以指示启动模块1310使传感器开始捕获传感器数据的时间。

在一个实施方式中,激励模块1320可以生成可以由传感器510检测的激励。激励模块1320可以在一段时间内生成激励。例如,激励模块1320可以在一段时间内生成光、声音等。该时间段可以基于传感器510的数据获取特性。例如,该时间段可以基于传感器520的启动延迟和获取延迟。基于启动延迟,激励模块可以在传感器510已经被启动的时刻或之后开始时间周期。基于获取延迟,激励模块1320可以结束该时间段,使得该时间段与获取延迟的阈值相同或在获取延迟的阈值内。通过在传感器510的获取延迟期间生成激励,激励模块1320可以允许操作模块1330确定传感器510在获取延迟期间是否检测到激励。激励模块1320还可以允许操作模块1330确定传感器510的启动延迟是否是可接受的。激励模块1320还可以允许操作模块1330确定传感器510的获取延迟是否是可接受的。激励模块1320可以向激励生成器1350发送消息和/或信号,以使激励生成器1350生成激励。例如,该消息可以指示激励生成器1350应该何时和多长时间生成激励。

在一个实施方式中,激励模块1320可以基于传感器510的参考启动延迟和参考获取延迟来确定激励生成器1350应该生成激励的时间段。例如,基于参考启动延迟和启动模块1310使传感器510获得传感器数据的时间,激励模块1320可以确定何时开始生成激励。在另一个示例中,基于传感器510的参考获取延迟,激励模块1320可确定应生成多长时间的激励(例如,何时停止生成激励)。

在一个实施方式中,操作模块1330可以从传感器510接收传感器数据。传感器数据可以是由传感器获得和/或生成的数据。传感器数据可以指示关于自动驾驶车辆在其中运行的环境的信息。操作模块1330可以确定何时从传感器510接收到传感器数据。操作模块1330可生成时间戳或一些其它信息以指示从传感器510接收到传感器数据的时间。

操作模块1330可以基于由启动模块1310、激励模块1320和操作模块1330确定的一个或多个时间和/或时间戳来验证传感器510的操作。在一个实施方式中,操作模块1330可以基于启动模块1310使传感器510获得传感器数据的时间(例如,第一时间和/或时间戳)、激励生成器1350生成用于传感器510检测的激励的时间(例如,第二时间和/或时间戳)以及传感器510是否检测到激励,来确定传感器510的启动延迟。例如,如果启动延迟在时间t0和t1之间,并且激励生成器1350在时间t1到t2处生成激励,则操作模块1130可以确定在时间t1到t2期间还是在时间t1到t2的阈值内(例如,在时间t1之前或t2之后的阈值时间内)检测到激励。如果启动延迟大于阈值时间,则操作模块1330可以确定传感器510不正确地操作和/或不在可接受的性能水平内。在另一个示例中,操作模块1330可确定传感器510的启动延迟是否在传感器的参考启动延迟的阈值内。参考启动延迟可以基于传感器510的数据获取特性。如果启动延迟在参考启动延迟的阈值内,则传感器510可以正确地工作,反之亦然。

在一个实施方式中,操作模块1330可以通过基于激励生成器1350使激励生成器1350生成激励的时间和操作模块1330从传感器510接收到传感器数据的时间(例如,第三时间和/或时间戳)确定传感器510的获取延迟来验证感测的操作。例如,操作模块1330可以基于第二时间和第三时间的差来确定获取延迟以及是否在获取延迟期间检测到激励。如果获取延迟小于或等于阈值时间(例如,小于阈值时间段),则操作模块1330可确定传感器510正在正确地操作和/或在可接受的性能水平内操作。如果获取延迟大于阈值时间,则操作模块1330可以确定传感器510没有正确地操作和/或不在可接受的性能水平内。在另一个示例中,操作模块1330可确定传感器510的获取延迟是否在传感器的参考获取延迟的阈值内。参考获取延迟可以基于传感器510的数据获取特性。如果获取延迟在参考获取延迟的阈值内,则传感器510可以正确地操作,反之亦然。

在一个实施方式中,激励模块1320可以确定传感器510是否在获取延迟期间检测到激励多长时间。如果在获取延迟的阈值量期间(例如,在获取延迟的90%期间、在获取延迟的85%期间或一些其它适当的量)检测到激励,则传感器510可以正确地操作,反之亦然。

在一个实施方式中,操作模块1330可基于第一时间与第三时间之间的差异来验证传感器510的操作。第一时间和第三时间之间的差值可以指示传感器510获得传感器数据所花费的总时间量。操作模块1330可以确定总时间量是否小于或等于阈值。如果总时间量小于或等于阈值,则操作模块1330可以确定传感器510正确地操作。如果总时间量大于阈值,则操作模块1330可以确定传感器没有正确地操作。

在一个实施方式中,操作模块1330可确定从传感器510接收到的传感器数据是否指示通过传感器510检测到了由所生成的激励产生的激励(例如,光、声音等)。例如,激励模块1320可以使灯打开一段时间。操作模块1330可以确定来自传感器510(可以是相机)的传感器数据是否指示传感器510检测到光。如果传感器数据指示传感器510检测到激励,则操作模块1330可以确定传感器510正确地操作,反之亦然。

在一个实施方式中,定时模块1340可生成定时信号。定时信号可以由传感器510和激励生成器1350用于确定参考时间。定时信号可以指示当前时间和/或可以由传感器510和/或激励生成器1350用于确定当前时间。这可以允许验证系统1300的所有组件(例如,传感器510、激励生成器1350和验证模块1010)使用相同的参考时间进行操作。

如上所述,使adv的传感器同步可以允许adv使来自不同传感器的不同传感器数据相关或更容易相关。这可以允许adv在环境中更快速、有效、容易和/或更精确地检测车辆、物体、障碍物、行人、车道等。验证传感器510的操作可以允许用户确定传感器510是否可以与自动驾驶车辆中的其它传感器正确地同步。验证模块1010可以允许传感器系统135验证传感器510正在正确地操作,这可以允许传感器510与自动驾驶车辆中的其它传感器正确地同步。如果传感器510没有正确操作,则验证模块1010能够提供传感器510没有正确操作的指示。这可以允许用户知晓传感器510何时未正确地操作并更换传感器510。

图14是示出根据一个实施方式的用于验证在自动驾驶车辆中使用的传感器的示例性过程的流程图。过程1400可由可包括软件、硬件或其组合的处理逻辑来执行。过程1400可由可包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(cpu)、片上系统(soc)等)、软件(例如,在处理设备上运行/执行的指令)、固件(例如、微代码)或其组合的处理逻辑来执行。在一些实施方式中,过程1400可以由处理设备、验证模块(例如,图10a、图10b、图11和图13中所示的验证模块1010)、验证模块的部分(例如,图13中所示的启动模块、激励模块、操作模块和/或定时模块)等来执行。

在框1405处,过程1400可以生成定时信号。例如,过程1400可以生成指示当前时间的连续信号。在框1405处,过程1400可以将定时信号提供给传感器和/或检测器。这可以允许传感器和/或检测使用相同的当前时间进行操作。在框1415处,过程1400可以使传感器在第一时间获得传感器数据。例如,过程1400可以向传感器发送消息和/或信号,以使传感器获得传感器数据。在框1420处,过程1400可以生成用于传感器检测的激励。例如,过程1400使激励生成器生成可以由传感器检测到的声音或光。在框1425处,过程1400可以在第三时间从传感器接收传感器数据。

在框1430处,过程1400可以基于第一时间、第二时间和/或第三时间中的一个或多个来验证传感器的操作。例如,如上所述,过程1400可以确定传感器的启动时间是否在参考启动时间的阈值内。在另一个示例中,如上文所讨论,过程1400可确定传感器的获取时间是否在参考获取时间的阈值内。

前述详细描述中的一些部分已经根据在计算机存储器内对数据位的运算的算法和符号表示而呈现。这些算法描述和表示是数据处理领域中的技术人员所使用的方式,以将他们的工作实质最有效地传达给本领域中的其他技术人员。本文中,算法通常被认为是导致所期望结果的自洽操作序列。这些操作是指需要对物理量进行物理操控的操作。

然而,应当牢记,所有这些和类似的术语均旨在与适当的物理量关联,并且仅仅是应用于这些量的方便标记。除非在以上讨论中以其它方式明确地指出,否则应当了解,在整个说明书中,利用术语(诸如所附权利要求书中所阐述的术语)进行的讨论是指计算机系统或类似电子计算设备的动作和处理,所述计算机系统或电子计算设备操控计算机系统的寄存器和存储器内的表示为物理(电子)量的数据,并将所述数据变换成计算机系统存储器或寄存器或者其它此类信息存储设备、发送或显示设备内类似地表示为物理量的其它数据。

本公开的实施方式还涉及用于执行本文中的操作的设备。这种计算机程序被存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机构。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储介质、光存储介质、闪存存储器设备)。

前述附图中所描绘的过程或方法可以由处理逻辑来执行,所述处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合。尽管所述过程或方法在上文是依据一些顺序操作来描述的,但是应当了解,所述操作中的一些可以按不同的顺序执行。此外,一些操作可以并行地执行而不是顺序地执行。

本公开的实施方式并未参考任何特定的编程语言进行描述。应认识到,可以使用多种编程语言来实施如本文描述的本公开的实施方式的教导。

在以上的说明书中,已经参考本公开的具体示例性实施方式对本公开的实施方式进行了描述。将显而易见的是,在不脱离所附权利要求书中阐述的本公开的更宽泛精神和范围的情况下,可以对本公开作出各种修改。因此,应当在说明性意义而不是限制性意义上来理解本说明书和附图。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1