实时控制自动驾驶车辆的系统和方法与流程
2021-02-03 15:02:38|290|起点商标网
[0001]
本申请一般涉及信号通信,更具体地,涉及根据实时命令控制自动驾驶车辆的系统和方法。
背景技术:
[0002]
随着人工智能(ai)等尖端技术的发展,自动驾驶汽车具有多种应用前景,例如运输服务。对于自动驾驶车辆系统,需要保证系统内信号的实时传输。在一些情况下,如果一个或以上车辆控制命令(例如,刹车、变换车道)不能及时发送到车辆控制部件(例如,制动器),这可能会对车辆用户或车辆周围的人造成致命的安全问题。因此,期望开发根据实时车辆控制命令控制自动驾驶车辆的系统和方法。
技术实现要素:
[0003]
在本申请的一方面,提供了一种系统。所述系统可以包括至少一个存储设备,其包括至少一组指令集,以及与所述至少一个存储设备通信的运算控制单元、实时传输单元和车辆控制单元,能够当执行所述至少一组指令集。其中,所述运算控制单元包括多核芯处理器,所述多核芯处理器中的至少一个专用处理核芯用于处理一个或以上实时车辆控制任务,以及所述至少一个专用处理核芯用于接收来自传感系统的实时传感数据以生成一个或以上实时车辆控制命令;所述实时传输单元用于实时向所述车辆控制单元发送所述一个或以上实时车辆控制命令;以及所述车辆控制单元用于接收和执行所述一个或以上由所述运算控制单元生成的实时车辆控制命令,并相应地实时控制所述车辆。
[0004]
在一些实施例中,所述实时传感数据包括来自激光雷达、雷达、相机和定位系统中的至少一个的信号。
[0005]
在一些实施例中,所述运算控制单元用于获取一个或以上任务,并将所述一个或以上任务分类为实时车辆控制任务和非实时车辆控制任务。
[0006]
在一些实施例中,所述运算控制单元由包含至少一个内核的实时linux系统操作,所述至少一个内核用于将所述实时车辆控制任务调度到所述至少一个专用处理核芯来生成所述实时车辆控制命令。
[0007]
在一些实施例中,所述实时传输单元独立于所述运算控制单元进行操作。
[0008]
在一些实施例中,当所述运算控制单元宕机或无法反应时,所述实时传输单元用于控制所述车辆。
[0009]
在一些实施例中,所述实时车辆控制命令包括加速、减速、转弯和变换车道中的至少一个。
[0010]
在一些实施例中,所述实时传感数据被实时更新,所述运算控制单元基于所述实时更新的传感数据生成更新的实时车辆控制命令,所述更新的实时车辆控制命令通过所述实时传输单元传输给所述车辆控制单元,所述实时车辆控制命令和即时更新实时车辆控制命令之间存在时间间隔,所述时间间隔可以利用间隔阈值进行度量,所述系统还包括存储
在所述存储设备中的伴随指令,以指示所述系统:确定所述时间间隔是否在所述间隔阈值内;如果所述时间间隔小于或等于所述间隔阈值,通过所述实时传输单元将所述更新的实时车辆控制指令发送给所述车辆控制单元以控制车辆;如果所述时间间隔大于所述间隔阈值,确定所述时间间隔和间隔阈值的时间差值是否在时间限制内;如果所述时间差值大于所述时间限制,所述实时传输单元生成用于直接控制车辆减速的实时车辆控制命令;以及如果所述时间差值小于或等于所述时间限制,所述实时传输单元重复或维持所述实时车辆控制命令。
[0011]
在一些实施例中,所述系统向所述车辆的用户生成警示信号。
[0012]
在本申请的一个方面,提供了一种方法。所述方法包括以下一个或以上操作。至少一个处理器可以通过运算控制单元接收和处理来自传感系统的实时传感数据。在处理所述实时传感数据期间,所述至少一个处理器可以通过运算控制单元获得一个或以上的任务。所述至少一个处理器可以通过运算控制单元将所述一个或以上任务分类为实时车辆控制任务和非实时车辆控制任务。所述至少一个处理器可以将所述实时车辆控制任务发送到所述运算控制单元的至少一个专用处理核芯以处理所述实时车辆控制任务并生成一个或以上实时车辆控制命令。
[0013]
在本申请的一个方面,提供了一种非暂时性计算机可读介质。所述非暂时性计算机可读介质包括可执行指令以引发至少一个处理器实施一种方法。所述方法包括以下一个或以上操作。至少一个处理器可以通过运算控制单元接收和处理来自传感系统的实时传感数据。在处理所述实时传感数据期间,所述至少一个处理器可以通过运算控制单元获得一个或以上的任务。所述至少一个处理器可以通过运算控制单元将所述一个或以上任务分类为实时车辆控制任务和非实时车辆控制任务。所述至少一个处理器可以将所述实时车辆控制任务发送到所述运算控制单元的至少一个专用处理核芯以处理所述实时车辆控制任务并生成一个或以上实时车辆控制命令。
[0014]
本申请的一部分附加特性可以在下面的描述中进行说明。通过对以下描述和相应附图的研究或者对实施例的生产或操作的了解,本申请的一部分附加特性对于本领域技术人员是明显的。本申请的特征可以通过对以下描述的具体实施例的各种方面的方法、手段和组合的实践或使用得以实现和达到。
附图说明
[0015]
本申请将通过示例性实施例进行进一步描述。这些示例性实施例将通过附图进行详细描述。附图未按比例绘制。这些实施例是非限制性的示例性实施例,在这些实施例中,各图中相同的编号表示相似的结构,其中:
[0016]
图1是根据本申请一些实施例所示的示例性自动驾驶车辆服务系统的示意图;
[0017]
图2是根据本申请一些实施例所示的示例性自动驾驶车辆的示意图;
[0018]
图3是根据本申请一些实施例所示的计算设备的示例性组件的示意图;
[0019]
图4是根据本申请一些实施例所示的用于操作自动驾驶车辆的系统的简化示意图;
[0020]
图5是根据本申请一些实施例所示的运算控制单元的示例性组件的框图;
[0021]
图6是根据本申请一些实施例所示的图5所示的示例性组件之间的工作流的示意
图;
[0022]
图7是根据本申请一些实施例所示的用于实时控制自动驾驶车辆的示例性过程的流程图;以及
[0023]
图8是根据本申请一些实施例所示的基于间隔阈值和时间限制并利用更新的实时传感数据实时控制自动驾驶车辆的示例性过程的流程图。
具体实施方式
[0024]
以下描述是为了使本领域的普通技术人员能够实施和利用本申请,并且该描述是在特定的应用场景及其要求的环境下提供的。对于本领域的普通技术人员来讲,显然可以对所公开的实施例作出各种改变,并且在不偏离本申请的原则和范围的情况下,本申请中所定义的普遍原则可以适用于其他实施例和应用场景。因此,本申请并不限于所描述的实施例,而应该被给予与权利要求一致的最广泛的范围。
[0025]
这里使用的术语仅用于描述特定的示例实施例,而不是限制性的。如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可以包括复数。应该被理解的是,本申请中所使用的术语“包括”与“包括”仅提示已明确标识的特征、整数、步骤、操作、元素和/或部件,而不排除可以存在和添加其他一个或以上特征、整数、步骤、操作、元素、部件和/或其组合。
[0026]
根据以下对附图的描述,本申请的这些和其他的特征、特点以及相关结构元件的功能和操作方法,以及部件组合和制造经济性,可以变得更加显而易见,这些附图都构成本申请说明书的一部分。然而,应当理解的是,附图仅仅是为了说明和描述的目的,并不旨在限制本申请的范围。应当理解的是,附图并不是按比例绘制的。
[0027]
本申请中使用了流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,流程图中的操作可以不按顺序执行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将一个或以上其他操作添加到这些流程图中。也可以从流程图中删除一个或以上操作。
[0028]
此外,虽然本申请中公开的系统和方法主要涉及操作自动驾驶车辆,但应该理解,这仅是一个示例性实施例。本申请的系统或方法可以应用于任何其他种类的自动控制系统。例如,本申请的系统和方法还可应用于包括陆地、海洋、航空、太空等或其任意组合的不同运输系统。所述运输系统的无人驾驶车辆可以包括出租车、私家车、顺风车、公交车、火车、动车、高铁、地铁、船舶、飞机、飞船、热气球、无人驾驶的车辆等或其任意组合。
[0029]
本申请的各实施例可以适用于自动驾驶车辆,所述自动驾驶车辆包括自动驾驶系统。所述自动驾驶系统可以用于控制车辆的自动驾驶。自动驾驶车辆的运算控制单元(acu)可以接收和处理来自车辆的传感系统的传感数据。在处理所述实时传感数据期间,所述运算控制单元可以获得一个或以上的任务。所述运算控制单元可以将所述一个或以上任务分类为实时车辆控制任务和非实时车辆控制任务。为了处理所述实时车辆控制任务,所述运算控制单元的至少一个专用处理核芯用于处理实时车辆控制任务以生成一个或以上实时车辆控制指令。所述一个或以上实时车辆控制指令包括但不限于加速、减速、转弯和变换车道,类似地,或其结合。所述一个或以上实时车辆控制指令可以通过实时传输单元即时地发送到车辆的车辆控制单元。实时传输单元可以聚焦于运算控制单元与车辆控制单元之间的
进程间通信(ipc),以减少运算控制单元与车辆控制单元之间信号传输的时延。
[0030]
图1是根据本申请的一些实施例所示的示例性自动驾驶车辆服务系统的示意图。在一些实施例中,自动驾驶车辆服务系统100可以是物联网(iot)平台、包括服务器110、存储设备120、网络130、自动驾驶车辆140。服务器110还可以包括处理设备112。
[0031]
在一些实施例中,服务器110可以是单个服务器,也可以是服务器组。所述服务器组可以是集中式的,也可以是分布式的(例如,服务器110可以是分布式的系统)。在一些实施例中,服务器110可以是本地的,也可以是远程的。例如,服务器110可以经由网络130访问存储在自动驾驶车辆140和/或存储设备120中的信息和/或数据。又例如,服务器110可以直接连接到自动驾驶车辆140和/或存储设备120以访问存储的信息和/或数据。在一些实施例中,服务器110可以在云平台上实施。仅作为示例,云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。
[0032]
在一些实施例中,服务器110可包括处理设备112。处理设备112可以处理来自自动驾驶车辆140的信息和/或数据。例如,处理设备112可以从用户(例如,司机或乘客)接收服务请求。在一些实施例中,服务请求可以包括上车位置和/或下车位置。处理设备112可以提供从上车位置到下车位置的一个或以上路线。处理设备112可以经由网络130将一个或以上路线发送到自动驾驶车辆140。在一些实施例中,服务请求还可以包括来自用户的娱乐需求(例如,音乐、广播、电影、阅读等),处理设备112可以提供资源以满足用户的娱乐需求。在一些实施例中,服务请求可以包括用于操作自动驾驶车辆140的一个或以上命令,例如,停车、减速、加速、控制车内温度等,响应于所述一个或以上的命令,处理设备112可以通过内置的自动驾驶系统远程控制自动驾驶车辆140。在一些实施例中,处理设备112可以包括一个或以上处理引擎(例如,单核芯处理器或多核芯处理器)。仅作为范例,处理设备112可包括中央处理器(cpu)、特定应用集成电路(asic)、特定应用指令集处理器(asip)、图像处理器(gpu)、物理运算控制单元(ppu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑设备(pld)、控制器、微控制器单元、精简指令集计算机(risc)、微处理器等或其任意组合。
[0033]
存储设备120可以存储数据和/或指令。在一些实施例中,存储设备120可以存储从自动驾驶车辆140获得的数据。在一些实施例中,存储设备120可以存储供服务器110用来执行或使用来完成本申请中描述的示例性方法的数据和/或指令。在一些实施例中,存储设备120可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(rom)等或其任意组合。示例性大容量存储器可以包括磁盘、光盘、固态驱动器等。示例性可移动存储器可以包括闪存驱动器、软盘、光盘、存储卡、zip磁盘、磁带等。示例性易失性读写存储器可以包括随机存取存储器(ram)。示例性ram可包括动态随机存取存储器(dram)、双倍数据速率同步动态随机存取存储器(ddr sdram)、静态随机存取存储器(sram)、晶闸管随机存取存储器(t-ram)和零电容随机存取存储器(z-ram)等。示例性只读存储器可以包括掩模型只读存储器(mrom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、光盘只读存储器(cd-rom)和数字多功能磁盘只读存储器等。在一些实施例中,所述存储器可在云平台上实现。仅作为示例,云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。
[0034]
在一些实施例中,存储设备120可以连接到网络130以与自动驾驶车辆服务系统
100的一个或以上组件(例如,服务器110、自动驾驶车辆140)通信。自动驾驶车辆服务系统100中的一个或以上组件可以经由网络130访问存储设备120中存储的数据或指令。在一些实施例中,存储设备120可以直接连接到自动驾驶车辆服务系统100(例如,服务器110、自动驾驶车辆140)中的一个或以上组件或与之通信。在一些实施例中,存储设备120可以是服务器110的一部分。
[0035]
网络130可以促进信息和/或数据的交换。在一些实施例中,自动驾驶车辆服务系统100中的一个或以上组件(例如,服务器110、存储设备120和自动驾驶车辆140)可以将信息和/或数据发送到自动驾驶车辆中的其他组件。服务系统100通过网络130。例如,服务器110可以经由网络130获取车辆周围的车辆信息和/或环境信息。在一些实施例中,网络130可以为任意形式的有线或无线网络,或其任意组合。仅作为示例,网络130可以包括缆线网络、有线网络、光纤网络、远程通信网络、内部网络、互联网、局域网络(lan)、广域网络(wan)、无线局域网络(wlan)、城域网(man)、公共交换电话网络(pstn)、蓝牙网络、紫蜂网络、近场通讯(nfc)网络等或其任意组合。在一些实施例中,网络130可以包括一个或以上网络接入点。例如,网络130可以包括有线或无线网络接入点,例如基站和/或互联网交换点130-1、130-2、...,通过自动车辆服务系统100的一个或以上组件可以连接到网络130以交换数据和/或信息。
[0036]
在一些实施例中,自动驾驶车辆140可包括传统车辆的结构,例如,底盘、悬架、转向、制动、动力传动系统部件、发动机等。在一些实施例中,自动驾驶车辆140可以是具有不同自动驾驶级别的车辆,例如,level0(非自动驾驶,在level0,驾驶员执行所有的操作任务,如转向、制动、加速或减速等),level1(驾驶员辅助,在level1级别,车辆可以协助一些驾驶操作,但驾驶员仍然处理所有的加速、刹车和周围环境的监测等),level2(部分自动驾驶,在level2级别,车辆可以辅助转向或加速,并允许驾驶员摆脱一些驾驶任务,但驾驶员必须随时准备控制车辆,并仍然负责最安全关键的操作和所有的环境监测),level3(有条件的自动驾驶,在level3级别,车辆本身控制着对环境的所有监控,但驾驶员的注意力仍然是至关重要的,但可以摆脱刹车等“安全关键”操作,在安全条件下将驾驶任务留给车辆),level4(高度自动驾驶,在level4级别,车辆具有转向、制动、加速、监控车辆和道路以及响应事件、决定何时改变车道、转弯和使用信号的能力。然而,自动驾驶系统会在情况安全时首先通知驾驶员,然后驾驶员才会将车辆切换到自动驾驶模式),或者level5(完全自动驾驶,在level5级别,自动驾驶完全不需要人类的注意,甚至不需要动力踏板、刹车或方向盘,因为自动驾驶系统控制着所有关键任务,监控环境,识别交通堵塞等驾驶条件)。在一些实施例中,自动驾驶车辆140配置有一个或以上传感器以检测车辆的内部信息和/或外部信息。例如,外部信息可以包括车辆周围的环境信息,例如,天气信息、道路状况信息、交通信号灯信息、障碍物信息等。内部信息可以包括能量信息、车辆姿势信息、速度信息、用户交互信息等。在一些实施例中,自动驾驶车辆140配置有计算设备,用于根据内部信息和/或外部信息实时或近实时地控制自动驾驶车辆。如这里所使用的,计算设备可以包括运算控制单元(arithmetic and control unit,acu)。在一些实施例中,运算控制单元可以配置有自动驾驶系统以控制自动驾驶车辆。运算控制单元可以包括用于处理来自自动驾驶系统的一个或以上任务的多核处理器。在一些实施例中,运算控制单元的至少一个专用处理核芯可以专用于处理一个或以上实时车辆控制任务以生成实时车辆控制命令。其他处理核芯可以用
于处理一个或以上非实时车辆控制任务以生成非实时车辆控制命令。在一些实施例中,可以将实时车辆控制命令和/或非实时车辆控制命令发送到车辆控制单元(vehicle controlling unit,vcu)以操作车辆。车辆控制单元包括自动驾驶车辆的一个或以上控制器,例如,一个或以上节气门控制器、一个或以上火花控制器、一个或以上制动控制器、一个或以上转向控制器、废气再循环(egr)控制器、废气门控制器等。
[0037]
在一些实施例中,自动驾驶车辆140可以经由网络130与自动驾驶车辆服务系统100的一个或以上组件(例如,服务器110,存储设备120等)通信。在一些实施例中,自动驾驶车辆140还可以与车辆自身周围的其他车辆(图1中未示出)通信。例如,第一车辆可以获得关于第二车辆的距离信息和/或速度信息。当第二车辆靠近第一车辆时(例如,两辆车之间的距离小于或等于距离阈值),第一车辆可以向第二车辆发送警示信息,以避免潜在的事故。
[0038]
图2是根据本申请的一些实施例所示的示例性自动驾驶车辆的示意图。如图2所示,自动驾驶车辆140可以是电动车辆、燃料电池车辆、混合动力车辆或传统的内燃机车辆。自动驾驶车辆140可包括车身210和至少一个车轮230。车身210可包括各种车身类型,例如运动车辆、轿跑车、轿车、皮卡车、旅行车、运动型多功能车(suv)、小型货车或改装旅行车。在一些实施例中,自动驾驶车辆140可包括一对前轮和一对后轮,如图2所示。在一些实施例中,自动驾驶车辆140可具有更多或更少的车轮或等效结构,使车辆140能够移动。自动驾驶车辆140可以被配置为全轮驱动(awd)、前轮驱动(fwr)或后轮驱动(rwd)。在一些实施例中,自动驾驶车辆140可以由驾驶员人工操作,远程控制和/或自动驾驶控制。
[0039]
结合图1所描述的,自动驾驶车辆140配置有自动驾驶系统220,用于控制自动驾驶车辆140。自动驾驶系统220可以由运算控制单元240实现。自动驾驶系统220用于自动控制车辆。在一些实施例中,自动驾驶系统220可以从车辆的一个或以上传感器获得数据和/或信息。在一些实施例中,自动驾驶系统220可以被划为三层,即感知层,规划层和控制层。自动驾驶系统220可以执行关于感知,规划和/或控制的一个或以上操作。例如,在感知层中,自动驾驶系统220可以基于传感数据执行环境感知和/或定位,例如天气检测、车内温度检测、车道检测、自由可行驶区域检测、行人检测、障碍物检测、交通标志检测等。又如在规划层中,自动驾驶系统220可根据环境感知和/或定位信息执行任务规划,行为规划和/或运动规划。作为另一示例,在控制层中,自动驾驶系统220可以根据感知层和规划层的结果生成一个或以上控制命令。具体地,自动驾驶系统220可以基于反馈控制和/或模型预测控制来生成一个或以上控制命令。关于感知层,规划层和控制层的实施例的更多描述可以参考论文“perception,planning,control,and coordination for autonomous vehicles."machines 5.1(2017):6”,其内容在此引入作为参考。
[0040]
在一些实施例中,自动驾驶车辆140可以包括一个或以上传感器以提供用于自动驾驶车辆的信息。一个或以上传感器可以检测关于自动驾驶车辆140的内部信息和/或外部信息。例如,外部信息可以包括车辆周围的环境信息,例如天气信息、道路状况信息、交通信号灯信息、障碍物信息等。内部信息可以包括能量信息、车辆姿势信息、速度信息、用户交互信息等。一个或以上传感器可包括但不限于激光雷达(lidar)、相机、雷达(radar)、gps(global positioning system)接收器、姿势角传感器、速度传感器、距离传感器等。应当理解,一个或以上传感器还可以包括各种类型的传感器,例如激光传感系统、红外传感系统、
声学传感系统、热传感系统等,或其任何组合。
[0041]
在一些实施例中,自动驾驶车辆140至少配置有定位系统。定位系统可以为自动驾驶车辆140提供导航信息。导航信息可以包括车辆的当前位置,车辆的目的地、速度、加速度、当前时间等,或其任何组合。该位置可以是坐标的形式,例如纬度坐标和经度坐标。定位系统可以包括但不限于罗盘导航系统(compass)、全球定位系统(gps)、北斗导航卫星系统、伽利略定位系统、准天顶卫星系统(qzss)等。
[0042]
图3是根据本申请的一些实施例所示的计算设备的示例性组件的示意图。在一些实施例中,图1中所示的服务器110和存储设备120,图2中所示的运算控制单元240可以在计算设备300上实现。例如,运算控制单元240可以在计算设备300上实现,并且被配置用于执行本申请中公开的运算控制单元240的功能。
[0043]
计算设备300可以是通用计算机或专用计算机,两者都可以用于实现自动车辆服务系统100或本申请中公开的自动驾驶系统220。计算设备300可用于实现如本文所述的自动驾驶车辆服务系统100或自动驾驶系统220的任何组件。例如,处理设备112可以在计算设备300上通过其硬件、软件程序、固件或其组合实现。又例如,运算控制单元240可以通过其硬件、软件程序、固件或其组合在计算设备300上实现。为了方便起见,图中仅示出了一台计算机,但是本申请描述的与检索服务有关的计算机功能可以在多个类似平台上以分布式方式实现,以分担处理负载。
[0044]
例如,计算设备300可以包括与网络相连接通信端口350,以实现数据通信。计算设备300还可以包括处理器320,其形式为一个或以上处理器或多核处理器,用于执行程序指令。示例性计算机平台可以包括内部通信总线310、程序存储和不同形式的数据存储,例如,存储设备370、以及只读存储器(rom)330、或随机存取存储器(ram)340、用于要由计算机处理和/或传输的各种数据文件。示例性的计算机平台也包括存储在rom330、ram 340和/或其他形式的非暂时性存储介质中的能够被处理器320执行的程序指令。本申请的方法和/或流程可以以程序指令的方式实现。计算设备300还包括输入/输出组件360,用来支持计算机和其他组件之间进行输入/输出。计算设备300也可以通过网络通信接收程序设计和数据。
[0045]
计算设备300可以包括与硬盘通讯的硬盘控制器、与小键盘/键盘通讯的小键盘/键盘控制器、与串行接口设备通讯的串行接口设备控制器、与并行接口设备通讯的并行接口控制器、与显示器通讯的显示器控制器等或其任意组合。
[0046]
仅仅为了说明,计算设备300只描述了一个中央处理单元和/或处理器。然而,需要注意的是,本申请中的计算设备300可以包括多个cpu和/或处理器,因此本申请中描述的由一个cpu和/或处理器实现的操作和/或方法也可以共同地或独立地由多个cpu和/或处理器实现。例如,如果在本申请中,计算设备300的cpu和/或处理器执行操作a和操作b,应该理解,操作a和操作b也可以由计算设备300中的两个不同的cpu和/或处理器联合或分开执行(例如,第一处理器执行操作a,第二处理器执行操作b,或者第一和第二处理器共同执行操作a和b)。
[0047]
图4是根据本申请的一些实施例所示的用于操作自动驾驶车辆的系统的简化示意图。如图4所示,自动驾驶车辆400可至少包括传感系统410、运算控制单元(acu)420、实时传输单元430和车辆控制单元(vcu)440。
[0048]
传感系统400可以包括一个或以上传感器以检测关于车辆的内部信息和/或外部
信息。例如,外部信息可以包括车辆周围的环境信息、例如天气信息、道路状况信息、交通信号灯信息、障碍物信息等。内部信息可以包括能量信息、车辆姿势信息、速度信息、用户交互信息等。一个或以上传感器可包括但不限于激光雷达(lidar)、相机、雷达(radar)、gps接收器,姿势角传感器、速度传感器、距离传感器等。传感系统410的传感数据可以经由一个或以上网络接口(例如,控制区域网络总线(can bus))发送到运算控制单元。
[0049]
运算控制单元420可以处理传感数据以便自动操作车辆。在一些实施例中,运算控制单元420可以实现用于自动操作车辆的自动驾驶系统(例如,自动驾驶系统240)。结合图2所述,自动驾驶系统可以分为三层,即感知层、规划层和控制层。自动驾驶系统可以执行关于感知、规划和/或控制的一个或以上操作。
[0050]
在一些实施例中,感知指的是自动驾驶系统收集信息并从环境中提取相关知识的能力。典型的感知层可以包括关于环境感知,定位等的一个或以上操作,或其任何组合。环境感知是指对环境的语义理解,例如障碍物的位置,道路标志/标记的检测等。例如,关于感知的一个或以上操作可以包括天气检测、车内温度检测、车道检测、自由驾驶区域检测、行人检测、障碍物检测、交通标志检测等,或其任何组合。在一些实施例中,定位是指确定车辆的姿势(位置和方向)并测量其自身相对于环境的运动。车辆可以通过基于卫星的导航系统和惯性导航系统进行定位。例如,基于卫星的导航系统,诸如gps和glonass,可以定期确定车辆的全球位置。又例如,惯性导航系统可以通过使用加速度计,陀螺仪和信号处理技术来估计车辆的姿态。在一些实施例中,关于定位的一个或以上操作可以包括车辆位置定位,车辆姿态估计等,或其任何组合。
[0051]
在一些实施例中,规划是指生成有期望的决定以实现车辆自动驾驶的过程,例如在避开障碍物的同时将车辆从起始位置带到目标位置。典型的规划层可以包括关于任务规划、行为规划、运动规划的一个或以上操作。在一些实施例中,任务规划也可以被称为路线规划,例如,规划从起始位置到目标位置的一条或以上路线。任务规划可以根据经典算法来实现,例如dijkstra算法或a*算法。在一些实施例中,行为规划也可以被称为决策制定。对于行为规划,可以做出一个或以上的决定,其确保车辆遵循规定的道路规则并以常规、安全的方式与其他对象(例如,其他车辆或行人)交互。例如,所述一个或以上的决定可以包括超车、通过交叉路口、加速、减速、转弯、变换车道等。在一些实施例中,运动规划可以指确定一系列动作以达到指定目标的过程,例如,避免与障碍物的碰撞。可以根据组合规划算法(combinatorial planning algorithm)或基于采样的规划算法(sampling-based planning algorithm)来实现运动规划。
[0052]
在一些实施例中,控制层可以包括关于运动控制的一个或以上操作。在一些实施例中,可以使用诸如反馈控制或模型预测控制的控制方案来实现车辆的控制。相应的一个或以上控制命令可以生成。一个或以上控制命令可以用于控制车辆控制单元执行相应的操作,例如超车、通过交叉路口、加速、减速、转弯、变换车道等。
[0053]
为了实时自动操作车辆,可以在运算控制单元420上实施实时操作系统,例如,实时linux(real time(rt)linux)系统。所述自动驾驶系统可以是基于rt linux系统的可编程系统。rt linux系统可以用于调度来自一个或以上系统层的一个或以上任务。具体地,rt linux系统的至少一个内核(kernel)可以获得来自自动驾驶系统的一个或以上系统层的一个或以上任务。至少一个内核可以将一个或以上任务分类为实时车辆控制任务和非实时车
辆控制任务。实时车辆控制任务可以被定义为需要在临界时限(例如,5ms、10ms、15ms、20ms等)内完成的硬实时任务。如果该硬实时任务未能完成,则可能导致自动驾驶系统发生故障或无法及时生成车辆实时控制指令进而导致车辆发生安全问题。当自动驾驶系统不能在临界时限内完成硬实时任务,该自动驾驶系统可能无法及时生成车辆实时控制指令,甚至宕机,进而导致车辆发生安全问题。非实时车辆控制任务可以被定义为允许超过临界时限完成的软实时任务。即使系统未能在临界时限内完成软实时任务,可能也并不会导致自动驾驶系统发生故障,不会对车辆的安全问题产生较大的影响。在这种情况下,自动驾驶系统仍可正常工作并不影响车辆的安全行驶。可以理解的是,所述临界时限可以根据不同的情形进行调整,比如增大所述临界时限或者减少所述临界时限。在一些实施例中,至少一个内核可以指定实时车辆控制任务为待处理的高优先级任务。因此,至少一个内核可以优先将实时车辆控制任务调度到运算控制单元420的至少一个专用处理核芯(例如,图6中所示的专用处理核芯)进一步处理。所述专用处理核芯可以处理实时车辆控制任务并生成实时车辆控制命令。与实时车辆控制任务相比,至少一个内核可以指定非实时车辆控制任务为待处理的低优先级任务。至少一个内核可以将非实时车辆控制任务缓存到运算控制单元420的其他处理核芯(例如,图6中所示的其他处理核芯)。所述其他处理核芯可以处理非实时车辆控制任务并生成非实时车辆控制命令。
[0054]
在一些实施例中,通过实时传输单元430向车辆控制单元440发送一个或以上实时车辆控制命令。实时传输单元430可以被配置用于实现运算控制单元420和车辆控制单元440之间的进程通信(inter-process communication,ipc)。实时传输单元430可以将一个或以上实时车辆控制命令发送到车辆控制单元440以实时地自动操作车辆。
[0055]
在一些实施例中,实时传输单元430可以被配置为与运算控制单元420和车辆控制单元440进行交互。实时传输单元430可以被认为是连接运算控制单元420和车辆控制单元440的中间层。在一些实施例中,实时传输单元430可以是独立于运算控制单元420和车辆控制单元440的单独单元。例如,实时传输单元430可以包括用于与运算控制单元420和车辆控制单元440交互的至少一个处理器。实时传输单元430可以实时地向车辆控制单元440发送实时车辆控制命令。
[0056]
在一些实施例中,当运算控制单元420发生宕机或者没有反应时,例如,遭受物理破坏或者程序错误导致运算控制单元420宕机,实时传输单元430可以代替运算控制单元420直接控制车辆。例如,实时传输单元430可以向车辆发送减速的实时控制命令,直到车辆停止。又例如,实时传输单元430可以发送警示信号(例如,音频信号、光信号、视频信号等)以提示用户去接管车辆,进行人工控制车辆。在一些实施例中,所述警示信号还可以用于提醒其他车辆注意闪避。这样,可以避免发生潜在的交通事故。
[0057]
在一些实施例中,在自动驾驶期间,传感数据可以被实时更新。运算控制单元420可以基于更新的传感数据生成更新的实时车辆控制命令。所述更新的实时车辆控制命令可以通过实时传输单元430发送到车辆控制单元440。当前的实时车辆控制指令和即时更新的车辆控制命令之间存在时间间隔。在一些实施例中,如果所述时间间隔小于或等于间隔阈值(例如,10ms、20ms、30ms),车辆控制单元440可以通过实时传输单元430即时接收到更新的车辆控制命令,并响应于所述车辆控制命令实现车辆的控制。在一些实施例中,如果所述时间间隔大于间隔阈值,运算控制单元420可以进一步确定所述时间间隔和间隔阈值的时
间差值,并判断所述时间差值是否在时间限制(例如,3ms、5ms、7ms)内。如果所述时间差值小于或等于所述时间限制,实时传输单元430可以向车辆控制单元440重复发送当前实时车辆控制指令。车辆控制单元440可以继续执行当前实时车辆控制命令以维持车辆的当前状态。如果所述时间差值大于所述时间限制,实时传输单元430可以生成直接命令车辆控制单元进行车辆减速的实时车辆控制指令,以减少安全风险。换句话说,在一些实施例中,如果实时传输单元430在间隔阈值内没有接收到更新的实时车辆控制命令,实时传输单元430可以直接生成控制命令以促使车辆控制单元进行车辆减速。一旦接收到减速的命令,车辆控制单元440可以通过制动控制器进行车辆减速。在一些实施例中,如果实时传输单元430在间隔阈值内没有接收到更新的实时车辆控制命令,实时传输单元430也可以生成警示信号来提示车辆用户(例如,司机或乘客)去接管车辆。用户可以取代自动驾驶并进行人工驾驶。在一些实施例中,所述警示信号可以用于提醒周围的车辆去躲避。
[0058]
车辆控制单元440可以包括自动驾驶车辆的一个或以上控制器,例如,一个或以上节气门控制器、一个或以上火花控制器、一个或以上制动控制器、一个或以上转向控制器、废气再循环(egr)控制器、废气门控制器等。车辆控制单元440可以被配置用于实现与行驶、转向和制动相关的一个或以上动作。例如,响应于指示变换车道的实时指令,转向控制器可以将转向角调节0.5度,并且制动控制器可以将制动液增加1.5bar。
[0059]
图5是根据本申请的一些实施例所示的运算控制单元的示例性组件的框图。在一些实施例中,运算控制单元420可以与计算机可读存储介质(例如,存储设备120、存储设备370、rom 320或者ram 330)进行通信,并执行所述存储介质中的指令来实施本公开中所披露的方法。在一些实施例中,运算控制单元420包括多核芯处理器。运算控制单元420包括任务获取子单元510、任务调度子单元520、实时任务处理子单元530和非实时任务处理子单元540。
[0060]
任务获取子单元510可以从自动驾驶车辆的自动驾驶系统的至少一个系统层中获取一个或以上任务。所述自动驾驶系统用于自动地操作车辆。在一些实施例中,自动驾驶系统可以分为感知层、规划层和控制层。运算控制单元可以处理每一系统层的一个或以上任务。例如,在感知层中,感知任务可以包括关于天气检测、车内温度检测、车道检测、自由驾驶区域检测、行人检测、障碍物检测、交通标志检测等的一个或以上任务,或者任何组合。又例如,在规划层中,规划任务可以包括关于任务规划,行为规划和/或运动规划的一个或以上任务。作为另一示例,在控制层中,控制任务可以包括关于运动控制的一个或以上任务,例如,反馈控制的一个或以上任务、模型预测控制的一个或以上任务。
[0061]
任务调度子单元520可以将一个或以上任务分类为实时车辆控制任务和非实时车辆控制任务。实时车辆控制任务可以被定义为需要在临界时限(例如,5ms、10ms、15ms、20ms等)内完成的硬实时任务。非实时车辆控制任务可以被定义为允许超过临界时限完成的软实时任务。任务调度子单元520可以根据预设的规则确定一个任务是否是实时车辆控制任务还是非实时车辆控制任务。例如,在预设的规则中可以设置临界时限为10ms。如果一个任务必须要求在10ms内完成,那么该任务被指定为实时车辆控制任务,例如,生成制动命令的任务。否则,该任务被指定为非实时车辆控制任务,例如,生成调节车内温度命令的任务。
[0062]
在一些实施例中,任务调度子单元520可以将实时车辆控制任务优先调度到实时任务处理子单元530以进一步处理。实时任务处理子单元530可以生成一个或以上实时车辆
控制命令。典型的实时车辆控制命令可以包括加速、减速、转弯、变化车道等。任务调度子单元520可以将非实时车辆控制任务调度到非实时任务处理子单元540以进一步处理。典型的非实时车辆控制命令可以包括但不限于调节车内温度、调节座椅位置、打开显示器、收听无线电等。
[0063]
在一些实施例中,实时任务处理子单元530可以包括多核芯处理器中的至少一个专用处理核芯。非实时任务处理子单元540可以包括多核芯处理器中的其他处理核芯。在一些实施例中,如果实时车辆控制任务和非实时车辆控制任务在排队等待同一个处理器处理,由于先进先出(fifo)机制的限制,实时车辆控制任务有可能无法及时处理。例如,如果任务队列中的实时车辆控制任务比非实时车辆控制任务靠后,那么处理器根据fifo机制会优先处理非实时车辆控制任务。因此,实时车辆控制任务可能无法得到及时处理。为了解决这个问题,指定至少一个专用的处理核心专门用于处理实时车辆控制任务,不包括非实时车辆控制任务,以确保实时车辆控制任务得到及时处理。
[0064]
应当注意的是,上述关于运算控制单元420的描述是为了说明而提供的,并不旨在限制本披露的范围。对于本领域的人员来说,可以在本披露的指导下进行各种变更和修改。然而,这些变更和修改并不超出本披露的保护范围。在某些实施例中,运算控制单元420可以包括一个或多个其他子单元。例如,运算控制单元420可以包含存储子单元,用于存储由运算控制单元420中的子单元生成的数据。在某些实施例中,任何两个子单元都可以组合为单个单元。
[0065]
图6是根据本申请的一些实施例所示的图5所示的示例性组件之间的工作流的示意图。在框610中,可以从自动驾驶车辆的传感系统(例如,传感系统410)获得传感数据。传感数据可以包括车辆的内部信息和/或外部信息。例如,外部信息可以包括车辆周围的环境信息,例如天气信息、道路状况信息、交通信号灯信息、障碍物信息等。内部信息可以包括能量信息、车辆姿势信息、速度信息、用户交互信息等。
[0066]
在框620中,可以将传感数据发送到在自动驾驶车辆的运算控制单元上实施的自动驾驶系统。结合图2或图4所述,自动驾驶系统可以分为三层,即感知层、规划层和控制层。关于自动驾驶系统的每一层的一个或以上操作可以包括要由运算控制单元的处理器处理的一个或以上任务。例如,在感知层中,感知任务可以包括关于天气检测、车内温度检测、车道检测、自由驾驶区域检测、行人检测、障碍物检测、交通标志检测等的一个或以上任务,或者任何组合。又例如,在规划层中,规划任务可包括关于任务规划,行为规划和/或运动规划的一个或以上任务。作为另一示例,在控制层中,控制任务可以包括关于运动控制的一个或以上任务,例如,反馈控制的一个或以上任务、模型预测控制的一个或以上任务。
[0067]
在一些实施例中,一个或以上任务形成待处理器处理的任务队列。但是,在任务队列中,可能需要根据先进先出(fifo)机制来处理一个或以上任务。换句话说,处理器需要优先处理队列前面的任务,相应地,优先处理完的任务可以首先离开队列。在一些实施例中,如果实时车辆控制任务不得不在任务队列中等待处理,则该实时车辆控制任务可能得不到及时处理,这可能导致自动驾驶系统出现安全隐患。在这种情况下,自动驾驶系统甚至可能发生故障或者退出自动驾驶。为了解决上述问题或类似问题,可以将一个或以上任务分类为实时车辆控制任务和/或非实时车辆控制任务。实时车辆控制任务和非实时车辆控制任务可以分别由单独的处理核芯处理。
[0068]
在一些实施例中,rt linux系统的rt-linux内核可用于将一个或以上任务分类为实时车辆控制任务和/或非实时车辆控制任务。rt-linux内核可以将实时车辆控制任务指定为待处理的高优先级任务,并将非实时车辆控制任务指定为待处理的低优先级任务。
[0069]
在一些实施例中,实时车辆控制任务可以被定义为需要在临界时限(例如,5ms、10ms、15ms、20ms等)内完成的硬实时任务。非实时车辆控制任务可以被定义为允许超过临界时限完成的软实时任务。对于本领域普通技术人员来说,一个任务是指一个工作单元,例如计算单元、传输单元等。在一些实施例中,rt linux系统可用于预定义哪个任务是硬实时任务或软实时任务。例如,如果第一任务必须要求在10ms内完成,则可以将第一任务预定义为实时车辆控制任务。如果允许第二任务可以超过10ms完成,则可以将第二任务预定义为非实时车辆控制任务。rt linux内核可以根据预定义规则确定任务是实时任务还是非实时任务。
[0070]
在一些实施例中,rt linux内核可以优先将实时车辆控制任务调度到专用处理核芯。所述专用处理核芯可以处理实时车辆控制任务并生成实时车辆控制命令。与实时车辆控制任务不同,rt linux内核可以将非实时车辆控制任务缓存到运算控制单元420的其他处理核芯(例如,图6中所示的其他处理核芯)。所述其他处理核芯可以处理非实时车辆控制任务并生成非实时车辆控制命令。
[0071]
在框630中,实时传输单元可以将实时车辆控制命令发送到车辆控制单元(vcu)。示例性实时车辆控制命令可以包括但不限于加速、减速、转弯和变换车道。在一些实施例中,实时传输单元可以包括至少一个专用于与运算控制单元和车辆控制单元交互的处理器。实时传输单元可以忽视非实时车辆控制命令,专注于实时车辆控制命令的传输,这可以将实时车辆控制命令快速发送到车辆控制单元以便于即时控制车辆。
[0072]
在框640中,在接收到实时车辆控制命令后,车辆控制单元可以控制车辆自动执行相应的动作。车辆控制单元可以包括自动驾驶车辆的一个或以上控制器,例如,一个或以上节气门控制器、一个或以上火花控制器、一个或以上制动控制器、一个或以上转向控制器、废气再循环(egr)控制器、废气门控制器等。仅仅作为实例,响应于用于变换车道的实时车辆控制命令,转向控制器可以将转向角调节0.5度,并且制动控制器可以将制动液增加1.5bar。
[0073]
在一些实施例中,车辆控制单元可以执行来自所述其他处理核芯的非实时车辆控制命令。示例性非实时命令可以包括但不限于调节车内温度、调节座椅位置、打开显示、收听无线电等。在大多数情况下,如果车辆控制单元没有即时响应非实时车辆控制命令,可能也不会在自动驾驶期间造成致命的安全风险。
[0074]
图7是根据本申请的一些实施例所示的用于实时控制自动驾驶车辆的示例性过程的流程图。过程和/或方法700可以由自动驾驶车辆(例如,运算控制单元240或计算设备300)中的至少一个计算设备执行。例如,过程和/或方法700可以实现为存储在非暂时性计算机可读存储介质(例如,存储设备370)中的至少一组指令集(例如,应用程序)。计算设备的至少一个处理器(例如,计算设备300的处理器320)可以执行所述指令集,相应地通过接收和/或发送电子信号来执行过程和/或方法700。
[0075]
在710中,处理器(例如,任务获取子单元510)可以获得一个或以上的任务。
[0076]
在一些实施例中,处理器可以从自动驾驶车辆的自动驾驶系统的至少一层获得一
个或以上任务。在一些实施例中,自动驾驶系统可以分为三层,即感知层、规划层和控制层。关于自动驾驶系统的每一层的一个或以上操作可以包括待运算控制单元的处理器处理的一个或以上任务。例如,在感知层中,感知任务可以包括关于天气检测、车内温度检测、车道检测、自由驾驶区域检测、行人检测、障碍物检测、交通标志检测等的一个或以上任务、或者任何组合。又如,在规划层中,规划任务可以包括关于任务规划,行为规划和/或运动规划的一个或以上任务。作为另一示例,在控制层中,控制任务可以包括关于运动控制的一个或以上任务,例如,反馈控制的一个或以上任务,模型预测控制的一个或以上任务。
[0077]
在720中,处理器(例如,任务调度子单元520)可以将一个或以上任务分类为实时车辆控制任务和非实时车辆控制任务。
[0078]
在一些实施例中,实时车辆控制任务可以被定义为需要在临界时限(例如,5ms、10ms、15ms、20ms等)内完成的硬实时任务。非实时车辆控制任务可以被定义为允许超过临界时限完成的软实时任务。对于本领域普通技术人员,一个任务是指一个工作单元,例如计算单元、传输单元。在一些实施例中,诸如rt linux系统的实时操作系统可用于预定义哪个任务是硬实时任务或软实时任务。rt linux系统可以调度来自系统层的一个或以上任务。例如,如果一个任务必须要求在10ms内完成,那么该任务被指定为实时车辆控制任务。否则,该任务被指定为非实时车辆控制任务。任务调度子单元520可以根据预设规则确定任务是实时任务还是非实时任务。该预设规则中可以设置界定实时车辆控制任务和非实时车辆控制任务的临界时限。
[0079]
在730中,处理器(例如,任务调度子单元520)可以优先将实时车辆控制任务调度到至少一个专用处理核芯(例如,实时任务处理子单元530)以处理实时车辆控制任务。在一些实施例中,实时任务处理子单元530可以包括图6中所示的专用处理核芯。
[0080]
在一些实施例中,如果实时车辆控制任务和非实时车辆控制任务都排队在等待同一处理器处理,那么由于fifo机制的限制,实时车辆控制任务可能得不到及时处理。例如,如果在任务队列中,实施车辆控制任务要晚于非实时车辆控制任务,根据fifo机制,处理器可能不得不先处理非实时车辆控制任务。那么实时车辆控制任务就不能及时得到处理。为了解决这个问题,指定至少一个专用处理核芯来专门处理实时车辆控制任务,这可以确保实时车辆控制任务可以得到及时处理。
[0081]
在一些实施例中,任务调度子单元520可以将实时车辆控制任务指定为待处理的高优先级任务。相应地,任务调度子单元520可以将实时车辆控制任务优先调度到实时任务处理子单元530。实时任务处理子单元530可以处理实时车辆控制任务并生成实时车辆控制命令。例如,示例性实时车辆控制命令可以包括但不限于加速、减速、转弯和变换车道。与实时车辆控制任务不同,任务调度子单元520可以将非实时车辆控制任务指定为待处理的低优先级任务。任务调度子单元520可以将非实时车辆控制任务缓存到非实时任务处理子单元540。在一些实施例中,非实时任务处理子单元540可以包括图6中所示的其他处理核芯。非实时任务处理子单元540可以处理非实时车辆控制任务并生成非实时车辆控制命令。例如,示例性非实时车辆控制命令可以包括但不限于调节车内温度,调节座椅位置,打开显示器,收听无线电等。
[0082]
在740中,处理器(例如,实时任务处理子单元530)可以经由实时传输单元向车辆控制单元(vcu)发送用于控制车辆的实时车辆控制命令。
[0083]
在一些实施例中,实时传输单元(例如,图4中所示的实时传输单元430)可以忽视非实时车辆控制命令,而聚焦于实时车辆控制命令的传输,以便可以及时地将实时车辆控制命令发送到车辆控制单元。
[0084]
在一些实施例中,在接收到实时车辆控制命令后,车辆控制单元可以控制车辆自动执行相应的动作。车辆控制单元可以包括自动车辆的一个或以上控制器,例如,一个或以上节气门控制器、一个或以上火花控制器、一个或以上制动控制器、一个或以上转向控制器、废气再循环(egr)控制器、废气门控制器等。仅仅作为示例,响应于用于变换车道的实时车辆控制命令,转向控制器可以将转向角调节0.5度,并且制动控制器可以将制动液增加1.5bar。
[0085]
需要注意的是,以上描述仅为描述方便,并不能把本申请限制在所举实施例范围之内。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。例如,过程700还可以包括关于非实时车辆控制任务的处理的操作。非实时车辆控制任务可以由非实时处理子单元处理。然而,这些变化和修改不会背离本申请的范围。
[0086]
图8是根据本申请的一些实施例所示的基于间隔阈值和时间限制并利用更新的实时传感数据实时控制自动驾驶车辆的示例性过程的流程图。过程和/或方法800可以由自动驾驶车辆(例如,运算控制单元240或计算设备300)中的至少一个计算设备执行。例如,过程和/或方法800可以实现为存储在非暂时性计算机可读存储介质(例如,存储设备370)中的至少一组指令集(例如,应用程序)。计算设备的至少一个处理器(例如,计算设备300的处理器320)可以执行所述指令集,相应地通过接收和/或发送电子信号来执行过程和/或方法800。
[0087]
在810中,处理器可以获得更新的实时传感数据。在一些实施例中,在自动驾驶期间,传感数据可以被实时更新。处理器可以获取所述更新的实时传感数据用于进一步处理,例如,生成实时车辆控制命令。
[0088]
在820中,处理器可以基于更新的实时传感数据生成更新的实时车辆控制命令。所述更新的实时车辆控制命令可以通过实时传输单元发送给车辆控制单元。
[0089]
在一些实施例中,可能在当前的实时车辆控制指令和即时更新的车辆控制命令之间存在时间间隔。在830中,处理器可以确定当前的实时车辆控制指令和即时更新的车辆控制命令之间的时间间隔。
[0090]
在840中,处理器可以确定所述时间间隔是否小于或等于间隔阈值。在一些实施例中,如果所述时间间隔小于或等于间隔阈值(例如,10ms、20ms、30ms),可以通过实时传输单元将所述更新的实时车辆控制命令发送给车辆控制单元来进一步控制车辆,如850所述。例如,车辆控制单元440通过实时传输单元430即时接收到更新的车辆控制命令,并响应于所述车辆控制命令实现车辆的控制。在一些实施例中,如果所述时间间隔大于间隔阈值,处理器可以进一步确定所述时间间隔和间隔阈值的时间差值是否小于或等于时间限制(例如,3ms、5ms、7ms),如860所述。如果所述时间差值小于或等于所述时间限制,可以进行到870。如果所述时间差值大于所述时间限制,可以进行到880和/或890。
[0091]
在870中,如果所述时间差值小于或等于所述时间限制,处理器可以通过实时传输单元重复发送当前实时车辆控制命令到车辆控制单元来控制车辆。车辆控制单元可以继续执行当前实时车辆控制命令以便于维持车辆的当前状态。
[0092]
在880中,如果所述时间差值大于所述时间限制,实时传输单元可以生成直接命令车辆控制单元进行车辆减速的实时车辆控制指令。例如,如果实时传输单元430在间隔阈值内没有接收到更新的实时车辆控制命令,实时传输单元430可以直接生成控制命令以促使车辆控制单元进行车辆减速,以减少安全风险。一旦接收到减速的命令,车辆控制单元440可以通过制动控制器进行车辆减速。
[0093]
在890中,如果所述时间差值大于所述时间限制,可以向车辆用户发送警示信号。例如,如果实时传输单元430在间隔阈值内没有接收到更新的实时车辆控制命令,实时传输单元430生成警示信号来提示车辆用户(例如,司机或乘客)去接管车辆。用户可以取代自动驾驶并进行人工驾驶。在一些实施例中,所述警示信号还可以用于提醒周围的车辆注意闪避。
[0094]
在一些实施例中,在接收到实时命令后,车辆控制单元可以控制车辆自动执行相应的动作。所述车辆控制单元包括自动驾驶车辆的一个或以上控制器,例如,一个或以上节气门控制器、一个或以上火花控制器、一个或以上制动控制器、一个或以上转向控制器、废气再循环(egr)控制器、废气门控制器等。仅仅作为示例,响应于用于变换车道的实时命令,转向控制器可以将转向角调节0.5度,并且制动控制器可以将制动液增加1.5bar。
[0095]
需要注意的是,以上描述仅为描述方便,并不能把本申请限制在所举实施例范围之内。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。例如,操作860和操作870可以集成到单个操作。然而,这些变化和修改不会背离本申请的范围。
[0096]
上文已对基本概念做了描述,显然,对于阅读此申请后的本领域的普通技术人员来说,上述发明披露仅作为示例,并不构成对本申请的限制。虽然此处并未明确说明,但本领域的普通技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
[0097]
同时,本申请使用了特定词语来描述本申请的实施例。此外,本申请使用了特定术语来描述本申请的实施例。例如,术语“一个实施例”、“一实施例”及“一些实施例”意指与本申请的至少一个实施例相关的某一特征、结构或特性。因此,应当强调并注意的是,本说明书中在不同位置两次或以上提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或以上实施例中的某些特征、结构或特点可以进行适当的组合。
[0098]
此外,本领域的普通技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的过程、机器、产品或物质的组合,或对其任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件实施、可以完全由软件(包括韧体、常驻软件、微代码等)实施、也可以由硬件和软件组合实施,上述硬件或软件均可以被称为“模块”、“单元”、“组件”、“设备”或“系统”。此外,本申请的各方面可以采取体现在一个或以上计算机可读介质中的计算机程序产品的形式,其中计算机可读程序代码包含在其中。
[0099]
计算机可读信号介质可能包含一个内含有计算机程序代码的传播数据信号,例如在基带上或作为载波的一部分。此类传播信号可以有多种形式,包括电磁形式、光形式等或任何合适的组合。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可
读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通信、传播或传输供使用的程序。位于计算机可读信号介质上的程序代码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf等,或任何上述介质的组合。
[0100]
本申请各部分操作所需的计算机程序编码可以用任意一种或以上程序语言编写,包括面向主体编程语言如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net、python等,常规程序化编程语言如c语言、visual basic、fortran 2003、perl、cobol 2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序代码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。
[0101]
此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
[0102]
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或以上发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。然而,本申请的该方法不应被解释为反映所声称的待扫描对象物质需要比每个权利要求中明确记载的更多特征的意图。实际上,实施例的特征要少于上述揭露的单个实施例的全部特征。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除
热门咨询
tips