自动驾驶车辆的避障轨迹规划
阅读说明:本技术 自动驾驶车辆的避障轨迹规划 (Obstacle avoidance trajectory planning for autonomous vehicles ) 是由 于宁 朱帆 薛晶晶 于 2020-02-26 设计创作,主要内容包括:公开了一种用于操作ADV的计算机实施的方法。规划ADV沿其驾驶的第一轨迹(S1401)。ADV将沿第一轨迹自动驾驶(S1402)。基于从安装在ADV上的多个传感器获得的传感器数据来检测ADV的受影响区域中的障碍物(S1403)。确定障碍物在受影响区域中的预期驻留时间(S1404)。基于障碍物在受影响区域中的预期驻留时间来确定是规划第二轨迹还是等待障碍物离开受影响区域(S1405)。规划ADV沿其驾驶的第二轨迹,并且ADV将沿第二轨迹自动驾驶,或者ADV将等待障碍物离开受影响区域并随后沿第一轨迹自动驾驶(S1406)。(A computer-implemented method for operating an ADV is disclosed. A first trajectory along which the ADV is driving is planned (S1401). The ADV will automatically drive along the first trajectory (S1402). Obstacles in an affected area of an ADV are detected based on sensor data obtained from a plurality of sensors mounted on the ADV (S1403). An expected dwell time of the obstacle in the affected area is determined (S1404). It is determined whether to plan the second trajectory or wait for the obstacle to leave the affected area based on an expected dwell time of the obstacle in the affected area (S1405). A second trajectory along which the ADV is driving is planned and the ADV will automatically drive along the second trajectory, or the ADV will wait for the obstacle to leave the affected area and then automatically drive along the first trajectory (S1406).)
具体实施方式
将参考以下所讨论的细节来描述本公开的各种实施方式和方面,附图将示出所述各种实施方式。下列描述和附图是本公开的说明,而不应当解释为对本公开进行限制。描述了许多特定细节以提供对本公开的各种实施方式的全面理解。然而,在某些情况下,并未描述众所周知的或常规的细节,以提供对本公开的实施方式的简洁讨论。
本说明书中对“一个实施方式”或“实施方式”的提及意味着结合该实施方式所描述的特定特征、结构或特性可包括在本公开的至少一个实施方式中。短语“在一个实施方式中”在本说明书中各个地方的出现不必全部指同一实施方式。
根据一些实施方式,公开了一种用于避障的新方法。该方法包括确定障碍物(例如,车辆、行人、动物等)在ADV的受影响区域中的驻留时间的概率,计算该障碍物在受影响区域中的预期驻留时间(Tw),并且当ADV遇到阻碍ADV移动的障碍物时,做出ADV是否应等待还是应重新规划的决策。
根据一个实施方式,公开了一种用于操作ADV的计算机实施的方法。基于从安装在ADV上的多个传感器获得的传感器数据来检测ADV的受影响区域中的障碍物,同时控制ADV以沿着第一轨迹自动驾驶。确定障碍物在受影响区域中的预期驻留时间。基于障碍物在受影响区域中的预期驻留时间来确定是规划第二轨迹还是等待障碍物离开受影响区域。基于确定是规划第二轨迹还是等待障碍物离开受影响区域,规划用于ADV沿其驾驶的第二轨迹,并且控制ADV使其沿第二轨迹自动驾驶,或者控制ADV使其等待障碍物离开受影响区域,然后沿第一轨迹自动驾驶。
在一个实施方式中,该方法还包括在作为没有车道边界的开放空间的驾驶区域类型中以开放空间模式操作。在一个实施方式中,确定障碍物在受影响区域中的预期驻留时间包括:使用概率密度函数来确定障碍物在受影响区域中的驻留时间的概率,以及其中,基于驻留时间的概率来确定障碍物在受影响区域中的预期驻留时间。
在一个实施方式中,该方法还包括:基于障碍物在受影响区域中的预期驻留时间,确定ADV等待障碍物离开受影响区域并随后沿着第一轨迹自动驾驶的第一估计到达时间;确定ADV沿着第二轨迹自动驾驶的第二估计到达时间;以及确定第一估计到达时间与第二估计到达时间的比率,其中,确定是规划第二轨迹还是等待障碍物离开受影响区域还基于第一估计到达时间与第二估计到达时间的比率。
在一个实施方式中,该方法还包括响应于第一估计到达时间与第二估计到达时间的比率大于1来确定规划第二轨迹。
在一个实施方式中,规划ADV的第一轨迹或第二轨迹包括:基于搜索算法搜索第一路线或第二路线;基于第一路线或第二路线生成第一参考线或第二参考线;基于第一参考线或第二参考线确定第一组候选轨迹或第二组候选轨迹;以及通过从第一组候选轨迹或第二组候选轨迹中选择第一轨迹或第二轨迹来规划第一轨迹或第二轨迹。
在一个实施方式中,搜索算法包括改进的A星搜索算法。在一个实施方式中,该方法还包括:基于ADV的宽度和第一参考线或第二参考线生成第一虚拟道路边界或第二虚拟道路边界;以及在第一虚拟道路边界或第二虚拟道路边界内生成第一网格或第二网格,其中,基于第一网格或第二网格确定第一组候选轨迹或第二组候选轨迹。
图1是示出根据本公开的一个实施方式的自动驾驶车辆网络配置的框图。参考图1,网络配置100包括可通过网络102通信地联接到一个或多个服务器103至104的自动驾驶车辆101。尽管示出一个自动驾驶车辆,但多个自动驾驶车辆可通过网络102联接到彼此和/或联接到服务器103至104。网络102可以是任何类型的网络,例如,有线或无线的局域网(LAN)、诸如互联网的广域网(WAN)、蜂窝网络、卫星网络或其组合。服务器103至104可以是任何类型的服务器或服务器群集,诸如,网络或云服务器、应用服务器、后端服务器或其组合。服务器103至104可以是数据分析服务器、内容服务器、交通信息服务器、地图和兴趣点(MPOI)服务器或位置服务器等。
自动驾驶车辆是指可配置成处于自动驾驶模式下的车辆,在所述自动驾驶模式下车辆在极少或没有来自驾驶员的输入的情况下导航通过环境。这种自动驾驶车辆可包括传感器系统,所述传感器系统具有配置成检测与车辆运行环境有关的信息的一个或多个传感器。所述车辆和其相关联的控制器使用所检测的信息来导航通过所述环境。自动驾驶车辆101可在手动模式下、在全自动驾驶模式下或者在部分自动驾驶模式下运行。
在一个实施方式中,自动驾驶车辆101包括,但不限于,感知与规划系统110、车辆控制系统111、无线通信系统112、用户接口系统113和传感器系统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可上载到ADV(例如,图3A的模型313)上,以便在自动驾驶期间实时使用。
图3A和图3B是示出根据一个实施方式的与自动驾驶车辆一起使用的感知与规划系统的示例的框图。系统300可实施为图1的自动驾驶车辆101的一部分,包括但不限于感知与规划系统110、控制系统111和传感器系统115。参考图3A至图3B,感知与规划系统110包括但不限于定位模块301、感知模块302、预测模块303、决策模块304、规划模块305、控制模块306和路线安排模块307。路线安排模块307可包括车道上模式模块I 308a和开放空间模式模块I 309a。规划模块305可包括车道上模式模块II 308b和开放空间模式模块II 309b。
模块301至309II中的一些或全部可以以软件、硬件或其组合实施。例如,这些模块可安装在永久性存储装置352中、加载到存储器351中,并且由一个或多个处理器(未示出)执行。应注意,这些模块中的一些或全部可通信地联接到图2的车辆控制系统111的一些或全部模块或者与它们集成在一起。模块301至309II中的一些可一起集成为集成模块。
定位模块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可根据诸如交通规则或驾驶规则312的规则集来作出此类决定,所述规则集可存储在永久性存储装置352中。
路线安排模块307配置成提供从起始点到目的地点的一个或多个路线或路径。对于从起始位置到目的地位置的给定行程,例如从用户接收的给定行程,路线安排模块307获得路线与地图信息311,并确定从起始位置至到达目的地位置的所有可能路线或路径。在一个实施方式中,路线安排模块307可生成地形图形式的参考线,它确定了从起始位置至到达目的地位置的每个路线。参考线是指不受其它诸如其它车辆、障碍物或交通状况的任何干扰的理想路线或路径。即,如果道路上没有其它车辆、行人或障碍物,则ADV应精确地或紧密地跟随参考线。然后,将地形图提供至决策模块304和/或规划模块305。决策模块304和/或规划模块305检查所有可能的路线,以根据由其它模块提供的其它数据选择和更改最佳路线中的一个,其中,其它数据诸如为来自定位模块301的交通状况、由感知模块302感知到的驾驶环境以及由预测模块303预测的交通状况。根据时间点下的特定驾驶环境,用于控制ADV的实际路径或路线可能接近于或不同于由路线安排模块307提供的参考线。
基于针对所感知到的对象中的每个的决定,规划模块305路线安排模块307参考线为自动驾驶车辆规划路径或路线以及驾驶参数(例如,距离、速度和/或转弯角度)。在一个实施方式中,规划模块305可使用由路线安排模块307提供的参考线作为基础。换言之,针对给定的对象,决策模块304决定对该对象做什么,而规划模块305确定如何去做。例如,针对给定的对象,决策模块304可决定超过所述对象,而规划模块305可确定在所述对象的左侧还是右侧超过。规划和控制数据由规划模块305生成,包括描述车辆300在下一移动循环(例如,下一路线/路径段)中将如何移动的信息。例如,规划和控制数据可指示车辆300以30英里每小时(mph)的速度移动10米,随后以25mph的速度变到右侧车道。在一个实施方式中,规划模块305可基于由路线安排模块307提供的路线生成参考线。
基于规划和控制数据,控制模块306根据由规划和控制数据限定的路线或路径通过将适当的命令或信号发送到车辆控制系统111来控制并驾驶自动驾驶车辆。所述规划和控制数据包括足够的信息,以沿着路径或路线在不同的时间点使用适当的车辆设置或驾驶参数(例如,油门、制动、转向命令)将车辆从路线或路径的第一点驾驶到第二点。
在一个实施方式中,规划阶段在多个规划周期(也称作为驾驶周期)中执行,例如,在每个时间间隔为100毫秒(ms)的周期中执行。对于规划周期或驾驶周期中的每一个,将基于规划和控制数据发出一个或多个控制命令。即,对于每100ms,规划模块305规划下一个路线段或路径段,例如,包括目标位置和ADV到达目标位置所需要的时间。可替代地,规划模块305还可规定具体的速度、方向和/或转向角等。在一个实施方式中,规划模块305为下一个预定时段(诸如,5秒)规划路线段或路径段。对于每个规划周期,规划模块305基于在前一周期中规划的目标位置规划用于当前周期(例如,下一个5秒)的目标位置。控制模块306然后基于当前周期的规划和控制数据生成一个或多个控制命令(例如,油门、制动、转向控制命令)。
应注意,决策模块304和规划模块305可集成为集成模块。决策模块304/规划模块305可包括导航系统或导航系统的功能,以确定自动驾驶车辆的驾驶路径。例如,导航系统可确定用于影响自动驾驶车辆沿着以下路径移动的一系列速度和前进方向:所述路径在使自动驾驶车辆沿着通往最终目的地的基于车行道的路径前进的同时,基本上避免感知到的障碍物。目的地可根据经由用户接口系统113进行的用户输入来设定。导航系统可在自动驾驶车辆正在运行的同时动态地更新驾驶路径。导航系统可将来自GPS系统和一个或多个地图的数据合并,以确定用于自动驾驶车辆的驾驶路径。
图4是示出根据一个实施方式的路线安排模块307和规划模块305的示例的框图。图5A是示出根据一个实施方式的在车道上模式下操作的示例的处理流程图。图5B是示出根据一个实施方式的在开放空间模式下操作的示例的处理流程图。参考图4、图5A和图5B,根据一个实施方式,路线安排模块307包括但不限于确定模块401、包括第一搜索模块402的车道上模式模块I 308a和包括第二搜索模块403的开放空间模式模块I 309a。确定模块401配置为确定ADV将沿其驾驶的路线的起始点和终点。确定模块401还配置为确定起始点和终点中的每个是在具有车道边界的第一类型的第一驾驶区域内还是在作为没有车道边界的开放空间的第二类型的第二驾驶区域内。确定模块401还配置为基于确定起始点和终点中的每个是在第一驾驶区域内还是第二驾驶区域内,将路线划分为第一路线段和第二路线段。路线安排模块307和/或规划模块305根据起始点或终点是在第一驾驶区域内还是在第二驾驶区域内,在车道上模式或开放空间模式中的一种模式下操作,以规划用于第一路线段的第一轨迹,并且在车道上模式或开放空间模式中的一种模式下操作,以规划用于第二路线段的第二轨迹。
参考图4和图5A,在一个实施方式中,第一搜索模块402配置为基于A星搜索算法搜索第一路线段或第二路线段。参考线模块405配置为基于第一路线段或第二路线段生成参考线。网格模块406配置为基于参考线生成网格。轨迹模块407配置为基于网格确定一组候选轨迹,并从该组候选轨迹中选择轨迹以控制ADV根据该轨迹自动驾驶。
参考图4和图5B,在一个实施方式中,第二搜索模块403配置为基于改进的A星搜索算法搜索第一路线段或第二路线段。参考线模块408配置为基于第一路线段或第二路线段生成参考线。虚拟边界线模块409配置为基于ADV的宽度和参考线生成虚拟道路边界。网格模块410配置为基于虚拟道路边界内的参考线生成网格。轨迹模块411配置为基于网格确定一组候选轨迹,并从该组候选轨迹中选择轨迹以控制ADV根据该轨迹自动驾驶。
图6是示出根据一个实施方式的包括避障模块的规划模块305的示例的框图600。图7是示出根据一个实施方式的避障示例的处理流程图。参考图6和图7,根据一个实施方式,规划模块305可包括避障模块601。避障模块601可包括驻留时间模块602、估计到达时间(ETA)模块603和确定模块604。
感知模块302可配置为基于从安装在ADV上的多个传感器获得的传感器数据来检测ADV的受影响区域中的障碍物。驻留时间模块602配置为确定受影响区域中障碍物的预期驻留时间。ETA模块603配置为确定ADV等待障碍物离开受影响区域并随后沿着第一轨迹自动驾驶的第一估计到达时间,以及确定ADV沿着第二轨迹自动驾驶的第二估计到达时间。确定模块604配置为基于障碍物在受影响区域中的预期驻留时间来确定是规划第二轨迹还是等待障碍物离开受影响区域。确定模块604还配置为基于确定是规划第二轨迹还是等待障碍物离开受影响区域,规划用于ADV沿其驾驶的第二轨迹并控制ADV沿着第二轨迹自动驾驶,或者控制ADV等待障碍物离开受影响区域并随后沿着第一轨迹自动驾驶。
在一个实施方式中,ADV配置为在作为没有车道边界的开放空间的驾驶区域中以开放空间模式操作。在一个实施方式中,确定障碍物在第一区域中的驻留时间的概率,以及其中,基于驻留时间的概率来确定障碍物在受影响区域中的预期驻留时间。在一个实施方式中,确定第一估计到达时间与第二估计到达时间的比率,其中,确定是规划第二轨迹还是等待障碍物离开受影响区域还基于第一估计到达时间与第二估计到达时间的比率。
在一个实施方式中,响应于第一估计到达时间与第二估计到达时间的比率大于1,确定模块604配置为确定规划第二轨迹。在一个实施方式中,为了规划第二轨迹,第二搜索模块403配置为基于改进的A星搜索算法搜索另一第一路线段或另一第二路线段。参考线模块408配置为基于另一第一路线段或另一第二路线段生成另一参考线。虚拟边界线模块409配置为基于ADV的宽度和另一参考线生成另一虚拟道路边界。网格模块410配置为基于另一虚拟道路边界内的另一参考线生成另一网格。轨迹模块411配置为基于另一网格确定另一组候选轨迹,并且从另一组候选轨迹中选择第二轨迹以控制ADV根据该第二轨迹自动驾驶。
图8A至图8D示出了ADV 810在具有车道边界的第一驾驶区域801中驾驶和/或在作为没有车道边界的开放空间的第二驾驶区域802中驾驶的示例。ADV 810可能需要在具有车道边界的道路驾驶场景和没有车道边界的自由空间驾驶场景两者中驾驶。对于ADV 810重要的是,具有在道路驾驶场景中自动驾驶(例如,在具有指定车道边界的驾驶区域中驾驶)以及在自由空间场景中自动驾驶(例如,在作为没有车道边界的开放自由空间的驾驶区域中驾驶)的能力,以及甚至在这两个不同驾驶区域之间智能切换的能力。用于道路驾驶场景的常规运动规划方法可能需要拓扑图和特定的车道边界。因此,用于道路驾驶场景的常规运动规划方法难以处理复杂的场景,诸如具有向前和向后轨迹的组合的停车、三点转弯和避障。常规的自由空间路径规划方法在实时生成轨迹方面较慢,并且可能导致避障性能差。对于道路驾驶场景,已将DP和QP用于轨迹规划。然而,有时自动驾驶车辆可能不得不仅在没有车道边界的指定自由空间区域中从起始点驾驶到终点。对于自由空间场景,已使用Reeds-Shepp路径结合混合A星搜索算法进行路径规划以生成期望轨迹。不幸的是,这种自由空间路径规划方法太慢而不能实时生成轨迹,并且可能导致避障性能差。
当前,使用A星搜索算法寻找从起始点到终点的导航路径,然后基于该导航路径生成参考线,然后利用DP和/或QP执行实时路径规划。然而,这种搜索算法只能较好地用于具有拓扑图和特定道路边界的道路场景。这种搜索算法难以处理复杂的场景,诸如具有向前和向后轨迹的结合的停车、三点转弯以及避障等。已经努力增加这种搜索算法中的节点的尺寸以减少路径搜索的时间消耗。然而,这种方法有时可能导致不良结果,例如,即使已经搜索了所有节点,也可能找不到预期路径。当前的路径规划不会使轨迹平滑并且直接使用粗略的轨迹,车辆可能难以跟随该轨迹。
对于指定的起始点和终点,在当前的方法中,轨迹的路径规划仅执行一次,而不是规划每个周期,这可避免对于实时路径规划的大的时间消耗。但是当前的方法不足以进行避障,因为ADV并不改变轨迹以避免与障碍物的碰撞。
根据一些实施方式,本文中公开了一种用于轨迹规划的新方法,该轨迹规划适用于具有指定道路边界的城市道路和自由空间区域两者。该方法将A*搜索算法与混合A*搜索算法相结合,以根据不同类型的驾驶场景进行导航路径搜索。对于城市道路,可使用A*搜索算法来获得导航路径,以及对于开放自由空间,可使用混合A*搜索算法。可使用具有A星搜索算法和/或混合A星搜索算法的导航路径来生成用于使用DP或QP算法的实时轨迹规划的参考线。该轨迹规划方法可用于处理复杂的驾驶任务,诸如从城市道路驾驶到自由空间区域或从自由空间驾驶到城市道路。该方法还可在避障方面具有良好的性能。
如图8A至图8D中所示,根据ADV 810的起始点Ps和终点Pe中的每个是在具有车道边界的第一驾驶区域801内还是在作为没有车道边界的开放空间的第二驾驶区域802内,存在四种情况。图8A是示出起始点Ps 803a在第一驾驶区域801内而终点Pe 804a在第二驾驶区域802内的第一种情况的图800a。图8B是示出起始点Ps 803b在第二驾驶区域802内而终点Pe 804b在第一驾驶区域801内的第二种情况的图800b。图8C是示出起始点Ps 803c在第一驾驶区域801内而终点Pe 804c在第一驾驶区域801内的第三种情况的图800c。图8D是示出起始点Ps 803d在第二驾驶区域802内而终点Pe 804d在第二驾驶区域802内的第四种情况的图800d。
轨迹规划方法被提供用于解决这四种情况。在该方法中,有两个过程,第一过程和第二过程。在第一过程中,ADV 810配置成在车道上模式下操作。在第二过程中,ADV 810配置成在开放空间模式下操作。
如图8A中所示,在第一种情况下,起始点Ps 803a处于道路场景(例如,第一驾驶区域801)中,而终点Pe 804a处于自由空间(例如,第二驾驶区域802)中。具有起始点Ps 803a和终点Pe 804a的路线可由中间点分成第一路线段和第二路线段。在一个实施方式中,可确定到道路场景(例如,第一驾驶区域801)中的终点Pe的最近点Pe'805a(Xe',Ye',Phie')。最近点Pe'805a可以是将路线划分成两个路线段的中间点。可利用过程1执行从起始点Ps803a到最近点Pe'805a的第一路线段,以及利用过程2执行从最近点Pe'(Ps')805a到终点Pe804a的第二路线段的轨迹规划。在第一种情况下,ADV 810配置为在车道上模式下操作以规划第一路线段的第一轨迹,并且在开放空间模式下操作以规划第二路线段的第二轨迹。
如图8B中所示,在第二种情况下,起始点Ps 803b处于自由开放空间(例如,第二驾驶区域802)中,而终点Pe 804b处于道路场景(例如,第一驾驶区域801)中。具有起始点Ps803b和终点Pe 804b的路线可由中间点分成第一路线段和第二路线段。在一个实施方式中,可确定到道路场景(例如,第一驾驶区域801)中的起始点Ps的最近点Pe'805b(Xe',Ye',Phie')。最近点Ps'805b可以是将路线划分成两个路线段的中间点。可利用过程2执行从起始点Ps 803a到最近点Ps'(Pe')805b的第一路线段,以及利用过程1执行从最近点Ps'805b到终点Pe 804b的第二路线段的轨迹规划。在第二种情况下,ADV 810配置为在开放空间模式下操作以规划第一路线段的第一轨迹,并且在车道上模式下操作以规划第二路线段的第二轨迹。
如图8C中所示,在第三种情况下,起始点Ps 803c处于道路场景(例如,第一驾驶区域801)中,以及终点Pe 804c处于道路场景(例如,第一驾驶区域801)中。在这种情况下,不需要划分从起始点Ps 803c到终点Pe 804c的路线。在一个实施方式中,可利用过程1执行从起始点Ps 803c到终点Pe 804c的轨迹规划。在一个实施方式中,具有起始点Ps 803c和终点Pe 804c的路线可由任何中间点划分成第一路线段和第二路线段。ADV 810配置为在车道上模式下操作以规划用于第一路线段的第一轨迹,并且在车道上模式下操作以规划用于第二路线段的第二轨迹。
如图8D中所示,在第四种情况下,起始点Ps 803d处于自由开放空间(例如,第二驾驶区域802)中,以及终点Pe 804c处于自由开放空间(例如,第二驾驶区域802)中。在这种情况中,不需要划分从起始点Ps 803d到终点Pe 804d的路线。在一个实施方式中,可利用过程2执行从起始点Ps 803d到终点Pe 804d的轨迹规划。在一个实施方式中,具有起始点Ps803d和终点Pe 804d的路线可由任何中间点划分成第一路线段和第二路线段。ADV 810配置为在开放空间模式下操作以规划第一路线段的第一轨迹,并且在开放空间模式下操作以规划第二路线段的第二轨迹。
参考图5A和图8A至图8D,在第一过程中,ADV 810配置成在车道上模式下操作。在一个实施方式中,第一搜索模块402配置为基于A星搜索算法搜索第一路线段或第二路线段的路线。该路线是从起始点到终点的导航路线。A星(A*)搜索算法是信息搜索算法。从图的起始节点开始,A星旨在找到具有最小成本(最小行进距离、最短时间等)的到目的地节点的路线或路径。A星搜索通过维护始于起始节点的路径树并一次扩展这些路径的一条边直到满足其终止标准来实现此目的。在其主循环的每次迭代时,A星基于路径的成本和将路径一直扩展到目标节点所需的成本估计来确定要扩展其路径中的哪一个。具体地,A星选择使以下最小化的路径
f(n)=g(n)+h(n)
其中,n是路径上的下一个节点,g(n)是从起始节点到第n节点的路径的成本,以及h(n)是估计从n到目标节点的最短路径的成本的启发式函数。A星搜索在它选择扩展的路径是从开始节点到目标节点的路径时或者如果没有适合扩展的路径时终止。启发式函数是针对特定问题的。
在第一过程中,例如通过第一搜索模块402,使用A星搜索算法来搜索第一路线段或第二路线段的路线。该路线可被称为路线1。可例如由参考线模块405基于路线1生成参考线,并且该参考线可被称为参考线1。然后,可由网格模块406根据参考线1生成网格。可由轨迹模块407创建基于多项式曲线的一系列候选轨迹。然后,轨迹模块407还可配置成使用动态规划算法从候选轨迹获得预期轨迹。然后,控制模块306可配置为控制ADV 810遵循所生成的轨迹并移动到终点Pe(例如,804a、804b、804c、804d)。
参考图5B和图8A至图8D,在第二过程中,ADV 810配置成在开放空间模式下操作。在一个实施方式中,第二搜索模块403配置为基于改进的A星或混合A星搜索算法来搜索用于第一路线段或第二路线段的路线。改进的A星或混合A星搜索算法是应用于ADV的3D运动状态空间的A星搜索算法的变型,但是具有在A星的离散搜索节点中捕获连续状态数据的改进的状态更新规则。正如在A星搜索算法中一样,搜索空间(x,y,θ)被离散,但是与仅允许访问单元中心的传统A星不同,改进的或混合状态A星搜索算法将每个网格单元与车辆的连续3D状态相关联。改进的或混合状态的A星搜索算法使用ADV的运动学模型。例如,可在改进的或混合状态A星搜索算法中模拟包括最大左转向、最大右转向和向前的三个角度。对于另一示例,在改进的或混合状态A星搜索算法中可考虑ADV的尺寸(长度、宽度或高度)。从改进的或混合状态A星搜索算法得到的路线或路径是可驾驶的,而不是如在A星搜索算法的情况下是分段线性的。
在第二过程中,ADV 810在开放空间模式下操作。在第二过程中有6个主要操作(操作1~操作6),并且操作7是可选的。下面描述每个操作。
操作1:改进的A星或混合A星搜索算法例如由第二搜索模块403用于搜索第一路线段或第二路线段的路线。如图9A中所示,混合A星或改进的A星可用于在指定的自由空间区域802(例如,第二驾驶区域)中搜索从Ps'805a到Pe 804a的路线路径,该指定的自由空间区域802可被称为感兴趣的自由空间区域。该路线可被称为路线2。路线2可包括从Ps'805a到P1 806a的向前运动和从P1 806a到Pe 804a的向后运动。在自由空间区域802中可能存在两个障碍物(例如,807、808)。
操作2:可基于路线2(例如,由参考线模块408)生成参考线,并且可基于路线2将该参考线称为参考线2。
操作3:可根据ADV的宽度和在操作2处生成参考线2来创建虚拟道路边界(感兴趣的样本区域或ROI)。在一个实施方式中,虚拟边界线模块409配置为基于ADV的宽度和参考线2生成虚拟道路边界。
例如,
感兴趣的样本区域:{-(1+C)W/2,(1+C)W/2}。W是ADV的宽度,以及C是横向扩张比,它是大于0的实数。
如图9A中所示,可由虚拟边界线模块409为开放空间802中的ADV 810生成虚拟道路边界901。
操作4:可由网格模块410根据感兴趣的样本区域中的参考线2生成网格。如图9A中所示,可由网格模块410在开放空间802中生成网格902。基于相对于ADV的相对位置和/或在相应ROI内识别出的一个或多个障碍物,使用预定成本函数将每个网格单元与成本相关联或分配成本。
操作5:可由轨迹模块411创建基于二次多项式曲线的一系列候选轨迹。轨迹模块411还配置成使用动态规划算法从候选轨迹中获得预期轨迹。如图9B中所示,包括从起始点903到终点904的向前运动和向后运动的轨迹908可由轨迹模块411在开放空间802中生成。
操作6:控制模块306配置为控制ADV 810遵循所生成的轨迹908并移动到终点Pe(例如,804a、804b、804c、804d、904)。
操作7:确定模块604(如图6和图7中所示)配置为作出ADV 810是应在当前位置等待还是返回操作1至6并重新规划轨迹的决策。下面将详细描述避障的这种操作的细节。
图10是示出ADV 810遇到阻挡ADV的运动的障碍物807的示例的图1000。对于开放空间驾驶区域(例如,802)中的指定起始点(例如,Ps'903)和终点(例如,Pe 904),对于轨迹的当前路径规划仅执行一次,而不是规划每个周期,这可避免用于实时路径规划的大量时间消耗的问题。但是当前路径规划不足以进行避障,因为ADV 810不会改变轨迹以避免与障碍物(例如,车辆、自行车、行人或动物)的碰撞。本文中公开了一种新的避障方法。根据一个实施方式,该过程包括:确定障碍物(例如,车辆、自行车、行人或动物)在ADV的受影响区域中的驻留时间的概率;计算动态障碍物在受影响区域中的预期驻留时间;以及当ADV遇到阻挡ADV运动的障碍物时,作出ADV应等待还是应重新规划的决策。通过该方法,可解决避障问题。ADV可规划最佳路径以避免障碍物并时间有效地到达终点。
参考图10,可例如通过执行如上所述的操作1至5来为ADV 810规划沿其驾驶的第一轨迹908。ADV 810可遵循所生成的轨迹908移动至终点Pe 904。在该路线期间,ADV 810可基于从安装在ADV上的多个传感器获得的传感器数据来检测ADV 810的受影响区域1001中的障碍物807。例如,ADV 810的受影响区域1001可以是安装在ADV 810上的多个传感器可感测的区域。例如,ADV 810的受影响区域1001可以是影响ADV 810沿着ADV正在驾驶的轨迹908的运动的区域。受影响区域1001可以是矩形、梯形、三角形、圆形的形状或任何其它形状。例如,受影响区域1001可具有5m×10m、10m×20m等的尺寸。
当ADV 810配置为规划第一路线时,障碍物807可不阻挡ADV810沿轨迹908的运动。然而,障碍物807可能是动态障碍物,诸如车辆、行人或动物。障碍物807可能朝向轨迹908移动,如图10中所示,并且阻挡ADV 810沿轨迹908的运动。
图11是示出受影响区域中的动态障碍物驻留时间的概率密度函数的图1100。所示的概率密度函数(也称为概率密度图或曲线)是基于一个或多个参数的集合来具体配置的,所述一个或多个参数的集合描述或表示特定的驾驶场景(例如,停车场、交叉路口、以及区域的形状和/或尺寸)和障碍物(例如,车辆、自行车、行人)的类型及其行为等。如图11中所示,X轴表示障碍物在受影响区域1001(例如,感兴趣区域或ROI)中停留的时间或预测时间,而Y轴表示障碍物在受影响区域1001中停留的概率密度。图11示出障碍物随时间变化的概率密度,在该时间内障碍物停留在受影响区域内。在概率理论中,概率密度函数(PDF)或连续随机变量的密度是这样的函数,其在样本空间(随机变量所取的一组可能值)中的任何给定样本(或点)处的值可被解释为提供随机变量的值将等于该样本的相对可能性。在更精确的意义上,PDF用于指定随机变量落入特定值范围内的概率。该概率由该变量的PDF在X轴上的那个范围上的积分给出。即,它是基于密度函数下但在水平轴上方以及该范围内的最小值和最大值之间的面积(例如,在一个时间段内(例如,从零到特定时间),该曲线与X轴和Y轴之间的面积)来确定的。概率密度函数在任何地方都是非负的,并且它在整个空间上的积分等于1。
参考图7、图10和图11,在一个实施方式中,可确定障碍物807在受影响区域1001中的预期驻留时间。可假定动态障碍物在ADV的受影响区域中的驻留时间遵循如下的概率密度函数:
f(x)=λe-λx,
其中,λ是与动态障碍物(例如,移动障碍物)相关联的驻留时间概率密度函数的参数。λ的值可通过真实世界中的历史驾驶数据来估计,该历史驾驶数据可根据时间点的特定驾驶场景来确定或从预先配置的一组λ参数中选择。在相同或相似的驾驶场景下的平均或平均的驻留时间可表示为1/λ。可基于从在相同或类似环境下驾驶的各种车辆收集的大量先前驾驶统计数据来确定λ参数。λ参数将确定概率密度曲线的形状和尺寸,其中,图11示出了特定λ的概率密度。
根据一个实施方式,可通过在从开始时间=0到预期驻留时间的时间范围内对上述概率密度函数积分来计算在0~Tw范围内的驻留时间的概率。驻留时间的概率可由下式确定:
P(0<x<Tw)=1-e-λTw
其中,Tw是动态障碍物的预期驻留时间。
在一个实施方式中,可接受驻留时间的概率大于预定概率阈值,诸如P=0.8或80%。动态障碍物807在受影响区域1001中的预期驻留时间可基于驻留时间的概率来计算。在一个实施方式中,驻留时间模块602配置为确定障碍物807在受影响区域1001中的预期驻留时间。在一个实施方式中,如果使用预定的或可接受的概率(例如,80%),给定在时间点确定或选择的λ参数,则可使用上述概率密度函数或概率密度曲线来计算预期驻留时间Tw。在一个实施方式中,可基于特定的驾驶场景,经由对先前由ADV配置和维持的一组λ参数的查找操作来动态地计算或确定λ参数。例如,可基于受影响的区域或ROI(诸如例如停车场、交叉路口等)来确定λ参数。此外,可基于感兴趣的障碍物的类型来确定λ参数。如果障碍物是车辆、自行车、行人或宠物,则λ参数可以是不同的。λ参数可基于障碍物的行为而不同。例如,如果障碍物是快速移动或缓慢移动、前进方向、过去的移动轨迹或预测的轨迹,则λ参数可以是不同的。
如果障碍物807是可自身移动的动态障碍物,诸如车辆、自行车、行人、猫或狗,则动态障碍物807在受影响区域1001中的预期驻留时间可计算为:
如果障碍物807是自身不能移动的静态障碍物,则预期驻留时间是:
Tw=∞
在一个实施方式中,例如可由ETA模块603确定ADV 810等待障碍物807离开受影响区域1001并随后沿第一轨迹908自动驾驶的第一估计到达时间T1。可由ETA模块603确定ADV810进行重新规划以及沿第二轨迹1002自动驾驶的第二估计到达时间T2。
T1=T1m+T1w=L1/Ve+Tw,
T2=T2m=L2/Ve,
其中,T1和T2分别是到达或抵达当前轨迹908的终点的第一估计到达时间和重新规划第二轨迹1002的第二估计到达时间。T1m表示ADV 807在不等待的情况下到达当前轨迹908的终点所花费的时间。如果当前轨迹908被障碍物807阻挡,则如果ADV 807决定沿着当前轨迹908移动,则T1W表示ADV 807必须进行等待的等待时间。T2m表示ADV 807到达第二轨迹1002的终点所花费的时间。Ve是ADV 807在沿各个轨迹行进时所规划的平均速度。L1和L2分别表示轨迹908和轨迹1002的轨迹长度。
在一个实施方式中,第一估计到达时间T1与第二估计到达时间T2的比率可例如由确定模块604确定。确定模块604可配置为基于第一估计到达时间T1与第二估计到达时间T2的比率,确定是沿着第二轨迹1002移动还是通过等待障碍物807离开受影响区域1001而沿着第一轨迹908移动。
R=T1/T2=(L1/Ve+Tw)/(L2/Ve)
根据一个实施方式,如果比率R大于预定阈值,诸如例如R>1(例如,第二估计到达时间T2短于第一估计到达时间T1),则确定模块604可确定进行重新规划并返回操作1至7。确定模块604可配置为规划ADV 810沿其驾驶的第二轨迹1002,并控制ADV 810沿着第二轨迹1002自动驾驶。
当R不大于预定阈值时,诸如例如R<=1(例如,第一估计到达时间T1短于第二估计到达时间T2),确定模块604可确定继续等待障碍物807离开受影响区域1001并随后沿着第一轨迹908自动驾驶。
在一个实施方式中,在第一驾驶区域(例如,801)中以车道上模式操作的ADV可配置为响应于检测到ADV将在第二驾驶区域(例如,802)中驾驶而自动地切换到开放空间模式。例如,返回参考图8A,当ADV 810到达点805a时,感知模块302可检测到ADV 810将在第二驾驶区域(例如,802)中驾驶。作为响应,路线安排模块307和规划模块305可配置成自动地从第一过程之后的车道上模式下的操作切换到第二过程之后的开放空间模式下的操作。
图12是示出根据一个实施方式的用于ADV以车道上模式或开放空间模式中的一个模式操作的过程的示例的流程图。过程1200可由可包括软件、硬件或其组合的处理逻辑来执行。例如,过程1200可由路线安排模块307和规划模块305执行。参考图12,在操作1201中,处理逻辑确定ADV将沿其驾驶的路线的起始点和终点。在操作1202中,处理逻辑确定起始点和终点中的每个是在具有车道边界的第一类型的第一驾驶区域内还是在作为没有车道边界的开放空间的第二类型的第二驾驶区域内。在操作1203中,处理逻辑基于确定起始点和终点中的每个是在第一驾驶区域内还是第二驾驶区域内,将路线划分为第一路线段和第二路线段。在操作1204中,处理逻辑根据起始点或终点是在第一驾驶区域还是第二驾驶区域内而在车道上模式或开放空间模式中的一种模式下操作以规划用于第一路线段的第一轨迹,并且在车道上模式或开放空间模式中的一种模式下操作以规划用于第二路线段的第二轨迹。
图13是示出根据一个实施方式的用于ADV以开放空间模式操作的过程的示例的流程图。过程1300可由可包括软件、硬件或其组合的处理逻辑来执行。例如,过程1300可由路线安排模块307和规划模块305执行。参考图13,在操作1301中,处理逻辑基于改进的A星搜索算法搜索第一路线段或第二路线段。在操作1302中,处理逻辑基于第一路线段或第二路线段生成参考线。在操作1303中,处理逻辑基于ADV的宽度和参考线生成虚拟道路边界。在操作1304中,处理逻辑在虚拟道路边界内生成网格。在操作1305中,处理逻辑基于网格确定一组候选轨迹的。在操作1306中,处理逻辑从该组候选轨迹中选择轨迹以控制ADV根据该轨迹自动驾驶。
图14是示出根据一个实施方式的用于ADV避障的过程的示例的流程图。过程1400可由可包括软件、硬件或其组合的处理逻辑来执行。例如,过程1400可由感知模块302、路线安排模块307、规划模块305和控制模块306执行。参考图14,在操作1401中,处理逻辑规划ADV沿其驾驶的第一轨迹。在操作1402中,处理逻辑控制ADV沿着第一轨迹自动驾驶。在操作1403中,处理逻辑基于从安装在ADV上的多个传感器获得的传感器数据来检测ADV的受影响区域中的障碍物,同时控制ADV沿着第一轨迹自动驾驶。在操作1404中,处理逻辑确定障碍物在受影响区域中的预期驻留时间。在操作1405中,处理逻辑基于障碍物在受影响区域中的预期驻留时间来确定是规划第二轨迹还是等待障碍物离开受影响区域。在操作1406中,处理逻辑基于确定是规划第二轨迹还是等待障碍物离开受影响区域,规划ADV沿其驾驶的第二轨迹并控制ADV沿着第二轨迹自动驾驶,或控制ADV等待障碍物离开受影响区域并随后沿着第一轨迹自动驾驶。
应注意,如上文示出和描述的部件中的一些或全部可在软件、硬件或其组合中实施。例如,此类部件可实施为安装并存储在永久性存储装置中的软件,所述软件可通过处理器(未示出)加载在存储器中并在存储器中执行以实施贯穿本申请所述的过程或操作。可替代地,此类部件可实施为编程或嵌入到专用硬件(诸如,集成电路(例如,专用集成电路或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA))中的可执行代码,所述可执行代码可经由来自应用的相应驱动程序和/或操作系统来访问。此外,此类部件可实施为处理器或处理器内核中的特定硬件逻辑,作为可由软件部件通过一个或多个特定指令访问的指令集的一部分。
前述详细描述中的一些部分已经根据在计算机存储器内对数据位的运算的算法和符号表示而呈现。这些算法描述和表示是数据处理领域中的技术人员所使用的方式,以将他们的工作实质最有效地传达给本领域中的其他技术人员。本文中,算法通常被认为是导致所期望结果的自洽操作序列。这些操作是指需要对物理量进行物理操控的操作。
然而,应当牢记,所有这些和类似的术语均旨在与适当的物理量关联,并且仅仅是应用于这些量的方便标记。除非在以上讨论中以其它方式明确地指出,否则应当了解,在整个说明书中,利用术语(诸如所附权利要求书中所阐述的术语)进行的讨论是指计算机系统或类似电子计算装置的动作和处理,所述计算机系统或电子计算装置操控计算机系统的寄存器和存储器内的表示为物理(电子)量的数据,并将所述数据变换成计算机系统存储器或寄存器或者其它此类信息存储装置、传输或显示装置内类似地表示为物理量的其它数据。
本公开的实施方式还涉及用于执行本文中的操作的设备。这种计算机程序存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机构。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存存储器装置)。
前述附图中所描绘的过程或方法可由处理逻辑来执行,所述处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合。尽管所述过程或方法在上文是依据一些顺序操作来描述的,但是应当了解,所述操作中的一些可按不同的顺序执行。此外,一些操作可并行地执行而不是顺序地执行。
本公开的实施方式并未参考任何特定的编程语言进行描述。应认识到,可使用多种编程语言来实施如本文描述的本公开的实施方式的教导。
在以上的说明书中,已经参考本公开的具体示例性实施方式对本公开的实施方式进行了描述。将显而易见的是,在不脱离所附权利要求书中阐述的本公开的更宽泛精神和范围的情况下,可对本发明作出各种修改。因此,应当在说明性意义而不是限制性意义上来理解本说明书和附图。
- 上一篇:一种医用注射器针头装配设备
- 下一篇:自主矿车操作