操作自动驾驶车辆的方法和数据处理系统与流程

文档序号:16288183发布日期:2018-12-14 23:27阅读:150来源:国知局
操作自动驾驶车辆的方法和数据处理系统与流程
本发明的实施方式总体上涉及操作自动驾驶车辆。更具体地,本发明的实施方式涉及提高对自动驾驶车辆的控制。
背景技术
以自动驾驶模式运行(例如,无人驾驶)的车辆可以将乘员、尤其是驾驶员从一些驾驶相关的职责中解放出来。当以自动驾驶模式运行时,车辆可以使用车载传感器导航到各个位置,从而允许车辆在最少人机交互的情况下或在没有任何乘客的一些情况下行驶。对于给定的一组行驶条件,自动驾驶车辆(adv)控制系统可以确定控制输入,诸如转向、油门和制动。随着时间的推移,车辆的物理属性会在精确地保持路线、速度、前进方向、安全性和乘客舒适度方面影响输入的有效性。轮胎磨损、制动器磨损、减震器磨损、前胎校准状态、点火状态和燃油输送系统都会影响车辆的性能。人类驾驶员自然会在驾驶时考虑到这些变化。当确定自动驾驶控制输入时,自动驾驶车辆控制系统当前不考虑车辆磨损和老化。技术实现要素:本公开的实施方式提供用于操作自动驾驶车辆的计算机实现的方法、非暂时性机器可读介质以及数据处理系统。在本公开的一方面,操作自动驾驶车辆的计算机实现的方法包括:确定所述自动驾驶车辆在时间t0的第一状态;使用所述自动驾驶车辆的所述第一状态的一个或多个部分访问状态数据库,以检索所述自动驾驶车辆对应于时间t1的第二状态;测量所述自动驾驶车辆对应于时间t1的实时状态;将检索的第二状态的一个或多个字段与测量的所述自动驾驶车辆的实时状态的一个或多个字段进行比较;响应于确定出所述检索的第二状态的一个或多个字段与测量的实时状态的对应的一个或多个字段之间的差异大于阈值,调整所述自动驾驶车辆的一个或多个控制输入参数。在本公开的另一方面,非暂时性机器可读介质存储有指令,所述指令在由处理器执行时使所述处理器执行操作,所述操作包括:确定自动驾驶车辆在时间t0处的第一状态;使用所述自动驾驶车辆的所述第一状态的一个或多个部分访问状态数据库,以检索所述自动驾驶车辆的对应于时间t1的第二状态;测量所述自动驾驶车辆的对应于时间t1的实时状态;将检索的第二状态的一个或多个字段与测量的所述自动驾驶车辆的实时状态的一个或多个字段进行比较;响应于确定出所述检索的第二状态的一个或多个字段与测量的实时状态的对应的一个或多个字段之间的差异大于阈值,调整所述自动驾驶车辆的一个或多个控制输入参数。在本公开的又一方面,数据处理系统包括:处理器;和存储器,联接到所述处理器以存储指令,所述指令在由所述处理器执行时使所述处理器执行操作,所述操作包括:确定自动驾驶车辆在t0处的第一状态;使用所述自动驾驶车辆的所述第一状态的一个或多个部分访问状态数据库,以检索所述自动驾驶车辆的对应于时间t1的第二状态;测量所述自动驾驶车辆对应于时间t1的实时状态;将检索的第二状态的一个或多个字段与测量的所述自动驾驶车辆的实时状态的一个或多个字段进行比较;响应于确定出所述检索的第二状态的一个或多个字段与测量的实时状态的对应的一个或多个字段之间的差异大于阈值,调整所述自动驾驶车辆的一个或多个控制输入参数。附图说明本发明的实施方式在附图的各图中以举例而非限制的方式示出,附图中的相同参考数字指示相似元件。图1是示出根据本发明的一个实施方式的网络化自动驾驶车辆(adv)系统的概况的框图。图2是示出根据本发明的一个实施方式的adv传感器和控制模块的示例的框图。图3是示出根据本发明的一个实施方式的adv感知与规划系统的示例的框图。图4示出根据一些实施方式的adv在特定路线上驾驶的同时在时间t0、t1、t2、...、tn-2、tn-1和tn处收集adv状态数据。图5示出根据一些实施方式的用于确定车辆性能变化和用于调整adv控制输入参数的adv状态数据库的表格。图6示出根据一些实施方式的构建adv驾驶状态的状态数据库的方法。图7示出根据一些实施方式的对adv历史驾驶状态的数据库进行访问、确定实时状态数据以及执行驾驶参数调整的方法。图8a和图8b示出根据一些实施方式的基于驾驶状态数据的改变来确定adv驾驶参数调整的方法。图9示出根据一些实施方式的服务器使用人群源数据来了解针对一个或多个adv的参数更新是否合适的方法。图10是示出根据一个实施方式的数据处理系统的框图。具体实施方式将参考以下所讨论的细节来描述本发明的各种实施方式和方面,附图将示出所述各种实施方式。下列描述和附图是对本发明的说明,而不应当解释为限制本发明。描述了许多特定细节以提供对本发明各种实施方式的全面理解。然而,在某些情况下,并未描述众所周知的或常规的细节以提供对本发明的实施方式的简洁讨论。本说明书中对“一个实施方式”或“实施方式”的提及意味着结合该实施方式所描述的特定特征、结构或特性可以包括在本发明的至少一个实施方式中。短语“在一个实施方式中”在本说明书中各个地方的出现不必全部指同一实施方式。在实施方式中,一种计算机实现的操作自动驾驶车辆(adv)的方法包括确定adv在时间t0处的第一状态,adv的第一状态包括adv速度、位置和控制输入。使用adv对应于时间t0的第一状态的一个或多个部分访问adv状态数据库,以检索adv对应于时间t1的第二状态。测量adv在时间t1处的实时状态。可以将存储的adv在t1处的状态的一个或多个字段与测量的在t1处的状态的对应字段进行比较。响应于确定所存储的与所测量的状态的一个或多个字段之间的差异大于阈值,调整adv的一个或多个控制输入参数。控制输入参数是由控制系统111确定的对于存储或计算的控制输入的修改量。控制输入参数可以是由控制系统111确定的-2.0...+2.0范围内的标量因子或者诸如对控制输入的-100%…+100%的百分比变化。可以存在针对单个控制输入的多个控制输入参数(例如,制动)。控制输入的每个控制输入参数可以覆盖adv的识别的操作范围,例如0..30mph、30..45mph和45..80mph。控制输入参数可以存储在永久性存储装置中。控制输入参数的寿命期间可能是暂时的。例如,在adv的制动器已经被维修之后,维修技术人员可以为制动控制输入重置一个或多个控制输入参数。在实施方式中,adv状态可以包括以下中的一个或多个:adv的位置,adv的速度,adv的前进方向,adv的俯仰,adv的滚转,制动的控制输入,油门的控制输入或转向的控制输入。在实施方式中,对于给定的adv状态,当测量的实时制动控制输入值在adv状态的所存储的制动控制输入值的阈值容差内时,状态分析模块可以执行以下之一:响应于确定所测量的实时状态速度比所存储的状态速度大至少一个速度误差值,增加制动控制输入参数;或者响应于确定所测量的实时速度比所存储的状态速度小至少一个速度误差值,减小制动控制输入参数。在实施方式中,当所测量的转向控制输入值在所存储的状态的转向控制输入值的阈值容差内时,状态分析模块可以执行以下之一:响应于确定所测量的实时状态前进方向比所存储的状态前进方向小(转向不足)至少一个转向误差值,增加转向控制输入参数;或者响应于确定所测量的实时状态前进方向比所存储的状态前进方向值大(转向过度)至少一个转向误差值,减小转向控制输入参数。在实施方式中,当所测量的实时油门控制输入值在所存储的状态的油门控制输入值的阈值容差内时,状态分析模块可以执行以下之一:响应于确定所测量的实时状态速度比所存储的状态中的速度小速度误差值,增加油门控制输入参数;或者响应于确定所测量的实时状态速度比所存储的状态中的速度大速度误差值,减小所述油门输入参数。在实施方式中,状态分析模块可以发出adv的响应于一个或多个控制输入的一个或多个子系统需要调整或修理的警报。adv的子系统可以是制动系统、转向系统、发动机和加速器系统、减震器、轮胎等。存储的adv状态可以使用测量的adv的实时位置和速度以及可选的adv的前进方向来查找。在实施方式中,可以使用adv的位置和/或速度(使用位置和速度的容差)来查找存储的状态,使得adv可以基本上处于一个位置或基本上处于一个速度,而不是精确地处于一个位置或精确地处于一个速度。在另一实施方式中,服务器系统可以包括机器学习引擎、参数更新模块和维修周期模块。服务器可以选择控制输入参数来训练。服务器可以从多个adv的人群源数据中选择状态分析模块记录,该状态分析模块记录指示所选择的控制输入参数针对adv进行改变。机器学习引擎可针对所选控制输入参数训练所选人群源数据,并可确定导致多个adv的所选控制输入参数进行改变的一个或多个原因,并确定所选控制输入参数改变的趋势。参数更新模块可以将所述趋势和支持数据以及多个adv中的至少一个adv子集的建议的控制输入参数改变提交给工程人员审查。如果工程师许可控制输入参数改变,则参数更新模块可以将控制输入参数改变散播到包含多个adv的至少一个子集。在实施方式中,参数更新模块可以附加地或可选地基于对所选择的数据和所选择的控制输入参数的分析向包含多个adv的至少一个子集发送通知,所述通知是针对该子集中的adv推荐特定的维修。这样的通知可以显示在adv内的用户接口上。图1是示出根据本发明一个实施方式的网络化自动驾驶车辆(adv)系统100的概况的框图。参考图1,网络配置100包括可以通过网络102通信地联接到一个或多个服务器103至104的自动驾驶车辆101。尽管示出一个自动驾驶车辆101,但多个自动驾驶车辆可以通过网络102联接到彼此和/或联接到服务器103至104。网络102可以是任何类型的网络,例如,有线或无线的局域网(lan)、诸如互联网的广域网(wan)、蜂窝网络、卫星网络或其组合。服务器103至104可以是任何类型的服务器或服务器群集,诸如,网络或云服务器、应用服务器、后端服务器或其组合。服务器103至104可以是数据分析服务器、内容服务器、交通信息服务器、地图和兴趣点(mpoi)服务器或者位置服务器等。下面参照图10描述示例性服务器系统。自动驾驶车辆101是指可以被配置成处于自动驾驶模式下的车辆,在所述自动驾驶模式下车辆在极少或没有来自驾驶员的控制输入的情况下导航通过环境。这种自动驾驶车辆101可以包括传感器系统115,所述传感器系统具有被配置成检测与车辆运行环境有关的信息的一个或多个传感器。所述车辆和其相关联的控制器使用所检测的信息来导航通过所述环境。自动驾驶车辆101可以在手动模式下、在全自动驾驶模式下或者在部分自动驾驶模式下运行。服务器103可以包括数据分析系统,该数据分析系统包括机器学习引擎103a、参数更新模块103b和维修周期模块103c。每个这样的模块可以在软件、硬件或其组合中实现。在实施方式中,模块103a、103b和103c包括至少一个硬件处理器。参数更新模块103b可以经由网络102更新一个或多个adv上的一个或多个控制输入参数值。多个adv中的每个可以具有adv控制系统111,adv控制系统111可以具有用于多个adv控制中的每个的控制输入。adv控制可以包括油门输入、制动输入和转向输入。控制输入可以由感知与规划模块110和控制系统111产生。为了确保adv保持路线并确保乘客的安全和舒适,在自动驾驶期间,控制输入可能需要稍微修改,特别是当adv子系统(诸如轮胎、制动器和转向系统)开始老化和磨损时。诸如制动输入的控制输入可具有用于修改所计算或存储的控制输入值的一个或多个控制输入参数。参数更新模块103b可以访问多个adv的数据库,并选择数据库的子集用于对所选择的控制输入类型(例如油门输入)进行分析。机器学习引擎103a可以通过大量adv数据来针对油门输入的控制输入参数的变化进行训练,并确定需要改变控制输入参数的一个或多个原因。维修周期模块103c可以接收控制参数被改变超过阈值量的通知,并且基于该通知来执行一个或多个诊断。在实施方式中,参数更新模块103b可以将时间t处的前进方向、状态、时间t+δt处存储的下一状态、时间t+δt处实时测量的触发参数变化的下一状态的数据库记录的副本或引用传递到维修周期模块103c。在实施方式中,维修周期模块103c可以保存adv的所有前进方向、位置和速度的所有这样的通知的日志。维修周期模块103c可以调用机器学习引擎103a以学习接收到的通知中的模式,所述模式指示接收到的通知(该通知包括改变的驾驶参数)的一个或多个可能原因。例如,维修周期模块103c可以学习控制输入参数变化中的模式,该模式指示adv在滚转(横向俯仰)和转向不足方面的增加,以指示减震器、轮胎或转向对准方面可能的磨损。类似地,维修周期模块103c可以学习这样的模式,为了维持前进方向和速度,需要的控制输入参数变化如下:油门增加,指示adv可能需要维修火花塞、正时、空气/燃料混合物、燃料喷射器、气门正时、变速器或其他发动机性能维修;或者轮胎压力已经降低到一定阈值以下。在一个实施方式中,自动驾驶车辆101包括,但不限于,感知与规划系统110、车辆控制系统111、无线通信系统112、用户接口系统113和传感器系统115。自动驾驶车辆101还可以包括普通车辆中包括的某些常用部件,诸如:发动机、车轮、方向盘、变速器等,所述部件可以由车辆控制系统111和/或感知与规划系统110使用多种通信信号和/或命令进行控制,该多种通信信号和/或命令例如,加速信号或命令、减速信号或命令、转向信号或命令、制动信号或命令等。部件110至115可以经由互连件、总线、网络或其组合通信地联接到彼此。例如,部件110至115可以经由控制器局域网(can)总线通信地联接到彼此。can总线是被设计成允许微控制器和装置在没有主机的应用中与彼此通信的车辆总线标准。它是最初是为汽车内的复用电气布线设计的基于消息的协议,但也用于许多其它环境。通信系统112允许自动驾驶车辆101与诸如装置、传感器、其它车辆等外部系统之间的通信。例如,无线通信系统112可以与一个或多个装置直接无线通信,或者经由通信网络进行无线通信,诸如,通过网络102与服务器103至104通信。无线通信系统112可以使用任何蜂窝通信网络或无线局域网(wlan),例如,使用wifi,以与另一部件或系统通信。无线通信系统112可以例如使用红外链路、蓝牙等与装置(例如,乘客的移动装置、显示装置、车辆101内的扬声器)直接通信。用户接口系统113可以是在车辆101内实施的外围装置的部分,包括例如键盘、触摸屏显示装置、麦克风和扬声器等。自动驾驶车辆101的功能中的一些或全部可以由感知与规划系统110控制或管理,尤其当在自动驾驶模式下操作时。感知与规划系统110包括必要的硬件(例如,处理器、存储器、存储设备)和软件(例如,操作系统、规划和路线安排程序),以从传感器系统115、控制系统111、无线通信系统112和/或用户接口系统113接收信息,处理所接收的信息,规划从起始点到目的地点的路线或路径,随后基于规划和控制信息来驾驶车辆101。替代地,感知与规划系统110可以与车辆控制系统111集成在一起。在实施方式中,感知与规划模块110的规划部分可以被关闭。在实施方式中,控制系统111可以被关闭。然后可以在规划模块和控制模块关闭时由人类驾驶员驾驶自动驾驶车辆101。这里描述的实施方式利用的是开启的规划模块110和控制系统111。在操作中,作为乘客的用户可以例如经由用户接口113来指定行程的起始位置和目的地。感知与规划系统110获得行程相关数据。例如,感知与规划系统110可以从mpoi服务器中获得位置和路线信息,所述mpoi服务器可以是服务器103至104的一部分。位置服务器提供位置服务,并且mpoi服务器提供地图服务和某些位置的poi。替代地,此类位置和mpoi信息可以本地高速缓存在感知与规划系统110的永久性存储装置中。当自动驾驶车辆101沿着路线移动时,感知与规划系统110也可以从交通信息系统或服务器(tis)获得实时交通信息。应注意,服务器103至104可以由第三方实体进行操作。替代地,服务器103至104的功能可以与感知与规划系统110集成在一起。基于实时交通信息、mpoi信息和位置信息以及由传感器系统115检测或感测的实时本地环境数据(例如,障碍物、对象、附近车辆),感知与规划系统110可以规划最佳路线并且根据所规划的路线例如经由控制系统111来驾驶车辆101,以安全且高效到达指定目的地。在自动驾驶车辆101中,可能不存在实际的或物理的车窗。更确切地,“车窗”(在此被称为虚拟车窗)可以由显示装置(即,模制成车窗形状的平坦或弯曲的屏幕显示装置)(可选地,由触摸屏)来表示或替换。显示装置将显示由合适的一个或多个摄像机实时动态捕获的图像或图像流(例如,视频),就好像用户通过透视车窗观看或查看实际的物理内容一样。对于每个“车窗”(例如,显示装置),可以存在相应的显示通道来实时流式地播放要显示的相应内容,这可以由增强现实系统(例如数据处理系统)集中处理。在这种情况下,增强的图像经由信息娱乐系统以虚拟现实的方式(也称为增强现实的方式)显示。在本文描述的实施方式中,当自动驾驶车辆101以自动模式驾驶时,传感器系统115中的每个传感器的输出可以被记录,并且规划与控制模块被开启。控制系统111的部件的输入可以由规划模块110提供。图2是示出根据本发明的一个实施方式的自动驾驶车辆(adv)传感器和控制模块的示例的框图。参考图2,在一个实施方式中,传感器系统115可包括但不限于一个或多个摄像机211、全球定位系统(gps)单元212、惯性测量单元(imu)213、雷达单元214以及光探测和测距(lidar)单元215。gps系统212可以包括收发器,所述收发器可操作以提供关于自动驾驶车辆的位置的信息。imu单元213可以基于惯性加速度来感测自动驾驶车辆的位置和定向变化。雷达单元214可以表示利用无线电信号来感测自动驾驶车辆的本地环境内的对象的系统。在一些实施方式中,除感测对象之外,雷达单元214可以另外感测对象的速度和/或前进方向。lidar单元215可以使用激光来感测自动驾驶车辆所处环境中的对象。除其它系统部件之外,lidar单元215还可以包括一个或多个激光源、激光扫描器以及一个或多个检测器。摄像机211可以包括用来采集自动驾驶车辆周围环境的图像的一个或多个装置。摄像机211可以是静物摄像机和/或视频摄像机。摄像机可以是可机械地移动的,例如,通过将摄像机安装在旋转和/或倾斜平台上。传感器系统115还可以包括其它传感器,诸如:声纳传感器、红外传感器、转向传感器、油门传感器、制动传感器以及音频传感器(例如,麦克风)。音频传感器可以被配置成从自动驾驶车辆101周围的环境中采集声音。转向传感器可以被配置成感测方向盘、车辆的车轮或其组合的转向角度。油门传感器和制动传感器分别感测车辆的油门位置和制动位置。在一些情形下,油门传感器和制动传感器可以集成为集成式油门/制动传感器。传感器系统115还可以包括一个或多个水平测量传感器。例如,第一水平测量传感器可以指示adv是否面向下坡或上坡,并且如果是这样,则测量前向/后向倾斜,例如,测量程度或测量其他角度。第二水平测量传感器可以测量横向倾斜,诸如adv是向左倾斜还是向右倾斜。在一个实施方式中,车辆控制系统111可包括但不限于转向单元201、油门单元202(也被称为加速单元)和制动单元203。转向单元201用来调整车辆的方向或前进方向。油门单元202用来控制电动机或发动机的速度,电动机或发动机的速度进而控制车辆的速度和加速度。制动单元203通过提供摩擦使车辆的车轮或轮胎减速而使车辆减速。应注意,如图2所示的部件可以以硬件、软件或其组合实施。车辆控制系统111还可以包括永久性存储装置252。永久性存储装置252可以是rom、ram、电池供电ram、固态存储装置、硬盘、cd-rom、dvd-rom或其他永久性存储装置。永久性存储装置252可以包括状态数据库204和存储在永久性存储装置252中的可执行程序指令,所述可执行程序指令在由例如硬件处理器执行时可以执行程序指令以实现状态分析模块205。如上所述并且参照图5,在下文中,状态数据库204可以包括含有记录的数据库,所述记录存储有针对多个位置和速度的、时间t处的与下一状态t+δt相关联的状态数据。对于在状态数据库204中尚不存在驾驶状态的新的驾驶路线,记录550、555和560等可以表示从时间t=t0开始并以每个下一状态t+δt递增的连续状态t0、t1、t2...tn。对于在时间t处的当前状态或者在时间t+δt处的下一状态的状态信息可以包括adv的位置、adv的前进方向、速度、俯仰(adv的前向/后向倾斜)、adv的滚转(adv的向左/向右倾斜)、adv的前向/后向加速度、adv的横向加速度以及包括制动输入、转向输入和油门输入的控制输入。位置可以是gps位置、传感器数据或其他定位系统的高分辨率地图内的坐标。adv的速度可以以英里/小时(mph)、千米/小时(kph)、米/秒(mps)或其他相关测量单位来衡量。状态分析模块205可以确定存储的在时间t+δt处的下一状态与测量的在时间t+δt处的下一实时状态之间的差异。基于该差异,状态分析模块205可以确定所测量的下一状态中的一个或多个状态值是否与所存储的下一状态值的差异大于阈值量。阈值差异量可以是例如1%差异、5%差异或10%差异。在实施方式中,可以以其它单位测量差异,例如转向输入程度、俯仰或滚转传感器的旋转程度或者例如来自加速度计或惯性力传感器的加速度。基于所测量的下一状态值与所存储的下一状态t+δt中的对应值的差异大于阈值,状态分析模块205可以确定控制系统111的一个或多个控制输入参数的一个或多个变化。例如,如果在时间t处位置和速度的所存储的状态指示前进方向为0°,并且t+δt处存储的下一状态指示前进方向为+3°,但是测量的下一实时状态的前进方向为+2°(指示可能的转向不足或潮湿的道路或打滑的道路状况),状态分析模块205可以确定油门输入参数应该从4%变化为3%(减速),和/或制动输入参数从3%变化为4%(更多制动),和/或转向输入参数的增加从+3%变化为+4%(转弯更加剧烈)。在实施方式中,状态分析模块205可以确定应该考虑其它状态值,诸如由于雨或砾石而使道路状况打滑。在这种情况下,状态分析模块205可以基于道路状况以及在时间t+δt处存储的下一状态和所测量的下一状态之间的差异的大小和性质来平衡最佳控制输入参数的变化。例如,状态分析模块205可以确定,与例如仅使用较小的油门或仅使用较多的转向输入相比,较小的油门、较多的制动和较多的转向输入的组合可以更安全或给予更多的乘客舒适度。在实施方式中,参数更新模块103b可以使用机器学习引擎103a从大量的adv数据中学习针对特定驾驶条件的最优控制输入参数变化,并且稍后将一个或多个控制输入参数更新下载到一个或多个adv以总体上改善驾驶adv的驾驶性能。除了指示遵守驾驶计划、路径或路线的状态信息之外,这样的学习可以考虑可以反映乘客舒适度的附加传感器(例如俯仰、滚转或加速度计传感器)。图3是示出根据本发明的一个实施方式的包括adv感知与规划系统110、传感器系统115和控制系统111的系统300的示例的框图。系统300可实施为图1的自动驾驶车辆101的一部分。参照图3,感知与规划系统110包括但不限于定位模块301、感知模块302、决策模块303、规划模块304、控制模块305、地图更新模块306。模块301至306中的一些或全部可以以软件、硬件或其组合实施。例如,这些模块可以安装在永久性存储装置352中、加载到存储器351中,并且由一个或多个处理器(未示出)执行。应注意,这些模块中的一些或全部可以通信地联接到图2的车辆控制系统111的一些或全部模块或者与它们集成在一起。模块301至306中的一些可以一起集成为集成模块。定位模块301(也被称为地图与路线模块)管理与用户的行程或路线相关的任何数据。用户可以例如经由用户接口登录并且指定行程的起始位置和目的地。定位模块301与自动驾驶车辆300的诸如地图和路线信息311的其它部件通信,以获得行程相关数据。例如,定位模块301可以从位置服务器和地图与兴趣点(mpoi)服务器获得位置和路线信息。位置服务器提供位置服务,并且mpoi服务器提供地图服务和某些位置的兴趣点(poi),从而可以作为地图和路线信息311的一部分高速缓存。当自动驾驶车辆300沿着路线移动时,定位模块301也可以从交通信息系统或服务器获得实时交通信息。定位模块301的目的是高精度地确定adv的位置。adv位置可以使用例如gps近似地确定。gps坐标可用于获取以gps位置为中心并具有大约100米×100米单元的hd地图特征空间的高清晰度(hd)地图。感知模块302的adv车载传感器还可以产生adv周围的大约100米×100米的单元的adv特征空间。为了确定adv相对于hd地图的实际位置,定位模块301可以找到adv特征空间的候选部分中的候选单元与hd地图的最佳匹配。该匹配确定adv相对于以gps为中心的hd地图特征空间的偏移。此偏移可以与hd地图特征空间结合使用,以确定adv的实际高精度位置。定位模块301可以包括位置模块301a和搜索模块301b。位置模块301a可以从感知模块302中的传感器获取传感器数据的3d点云。3d点云表示adv周围的传感器数据。位置模块301a可以分析3d点云并且产生数据单元的adv特征空间,每个单元表示大约10cm×10cm的区域。每个单元可以在adv特征空间中具有(x,y)坐标、平均强度和高程方差。在实施方式中,adv特征空间可以包含adv周围大约1024×1024个单元。位置模块301a还可以通过例如gps读数或与蜂窝塔协调而获取adv的近似位置。位置模块301a还可以获取表示gps坐标周围的大约1024×1024个单元的hd地图特征空间的单元的高清晰度(hd)地图。hd地图特征空间的每个单元可以具有表示单元在实际坐标空间(例如高分辨率gps或其他坐标系统)中的实际位置的(x,y)坐标。hd地图特征空间的每个单元可以进一步包括单元的平均强度和单元中高程的方差。hd地图特征空间可以进一步包括注释,包括hd地图的每个单元的实际高分辨率位置、街道地址信息、商业信息、餐馆、加油站以及其他有用的信息。gps的近似精度约为3米的分辨率。投影搜索模块301b可以确定adv周围的例如32×32个单元的候选空间,并将候选空间的每个候选单元周围的例如1024×1024个单元的adv特征空间与例如1024×1024个单元的hd地图特征空间相匹配。投影搜索模块301b可以确定adv周围的例如32×32个单元的候选空间。对于候选空间的每个候选单元,投影搜索模块301b可以将例如候选单元周围的1024×1024个单元的adv特征空间与例如1024×1024个单元的hd地图特征空间相匹配。投影搜索模块301b可以使用内核投影方法来确定每个候选单元周围的adv特征空间与hd地图特征空间之间的相似度分值或距离度量。在实施方式中,投影搜索模块301b可以确定候选空间的第一子集中的每个候选单元周围的adv特征空间的匹配。投影搜索模块301b可以确定用于将第一子集的候选单元周围的每个adv特征空间与hd地图特征空间进行匹配的投影内核集合。在实施方式中,该投影内核集合可以包括格雷码内核。在实施方式中,投影内核集合可以是有序集合,使得最低阶(第一)维度投影矢量捕获候选单元周围的adv特征空间与hd地图特征空间的最大部分的相似度。随后的维度投影内核可以捕获越来越精细量的特征空间能量。因此,仅使用少量内核投影就可以确定大量的匹配信息。投影搜索模块301b可以将第一子集中每个候选单元周围的adv特征空间投影到hd地图特征空间的第一投影内核。在实施方式中,如果相似度分值不满足阈值量,则候选单元因为具有与hd地图特征空间不足够相似的周围adv特征空间被拒绝,以花费开销执行下一内核投影。投影搜索模块301b可以使用连续的内核投影维度以将每个候选单元周围的adv特征空间迭代地投影到hd地图特征空间上,以获得更新的相似度分值。在实施方式中,如果候选单元具有更新的指示与hd特征空间匹配的程度不足够的相似度分值,则可以将候选单元标记为拒绝。在实施方式中,投影搜索模块301b可以在针对第二后续维度的投影内核迭代遍历每个候选单元之前,在第一维度中迭代遍历每个候选单元。在该实施方式中,投影搜索模块301b可以在内核投影维度的每次迭代处确定最高相似度的候选单元,并且确定单个候选单元是否是未被拒绝的候选单元多于一次迭代的最佳匹配候选单元。如果是,则该候选单元可以被视为最佳匹配候选单元,以作为应该与hd地图特征空间对齐的adv特征空间的中心。在实施方式中,投影搜索模块301b可以继续使用增加维度的投影内核来迭代遍历候选单元,直到单个候选单元保持为最佳候选单元,或者除了一个候选单元之外的所有候选单元都被拒绝,或者所有未被拒绝的候选单元已经在所有维度的投影内核进行迭代,或者保留了未被拒绝的候选单元的阈值数目。候选空间中的剩余单元可以形成候选空间的第二子集并且可以由相似度搜索模块301c使用相似度测度来搜索。相似度搜索模块301c可以搜索候选单元的第二子集中的候选单元。投影搜索模块301b未搜索第二子集中的候选单元。对于由相似度搜索模块301c搜索到的每个候选单元,选择候选单元用于搜索,并且候选单元周围的adv特征单元的候选空间(例如,1024×1024个单元)可以匹配例如1024×1024个单元的hd地图特征空间。在实施方式中,候选单元周围的adv特征单元的候选空间可以是1024×1024个单元。使用执行候选单元特征空间(例如,1024×1024个单元)到hd地图特征空间(例如,1024×1024个单元)的混合高斯拟合的相似度测度来执行候选单元周围的adv空间的匹配。相似度测度公式如下:其中,p(z|x,y,m)表示候选单元周围的候选特征空间与hd地图特征空间的相似度分值,i和j是各自范围在1..1024之间的迭代器,(x,y)是候选单元的坐标,m表示地图特征空间单元数据,z表示adv特征空间单元数据,r表示值的平均值,σ表示值的方差,α表示调整参数。在实施方式中,在exp函数的分子中使用adv和hd地图特征空间单元数据的平均强度,并且在exp函数的分母中使用adv和hd地图特征空间数据的高程的方差。相似度测度用于确定32×32个单元的候选空间的第二子集中的每个候选单元的相似度分值。确定候选单元中最高的相似度分值。从adv特征空间中的adv坐标到最佳匹配单元的偏移可用于确定adv相对于hd地图特征空间的高分辨率位置。投影搜索模块301b和相似度搜索模块301c可以使用上面的相似度测度的全部或一部分来确定候选单元周围的adv特征空间与hd地图特征空间的相似度分值。在实施方式中,投影搜索模块301b可以将候选单元的adv特征空间投影到hd地图特征空间,并将该相似度测度用作对于内核投影集合的每个内核投影的adv特征空间与hd地图特征空间的相似度测量。相似度分值表示每个小于或等于1.0相似度的值的迭代乘积。由于每个小于1.0的数字的集合的乘积只能变小,并且候选单元周围的adv特征空间与hd地图特征空间之间的大部分相似度在最初的几个(例如五个)维度的内核投影中被捕获,所以可以容易地确定候选单元是否应该被拒绝,这是因为相似度测度如此之低,以至于候选单元的adv特征空间将永远不会与hd地图特征空间足够相似而被视为hd地图特征空间的最佳相似度匹配。在另一实施方式中,相似度测度可以表示为项的对数和,其总和总是增加的。在本实施方式中,当相似度分值的对数和是最小值时,候选单元的adv特征空间与hd地图特征空间最相似。在该实施方式中,相似度测度可以将exp、α、括号内的1/2因子中的一个或多个降低到α次幂,并且符号可以平方,值可以减小。在该实施方式中,当相似度测度中的项的总和高于阈值时,可以确定候选单元应当被拒绝,这是因为相似度测度将永远不会足够低以指示候选单元周围的adv特征空间与hd地图特征空间的最佳匹配。相似度搜索模块301c可以使用整个如上所述的相似度测度来确定候选单元周围的adv特征空间与hd地图特征空间之间的相似度分值。在实施方式中,投影搜索模块301b处理候选单元的第一子集并且拒绝这样的候选单元,所述候选单元具有的相似度分值指示候选单元周围的adv特征空间与hd地图特征空间未能良好匹配。当只剩下阈值数量的未被拒绝的候选单元时,则可以使用相似度搜索模块301c搜索候选单元的第二子集(包括剩余的未被拒绝的候选单元),直到找到作为与hd地图特征空间最佳匹配的adv特征空间的中心的最佳匹配候选单元为止。此最佳相似度候选单元可以用来计算hd特征空间中的偏移,以确定hd地图特征空间内的adv位置。感知与规划系统110还可以包括感知模块302。基于由传感器系统115提供的传感器数据和由定位模块301获得的定位信息,感知模块302确定对周围环境的感知。感知信息可以表示普通驾驶员在驾驶员正驾驶的车辆周围将感知到的东西。感知可以包括例如采用对象形式的车道配置(例如,直线车道或弯曲车道)、交通灯信号、另一车辆的相对位置、行人、建筑物、人行横道或其它交通相关标志(例如,停止标志、让行标志)等。感知模块302可以包括计算机视觉系统或计算机视觉系统的功能,以处理并分析由一个或多个摄像机采集的图像,从而识别自动驾驶车辆环境中的对象和/或特征。所述对象可以包括交通信号、道路边界、其它车辆、行人和/或障碍物等。计算机视觉系统可以使用对象识别算法、视频跟踪以及其它计算机视觉技术。在一些实施方式中,计算机视觉系统可以绘制环境地图,跟踪对象,以及估算对象的速度等。感知模块302也可以基于由诸如雷达和/或lidar的其它传感器提供的其它传感器数据来检测对象。针对每个对象,决策模块303可以作出关于如何处置对象的决定。例如,针对特定对象(例如,交叉路线中的另一车辆)以及描述对象的元数据(例如,速度、方向、转弯角度),决策模块303决定如何与所述对象相遇(例如,超车、让行、停止、超过)。决策模块303可以根据诸如交通规则的规则集来作出此类决定,所述规则集可以存储在永久性存储装置352中。基于针对所感知到的对象中的每个的决定,规划模块304为自动驾驶车辆规划路径或路线以及驾驶参数(例如,距离、速度和/或转弯角度)。换言之,针对给定的对象,决策模块303决定对该对象做什么,而规划模块304确定如何去做。例如,针对给定的对象,决策模块303可以决定超过所述对象,而规划模块304可以确定在所述对象的左侧还是右侧超过。规划和控制数据由规划模块304生成,包括描述车辆300在下一移动循环(例如,下一路线/路径段)中将如何移动的信息。例如,规划和控制数据可以指示车辆300以30英里每小时(mph)的速度移动10米,随后以25mph的速度变到右侧车道。基于规划和控制数据,控制模块305根据由规划和控制数据限定的路线或路径通过将适当的命令或信号发送到车辆控制系统111来控制并驾驶自动驾驶车辆。所述规划和控制数据包括足够的信息,以沿着路径或路线在不同的时间点使用适当的车辆设置或驾驶参数(例如,油门、制动和转向命令)将车辆从路线或路径的第一点驾驶到第二点。应注意,决策模块303和规划模块304可以集成为集成模块。决策模块303/规划模块304可以包括导航系统或导航系统的功能,以确定自动驾驶车辆的驾驶路径。例如,导航系统可以确定用于实现自动驾驶车辆沿着以下路径移动的一系列速度和前进方向:所述路径在使自动驾驶车辆沿着通往最终目的地的基于车行道的路径前进的同时,基本上避免感知到的障碍物。目的地可以根据经由用户接口系统113进行的用户输入来设定。导航系统可以在自动驾驶车辆正在运行的同时动态地更新驾驶路径。导航系统可以将来自gps系统和一个或多个地图的数据合并,以确定用于自动驾驶车辆的驾驶路径。决策模块303/规划模块304还可以包括防撞系统或防撞系统的功能,以识别、评估并且避免或以其它方式越过自动驾驶车辆的环境中的潜在障碍物。例如,防撞系统可以通过以下方式实现自动驾驶车辆的导航中的变化:操作控制系统111中的一个或多个子系统来采取变向操纵、转弯操纵、制动操纵等。防撞系统可以基于周围的交通模式、道路状况等自动确定可行的障碍物回避操纵。防撞系统可以被配置成使得当其它传感器系统检测到位于自动驾驶车辆将变向进入的相邻区域中的车辆、建筑障碍物等时不采取变向操纵。防撞系统可以自动选择既可使用又使得自动驾驶车辆乘员的安全性最大化的操纵。防撞系统可以选择预测使得自动驾驶车辆的乘客舱中出现最小量的加速度的避让操纵。地图更新模块306可用于收集adv特征空间数据并获取adv近似位置处的hd地图特征空间,使用如上所述的针对定位模块301的技术将adv特征空间对准到hd地图特征空间,并参照对应的hd地图特征空间将adv特征空间上传至服务器(诸如服务器103)以进行分析和预处理而被adv使用。永久性存储装置352可以包括地图和路线信息311以及地图网格312。地图和路线信息可以用于确定到达目的地的一系列导航操作。导航操作可以表示为具有表征路线的权重和属性(诸如速度、交通、信号、道路类型等)的图形中的弧。地图网格312可以是某个驾驶位置内(诸如“在美国境内”或“在加利福尼亚州内”或“在旧金山内”)所有已知的hd地图网格特征空间的完整地图网格。在实施方式中,可以根据需要从服务器(例如,服务器103或104)下载adv周围的半径范围(例如,100英里半径范围)的地图网格312。应注意,如上文示出和描述的部件中的一些或全部可以在软件、硬件或其组合中实施。例如,此类部件可以实施为安装并存储在永久性存储装置中的软件,所述软件可以通过处理器(未示出)加载在存储器中并在存储器中执行以实施贯穿本申请所述的过程或操作。替代地,此类部件可以实施为编程或嵌入到专用硬件(诸如,集成电路(例如,专用集成电路或asic)、数字信号处理器(dsp)或现场可编程门阵列(fpga))中的可执行代码,所述可执行代码可以经由来自应用的相应驱动程序和/或操作系统来访问。此外,此类部件可以实施为处理器或处理器内核中的特定硬件逻辑,作为可由软件部件通过一个或多个特定指令访问的指令集的一部分。图4示出了根据一些实施方式的adv以及adv在特定路程上驾驶的同时在时间t0、t1、t2、...、tn-2、tn-1和tn处收集adv状态数据。adv101可以被配置有起始位置和目的地或结束位置。在实施方式中,测试工程师可以利用具有相同的起始位置和结束位置以及路径的测试路程来训练adv101的状态数据库204。该路程可以在使用adv101的数英里上重复多次,以与测试路程上的初始行程大致相同的位置和速度来确定所存储的状态数据和测量的实时状态数据之间的差异。所存储的状态数据和测量的状态数据之间的差异可以用于构建状态数据库204,并且训练和测试状态分析模块205、参数更新模块103b和维修周期模块103c。为了构建状态数据库204,adv101可以在时间t0=t、第一位置处以第一速度和前进方向在路程上开始。传感器模块115和控制系统111可以确定t0处adv101的当前状态,包括前进方向、速度、位置、油门输入、制动输入、转向输入以及其他传感器数据(诸如,俯仰、滚转、加速度、湿度或道路状况)。状态数据库204可以存储时间t0处的adv状态。在时间t1=t0+δt处,传感器模块115和控制系统111可以再次测量adv状态。时间t1处的adv状态是时间t0处的adv状态的“下一状态”。状态数据库204可以将时间t1处测量的adv的下一实时状态数据存储为当前状态t0的下一状态。状态数据库204还可以将对于t1处存储的状态数据的引用存储为时间t1的当前adv状态。在时间t2=t1+δt处,传感器模块115和控制系统111可以再次测量adv的实时状态,这次的时间是t2=t1+δt。状态数据库204可以将t2处的adv状态数据存储为adv状态t1的下一状态。状态数据库204还可以将对于t2处的adv状态数据的引用存储为时间t2处adv的当前状态。该过程重复,直到时间tn-1处。在时间tn-1处,当前状态tn-1的测量状态数据可以存储在状态数据库中。在时间tn处,在路程结束时,tn=tn-1+δt处测量的实时adv状态数据可以存储为tn-1的下一状态。对tn存储的数据的引用也可以被存储为tn处的当前状态。由于该路程的结束发生在时间tn处,因此将不存储与tn处的当前状态数据相关联的下一状态数据。没有存储的下一状态数据的存储的状态记录可以如下所述进行处理。在构建该路程的状态数据库204的同时,首次测量每个状态和下一状态。因此,位置和速度的存储状态数据与位置和速度的测量状态数据之间没有差异,这是因为它们实际上是相同的数据。当adv101下一次遍历相同路程时,状态数据库204中已经存在来自构建该路程的状态数据库的路程的前一次运行的已存储的状态数据。再次,在相同的路程中,在时间t=t0处开始,传感器系统115和控制系统111可以测量实时的adv状态数据。在状态数据库204中查找adv101在时间t0处的位置和速度。从状态数据库204中检索时间t0处的当前状态数据和时间t1=t0+δt处的下一关联状态数据。在时间t1=t0+δt处,传感器系统115和控制系统111可以测量时间t1处的实时adv状态数据。状态分析模块205可以将从时间t1存储的状态数据与时间t1处测量的状态数据进行比较。响应于确定t1处的一个或多个状态adv数据字段与所存储的t1处的adv状态数据字段不同,状态分析模块205可以确定对一个或多个控制输入参数进行改变以校正调整adv101的控制系统111。这个过程可以迭代地继续,直到路程测试路程驾驶完成。上述过程不需要在相同的路程上重复执行。在同一路程上使用重复的行程仅仅是一种针对已知的一组驾驶状态检测随时间变化的adv101的性能的改变的方便的方法。实际上,用户可以定期地行驶一批相同的路线及其部分路线。例如,一个人可能有一组定期行驶的路程,诸如从家到杂货店再回家、从家到工作地点再回家、从家到学校再回家或他们日常生活中其他重复的路程。当adv101及其子系统开始磨损和老化时,可能需要改变控制输入参数以保持adv合法运行于路程上,确保乘员的安全和舒适。adv状态分析模块205将进行必要的控制输入参数改变。图5示出根据一些实施方式的用于确定车辆性能变化和用于调整adv控制输入参数的adv状态数据501的表格。存储adv状态数据的数据库204可以包括存储的adv状态数据501。存储的adv数据501可以包括索引505、时间t=当前时间的当前状态数据510以及时间t+δt处的下一状态数据515。可以将存储的数据501与实时adv状态数据502进行比较。实时adv状态数据502可以包括测量的adv下一实时状态数据515′,其将与存储的adv下一状态数据515进行比较以确定存储的下一状态数据515和实时测量的下一状态数据515′之间的差异。在t=t0处的示例性adv状态数据记录550可以由adv的位置510和速度515索引。在实施方式中,索引505可以进一步包括车辆的前进方向。位置510可以是gps位置或对应于gps位置的高清晰度(hd)传感器地图内的位置。在实施方式中,可以使用精度容差(诸如,±0.1米精度、±3个hd传感器地图单元或其他容差)来查找位置510。速度515可以是英里/小时(mph)、千米/小时(kph)、米/秒(mps)或其他车速度量单位。在实施方式中,速度可以使用精度容差(诸如,±0.1kph或其他容差)来查找。存储的t=t0处的示例性adv状态数据记录550可以进一步包括t0处的当前状态数据510,诸如adv在时间t0处的状态数据520和控制输入525。状态数据520可以包括adv的前进方向(其也可以用作数据记录的索引)、adv的俯仰以及adv的滚转。其他adv状态数据520可包括前向/后向加速度和左/右(横向)加速度(未示出)或上/下(提升、弹起或“触底”,未示出)、一个或多个轮胎的轮胎压力传感器以及一个或多个减震器(未示出)的减震器位置传感器。俯仰可以包括adv的前向/后向倾斜,例如指示adv上坡前进或下坡前进。滚转可以包括指示车辆是向左还是向右倾斜或者横向平坦(不倾斜)。前进方向可以参照磁北测量,例如0°表示adv前进方向为北。俯仰可以测量为相对于adv的前向/后向轴线的角度。俯仰可以是角度,诸如,+2°指示下坡坡度,-1°指示上坡坡度,或者0°指示车辆在平坦道路上。滚转可以测量为相对于adv的左/右轴线的角度。滚转可以是角度,诸如,-0.5°指示向左倾斜,或者+0.75°指示车辆向右倾斜。除了adv的下一状态数据515表示时间t+δt处的存储的下一adv状态,adv的下一状态数据t+δt515可以包括与时间t、505和510处的当前状态信息相同类型的信息。包括下一状态数据530和控制输入535的存储的下一状态数据515已经在时间t+δt处先前测量并存储在adv状态数据库204中。如果对于特定的adv状态记录,时间t+δt处的adv下一状态数据515还不存在,则在时间t+δt515'处实时测量的adv下一状态数据502可以被测量并存储在状态数据库204中作为与adv状态记录(例如,550)相关联的存储的adv下一状态515,对此,在时间t+δt处测量的实时adv数据515'是下一状态。如果针对例如adv状态记录550的adv下一状态数据t+δt515已经存在于adv状态数据库204中,则可以测量针对adv下一状态t=t+δt515'的实时数据502。然后,状态分析模块205可将所存储的adv下一状态数据515与实时的adv下一状态数据515'进行比较。作为示例,考虑时间t1处的adv状态555和时间t2=t1+δt处的状态560。在时间t1处,adv状态520具有+3°的前进方向和4.9mps的速度。在时间t2=t1+δt处,针对记录555的所存储的下一状态数据515指示adv应该具有+6°的前进方向和4.7mps的速度。通过比较时间t1和t2处的前进方向和速度,可以看到adv正在减速并稍微向右转弯。如adv状态记录555所示,为了完成针对记录555的所存储的下一状态515中所示的减速和转弯,当记录555被存储时,adv控制系统111使用1.5%制动、0%油门和+3.0°转向的控制输入。将针对记录555的测量的实时adv下一状态数据515'与针对记录555的所存储的的adv下一状态数据515进行比较,可以看出,adv控制系统111和状态分析模块205需要将制动增加到2.5%,将转向输入增加到+4.0%以实现所存储的下一状态t2=t1+δt的目标速度和位置,如adv状态记录560的索引505和当前状态510所示。adv的存储状态记录555的下一状态数据t1+δt515与所测量的adv下一状态数据515'相比还指示滚转从-0.2°增加到-0.3°(同时向右转弯,并且制动,与转向输入的方向相反的方向上的滚转增加)。adv状态分析模块205可以执行上述比较并且确定制动衬块是否已经磨损,转向系统是否已经磨损,减震器可能已经磨损,或者这些的组合。图6示出根据一些实施方式的构建adv驾驶状态的adv状态数据库204的方法600。在操作605中,在时间t0处,adv可以使用传感器系统115来执行adv位置、速度和adv状态信息的实时测量。在操作610中,可以确定adv状态数据库204中是否存在对应于所测量的adv的速度和位置的记录。在实施方式中,adv的速度和位置形成状态数据库204存储和查找adv状态记录的索引。在实施方式中,索引可以进一步包括adv的前进方向。实际上,如在adv传感器系统115的高精确度内所测量的那样,车辆(adv或传统车辆)很少精确地处于相同的速度和精确地处于相同的位置。因此,使用速度、位置以及可选的前进方向查找adv状态数据库记录可以使用容差来执行,以找到与所测量的实时adv状态基本上相同的adv状态数据库204记录。在实施方式中,每个索引元素(速度、位置和可选的前进方向)可以具有用于查找的容差。例如,对状态数据库204的数据库查询可以查询速度为±0.1mps、位置为±0.1m以及可选的前进方向为±0.02°的记录。容差值可以调整,以提高数据存储和检索的性能和准确性。如果在操作610中确定用于速度、位置和可选的前进方向的adv状态数据库记录存在的话,则方法600在操作700处继续。操作700在下面参照图7进行描述。在操作700之后,方法600在操作610处在下一速度、位置和可选的前进方向处继续。否则,方法600在操作615处继续。在操作615中,对于当前adv状态,实时测量的adv状态数据可以被存储在由速度、位置和可选的前进方向索引的数据库记录中。以上参照图5描述adv状态数据记录字段。在操作620中,在时间t1=t0+δt处,可以使用传感器系统115来测量实时adv状态数据。传感器系统115可以测量adv状态和控制输入两者。时间t1=t0+δt对应于t0的下一状态。由于t0的adv状态记录刚刚在操作615中产生,因此针对t1=t0+δt测量的实时adv状态可以表示针对时间t1存储的当前存储的adv状态。在操作625中,可以将状态t1=t0+δt的当前状态信息存储在adv状态数据库204中。由于当前adv状态t1对应于t0的下一状态,所以t0的下一状态字段的adv状态记录可以使用针对时间t1的当前状态记录数据的指针或引用。或者,针对时间t1的adv当前状态数据可以使用t0的下一状态记录数据的指针或引用。在实施方式中,t0的下一状态和t1的当前状态数据中的每一个可以存储时间t1处测量的实时数据的其自身的副本。在操作630中,针对时间t0测量的实时数据可以被设置为针对时间t1测量的实时数据,并且时间t0=t1。方法600在操作610处继续。图7示出了根据一些实施方式的访问adv历史驾驶状态的adv状态数据库204、确定实时状态数据并执行控制输入参数调整的方法700。从方法600(操作610)调用方法700,其中确定在数据库204中存在对应于在时间t0处测量的实时数据的adv状态记录。在操作705中,可以查找对应于在时间t0处测量的adv速度、位置和可选的前进方向的数据库记录。在实施方式中,速度、位置和可选的前进方向中的一个或多个可以在执行查找时使用容差。可以调整容差以平衡查找的速度、数据库的大小以及传感器系统115的传感器的容差。在实施方式中,测试工程师可以使用具有已知路程的测试轨道来重复测试所述路程上相同的adv。这样测试的目标可以是确定当adv的物理部件(诸如,轮胎、减震器、转向和对准系统以及adv发动机的调整状态)随时间变化时adv控制系统111如何良好地执行。这种测试的另一目标可以是确定控制系统111的一个或多个控制输入参数的变化,以保持车辆在路程上以及在路程期间在安全和舒适规范内。当重复运行相同的测试路程时,adv开始、结束和中间位置可能因道路状况、adv子系统磨损或其他因素而略有变化。相应地,adv状态数据库记录可以使用adv的位置、速度和可选的前进方向的适当容差来查找。例如,位置可以具有±0.1米的查找容差和/或速度在每秒±0.05米的容差内。在位置、速度和可选的前进方向的索引值没有容差的情况下,adv状态数据库204将变得相当大,这是因为它将以传感器系统115的非常高的精度来存储记录。在操作710中,在时间t1=t0+δt处,传感器系统115和控制系统111可以确定adv状态和控制输入的实时测量。在操作715中,状态分析模块205可比较所存储的针对时间t1的adv状态数据515(在操作705中查找)和操作710的测量的实时adv状态数据515',以确定adv在时间t1处的状态的差异。在操作720中,状态分析模块205可以确定存储的adv下一状态数据元素和测量的adv下一状态数据元素之间是否存在超过元素的容差阈值的一个或多个差异。如图5的示例性adv状态记录555所示,在方框575中,为了保持路程,adv控制系统可能需要将制动输入从1.5%(存储的)增加到2.5%(测量的),并将转向输入从+3°增加到+4°,导致滚转从-0.2°增加到-0.3°。诸如横向加速度计、减震器位置和轮胎压力的其他传感器(未示出)可以指示adv状态的进一步差异,并且可以指出需要增加制动和转向输入以维持路程的原因。每个adv状态元素(例如,俯仰、滚转、转向输入、制动输入等)可以具有不同的容错值。如果在操作720中,根据针对时间t1存储和测量的下一状态的比较,确定adv状态元素之间的一个或多个差异具有大于状态元素的容差值的差异,那么方法700在操作800处继续,否则方法700在操作730处继续。在操作800中,状态分析模块205可以确定一个或多个控制输入参数以针对adv进行调整。在图5的状态数据库记录555、框575的示例中,控制系统111需要将制动从1.5%增加到2.5%,并且将转向输入从+3°增加到+4°,以满足时间t1处的测试路程位置。状态分析模块205可以确定制动输入应当增加以补偿制动衬块或者制动盘或鼓的磨损。类似地,状态分析模块205可以确定应该增加转向输入以补偿轮胎、减震器的磨损或者adv的车轮的对准状态。下面参照图8a和图8b详细描述调整控制输入参数。在操作725中,状态分析模块205可以可选地向adv通信系统112、用户接口系统113和/或维修周期模块103c产生过度磨损通知。在操作730中,可以在返回到方法600、操作610之前将变量重置以用于方法600的下一次迭代。用于下一次循环迭代的测量的adv状态数据t0被设置为等于此次循环迭代的测量的adv状态数据t1=t0+δt,用于下一次循环迭代的时间t0被设置为t1=t0+δt以用于方法600的下一个循环。图8a和图8b示出根据一些实施方式的基于驾驶状态数据的改变来确定adv控制输入参数调整的方法800。从方法700调用方法800。在从图7调用方法800之前,所存储的针对时间t1=t0+δt的下一adv状态已经与所测量的针对相同时间t1=t0+δt的下一adv状态进行比较。还已经确定,adv下一状态比较的一个或多个元素超出的容差多于该元素的阈值量。图8a和图8b的控制输入参数调整逻辑是示例性的,而不是限制性的。adv控制系统111可以具有针对转向单元201、油门单元202和制动单元203的控制输入的一个或多个调整参数。车辆(adv或标准车辆)的性能取决于许多变量,这些变量可以包括物理路况以及车辆子系统的修理状态。另外,如果对子系统进行稳态的修理,则系统的性能可能不是线性的,也不应该是线性的。例如,车辆的转向系统可能需要能够在停车场中以比在高速公路速度下更少的作用力而更剧烈的转弯。发动机性能对于油门输入而言通常是非线性的,这取决于发动机每分钟转数(rpm)、发动机的扭矩曲线以及其他变量。因此,当adv状态分析模块确定所测量的adv状态针对给定位置、速度以及可选的前进方向相对于所存储的adv状态变化时,状态分析模块205可以基于adv的运行状况针对相同的控制输入来调整不同的控制输入参数。下表显示了控制输入的不同变量的示例。控制输入参数可以是应用于所存储或计算的控制输入的因子,以引起adv子系统和adv运行状况的变化。控制输入参数可以具有运行以增加或减少所存储或计算的控制输入的值。在实施方式中,控制输入参数可以取值-100%...+100%的附加值或者诸如-2.0...+2.0的标量值,其修改所存储或计算的控制输入值。以下示例性控制输入参数变量中的每一个还可以用于确定何时向用户接口113、无线通信系统112或维修周期模块103c发送通知。下面的变量表是示例性的而非限制性的。控制输入0-30mph30-45mph45-80mph转向201低速转向调整中速转向调整高速转向调整油门202低速油门调整中速油门调整高速油门调整制动203低速制动调整中速制动调整高速制动调整表1在操作805中,状态分析模块205可以确定所测量的制动控制输入203是否与所存储的针对adv状态的制动输入基本相同,但是所测量的速度比所存储的针对adv状态的速度高出大于阈值量。这可能表明制动系统磨损增加,诸如磨损的制动衬块、制动盘、制动鼓或液压流体泄漏。如果是,则在操作810中,状态分析模块205可以增加制动控制输入参数。在实施方式中,制动控制输入参数增加的量可以是误差量的一部分,例如,制动输入增加50%的误差量。方法800在操作815处继续。在操作815中,可以确定所测量的制动控制输入203是否与所存储的针对adv状态的制动输入基本相同,但所测量的速度小于所存储的针对adv状态的速度。这可能表明制动系统近来已经被维修(增加制动性能)或车轮轴承的磨损增加,或者轮胎压力低。如果是,则在操作820中,状态分析模块205可以减小制动控制输入参数。方法800在操作825处继续。在操作825中,可以确定所测量的转向控制输入201和所存储的转向控制输入是否基本相同,但是adv已经移动超过路程的目标位置(转向不足)。如果是,则在操作830中,状态分析模块205可以增加转向控制输入参数。方法800在操作835处继续。在操作835中,可以确定所测量的转向控制输入201和所存储的转向控制输入对于adv状态是否基本相同,但是adv尚未到达该路程的目标位置(转向过度)。如果是,则在操作840中,状态分析模块205可以增加转向控制输入参数。方法800在操作845处继续,如图8b所示。在图8b中,在操作845处,可以确定所测量的油门输入202是否与所存储的针对adv状态的油门输入基本相同,但是所测量的速度比所存储的针对adv状态的速度小且减小的量小于阈值量。如果是,则在操作850中,状态分析模块205可以增加油门控制输入参数。方法800在操作855处继续。在操作855中,状态分析模块205可以确定所测量的油门输入202是否与所存储的针对adv状态的油门输入基本相同,并且所测量的速度比所存储的针对adv状态的速度高出大于阈值量。如果是,则adv可能最近维修过发动机,或者轮胎压力增加,或者最近维修过车轮轴承。状态分析模块205可以减小油门控制输入参数。方法800在操作865处继续。在操作865中,状态分析模块205可以确定所测量的adv位置、速度和前进方向是否与所存储的针对adv状态的位置、速度和前进方向基本相同,但是所测量的滚转比所存储的针对存储的adv状态的滚转高出大于阈值量。如果是,则减震器可能磨损。状态分析模块205可以减小速度参数或增加adv的制动参数或两者。方法800在操作875处继续。在操作875中,状态分析模块205可以确定所测量的速度和转向输入是否与所存储的针对adv状态的速度和转向输入基本相同,但是前进方向值比所存储的阈值小且减小的量小于阈值量(adv没有保持路程)。如果是,则轮胎可能磨损,减震器可能磨损,或转向可能未对准。在操作880中,状态分析控制模块205可以减小速度输入,增加制动输入,增加转向输入或这些的组合。方法800返回到方法700的操作725处。方法700在上文参照图7进行描述。图9示出了根据一些实施方式的服务器(例如,服务器103)使用人群源数据来学习对于一个或多个adv而言控制输入参数更新是否合适的方法900。在操作905中,服务器103选择要训练的控制输入。控制输入可以是油门输入、转向输入或制动输入。每个控制输入都有一个或多个控制输入参数,可用于在adv的特定操作范围内修改指定的控制输入。在操作910中,服务器103可以选择从多个adv提交的adv人群源数据,所述多个adv在adv的操作期间已经记录由状态分析模块205修改的所选择的控制输入。在操作915中,机器学习引擎103a可训练人群源数据和所选择的控制输入,以确定与对所选择的控制输入参数的调整相关的一个或多个趋势。在操作920中,参数更新模块103b可以确定是否经由机器学习检测到趋势。如果是,则方法900在操作925处继续,否则方法900结束。在操作925中,参数更新模块103b可以基于机器学习和所选择的控制输入来确定针对多个adv的子集建议的控制输入参数调整中的一个或多个。在操作930中,支持数据和对一个或多个控制输入参数的建议修改可被提交用于工程师审查。在操作935中,如果工程师认可对控制输入参数的改变,则在操作940中,可以将所述改变散播到多个adv中的至少一个adv子集。可选地,还可以将通知发送到维修周期模块103c。维修周期模块103c可以向adv的子集散播适当的通知,其指示可能伴随着散播向adv的控制输入参数改变的可能的校正维修。当在adv上执行维修时,可以将维修的日志存储在adv永久性存储装置252或352中。在实施方式中,维修技术人员可以将方法900的处理所进行的一个或多个控制输入参数改变进行重置,诸如在adv上执行了与控制输入参数改变相关的维修之后。图10是示出可以与本发明的一个实施方式一起使用的数据处理系统1000的示例的框图。例如,系统1000可以表示以上所述的执行上述过程或方法中的任一个的任何数据处理系统,例如,动驾驶车辆101系统,诸如感知与规划110、控制系统111、信息娱乐系统等,或者图1的服务器103-104中的任一个。系统1000可以包括许多不同的部件。这些部件可以实施为集成电路(ic)、集成电路的部分、分立电子装置或适用于电路板(诸如,计算机系统的主板或插入卡)的其它模块或者实施为以其它方式并入计算机系统的机架内的部件。还应注意,系统1000旨在示出计算机系统的许多部件的高阶视图。然而,应当理解的是,某些实施例中可以具有附加的部件,此外,其它实施例中可以具有所示部件的不同布置。系统1000可以表示台式计算机、膝上型计算机、平板计算机、服务器、移动电话、媒体播放器、个人数字助理(pda)、嵌入式处理控制器、智能手表、个人通信器、游戏装置、网络路由器或集线器、无线接入点(ap)或中继器、机顶盒或其组合。此外,虽然仅示出了单个机器或系统,但是术语“机器”或“系统”还应当被理解为包括单独地或共同地执行一个(或多个)指令集以执行本文所讨论的任何一种或多种方法的机器或系统的任何集合。在一个实施方式中,系统1000包括通过总线或互连件1010连接的处理器1001、存储器1003以及装置1005至1008。处理器1001可以表示其中包括单个处理器内核或多个处理器内核的单个处理器或多个处理器。处理器1001可以表示一个或多个通用处理器,诸如,微处理器、中央处理单元(cpu)等。更具体地,处理器1001可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、或实施其它指令集的处理器、或实施指令集组合的处理器。处理器1001还可以是一个或多个专用处理器,诸如,专用集成电路(asic)、蜂窝或基带处理器、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器、图形处理器、通信处理器、加密处理器、协处理器、嵌入式处理器、或者能够处理指令的任何其它类型的逻辑。在实施方式中,处理器1001包括至少一个硬件处理器。处理器1001(其可以是低功率多核处理器套接口,诸如超低电压处理器)可以充当用于与所述系统的各种部件通信的主处理单元和中央集线器。这种处理器可以实施为片上系统(soc)。处理器1001被配置成执行用于执行本文所讨论的操作和步骤的指令。系统1000还可以包括与可选的图形子系统1004通信的图形接口,图形子系统1004可以包括显示控制器、图形处理器和/或显示装置。处理器1001可以与存储器1003通信,存储器1003在一个实施方式中可以经由多个存储器装置实施以提供给定量的系统存储。存储器1003可以包括一个或多个易失性存储(或存储器)装置,诸如,随机存取存储器(ram)、动态ram(dram)、同步dram(sdram)、静态ram(sram)或者其它类型的存储装置。存储器1003可以存储包括由处理器1001或任何其它装置执行的指令序列的信息。例如,各种操作系统、装置驱动程序、固件(例如,输入输出基本系统或bios)和/或应用的可执行代码和/或数据可以加载到存储器1003中并由处理器1001执行。操作系统可以是任何类型的操作系统,例如,机器人操作系统(ros)、来自公司的操作系统、来自苹果公司的mac来自公司的linux、unix,或者其它实时或嵌入式操作系统。系统1000还可以包括io装置,诸如装置1005至1008,包括网络接口装置1005、可选的输入装置1006,以及其它可选的io装置1007。网络接口装置1005可以包括无线收发器和/或网络接口卡(nic)。所述无线收发器可以是wifi收发器、红外收发器、蓝牙收发器、wimax收发器、无线蜂窝电话收发器、卫星收发器(例如,全球定位系统(gps)收发器)或其它射频(rf)收发器或者它们的组合。nic可以是以太网卡。输入装置1006可以包括鼠标、触摸板、触敏屏幕(其可以与显示装置1004集成在一起)、指针装置(诸如,手写笔)和/或键盘(例如,物理键盘或作为触敏屏幕的一部分显示的虚拟键盘)。例如,输入装置1006可以包括联接到触摸屏的触摸屏控制器。触摸屏和触摸屏控制器例如可以使用多种触敏技术(包括但不限于电容、电阻、红外和表面声波技术)中的任一种,以及其它接近传感器阵列或用于确定与触摸屏接触的一个或多个点的其它元件来检测其接触和移动或间断。输入/输出(io)装置1007可以包括音频装置。音频装置可以包括扬声器和/或麦克风,以促进支持语音的功能,诸如语音识别、语音复制、数字记录和/或电话功能。其它io装置1007还可以包括通用串行总线(usb)端口、并行端口、串行端口、打印机、网络接口、总线桥(例如,pci-pci桥)、传感器(例如,诸如加速度计运动传感器、陀螺仪、磁强计、光传感器、罗盘、接近传感器等)或者它们的组合。装置1007还可以包括成像处理子系统(例如,摄像机),所述成像处理子系统可以包括用于促进摄像机功能(诸如,记录照片和视频片段)的光学传感器,诸如电荷耦合装置(ccd)或互补金属氧化物半导体(cmos)光学传感器。某些传感器可以经由传感器集线器(未示出)联接到互连件1010,而诸如键盘或热传感器的其它装置可以根据系统1000的具体配置或设计由嵌入式控制器(未示出)控制。i/o装置1007还可以包括radar系统(无线电检测和测距)、lidar系统(光探测和测距)、gps系统(全球定位系统)、可以使用蜂窝塔、麦克风和其它来检测和三角测量的蜂窝电话子系统、音频/视频记录摄像机、位置、距离、时间、速度、加速度、水平和垂直水平检测器、取向和定向传感器。为了提供对诸如数据、应用、一个或多个操作系统等信息的永久性存储,大容量存储设备(未示出)也可以联接到处理器1001。在各种实施方式中,为了实现更薄且更轻的系统设计并且改进系统响应性,这种大容量存储设备可以经由固态装置(ssd)来实施。然而,在其它实施方式中,大容量存储设备可以主要使用硬盘驱动器(hdd)来实施,其中较小量的ssd存储设备充当ssd高速缓存以在断电事件期间实现上下文状态以及其它此类信息的非易失性存储,从而使得在系统活动重新启动时能够实现快速通电。另外,闪存装置可以例如经由串行外围接口(spi)联接到处理器1001。这种闪存装置可以提供系统软件的非易失性存储,所述系统软件包括所述系统的bios以及其它固件。存储装置1008可以包括计算机可访问存储介质1009(也称为机器可读存储介质或计算机可读介质),计算机可访问存储介质1009上存储实现本文中描述的方法或功能中的任何一个或多个的一组或多组指令或软件(例如,模块、单元和/或逻辑1028)。处理模块/单元/逻辑1028可以例如表示上述任何部件,例如自动驾驶车辆101(av)定位模块301、感知模块302、驾驶决策模块303、规划模块304、控制模块305、地图更新模块306以及处理传感器数据以用于驱动av计划和控制模块的一个或多个模块。处理模块1028还可以实现逻辑以构建上述的av状态数据库204和状态分析模块205。处理模块/单元/逻辑1028还可以在其由数据处理系统1000执行期间完全地或至少部分地驻留在存储器1003内和/或处理器1001内,存储器1003和处理器1001也构成机器可访问存储介质。处理模块/单元/逻辑1028可以进一步经由网络接口装置1005通过网络传输或接收。计算机可读存储介质1009也可以用来永久性地存储以上描述的一些软件功能。虽然计算机可读存储介质1009在示例性实施方式中被示为单个介质,但是术语“计算机可读存储介质”应当被认为包括存储所述一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还应当被认为包括能够存储或编码指令集的任何介质,所述指令集用于由机器执行并且使得所述机器执行本发明的任何一种或多种方法。因此,术语“计算机可读存储介质”应当被认为包括但不限于固态存储器以及光学介质和磁性介质,或者任何其它非暂时性机器可读介质。本文所述的处理模块/单元/逻辑1028、部件以及其它特征可以实施为分立硬件部件或集成在硬件部件(诸如,asics、fpga、dsp或类似装置)的功能中。此外,处理模块/单元/逻辑1028可以实施为硬件装置内的固件或功能电路。此外,处理模块/单元/逻辑1028可以以硬件装置和软件部件的任何组合来实施。处理逻辑可以包括,例如,如上参照图6描述的构建状态数据库204的逻辑,如上参照图7描述的使用和更新状态数据库204的逻辑,以及如上参照图8a和图8b描述的调整一个或多个av控制输入参数的逻辑。处理逻辑可以进一步包括例如用于使用由投影搜索模块301b或相似度搜索模块301c实现的内核投影技术来确定adv相对于hd地图特征空间的位置的逻辑。应注意,虽然系统1000被示出为具有数据处理系统的各种部件,但是并不旨在表示使部件互连的任何特定架构或方式;因为此类细节和本发明的实施方式没有密切关系。还应当认识到,具有更少部件或可能具有更多部件的网络计算机、手持计算机、移动电话、服务器和/或其它数据处理系统也可以与本发明的实施方式一起使用。前述详细描述中的一些部分已经根据在计算机存储器内对数据位的运算的算法和符号表示而呈现。这些算法描述和表示是数据处理领域中的技术人员所使用的方式,以将他们的工作实质最有效地传达给本领域中的其他技术人员。本文中,算法通常被认为是导致所期望结果的自洽操作序列。这些操作是指需要对物理量进行物理操控的操作。然而,应当牢记,所有这些和类似的术语均旨在与适当的物理量关联,并且仅仅是应用于这些量的方便标记。除非在以上讨论中以其它方式明确地指出,否则应当了解,在整个说明书中,利用术语(诸如所附权利要求书中所阐述的术语)进行的讨论是指计算机系统或类似电子计算装置的动作和处理,所述计算机系统或电子计算装置操控计算机系统的寄存器和存储器内的表示为物理(电子)量的数据,并将所述数据变换成计算机系统存储器或寄存器或者其它此类信息存储设备、传输或显示装置内类似地表示为物理量的其它数据。本发明的实施方式还涉及用于执行本文中的操作的设备。这种计算机程序被存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机构。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储介质、光存储介质、闪存存储器装置)。前述附图中所描绘的过程或方法可以由处理逻辑来执行,所述处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合。尽管所述过程或方法在上文是依据一些顺序操作来描述的,但是应当了解,所述操作中的一些可以按不同的顺序执行。此外,一些操作可以并行地执行而不是顺序地执行。本发明的实施方式并未参考任何特定的编程语言进行描述。应认识到,可以使用多种编程语言来实施如本文描述的本发明的实施方式的教导。在以上的说明书中,已经参考本发明的具体示例性实施方式对本发明的实施方式进行了描述。将显而易见的是,在不脱离所附权利要求书中阐述的本发明的更宽泛精神和范围的情况下,可以对本发明作出各种修改。因此,应当在说明性意义而不是限制性意义上来理解本说明书和附图。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1