用于自动驾驶仿真的基于视觉的驾驶场景生成器的制作方法

文档序号:16635467发布日期:2019-01-16 06:58阅读:195来源:国知局
用于自动驾驶仿真的基于视觉的驾驶场景生成器的制作方法

本公开的实施方式大体涉及自动驾驶仿真。更具体地,本公开的实施方式涉及生成用于自动驾驶仿真的驾驶场景数据。



背景技术:

当开发自动驾驶系统时,通常使用驾驶仿真来测试可实施为自动驾驶车辆的一部分的多种组件(例如,决策系统)。相应地,仿真的质量直接影响到自动驾驶车辆的性能。通常使用人工输入的驾驶场景来开发仿真,这种人工输入的驾驶场景需要大量的配置工作。然而,可以理解,对仿真的人工配置是受到限制的,并且对仿真的人工配置通常未提供在真实生活情景下可能遇到的潜在驾驶场景。此外,来自自动驾驶车辆本身的复杂数据也可被分析。然而,这样的信息也难以被采集,这是因为它需要一组自动驾驶车辆来采集车辆可能遇到的潜在不受限的驾驶场景。相应地,一直存在对于改善开发用于自动驾驶仿真的驾驶场景的方法的需求。



技术实现要素:

本公开的实施方式提供了一种用于生成用于自动驾驶仿真的驾驶场景的计算机实施方法、用于生成用于驾驶仿真的场景数据的数据处理系统、非暂时性机器可读介质。

在本公开的一方面,用于生成用于驾驶仿真的场景数据的计算机实施的方法包括:接收由车辆的相机在实况驾驶场景期间采集的图像数据;识别图像数据的一系列图像中的对象;基于一系列图像中的对象的尺寸确定所识别的对象相对于车辆的移动特性;基于从车辆的全球定位系统接收的位置信息确定所识别的对象相对于基础地图的移动特性,其中,位置信息与一系列图像中的、用于确定所识别的对象相对于车辆的移动特性的一个或多个图像相关;以及提供驾驶场景数据,驾驶场景数据至少表示在一系列图像期间所识别的对象在基础地图中的移动特性。

在本公开的另一方面,用于生成用于驾驶仿真的场景数据的数据处理系统包括:处理器;以及存储器,存储器联接至处理器以存储指令,当指令被处理器执行时致使处理器执行操作,操作包括:接收由车辆的相机在实况驾驶场景期间采集的图像数据;识别图像数据的一系列图像中的对象;基于一系列图像中的对象的尺寸确定所识别的对象相对于车辆的位置或速度;基于从车辆的全球定位系统接收的位置信息或从车辆的惯性测量单元接收的惯性信息确定所识别的对象相对于基础地图的位置或速度,其中,位置信息或惯性信息与一系列图像中的、用于确定所识别的对象相对于车辆的位置或速度的一个或多个图像相关;以及提供驾驶场景数据,驾驶场景数据至少表示在一系列图像期间所识别的对象在基础地图中的位置或速度,其中,驾驶场景数据用于将所识别的对象并入自动驾驶仿真中。

在本公开的又一方面,非暂时性机器可读介质存储有指令,当指令被处理器执行时致使处理器执行为车辆提供自动驾驶控制的操作,操作包括:接收由车辆的相机在实况驾驶场景期间采集的图像数据;识别图像数据的一系列图像中的对象;基于一系列图像中的对象的尺寸确定所识别的对象相对于车辆的移动特性;基于从车辆的全球定位系统接收的位置信息确定所识别的对象相对于基础地图的移动特性,其中,位置信息与一系列图像中的、用于确定所识别的对象相对于车辆的移动特性的一个或多个图像相关;以及提供驾驶场景数据,驾驶场景数据至少表示在一系列图像期间所识别的对象在基础地图中的移动特性。

附图说明

本公开的实施方式在附图的各图中以示例而非限制的方式示出,附图中的相似的附图标记指代相似的元件。

图1是示出了根据本公开的一个实施方式的用于图像采集车辆的系统环境的框图。

图2是示出了根据本公开的一个实施方式的传感器和控制系统的框图。

图3是示出了根据本公开的一个实施方式的用于生成用于自动驾驶仿真的驾驶场景的示例性系统的框图。

图4是根据本公开的实施方式的生成驾驶场景仿真数据的示例性过程流程图。

图5是示出了根据本公开的实施方式的生成驾驶场景数据的方法的示例图。

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

图7是示出了根据一个实施方式的用于自动驾驶车辆的感知与规划系统的示例的框图。

图8是示出了与本公开的一个或多个实施方式共同使用的示例性计算系统的框图。

具体实施方式

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

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

描述了一种用于生成用于自动驾驶仿真器的驾驶场景的系统(和方法)。驾驶场景数据可来自于由安装到车辆的相机采集的图像数据。使用经济合算的相机提供了获取大量驾驶图像数据的能力,大量驾驶图像数据可广泛地覆盖到自动驾驶车辆可能遇到的潜在类型的驾驶场景。

在一个实施方式中,驾驶仿真器可使用驾驶场景数据来将对象叠加在基础地图(例如,高清地图)上以创建驾驶仿真。为了生成驾驶场景数据,系统可使用二维图像数据(例如,来自相机)作为经济合算的方法来获取真实生活中的驾驶场景。系统可分析采集的图像数据(例如,视频),以及可识别二维图像数据中的对象(例如,车辆、行人等)并且确定对象的移动特性(诸如对象的位置和速度)。例如,系统可基于在一系列图像(例如,一组帧)中测量对象的尺寸来确定所识别的对象的移动特性。然后,可基于图像采集车辆本身的位置和速度的附加信息来确定对象的所确定的移动特性的绝对值(或者相对于基础地图的数值)。

例如,可提供来自图像采集车辆的传感器的gps位置信息或惯性信息,并且这些信息可与采集的图像数据同步。例如,可基于gps位置信息确定绝对位置(例如,基础地图上的图像采集车辆的位置)。因此,可根据这种信息来外推所识别的对象的绝对位置。相应地,所识别的对象的所确定的移动特性可随后被包括为驾驶场景数据以供驾驶仿真器使用。例如,驾驶场景数据可包括与对象的类型相关的信息、对象的位置、速度和轨迹以及任何其它信息。相应地,该驾驶场景数据可被提供至驾驶仿真器以将对象投影至基础地图上来生成三维驾驶仿真。驾驶仿真可用于执行对自动驾驶系统的多种组件的测试。例如,驾驶场景数据可用于执行对自动驾驶系统的多种模块或组件的单元测试。

相应地,系统以经济合算的方式提供了对大量驾驶场景的逼真还原。因此,生成的仿真可以是对于改善自动驾驶系统的综合性能和安全性至关重要的组成部分。如本文中参照图1至图3进一步描述的,系统可包括采集实况驾驶图像数据的图像采集车辆,所述实况驾驶图像数据供仿真生成系统使用来生成驾驶场景数据。相应地,如所描述的,系统可分析二维图像数据来创建三维驾驶仿真数据。

图1是示出了根据本公开的一个实施方式的用于图像采集车辆101的系统环境100的框图。图像采集车辆101可包括具有一个或多个传感器组件(例如,相机、gps单元、imu单元等)的非自动驾驶车辆或自动驾驶车辆。如上所述,因为驾驶场景数据是通过由经济合算的相机(相较于更昂贵的lidar设备)采集的图像数据而生成的,所以图像数据可来自于任何类型的车辆。例如,在一个实施方式中,来自非自动驾驶车辆的车载相机的图像数据可提供至驾驶仿真生成系统。此外,这甚至可包括来自车辆/用户的集合所携带的相机的来源广泛的数据,从而提供更大量的驾驶场景数据以供驾驶仿真处理。返回参照图1,系统100包括图像采集车辆101,图像采集车辆101可通过网络102通信地联接至一个或多个服务器103-104。虽然示出了一个自动驾驶车辆,但是多个自动驾驶车辆可通过网络102联接至服务器103-104和/或彼此联接。

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

在一个实施方式中,图像采集车辆101可选择性地(例如,当图像采集车辆101是自动驾驶车辆时)包括决策系统110以及车辆控制系统111。图像采集车辆101还可以包括普通车辆中包括的某些常用组件,诸如:发动机、车轮、方向盘、变速器等,所述组件可以由车辆控制系统111和/或决策系统110使用多种通信信号和/或命令进行控制,该多种通信信号和/或命令例如加速信号或命令、减速信号或命令、转向信号或命令、制动信号或命令等。

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

网络102可以是任何类型的有线或无线网络,诸如局域网(lan)、诸如互联网的广域网(wan)、蜂窝网络、卫星网络或其组合。服务器103-104可以是任何类型的服务器或服务器的集群,诸如,网络或云服务器、应用服务器、后端服务器或其组合。服务器103-104可以是数据分析服务器、内容服务器、交通信息服务器、地图和兴趣点(mpoi)服务器或者位置服务器等。

服务器104可提供可用于处理本文中进一步描述的图像数据的地图和位置信息。在一个实施方式中,服务器104可提供可被包括作为仿真的一部分的交通相关数据。服务器103可以是为多种客户端执行数据分析服务的数据分析系统。在一个实施方式中,服务器103可包括驾驶统计信息,驾驶统计信息包括表示由车辆发出或回复的驾驶命令(例如,油门、制动、转向命令)的信息(例如,速度、加速度、减速度、方向),这些驾驶统计信息由车辆的传感器在不同的时间点采集。驾驶统计信息还可例如包括描述不同的时间点的驾驶环境的信息,诸如,路线(包括起始位置和目标位置)、mpoi、道路条件、气候条件等。相应地,这种附加信息可提供作为对仿真生成系统的输入。

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

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

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

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

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

图3是示出了根据本公开的一个实施方式的用于生成用于自动驾驶仿真的驾驶场景的示例性系统300的框图。参照图3的实施方式,系统300可包括仿真生成系统301。在一个实施方式中,仿真生成系统301可包括执行任务(或程序、方法、进程等)的一个或多个组件(或模块),诸如对象检测模块303、距离估测模块305、同步模块307、对象到地图投影模块308、对象轨迹确定模块309和驾驶场景数据生成模块311。相应地,这些任务中的一个或多个可产生用于创建驾驶场景320的数据,驾驶场景320可用于自动驾驶仿真器321。

对象检测模块303配置为检测图像数据中的对象。检测可包括识别可能与自动驾驶车辆的决策制定相关的任何对象。例如,在一个实施方式中,对象可包括其它交通参与者,诸如其它车辆(自动或非自动)、行人、骑行者等。此外,在一个实施方式中,对象也可包括与交通无关的(例如,静态的)对象,诸如障碍物、交通管制对象(例如,桥塔、路障、交通标识、电子标识等)。对象检测可包括对图像数据(例如,视频)的处理。在一个实施方式中,通过将视频视作一系列的图像,对象检测可在帧的水平上进行操作。相应地,检测可包括识别图像数据的特定帧中的对象。对象检测可采用任何合适的技术来识别图像数据中的对象。

在一个实施方式中,对象检测303可采用机器学习算法。例如,对象检测可采用诸如基于快速区域的卷积网络方法(fastr-cnn)的深度学习算法。检测可包括对二维图像数据执行多种操作。例如,检测可包括使用诸如在所识别的对象周围叠加边界框的多种参考技术来识别对象。相应地,可在处理期间对一系列图像参考用于所识别的对象的边界框。

距离估测模块305配置为估测对象的移动特性。例如,移动特性可包括所识别的对象的距离(或位置)和速度。在一个实施方式中,相对距离和/或相对速度可以是相对于图像采集车辆101。在一个实施方式中,可在帧的水平上运行估测,并且估测可基于任何合适的方法分析图像数据和确定所识别的对象的移动特性。例如,估测可基于本领域公知的立体投影计算。例如,计算可基于确定相机距地面的高度和图像中的对象的相对尺寸。在一些实施方式中,这种计算可包括参考用于所识别的对象的边界框。相应地,可基于图像(或图像的序列)中的对象的相对尺寸计算对象距车辆101的距离(或位置)。

估测也可包括确定对象的相对移动。例如,估测也可包括确定对象的相对速度。例如,可基于图像采集车辆101的速度和一定时间间隔(例如,一系列帧)内对象相对于车辆的距离确定对象的速度。例如,如果在图像采集车辆101正在行驶时确定在图像采集车辆101正前方的对象正移动远离(例如,对象在一系列图像中变得更小),则将得到表示对象具有相对于车辆101更大的相对速度的计算结果。

同步模块307配置为确定对象的绝对位置和/或绝对速度。如本文中所提及的,在一个实施方式中,绝对位置可表示相对于基础地图的位置。例如,在一个实施方式中,基础地图可使用gps坐标来标识对象的位置。在一个实施方式中,同步可获取图像采集车辆101的gps信息(例如,来自gps单元212)和/或imu信息(例如,来自imu213)。相应地,基于这些获取的信息,系统可确定图像采集车辆101的绝对位置和绝对速度。这些信息随后可与针对所识别的对象确定的相对位置和相对速度同步。例如,图像采集车辆101在特定时间(例如,帧)的绝对位置可与在相同时间点(例如,帧)的对象距车辆的相对距离同步。基于该同步,可计算对象的绝对位置和/或绝对速度。例如,可计算所识别的对象的gps坐标或所识别的对象的实际速度。

相应地,基于上述分析,对象可随后被包括在参考的帧(诸如,基础地图)内。对象到地图投影模块308配置为将对象映射至地势图(例如,与驾驶场景的位置对应的道路的基础地图)上以提供参考的帧并且重新创建获得图像数据的地方的真实生活交通环境。

对象轨迹确定模块309配置为基于一段时间(例如,一系列帧)内所识别的对象的位置确定所识别的对象的轨迹。在一个实施方式中,可基于确定的对象轨迹而调节速度(相对速度或绝对速度)。此外,也可通过消除轮廓线计算(例如,异常帧)来使轨迹平滑。

相应地,系统还可包括驾驶场景数据生成模块311来生成用于驾驶场景320的配置数据。在一个实施方式中,数据生成可包括配置用于采集所识别的对象的特性的数据(例如,对象、文件、数据结构等)。例如,数据可包括对象类型(例如,车辆类型、是否是行人等)、位置(相对位置或绝对位置)、速度(相对速度或绝对速度)、轨迹和地图信息以及任何其它类型的信息。例如,这些驾驶场景数据可随后被提供至驾驶仿真器,从而将对象投影至基础地图上以通过自动驾驶仿真器321生成三维驾驶仿真。

关于图1至图3应注意,所示出的模块(组件或系统)中的一些或全部可以以软件、硬件或其组合来实施。例如,这些模块可安装在永久性存储装置中、加载到存储器中以及通过一个或多个处理器执行。此外,这种组件(例如,模块和系统)可实施为编码或嵌入至诸如集成电路的专用硬件(例如,专用ic或asic)、数字信号处理器(dsp)或现场可编程门阵列(fpga)中的可执行代码,这些可执行代码可由应用通过相应的驱动器和/或操作系统来访问。此外,这种组件可实施为处理器或处理器内核中的特定的硬件逻辑以作为可由软件组件经由一个或多个特定指令访问的指令集的一部分。

图4是根据本公开的实施方式的生成驾驶场景仿真数据的示例性过程流程图400。过程400可通过可获取图像数据403的系统(例如,系统300)来执行。图像数据403可例如是从如上所述的实况驾驶场景中获取的图像数据。系统可执行如上所述的对象检测303以检测图像数据中的一个或多个对象(例如,其它车辆、行人、骑行者等)。例如,所识别的对象405可通过一系列帧中的边界来表示。如本文中所提及的,一系列帧可包括图像数据(例如,视频)的每一帧或者帧中的一部分(例如,每隔一帧、每x帧等)。例如,为了高效的目的,可仅处理帧的子集。

基于所识别的对象,如上所述的距离估测305可被执行为确定(例如,输出)所识别的对象相对于车辆101的距离和/或速度407。系统可执行如上所述的同步307。同步可获取图像采集车辆101的gps和/或imu数据409,并且该数据可与对象的相对距离数据和/或相对速度数据同步。通过例如在相对距离信息和/或相对速度信息的帧与图像采集车辆的绝对位置之间执行同步,可确定所识别的对象的绝对(例如,相对于基础地图)距离和/或绝对速度411。系统可获取地图数据415来生成地图投影308(或对象到地图投影)。例如,对象可叠加在基础地图上。系统可随后执行轨迹确定309,其可包括基于所识别的对象的轨迹调节速度。如上所述,可生成诸如驾驶场景数据417的仿真配置数据以输入至自动驾驶仿真器321。

图5是示出了根据本公开的实施方式的生成驾驶场景数据的方法的示例图500。过程500可使用可包括软件、硬件或其组合的处理逻辑。例如,过程500可通过系统(例如,系统300)或计算或数据处理系统或装置执行。

在操作501中,系统可接收由车辆(例如,图像采集车辆101)的相机在实况驾驶场景期间采集的图像数据。在操作502中,系统可识别图像数据的一系列图像中的对象。在操作503中,系统可基于一系列图像中的对象的尺寸确定所识别的对象相对于车辆的移动特性。在一个实施方式中,所识别的对象的移动特性可包括所识别的对象的位置和速度。

在操作504中,系统可基于从车辆的全球定位系统(gps)接收的位置信息确定所识别的对象相对于基础地图的移动特性。在一个实施方式中,系统还可基于从车辆的惯性测量单元(imu)接收的惯性信息确定所识别的对象相对于基础地图的移动特性。此外,位置信息可与一系列图像中的、用于确定所识别的对象相对于车辆的移动特性的一个或多个图像相关。位置信息或惯性信息可基于位置信息或惯性信息的时间戳与一系列图像中的一个或多个图像相关,所述位置信息或惯性信息的时间戳与所述一系列图像中的所述一个或多个图像的时间戳对应。

在操作505中,系统可基于确定一系列图像中的所识别的对象相对于基础地图的位置来确定所识别的对象的轨迹。在操作506中,系统可提供驾驶场景数据,该驾驶场景数据至少表示在一系列图像期间所识别的对象在基础地图中的移动特性。例如,驾驶场景数据可用于将所识别的对象并入自动驾驶仿真中。在一个实施方式中,驾驶场景数据至少包括所识别的对象的类型的标识符、所识别的对象的位置、所识别的对象的速度和所识别的对象的轨迹。

图6是示出了根据一个实施方式的自动驾驶车辆的示例的框图。自动驾驶车辆600可实施作为图1的车辆101的一部分。参照图6,自动驾驶车辆600包括但不限于感知与规划系统610、车辆控制系统111、无线通信系统612、用户接口系统613和传感器系统115。自动驾驶车辆600还可以包括普通车辆中包括的某些常用组件,诸如:发动机、车轮、方向盘、变速器等,所述组件可例如由车辆控制系统111和/或感知与规划系统610使用多种通信信号和/或命令进行控制,该多种通信信号和/或命令诸如加速信号或命令、减速信号或命令、转向信号或命令、制动信号或命令等。

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

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

例如,作为乘客的用户可以例如经由用户接口来指定行程的出发位置和目标位置。感知与规划系统610获取行程相关数据。例如,感知与规划系统610可以从mpoi服务器中获得位置和路线信息,所述mpoi服务器可以是服务器103-104的一部分。位置服务器提供位置服务,并且mpoi服务器提供地图服务和某些位置的poi。替代地,这种位置和mpoi信息可以本地缓存在感知与规划系统610的永久性存储装置中。

当自动驾驶车辆600沿着路线移动时,感知与规划系统610也可以从交通信息系统或服务器(tis)获取实时交通信息。基于实时交通信息、mpoi信息和位置信息以及由传感器系统115检测或感测的实时本地环境数据(例如,障碍物、对象、附近车辆),感知与规划系统610可以规划最佳路线并且根据所规划的路线例如经由控制系统111来驾驶车辆600,以安全且高效到达指定目标位置。

图7是示出了根据一个实施方式的用于自动驾驶车辆的感知与规划系统的示例的框图。系统1300可实施作为图6的自动驾驶车辆600的一部分,包括但不限于,感知与规划系统610、控制系统111和传感器系统115。参照图7,感知与规划系统610包括但不限于定位模块1301、感知模块1302、预测模块1303、决策模块1304、规划模块1305以及控制模块1306。

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

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

基于由传感器系统115提供的传感器数据和由定位模块1301获得的定位信息,感知模块1302确定对周围环境的感知。感知信息可以表示普通驾驶员在驾驶员正驾驶的车辆周围将感知到的东西。感知可以包括例如对象形式的车道配置(例如,直线车道或弯曲车道)、交通灯信号、另一车辆的相对位置、行人、建筑物、人行横道或其它交通相关标志(例如,停止标志、让行标志)等。

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

对于对象中的每个,预测模块1303预测对象在环境下的行为。预测是根据地图/路线信息1311和交通规则1312的集合基于感知在某时间点时的驾驶环境的感知数据执行的。例如,如果对象是位于相反方向的车辆并且当前驾驶环境包括路口,则预测模块1303将预测该车辆将会直行还是转弯。如果感知数据表示路口没有交通信号灯,则预测模块1303可预测该车辆可能必须在进入路口前完全停止。如果感知数据表示该车辆当前位于仅允许左转的车道或仅允许右转的车道,则预测模块1303可分别预测该车辆将更可能左转或更可能右转。

对于每个对象,决策模块1304作出关于如何处置对象的决定。例如,针对特定对象(例如,交叉路线中的另一车辆)以及描述对象的元数据(例如,速度、方向、转弯角度),决策模块1304决定如何与所述对象相遇(例如,超车、让行、停止、超过)。决策模块1304可以根据诸如交通规则或驾驶规则1312的规则集来作出这种决定,所述规则集可以存储在永久性存储装置1352中。

基于针对所感知到的对象中的每个的决定,规划模块1305为自动驾驶车辆规划路径或路线以及驾驶参数(例如,距离、速度和/或转弯角度)。换言之,针对给定的对象,决策模块1304决定对该对象做什么,而规划模块1305确定如何去做。例如,针对给定的对象,决策模块1304可以决定超过所述对象,而规划模块1305可以确定在所述对象的左侧还是右侧超过。规划和控制数据由规划模块1305生成,其包括描述车辆1300在下一移动循环(例如,下一路线/路径段)中将如何移动的信息。例如,规划和控制数据可以指示车辆1300以30英里每小时(mph)的速度移动10米,随后以25mph的速度变到右侧车道。

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

在一个实施方式中,规划阶段例如执行多个规划循环(也称作为命令循环),诸如每100毫秒(ms)的时间间隔执行一次。对于规划循环或命令循环中的每个,将基于规划和控制数据发出一个或多个控制命令。即,对于每100ms,规划模块1305规划下一路线段或路径段,例如,包括目标位置和自动驾驶车辆(adv)到达目标位置所需的时间。替代地,规划模块1305还可指定特定速度、方向和/或转向角等。在一个实施方式中,规划模块1305为下一预定时间段(诸如,5秒)规划路线段或路径段。对于每个规划周期,规划模块1305基于在上一循环中规划的目标位置规划当前循环(例如,下一5秒钟)的目标位置。控制模块1306随后基于当前循环的规划和控制数据生成一个或多个控制命令(例如,油门、制动、转向控制命令)。

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

决策模块1304/规划模块1305还可以包括防撞系统或防撞系统的功能,以识别、评估并且避免或以其它方式越过自动驾驶车辆的环境中的潜在障碍物。例如,防撞系统可以通过以下方式实现自动驾驶车辆的导航中的变化:操作控制系统111中的一个或多个子系统来采取变向操纵、转弯操纵、制动操纵等。防撞系统可以基于周围的交通模式、道路状况等自动确定可行的障碍物回避操纵。防撞系统可以被配置成使得当其它传感器系统检测到位于自动驾驶车辆将变向进入的相邻区域中的车辆、建筑障碍物等时不采取变向操纵。防撞系统可以自动选择既可使用又使得自动驾驶车辆乘员的安全性最大化的操纵。防撞系统可以选择预测为使得自动驾驶车辆的乘客舱中出现最小量的加速度的避让操纵。

图8是示出了与本公开的一个或多个实施方式共同使用的示例性计算系统的框图。例如,系统1500可例如表示以上所述的执行上述过程或方法中的任一个的任何数据处理系统,诸如,上述自动驾驶车辆101的一个或多个组件110-112、感知与规划系统610或者服务器103-104。系统1500可包括许多不同的组件。在一个实施方式,系统1500包括经由总线或互连件1510的处理器1501、存储器1503和装置1505-1508。处理器1501可以表示其中包括单个处理器内核或多个处理器内核的单个处理器或多个处理器。处理器1501可以表示一个或多个通用处理器,诸如,微处理器、中央处理单元(cpu)等。处理器1501还可以是一个或多个专用处理器,诸如,专用集成电路(asic)、蜂窝或基带处理器、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器、图形处理器、网络处理器、通信处理器、加密处理器、协处理器、嵌入式处理器、或者能够处理指令的任何其它类型的逻辑。

处理器1501可配置为执行指令以执行本文中讨论的操作和步骤。系统1500还可以包括与可选的图形子系统(显示控制器和/或显示装置)1504通信的图形接口,图形子系统1504可以包括显示控制器、图形处理器和/或显示装置。

处理器1501可以与存储器1503通信,存储器1503在一个实施方式中可以经由多个存储器装置实施以提供给定量的系统存储。存储器1503可以包括一个或多个易失性存储(或存储器)装置,诸如,随机存取存储器(ram)、动态ram(dram)、同步dram(sdram)、静态ram(sram)或者其它类型的存储装置。

系统1500还可以包括io装置,诸如装置1505至1508,包括网络接口装置1505、可选的输入装置1506,以及其它可选的io装置1507。网络接口装置1505可以包括无线收发器和/或网络接口卡(nic)。所述无线收发器可以是wi-fi收发器、红外收发器、蓝牙收发器、wimax收发器、无线蜂窝电话收发器、卫星收发器(例如,全球定位系统(gps)收发器)或其它射频(rf)收发器或者它们的组合。nic可以是以太网卡。

输入装置1506可以包括触摸板、触敏屏幕(其可以与显示装置1504集成在一起)、指点装置(诸如,手写笔)和/或键盘(例如,物理键盘或作为触敏屏幕的一部分显示的虚拟键盘)。例如,输入装置1506可以包括联接到触摸屏的触摸屏控制器。触摸屏和触摸屏控制器例如可以使用多种触敏技术(包括但不限于电容、电阻、红外和表面声波技术)中的任一种,以及其它接近传感器阵列或用于确定与触摸屏接触的一个或多个点的其它元件来检测其接触和移动或间断。

io装置1507可以包括多种电子显示器(例如,具有屏幕的显示屏、小lcd触摸屏或能够操作来显示信息的任何其它电气装置)、音频输出(诸如,扬声器)。例如,车辆101可包括内部电子显示器。就此而言,内部电子显示器可位于车辆的车厢内。io装置1507可以包括音频装置。音频装置可以包括扬声器和/或麦克风,以促进支持语音的功能,诸如语音识别、语音复制、数字记录和/或电话功能。其它io装置1507还可以包括通用串行总线(usb)端口、并行端口、串行端口、打印机、网络接口、总线桥(例如,pci-pci桥)、传感器(例如,诸如加速度计的运动传感器、陀螺仪、磁强计、光传感器、罗盘、接近传感器等)或者它们的组合。装置1507还可以包括成像处理子系统(例如,相机),所述成像处理子系统可以包括用于促进相机功能(诸如,记录照片和视频片段)的光学传感器,诸如电荷耦合装置(ccd)或互补金属氧化物半导体(cmos)光学传感器。某些传感器可以经由传感器集线器(未示出)联接到互连件1510,而诸如键盘或热传感器的其它装置可以根据系统1500的具体配置或设计由嵌入式控制器(未示出)控制。

存储装置1508可以包括计算机可访问的存储介质1509(也被称为机器可读存储介质或计算机可读介质),其上存储有体现本文所述的任何一种或多种方法或功能的一个或多个指令集或软件(例如,组件、模块、单元和/或逻辑1528)。

组件/模块/单元/逻辑(例如处理模块)1528可例如表示上述组件中的任一种,诸如,仿真生成系统301、决策系统110、传感器系统112和控制系统111的组件(以及相关模块和子模块)。组件/模块/单元/逻辑1528还可以在其由数据处理系统1500、存储器1503和处理器1501执行期间完全地或至少部分地驻留在存储器1503内和/或处理器1501内,数据处理系统1500、存储器1503和处理器1501也构成机器可访问的存储介质。此外,组件/模块/单元/逻辑1528可实施为固件或硬件装置中的功能性电路。另外,组件/模块/单元/逻辑1528可以以硬件装置和软件组件的任何组合实施。

应注意,虽然系统1500被示出为具有数据处理系统的各种部件,但是并不旨在表示使部件互连的任何特定架构或方式;因为此类细节和本公开的实施方式没有密切关系。还应当认识到,具有更少部件或可能具有更多部件的网络计算机、手持计算机、移动电话、服务器和/或其它数据处理系统也可以与本公开的实施方式一起使用。

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

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

附图中所示的技术可以使用在一个或多个电子装置上存储并执行的代码和数据来实施。这种电子装置使用计算机可读介质存储和传输(内部和/或通过网络与其它电子装置)代码和数据,计算机可读介质诸如非暂时性计算机可读存储介质(例如,磁盘;光盘;随机存取存储器;只读存储器;闪存装置;和相变存储器)。

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

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

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