交通工具导航的制作方法

文档序号:14832649发布日期:2018-06-30 11:06阅读:290来源:国知局
交通工具导航的制作方法

本发明总体上涉及用于交通工具导航的系统,并且更具体地涉及用于实时路线调整的方法、计算机程序产品和系统。



背景技术:

当假设例如水上交通工具(例如船舶、船只、气垫船、船舰、潜艇等)、空中交通工具(例如无人机)或机器人的交通工具使用针对起始位置和目标位置之间的特定目标集合优化的路线时,并且当在起始位置和目标位置之间存在一个或多个冲突对象(或冲突区域)时,交通工具的路线计算和优化变得复杂。应当注意的是,水上/空中交通工具或机器人首先不受预定路线选择(诸如公路或铁路)的任何界限的约束。相反,这些交通工具大多自由地在表面上或在给定的高度范围内使用任何方向。这增加了遇到冲突对象的风险。这些冲突对象可以是静态类型的(例如,诸如岛屿、沿海地区或浅水地区、山脉、湖泊等陆地),或者它们可以是动态类型的(例如,具有强水/气流的地区,或者更一般地,应当避免的恶劣天气条件,或者应当尽可能最小化暴露的区域)。

一般地,这样的冲突对象被表示为或近似为在地图上对各个冲突对象的形状和位置进行建模的多边形表示。这有时被称为多边形环境。另外,路线通常被计算为路点的序列,其可以用于绘制可以通过计算所谓的样条曲线来平滑的折线,或者用于绘制大圆弧的序列来描述球形的路径。

当试图在特定优化约束(例如陆地块等)和一个或多个目标函数(例如,尽可能短或尽可能快)下计算路线时,在连续环境中的数学优化问题具有无数潜在的解决方案,这大大阻碍了合适的路线的选择。缺乏关于中间步骤的数量、冲突对象的可能的非凸性质以及例如在燃料消耗的情况下的非凸性质的了解,这对于路线计算提供了实质性的挑战。在动态环境(非静态冲突对象)的情况下,数学上最优的解决方案是不切实际的,并且现有技术的计算能力是不可行的。

因此,提出了在多边形环境中用于可解路线计算的现有技术解决方案。这些现有技术解决方案包括单元分解、Voronoi图、概率路线图、A星和可见性图。然而,由于离散化步骤,一些现有技术的解决方案遭受所使用的算法固有的信息损失,这可能妨碍最佳路线的计算。基于可见性图的方法避免信息损失。因此,可见性图上的最短路径与真实世界的最短路径对应。然而,必须为每个可能的组合计算由起始位置和目标位置定义的图形的至少一部分。在连续的空间中存在无数的组合,因此不可能为每个可能的组合提供对应的图。在船舶航线计算的情况下,通常要考虑数百万个位置点。这导致了在具有准实时计算需求的场景中不能执行路线计算的情况,并且进一步消耗了大量的存储器空间。例如,在需要避免动态冲突对象的情况下,由于水上交通工具的惯性,非常迅速地调整船舶的路线是有利的。此外,期望在具有有限存储器容量和计算能力的诸如智能电话或平板电脑的移动设备上执行这样的计算。



技术实现要素:

因此,需要提供一种无信息损失的路线计算系统和方法,用于高度准确的路线计算,其可以由低性能计算设备(例如智能电话或平板电脑)以准实时响应行为来执行。

该技术问题由一种计算机实现的方法、相应的计算机程序产品和计算机系统解决,该计算机实现的方法使得确定交通工具从起始位置导航到目标位置的无冲突路径能够并行处理,该计算机系统被配置为运行所述计算机程序用于执行根据独立权利要求所述的方法。在下面的描述中,水上交通工具导航的示例用于说明本发明的实施例。本领域技术人员可以容易地将所公开的原理应用于其他类型的交通工具,诸如在给定高度范围内航行的空中交通工具或在地面上导航的机器人交通工具(例如割草机机器人)。

计算机实现的方法公开了一种构造数据结构(包括无冲突路径段的图)的方式,在该方式中,并行处理被启用以确定水上交通工具从起点位置导航到目标位置的无冲突路径。同时,提供无冲突路径选项的图的尺寸明显小于上述现有技术方法。所公开的方法允许在低性能计算设备(例如,智能电话或平板电脑)上运行该方法。

该方法开始于接收一个或多个潜在冲突对象的起始位置、目标位置和一个或多个多边形表示的表示。潜在冲突对象是如果交通工具需要到达潜在冲突对象之外而不与所述对象冲突的位置则强制交通工具偏离的任何对象。起始位置与当开始导航时交通工具所处的开始位置对应。目标位置是交通工具到达的最终位置。多边形表示代表潜在冲突对象的形状。冲突对象可以是静态的(例如,表示静态冲突对象的多边形可以对岛屿或大陆的沿海地区进行模拟),或者它们可以是动态的,因为冲突对象的位置和/或形状可以随时间变化。动态冲突对象的示例是其他水上交通工具、海流或天气现象(例如,飓风、多雾的地区等)。起始/目标位置可以经由用户接口从用户接收,或者经由机器-机器接口从另一计算机系统接收。

为了构造所述图数据结构,初始化组件对交通工具的至少一个表示进行初始化。在初始化之后,该至少一个交通工具表示包括作为其当前位置的接收到的起始位置,并且还包括包括接收到的目标位置的目标列表。

在以下描述中,交通工具表示也被称为粒子。换句话说,在初始化之后,该至少一个交通工具表示存在于起始位置,且目标位置作为交通工具的最终目的地。要注意的是,术语起始位置、当前位置和目标位置对应于真实世界的位置,但是在本文中被用来描述图中这种真实世界位置的表示。术语冲突对象还涉及真实世界的对象或现象。冲突对象的表示是多边形。这种多边形的特定节点可以成为所述图的部分。然而,术语冲突对象有时也用于与所述多边形表示有关。对于本领域技术人员而言,当术语冲突对象在其各自表示的含义中被使用时,从上下文中是很清楚的。例如,诸如“冲突对象位于第一和第二位置之间”的短语意味着:在真实世界中,在相应的真实位置之间存在真实的冲突对象。同时,将理解的是,在路线计算系统中,冲突对象的多边形表示在代表第一和第二位置的相应节点之间。

图生成器通过确定冲突对象是否位于交通工具的当前位置和与交通工具相关联的目标列表中的最近目标位置之间的直接连接上,迭代地构造无冲突路径段(图数据结构)的图。如本文所使用的“当前位置”或“当前目标位置”是指迭代图构造的当前计算迭代周期中的相应位置表示。该迭代图构造对于每个交通工具表示重复以下步骤,直到当前目标位置等于所接收的目标位置(即,交通工具表示已经到达其最终目的地),或者直到满足另一个终止条件:

如果(if)交通工具的当前位置和最近的目标位置之间的直接连接是无冲突的,则对应的路径段(即直接连接)被保存为图的边界。例如,紧接在初始化之后,只有接收到的目标位置被包括在目标列表中。也就是说,在第一次迭代中,最近的目标位置对应于目标位置。然后,图生成器为下一次迭代设置(选择)最近的目标位置作为新的当前位置,并从目标列表中去除最近的目标位置。

否则(else)(即,直接连接不是无冲突的),图生成器识别可到达节点,其中节点基于在与直接连接相交的一个或多个多边形表示上、相对于当前位置和最近的目标位置之间的直接连接的向左或向右的偏离角的局部极值而定义。例如,如果可到达节点对应于局部极值本身,或者如果它可以从局部极值导出,那么它是基于所识别的局部极值节点。例如,可到达节点可以被定义为在局部极值附近的位置。例如,可以将安全距离添加到局部极值以确保可到达节点与足够深的水相关联。可到达节点可以是局部极值附近的不被相应的冲突对象的至少一部分隐藏的任何节点。本领域技术人员可以使用其他算法来基于所识别的局部极值以计算可到达节点。这些算法可以包括检查特定可到达节点是否在可导航区域内。要注意的是,可到达节点不一定意味着无冲突路径段。相反,不在当前起始位置和当前目标位置之间的直接连接上的另外的冲突对象可能表示在到达可到达节点的途中的障碍物。

对于下一次迭代,图生成器从(现有的)表示中为每个识别的节点生成交通工具的进一步表示。进一步的表示与该表示具有相同的当前位置,并且具有包括该表示的目标列表的所有元素的目标列表以及作为新的最近的目标位置的所标识的节点。换句话说,当图生成器识别出这种可到达节点时,图生成器的复制器生成交通工具表示的克隆副本,每个克隆专用于移动到相应的所识别的节点。换句话说,每个克隆被配置为计算去往相应的可到达节点的移动。所标识的节点因此被添加到克隆副本的目标列表以表示相应克隆副本的下一个目标位置。例如,目标列表可以被实现为后进先出队列。

当迭代地执行上述如果-否则(if-else)操作、直到原始交通工具表示和/或交通工具表示的一个或多个克隆副本已经到达所接收的(最终的)目标位置时,生成器逐段构造由无冲突路径段构成的图,所述无冲突路径段通过避免与潜在的真实世界冲突对象的任何真实世界冲突,提供用于真实世界的交通工具从接收到的起始位置到接收到的目标位置的多个选项。换言之,图生成器基于在迭代过程期间确定的无冲突路径段构造交通工具的无冲突路径。

然后将无冲突路径提供给路径选择器。路径选择器可以是从所提供无冲突路径选项中选择特定路径的人类用户。路径选择器也可以是基于预定的偏好(例如,最短路线、最快路线、具有最低燃料消耗的路线等)来选择特定的无冲突路径的计算机系统。

在一个实施例中,路径选择器可以进一步包括后处理模块。后处理模块可以将以下后处理活动中的一个或多个应用于构造的无冲突路径。

在第一后处理活动中,可能期望例如通过使用样条曲线去除非凸性质来平滑路径,使得交通工具可以避免突然移动或突然改变其路线。在一些情况下,物理限制(例如最大转向角或惯性)甚至可能需要这样的后处理步骤。

在第二后处理活动中,沿路径的一个或多个路径段的一个或多个路点可以被添加到路径。例如,对于水上交通工具,可添加到(硫)排放控制区((S)ECA区)的出入点。另一个示例是将出入点添加到具有可容忍但恶劣天气条件的区域,使得在路径选择步骤中可以提供该信息。

在第三后处理活动中,如果确定交通工具可以从前一个路点直接去往后一个路点,则可以去除来自路径的一个或多个路点,从而减少例如该路径的总长度,当目标是找到最短路线时,这可能是期望的。

图的迭代构造以这样的方式设计:交通工具表示的每个克隆可以找到完全独立于其他交通工具表示的无冲突路径段。这允许图构造的高度并行化以充分利用并行处理器(例如,通过使用适当的多处理器或多核计算设备)。在每次迭代中,可以将新克隆的交通工具表示分配给相应的处理器单元以用于计算无冲突路径段。取决于路径分支的数量(其取决于冲突对象的复杂性和数量),从一次迭代到下一次迭代的交通工具表示的数量的增长可以是相当大的(例如,指数级的)。所提出的图数据结构创建过程允许按需分配额外的并行计算资源(取决于克隆的数量),并且即使在具有非常复杂的冲突对象情形的情况下也能保证准实时的路线计算。本领域技术人员可以通过平衡每个处理器/内核的工作负载来运用具有有限数量的处理器或内核的设备,使得可用处理器/内核的使用被优化用于以高度的并行化执行必要的计算。同时,与先前描述的现有技术解决方案相比,所提出的图数据结构创建过程显著减小了由所生成的图所需的操作(主)存储器的大小。当与根据本发明提出的图相比时,现有技术解决方案中使用的图需要存储显著更高的信息量,这导致高存储器消耗。对主存储器的低要求以及在许多平板电脑或智能手机中所使用的多核处理器的使用允许在这些标准设备上以可接受的响应时间对高度复杂的冲突场景执行路线计算,以向路径选择器(例如,设备的用户)提供各种无冲突路线选项。这里使用的可接受的响应时间是路线计算花费的时间少于行进于与所计算的无冲突路线的路径段对应的真实世界路线所需的时间的响应时间。在某些场景下,可能需要准实时响应(例如,当无人机需要避免与在冲突路线上移动的另一个空中飞行器冲突时)。所提供的路线计算系统和方法即使对于复杂的路线计算场景也允许路线计算或路线调整在小于一秒内。

在一个实施例中,路线计算系统的接口可以被配置为从路径选择器接收所选择的无冲突路径。路线计算系统然后可以利用所选择的无冲突路径来更新交通工具的控制系统,以根据所选择的路径来调整交通工具的移动方向。该实施例允许将所选择的路径用作真实世界的交通工具的导航控制装置的输入,从而自动避免真实世界的交通工具与真实世界的(一个或多个)冲突对象的冲突。

在一个实施例中,特定潜在冲突对象的特定多边形表示与指示特定潜在冲突对象的当前位置的传感器数据相关联。在该实施例中,动态冲突对象可以经由诸如雷达传感器数据、卫星图片或适于定位移动物体或现象及其界限的其他传感器的传感器数据来识别。

在一个实施例中,在直接连接是无冲突的情况下,如果目标列表为空,则图生成器可以删除相应交通工具的表示。在这种情况下,交通工具表示不再具有目的,并且由交通工具表示消耗的存储器可以被释放。

在一个实施例中,可以通过完全并行化局部极值的识别来进一步改善并行化水平。在该实施例中,图构造器的极值识别器通过确定特定多边形表示的包括具有用于绕过对应的冲突对象的向左的偏离角的多边形段的第一组多边形段,并且通过确定特定多边形表示的包括具有用于绕过相应的冲突对象的向右的偏离角的多边形段的第二组多边形段,识别可到达节点。然后,对于具有向右偏离角的每个确定的多边形段,极值识别器独立地标记具有较高偏离角的值的节点,并且对于具有向左偏离角的每个确定的多边形段,极值识别器独立标记具有较高偏离角的值的节点。要注意的是,多边形节点的标记可以完全并行化,因为标记多边形段的顺序完全没有关系。唯一相关的是,标记适用于所有多边形段。也就是说,在例如通过利用图形处理器单元(GPU)提供与要标记的多边形段的数目对应的多个并行处理器的极端(不太可能)的情况下,标记可以在单个迭代步骤中执行。在使用标准移动计算设备的标准多核处理器的情况下,标记可以分布在各种处理器上以实现最佳的负载均衡。并行计算技术领域的技术人员知道这种负载均衡方法。

在并行标记步骤完成之后,极值识别器将具有两个标记的节点识别为左侧或右侧的特定多边形表示的局部极值。最后,通过由一个或多个多边形表示的一个或多个局部极值过滤出对当前位置(即,对于图构造的相应迭代中的当前位置处的交通工具表示)隐藏的特定多边形表示的局部极值,获得可到达节点。例如,当从交通工具表示查看冲突对象时,所识别的局部极值节点可以位于面向交通工具的冲突对象的前侧。另一个局部极值节点可以位于冲突对象的后侧,因此不是所表示的交通工具的可到达节点。

基于所识别的可到达的局部极值节点,极值识别器随后可以将具有向右和向左偏离角的最高值的可到达节点识别为特定多边形表示的全局极值。全局极值的识别在计算上是非常有效的,因为只有被识别的可到达节点(其是并行计算的)需要被处理。与冲突对象的多边形表示的节点总数相比,这通常是非常小的数目。然而,现有技术解决方案需要通过分析冲突对象的所有多边形段来计算全局极值。也就是说,由多个处理器或核心独立地并行标记多边形的节点,这生成仅包括多边形的节点总数的一小部分的节点数据结构作为确定极值的基础,从而为与交通工具表示的当前位置有关的多边形表示的全局极值的确定提供了高效的过滤器。

路线计算方法可以通过使用具有基于性能的过滤器的实施例而进一步加速。在一个实施例中,基于性能的过滤器被配置为通过检查中间目标位置的可接受性来过滤局部极值。例如,粒子可以保存当选择可到达节点时做出的先前决定(例如,向右转以避免冲突对象)的记录。如果在检查从当前起始位置到当前目标位置的直接连接时识别出冲突对象,在之前的步骤中,粒子已经做出决定,则它可以使用该信息来消除将使得先前的决策不是最佳的局部极值。例如,如果目标是找到短路线,那么作出右转以避开冲突对象的决定的粒子可能会在后面的步骤中丢弃将暗示向左转弯的局部极值,因为必须存在做出了左转以避免该特定障碍物的决定的克隆,并且这个相应的克隆(或者它的后代/随后的克隆)必须找到至少一样短的路线。换句话说,基于性能的过滤器就像图修剪方法一样动作,例如通过停止对可以被判断为次优的路径的探索、或者通过去除相对于相应偏好(例如,最小化时间或距离)绝不是最佳路径的部分的段(并由此减少存储器消耗)来操作。所丢弃的局部极值节点被分类为不可接受的中间目标位置,因此路线选项不会考虑。

在一个实施例中,基于性能的过滤器被配置为过滤掉不是全局极值的局部极值。例如,如果目标是要找到最短路线,则选择除了相应方向的全局极值之外的左边或右边的局部极值的粒子最多可以与选择向全局极值直接行进的粒子一样好地执行,因为它最终将需要向全局极值行进来绕开障碍物。

在一个实施例中,基于性能的过滤器被配置为如果特定交通工具表示可被判断为关于所选择的偏好(例如,最小化距离、最小化时间)比竞争的交通工具表示更差地执行,则删除特定交通工具表示。例如,如果目标是找到最短路线/路径、并且粒子表示需要比竞争的交通工具表示更长的距离来到达特定位置(先前访问的位置或来自目标列表的位置中的一个),则它可以被判断为由该竞争的交通工具表示占优,因此被删除。

本领域技术人员可以提供进一步的基于性能的过滤器,例如粒子确定它们将消耗或需要并且必须最小化的量或量度的下限和上限的过滤器。在这个示例中,粒子对它们的下限和上限与竞争粒子的下限和上限不断地监控和比较。如果特定的粒子确定其下限高于另一个粒子的上限,则可以删除它以释放其对应的交通工具表示占用的存储器,以及更好地利用可用的计算能力。基于性能的过滤器也可以与一个或多个其他基于性能的过滤器组合。

在一个实施例中,提供了一种能够执行先前公开的方法的功能的计算机系统。图数据结构由计算机系统以这样的方式产生,即它可以充分利用具有如在移动设备(例如智能手机或平板电脑)中可用的较低的主存储容量的硬件配置的多处理器或多核能力。该系统因此被配置为,取决于相应的地图数据中的详细程度,以数吉(G)字节或甚至数百兆(M)字节的量级,利用通过在具有主存储器约束的设备上的并行处理启用的准实时响应行为,确定交通工具从起始位置导航到目标位置的无冲突路径。

在一个实施例中,提供了一种计算机程序产品,其在被加载到计算机系统的主存储器中并由计算机系统的至少一个处理器执行时,执行以上公开的计算机实现的方法的步骤。

本发明的其他方面将通过所附权利要求中具体描述的元件和组合来实现和获得。应当理解的是,前面的一般性描述和下面的详细描述仅仅是示例性的和说明性的,并不限制所描述的本发明。

附图说明

图1示出了根据本发明实施例的并行处理所启用的、用于确定交通工具从起始位置导航到目标位置的无冲突路径的计算机系统的简化图;

图2A和2B是可以由计算机系统的各个实施例执行的计算机实现的方法的简化流程图;

图3是具有从起始位置到目标位置的无冲突路径段的示例图;

图4是示出示例图的生成的流程图;

图5是用于冲突对象的局部极值识别的可并行化的计算机实现的方法的简化流程图;

图6示出了在冲突对象的多边形表示的示例中的并行化的局部极值确定;以及

图7是示出可以与这里描述的技术一起使用的通用计算机设备和通用移动计算机设备的示例的图。

具体实施方式

图1示出了根据本发明实施例的并行处理所启用的、用于确定交通工具从起始位置导航到目标位置的无冲突路径的计算机系统100的简化图。在图2A和图2B所示的简化流程图的上下文中公开了图1。简化的流程图图示了可以由计算机系统100的各个实施例执行的计算机实现的方法200、1000。因此,以下描述使用来自图1、2A和2B的附图标记。

图1的计算机系统100被配置用于并行确定交通工具从起始位置导航到目标位置的无冲突路径。系统100具有接口组件110,用于接收210、1100起始和目标位置数据10,并接收一个或多个潜在冲突对象的一个或多个多边形表示20。接收位置数据和接收多边形表示不需要同时发生,但可以从不同的数据源顺序地发生。起始/目标位置可以通过机器对机器接口来由计算机系统提供,或者它们可以由计算机系统100的人类用户提供,在这种情况下,接口110包括适当的人机接口(例如,图形用户界面或音频接口),其允许用户输入这样的数据。

系统100的初始化组件120对交通工具的表示初始化220。该表示包括作为当前位置CL的接收到的起始位置SL,并且还包括包含接收到的目标位置TL的目标列表LOT。换句话说,初始化组件120将SL设置1110为当前位置CL,并将TL添加到目标列表LOT={TL}。交通工具的初始化表示(粒子)可以被看作集合S:={CL,CT,LOT}。从而,最后添加到LOT中的目标列表中的目标位置(即“上一个”)在此被称为“最近的目标位置”。在下面的描述中,假定LOT被实现为后进先出队列。本领域技术人员可以替代地使用其他队列结构。

图生成器130现在通过为每个交通工具表示迭代地调用极值识别器模块131和复制器模块132来迭代地构造230无冲突路径段的图(例如,通过拼接各个路径段),只要所接收的目标位置没有被相应的交通工具表示到达。如本文所使用的,迭代构造230是指重复执行相同的构造步骤以通过图将交通工具表示虚拟地移动到所接收的目标位置,其中基于新的输入参数集合来计算每个迭代,并且新的输入参数集合至少部分来自前面的迭代步骤。迭代可以在循环结构中实现,其中一旦满足终止条件就停止迭代。当特定交通工具表示已经到达接收到的目标位置TL时,满足关于特定交通工具表示的迭代构造的终止条件。

在用于特定交通工具表示的迭代步骤的第一子步骤中,图生成器将相应LOT的第一元素(最近添加的目标位置)设置1200为特定交通工具表示的当前目标CT,并检查从交通工具表示的当前位置CL到当前目标CT的直接连接是否是无冲突的。换句话说,图生成器确定1300冲突对象(即障碍物)是否位于当前位置与目标列表中的最近目标位置之间的直接连接上。

如果直接连接是无冲突的(参见图2B中的1300/是),则图生成器将对应的路径段保存为(将被构造的)图的边界。此外,对于下一次迭代,最近的目标位置CT被设置1400为特定交通工具表示的新的当前位置CL(新的段的起始位置),并且从目标列表LOT中去除最近的目标位置。在LOT中存在另外的目标位置(即LOT不是空的1500/否)的情况下,重复该过程,直到LOT最终为空,这导致图中无冲突路径的构造和识别1600。当目标列表为空时,图生成器可以删除相应交通工具的表示以不进一步阻挡系统100的任何处理或存储器资源。

如果直接连接不是无冲突的(参见图2B中的1300/是),则图生成器的极值识别器131在与直接连接相交的一个或多个多边形表示上识别1700可到达节点,其中识别的节点基于相对于当前位置与最近目标位置(当前目标)之间的直接连接的左侧或右侧的偏离角的局部极值。换句话说,极值识别器131将可到达节点识别为需要绕开的多边形表示的节点的子集,以避免与相应的冲突对象冲突。例如,极值识别器可以将可到达节点中的全局极值识别为特定交通工具表示的中间目标。也可以使用所识别的局部/全局极值附近的可到达节点。例如,可以如前所述地实现安全距离。人们还可以使用随机的水位置作为距相应的所识别的极值节点的预定距离内的可到达节点。

为了使图构造能够并行化,图生成器具有复制器132,该复制器132可以像对特定交通工具表示已经识别中间目标一样频繁地复制1800(或克隆)特定交通工具表示。在复制之后,特定交通工具表示的多个副本可用,使得每个副本(即集合S的副本)可以虚拟地并行向中间目标中的一个移动。换句话说,复制器132为下一次迭代从交通工具表示生成1800用于每个中间目标的进一步表示。这个进一步的表示(被克隆的集合S')与原始表示具有相同的当前位置CL,因为它从相同的位置开始。此外,其目标列表包括原始表示的目标列表的所有元素以及作为新的最近目标位置的特定中间目标。这个新的最近的目标位置变成针对在以子步骤1200再次开始的下一个迭代步骤中的进一步表示的当前目标CT'。换句话说,被识别为中间目标的局部极值被推到相应的LOT队列的开始,使得它可以作为来自LIFO队列的第一个元素被再次取回。对交通工具表示的所有生成1800的克隆副本执行下一个迭代阶段。要注意的是,术语“克隆”并不以生物学意义使用,因为副本之间存在100%的同一性。而是,本领域技术人员理解,不同克隆副本关于其LOT的差异在于它们具有不同的最近的目标位置(即,各种中间目标)。

可选的过滤器步骤1720可以用于进一步改善冲突路线计算的性能。由任何一个基于性能的过滤器丢弃的局部极值节点称为被占优的极值。也就是说,存在导致更好的路线的至少一个另外的局部极值。这种被占优的极值可以被过滤掉1720,使得它们不会被任何后续的迭代考虑。该过滤功能为路线计算系统和方法的执行时间和存储器消耗提供了进一步的改进,因为不太有前途的路线选项不需要进行进一步的计算步骤。

图生成器130最终基于在迭代图构造期间保存的无冲突路径段构造240无冲突路径。例如,由已经到达最终目标位置TL的交通工具表示识别1600的无冲突路径段的每个序列定义无冲突路径。然而,不是每个克隆副本都必须到达所接收的目标位置TL。如在图3和图4给出的示例中所公开的,当使用基于性能的过滤器133时,可以再次删除交通工具表示,该基于性能的过滤器133确定对相应表示执行计算是没有意义的,直到它到达最终目标为止,因为确定了其他交通工具表示已经找到了更好的路线。取决于预定义的参数150(例如,交通规则、约束等)可以使用/应用不同的可选过滤器133。这种交通工具表示的删除进一步节省了计算资源。换句话说,通过删除交通工具表示而释放的处理器或核心可以被分配给另一个交通工具表示,以进一步加快路线计算并更好地利用路线计算系统100的并行计算能力。

最后,将无冲突路径提供250到路径选择器140。路径选择器可以是计算机系统100的另外的计算模块或者在与系统100通信地耦合的远程系统中。路径选择器可以根据由相应参数150(例如,最短路径、最短时间、最低燃料消耗等)定义的预定义选择标准来选择特定的无冲突路径。路径选择器也可以被实现为人机接口,其中系统的人类用户可以经由标准用户接口技术(例如,触摸屏、鼠标点击等)手动选择所提供的路径中的一个。

系统100可以包括或可以与(真实世界)交通工具的控制系统的更新器160通信地耦合。更新器160可以从路径选择器140接收所选择的无冲突路径,然后利用所选择的无冲突路径自动更新260车辆的控制系统,以根据所选择的路径调整交通工具的移动方向。这样,在路径选择器是技术系统而不是人的实施例中,能够对真实世界的交通工具进行自主驾驶。

图3是具有从起始位置SL到目标位置TL的无冲突路径段的示例图300。在图4的流程图的上下文中描述图3,图4示出了示例图300的生成。

图300示出了在连续环境中的交通工具从起始位置SL到目标位置TL的无冲突路径。在此使用的连续环境是诸如二维欧几里德平面或三维欧几里德空间的度量空间(例如,当在球体上航行时),与在道路网络或铁路网络的导航中使用的图状结构相对。例如,交通工具可以是需要从起始位置SL导航到目标位置TL的船只(例如艇、轮船或水下交通工具)。但是,在本示例中,存在冲突对象CO1和CO2,它们是交通工具沿直接连接SL-TL(虚线)从SL移动到TL的障碍物。在示例中,CO1和CO2是海洋或湖泊中需要交通工具绕开以避免交通工具与真实世界中的任何冲突对象冲突的障碍物的多边形表示。冲突对象CO1、CO2可以代表岛、沙丘、冰山等,并且本示例中多边形表示的边界可以代表水足够深使得交通工具可以绕开冲突对象而不接触海底的水下冲突对象的边缘。

多边形表示CO1、CO2可以对应于处于固定位置的静态冲突对象,并且可以由地理等高线地图数据(诸如包括关于冲突对象周围的水深的相应冲突对象水平等值线的详细地理位置的数字化海图)提供。除了避免与静态冲突对象的冲突之外,还需要避免与动态(即移动的)冲突对象的冲突。动态冲突对象的示例可以是其他交通工具(船舶、船只、船舰等)、天气现象(例如,风暴、飓风)或水现象(例如,强流、由于海震引起的巨浪等)。关于动态冲突对象的数据通常从用于监视相应现象的传感器接收。例如,可以经由雷达技术或者经由定位系统(例如,GPS等)来检测其他交通工具。天气现象可以经由卫星图片检测。水现象可以经由地震传感器来检测。确定这种检测的现象的地理坐标并提供相关联的动态冲突对象的对应多边形表示是现有技术。例如,雷达系统可以检测某个船只的位置。结合船只的自动识别系统(AIS)信号(包括船只的名称/ID),可以从(可用的)数据库系统利用对应的多边形表示检索相关的船只类型。在图3的示例中,多边形表示CO3对应于船只冲突对象的这种水平投影。在动态冲突对象的情况下,多边形表示可能已经包括相对于冲突对象的实际界限的安全距离。例如,船舶的多边形表示可以在每个方向上在船的真实尺寸上增加100米,或者可以延伸、拉伸或以其他方式操纵以考虑其移动。

如上所述,目标是将交通工具从SL导航到TL,而不与潜在的冲突对象CO1、CO2、CO3冲突。起初,用于避免冲突的路线计算系统接收401交通工具的起始位置SL(其可以对应于交通工具的当前位置)、目标位置TL以及潜在冲突对象的多边形表示CO1、CO2、CO3。在初始化步骤402中,路线系统利用接收到的起始位置SL针对第一集合S初始化当前(起始)位置CS的变量,并利用接收到的目标位置TL初始化当前目标位置TL的变量。此外,对于第一集合S,生成添加了接收到的目标位置TL的目标列表LOT。如本文所使用的,一般来说,集合对应于在特定位置处(图的节点)的交通工具表示。集合有时也被称为粒子。

在下一个步骤403中,路线系统分析冲突对象是否阻止交通工具在直接连接(虚线)SL-TL上从SL行进到TL。直接连接可以是平面上的直线连接,也可以是沿着球体上的大圆弧的最短连接。基于各个潜在冲突对象的地理坐标及其多边形表示CO1、CO2、CO3,系统将多边形表示CO1和CO2识别为交通工具在其前往TL的路径上的障碍物。在一个实施例中,在该检查步骤403中,只有表示CO1可以被识别并且被进一步处理,而一旦发现无冲突的路径段以绕过CO1,则表示CO2可以随后在过程中被处理。然而,在这个初始检查步骤403中确定到最终目标位置TL的路上的所有障碍物可能是有利的,因为它提供了更多的信息,这些信息可以被用来通过在探索被占优的中间目标位置序列之前将它们过滤来提高算法的性能。

一旦多边形表示CO1、CO2被识别为障碍物,路线系统就识别404多边形表示CO1、CO2上的节点1至5,其中本实施例中的节点1-5直接定义为相对于当前位置CL与当前目标位置CT之间的直接连接的左或右偏离角的局部极值。在图300中,所识别的局部极值由黑点1-5示出。对CO1识别的局部极值是点1(左偏离)和点2(右偏离)。对CO2识别的局部极值是点2(左偏离)和点4、5(右偏离)。鉴于障碍物CO1、CO2(CO3尚未被知道,因为它不与直接连接SL-TL相交),局部极值1、3和4可从SL到达,而所识别的局部极值2和5(分别由CO1和CO2)隐藏。

在其可选路线路径上的交通工具可以由与粒子有关的集合来表示。在此阶段,路线系统知道它需要评估潜在的无冲突路径段SL-1、SL-3、SL-4的三个选项。这三个选项可按顺序分析。然而,利用所提出的方法和图数据结构300,可以通过使用多处理器平台并行地执行该方法。通过使用并行化,系统可以准实时地为非常详细的多边形表示(具有大量的多边形段)、长距离或大量的冲突对象提供路线计算和路线调整。在短时间内识别动态冲突对象的情况下(例如,在有雾的天气条件下的另一艘船舶、或刚刚经历了冲突过程但仍然与交通工具相距一定距离的龙卷风,这允许绕过该龙卷风),这变得尤为相关。在这种情况下可能需要立即调整交通工具的方向,以避免冲突。通过对表示交通工具的粒子与在之前的步骤中识别可到达的局部极值的次数进行一样多次的克隆来达到并行化,其中每个粒子采用到达所识别的可到达局部极值中的一个的假设路线。

在该示例中,第一粒子p1去往点1,第二粒子p2去往点3,并且第三粒子p3去往点4。对于每个粒子,迭代地重复步骤402至404。

对于第一粒子,生成410第二集合(或粒子),其仍然包括作为当前位置CL的原始起始位置SL。然而,第二集合现在具有作为新的当前目标位置CT的可到达的目标点1。该中间目标也被添加到第二集合的目的列表。为了简单起见,所有进一步的集合在图4的流程图中被命名为S。本领域技术人员将理解每个克隆粒子具有其自己的集合。对于第二和第三粒子,分别生成420、430第三和第四集合。第三集合包括作为当前位置CL的原始起始位置SL。然而,现在第三集合具有作为新的当前目标位置CT的可到达的目标点3。该中间目标也被添加到第三集合的目标列表中。第四集合包括作为当前位置CL的原始起始位置SL。然而,现在第四集合具有作为新的当前目标位置CT的可到达的目标点4。该中间目标也被添加到第四集合的目标列表中。

对于第一粒子,路线系统检查411冲突对象是否阻止交通工具从当前位置CL=SL移动到直接连接SL-1上的当前目标位置CT=1。没有找到冲突对象。因此,将SL-1作为无冲突路径段保存到图中,并且点1变成新的当前位置CL=1,并且原始接收到的目标位置变成当前目标位置CT=TL。中间新目标位置点1(现在是当前位置)从目标列表中去除。换句话说,目标列表对应于后进先出队列,其中最后添加的目标一旦被相应的粒子到达,就被首先去除。

步骤412与关于CS=1、CT=TL的步骤403、404的迭代对应。换句话说,路线系统检查412直接连接1-TL以识别与直接连接相交并因此表示针对由第一粒子表示的交通工具的障碍物的冲突对象。CO2被识别为冲突对象的多边形表示。局部极值2、4被识别为可到达的局部极值。在一个实施例中,第一粒子将被克隆成两个另外的粒子,其中一个从点1到点2,另一个从点1到点4。然而,在该示例中,如下文进一步详细解释地,实现排除路径选项1-4的性能过滤器。因此,当寻找最短路径时,经由点1(SL-1-4)从SL到点4的选项比直接连接SL-4更不利。通过应用性能过滤器来排除不太有前途的路线选项,可以在即将到来的迭代中节省宝贵的计算时间和计算资源,因为每个粒子否则会触发完整的迭代周期。因此,第一粒子的集合被更新,因为点2被添加到目标列表中,并且点2也被设置为新的当前目标位置。

在第一粒子的下一次迭代中,路线系统针对潜在的冲突对象检查413当前位置CL=1与当前目标位置CT=2之间的直接连接1-2。当没有识别进一步的冲突对象时,无冲突路径段1-2被保存到图300中,并且通过将点2分配给当前位置(即,交通工具的第一粒子表示现在已经移动到点2)、从目标列表中删除点2并用原始接收到的目标位置TL替换当前目标位置,因此,第一粒子的集合被更新。从目标列表中去除点2对已保存的图段1-2没有影响。它仅仅意味着点2从中间目标被去除,因为在当前迭代步骤中,交通工具表示已经到达这个点。

在第一粒子的下一次迭代中,路线系统针对潜在的冲突对象检查414直接连接2-TL。没有识别出进一步的冲突对象。结果,无冲突路径段2-TL被保存到曲线图300中。第一粒子移动到当前目标位置TL,并且相应的集合被更新,因为当前位置CL变成原始接收到的目标位置TL。这表明第一粒子已经到达其最终目的地,并且不需要进一步的迭代。第一无冲突路径SL-1-2-TL已由路线系统确定。

现在转向在步骤420中为其生成第三集合的第二粒子,针对直接连接SL-3上的潜在冲突对象的以下检查421实际上导致发现另一个冲突对象的多边形表示CO3,该另一冲突对象是去往所谓的可到达的点3的途中的障碍物。也就是说,在第二粒子的步骤403、404的第一次迭代中,路线系统发现第二粒子在不与CO3冲突的情况下不能直接到达点3,并将点6和点7识别为CO3的局部极值以绕过CO3。在这个阶段,两个可到达的极值点是有效的选项(不被基于性能的过滤器排除),并且第二粒子被克隆成两个粒子p2a、p2b。现在针对粒子2a、2b对步骤402到404进行迭代,直到最终各个当前位置到达最终目标位置TL。这可以包括在从特定当前位置多个路线选项有效的情况下各个粒子的进一步克隆步骤。示例流程图示出在克隆之后的第一次迭代期间对粒子2a、2b生成422、424的两个集合。对于粒子2a,将可到达的局部极值点6添加到相应的目标列表,并设置新的当前目标位置。对于粒子2b,将可到达的局部极值点7添加到相应的目标列表,并设置为新的当前目标位置。直接连接SL-6和SL-7都是无冲突的路径段,因此被保存到图300中。因此,相应的集合被更新423、425,这是因为粒子2a的集合将点6设置为用于到达当前目标位置点3的当前位置,而粒子2b的集合将点7设置为用于到达当前目标位置点3的当前位置。因此,粒子2a、2b的新的当前位置分别被设置为点6和点7,并从相应的目标列表中去除中间目标6、7。针对直接连接6-3和7-3上的冲突对象的以下检查显示两个连接都是无冲突路径段。它们都可以被保存到图300中。然而,在该示例中,示出了基于性能的过滤器的另一个示例。每个粒子可以具有允许粒子计算参数的性质,例如,其必须到达当前位置的无冲突路径段的累积距离、或者到达当前位置所花费的时间。这些参数可以由相应的粒子公布,使得可以通知其他粒子(例如,所有粒子或粒子组)结果,并将竞争粒子的参数与其自己的参数进行比较。在该示例中,使用基于性能的过滤器,其允许比较累积距离参数。在粒子2a、2b已到达点3的迭代之后,粒子2a认识到粒子2b的累积距离SL-7-3比其自身距离SL-6-3短。如果路径系统被配置用于路径距离优化,则粒子2a认识到它不能与粒子2b竞争,因此不再存在。接下来的迭代426将仅针对现在具有点3作为其当前位置的粒子2b执行,并且原始接收到的目标位置TL变成新的当前目标位置。从其开始,粒子2b执行在粒子1已到达点1之后的对应迭代。然而,粒子2b没有考虑经由点4的路线选项,因为在该实施例中,粒子2b记住(例如通过访问之前进行的路线决策的决策历史)了当检查从位置SL到位置TL的步骤时,点4被识别为可到达的局部极值。因此,粒子2b将不能与从位置SL出发去往点4的粒子竞争,因为它必须先绕道到达点3。这与第一粒子排除路线选项SL1-4所使用的逻辑相同。当粒子3b(参见下面的粒子3的讨论)已经到达点7并且已经执行了到达点4的冲突检查时,这已经是已知的。也就是说,粒子2b在这个阶段已经知道它不能经由包括路径段3-4的路线选项优于粒子3b。因此,在该示例中,对应的基于性能的过滤器阻止在当前位置点3处克隆粒子2b,而是其继续去往点2。在该示例中,一旦粒子2b到达点2,粒子2b就认识到粒子1发现了到点2的较短路线并且不再存在。

现在转到在步骤430中为其生成第四集合的第三粒子p3,针对直接连接SL-4上的潜在冲突对象的以下检查431实际上导致发现进一步冲突对象的多边形表示CO3,所述进一步冲突对象是去往所谓的可到达的点4的途中的障碍物。也就是说,在第三粒子的步骤403、404的第一次迭代中,路线系统发现第三粒子不能在不与CO3冲突的情况下直接到达点4,并且再次将点6和点7识别为CO3的局部极值以绕过CO3。在这个阶段,两个可到达的极值点是有效的选项(不被基于性能的过滤器排除),并且第三粒子被克隆成两个粒子p3a、p3b。现在针对粒子3a、3b对步骤402到404进行迭代,直到最终各个当前位置到达最终目标位置TL。这可以包括在从特定当前位置多个路线选项有效的情况下各个粒子的进一步克隆步骤。示例流程图示出在克隆之后的第一次迭代期间,针对粒子3a、3b生成432、434的两个集合。对于粒子3a,将可到达的局部极值点6添加到相应的目标列表中,并设置为新的当前目标位置。对于粒子3b,将可到达的局部极值点7添加到相应的目标列表中,并设置新的当前目标位置。直接连接SL-6和SL-7是无冲突的路径段,因此保存到图300。因此,相应的集合被更新433、435,这是因为粒子3a的集合将点6设置为用于到达当前目标位置点4的当前位置,而粒子3b的集合将点7设置为用于到达当前目标位置点4的当前位置。因此,粒子3a、3b的新的当前位置分别被设置为点6和点7,并从相应的目标列表去除中间目标6、7。针对直接连接6-4和7-4上的冲突对象的以下检查显示两个连接都是无冲突的路径段。它们都可保存到图300。然而,在该示例中,与粒子2、2b类似,基于最短距离性能的过滤器阻止粒子3a进一步移动。粒子3a认识到粒子3b的SL-7-4比SL-6-4短。由于这个原因,它一旦到达中间目标点4就不再存在,并且仅对粒子3b执行进一步的迭代。

现在可以针对粒子2b和3b完成迭代。无冲突路径确定的最终结果包括无冲突路径选项SL-7-4-5-TL、SL-7-3-2-TL和SL1-1-TL。然后将这些选项提供给路径选择器,用于根据相应的选择标准来选择特定的无冲突路径。

图5是用于冲突对象的局部极值识别的可并行化的计算机实现的方法600的简化流程图。该方法可以在之前公开的用于无冲突路径计算的方法的上下文中使用。它也可以作为独立的方法,独立于前面公开的实施例使用,例如,在交通工具只需要绕过一个冲突对象以从当前位置移动到当前目标的情况下。当方法600作为用于冲突对象的局部极值识别的独立的可并行的计算机实现的方法执行时,该方法接收交通工具表示的当前位置、当前目标位置(交通工具希望去的地点)以及要绕开的冲突对象的多边形表示作为输入参数。

将在图6的示例的上下文中描述图5,图6示出了在冲突对象的简化多边形表示的示例中的并行化的局部极值确定。在该示例中,示例冲突对象的多边形表示由节点n1至n21定义。要注意的是,表示真实世界的冲突对象(例如岛屿或大陆的沿海地区)的典型多边形可以包括数百万个节点。

由点A、B定义的直线与特定交通工具表示的当前位置A和当前目标(在B的方向上)之间的直接连接对应。在该示例中,直接连接不是无冲突的路径段,而是在点a、b处与冲突对象表示n1至n21相交。在这个示例中,当前位置A位于仅在节点n5和n16之间提供出口的环形冲突对象(例如环礁)的中间。因此,直接连接往相反方向的虚拟延伸(虚线)导致进一步的相交点d、c。通过虚拟延伸,极值识别器可以确定610具有用于逆时针(CCW)地绕过冲突对象的向左偏离角的第一组多边形段(由节点n9至n21定义),并且进一步确定610具有用于顺时针(CW)地绕过冲突对象的向右偏离角的第二组多边形段(由节点n1至n8定义)。

对于具有向右偏离角的每个被确定的多边形段,极值识别器独立地标记620具有偏离角的较高值的节点。例如,对于段n8-n7,标记n7。对于段n6-n5,标记n5。对于段n5-n4,标记n5,依此类推。对于包含冲突点的每个多边形段(参见图6的示例中的点a、b、c、d),标记两个节点。例如,多边形段n21-n1包含冲突点a,并标记了n21和n1两个节点。这相当于将多边形段与冲突点分开,然后应用与没有冲突点的每个其他多边形段相同的标记逻辑。例如,多边形段n21-n1可以分成n21-a和a-n1,然后,对于这两个段,并遵循上述的标记逻辑,n21和n1都将被极值识别器恰好标记一次。由于各段没有将影响标记的相互依赖性,所以标记可以完全并行化。也就是说,任何时候任何一个可用的处理单元都可以标记任何段,而不会对最终结果产生任何影响。这允许充分利用并行处理设备。相同的标记过程适用于向左的偏离角。也就是说,对于具有向左的偏离角的每个被确定的多边形段,极值识别器独立地标记具有较高偏离角值的节点。

标记的结果是包括具有接收到的标记的多边形表示的所有节点的数据结构。所有节点接收零个、一个或两个标记。如果节点在两个局部极值上相邻,则会收到零标记。例如,在图6中,节点n4接收零标记,因为其邻居n3和n5具有比n4更高的偏离角值。此外,节点不能接收多于两个标记,因为它只有两个邻居。换句话说,节点是恰好两个多边形段的一部分,因此可以最多接收两个标记。此外,只有局部极值接收恰好两个标记,并且所有局部极值都接收两个标记。

极值识别器可以将在标记的数据结构中具有两个标记的这些节点识别630为特定多边形表示的局部极值。也就是说,作为两个多边形段的一部分并且具有比这两个多边形段中的其它节点更高的偏离值的每个节点表示这样的局部极值。

最后,极值识别器通过滤出由特定多边形表示对于当前位置隐藏的局部极值来获得640可到达节点。在该示例中,该过滤操作的结果提供了作为绕过冲突对象的潜在可到达节点的节点n3、n5和n16。

然而,当到达局部极值n3时,交通工具仍然需要移动到n5以最终绕过冲突对象。为了识别允许交通工具绕过冲突对象以到达冲突对象之外的进一步目标的可到达节点的子集,极值识别器可以并行使用用于标记节点的多个处理单元,将具有向右和向左偏离角的最高值的可到达节点(用n5和n16相交的箭头表示)识别650为特定多边形表示的全局极值。该过滤操作是对可到达节点的减小的子集(可到达的局部极值)执行的,与现有技术的全局极值确定方法相比,这导致实质的性能增益,同时主存储器消耗被限制在可到达的局部极值节点的子集。因此,路径段A-n5和A-n16可以作为无冲突路径段保存到图数据结构中。

图6示出了基于相对于由图示的方向上的从位置A之间的直接连接的向左或向右偏离角的、多边形表示上的局部极值来识别节点的过程。在之前的步骤中,冲突对象被识别为在从A到B的直接连接上。然后,识别与直接连接的延伸相交的多边形上的所有冲突点a、b、c、d。当去往B时,从A到达的第一个冲突点是a。在多边形段按照升序排列之后,下一个冲突点是b,并且a和b之间的所有多边形段以升序被识别为必须通过向右转(顺时针角度CW)而绕过的一组多边形段。剩余的多边形段被识别为必须通过向左转(逆时针角度CCW)而绕过的一组多边形段。对于第一组(CW)中的每个多边形段,具有较大偏离角的相应节点被标记。在示例中,对于段n1-n2,n2具有较大的偏离角并被标记。对于具有冲突点(例如n21-n1)的多边形段,两个节点都被标记。通过对一个组中的每个多边形段标记相应节点,局部极值可以被找到为具有恰好2个标记的节点。在示例中,n3是局部极值,因为n3比n2和n4具有更大的偏离角,因此对于段n2-n3和n3-n4都标记了两次。遵循这个原则,n5也被识别为局部极值。比较n3和n5,n5具有较大的偏离角,因此是全局极值。对于第二组(CCW),可以遵循相同的过程以将n16识别为局部极值。由于该组只存在一个局部极值,因此它自然也是全局极值。为了进一步改进标记过程的性能,对于第二组,升序排列的冲突点b和c之间以及d和a之间的所有多边形段可以忽略,因为冲突点c和d的存在意味着全局极值将具有大于180度的向左偏离角。

图7是示出可以与这里描述的技术一起使用的通用计算机设备900和通用移动计算机设备950的示例的图。计算设备900旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机以及其他适当的计算机。通用计算机设备900可以对应于图1的计算机系统100。计算设备950旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话、驾驶辅助系统或交通工具(例如交通工具401、402、403,参见图1)的板上计算机、和其他类似的计算设备。例如,计算设备950可以用作用户与计算设备900交互的前端。这里示出的组件、它们的连接和关系,以及它们的功能仅意味着示例性的,并不意味着限制本文件中描述和/或要求保护的发明的实现。

计算设备900包括处理器902、存储器904、存储设备906、连接到存储器904和高速扩展端口910的高速接口908、以及连接到低速总线914的低速接口912、以及存储设备906。可选地,它可以包括一个或多个图形处理单元(GPU)。组件902、904、906、908、910和912中的每一个使用各种总线互连,并且可以适当地安装在共同的主板上或以其他方式安装。处理器902可处理用于在计算设备900内执行的指令,包括存储在存储器904中或存储设备906上的指令,以在外部输入/输出设备(例如耦合到高速接口908的显示器916的显示器916)上显示GUI的图形信息。在其他实现方式中,可以适当地使用多个处理器和/或多个总线以及多个存储器和多种类型的存储器。而且,可以连接多个计算设备900,其中每个设备提供必要操作的一部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。

存储器904在计算设备900内存储信息。在一个实现方式中,存储器904是一个或多个易失性存储器单元。在另一个实现方式中,存储器904是一个或多个非易失性存储器单元。存储器904也可以是另一种形式的计算机可读介质,例如磁盘或光盘。

存储设备906能够为计算设备900提供大容量存储。在一个实现方式中,存储设备906可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储器设备、或设备阵列,包括存储区域网络中的设备或其他配置。计算机程序产品可以有形地体现在信息载体中。计算机程序产品还可以包含在被执行时执行一个或多个方法的指令,例如上面描述的那些。信息载体是计算机或机器可读介质,诸如存储器904、存储设备906或处理器902上的存储器。

高速控制器908管理计算设备900的带宽密集型操作,而低速控制器912管理较低带宽密集型操作。这种功能分配只是示例性的。在一个实现方式中,高速控制器908耦合到存储器904、显示器916(例如,通过图形处理器或加速器)以及可以接受各种扩展卡(未示出)的高速扩展端口910。在实现方式中,低速控制器912耦合到存储设备906和低速扩展端口914。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、指向设备、扫描仪或诸如交换机或路由器的联网设备。

如图所示,计算设备900可以以多种不同的形式来实现。例如,它可以被实现为标准服务器920,或者在一组这样的服务器中多次实现。它也可以作为机架服务器系统924的一部分来实现。另外,其可以在诸如膝上型计算机922的个人计算机中实现。替代地,来自计算设备900的组件可以与诸如设备950的移动设备(未示出)中的其他组件组合。这样的设备中的每一个可以包含计算设备900、950中的一个或多个,并且整个系统可以由彼此通信的多个计算设备900、950组成。

计算设备950包括处理器952、存储器964、诸如显示器954的输入/输出设备、通信接口966和收发器968等等。设备950还可以提供有存储设备,诸如微型驱动器或其他设备,以提供额外的存储。组件950、952、964、954、966和968中的每一个使用各种总线互连,并且若干组件可以安装在共同的母板上或以其他方式适当地安装。

处理器952可以执行计算设备950内的指令,包括存储在存储器964中的指令。处理器可以被实现为包括分离的和多个模拟和数字处理器的芯片的芯片组。处理器可以例如提供设备950的其他组件的协调,诸如用户接口的控制、设备950运行的应用以及设备950的无线通信。

处理器952可以通过耦合到显示器954的控制接口958和显示器接口956与用户通信。显示器954可以是例如TFT LCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器或其他适当的显示技术。显示接口956可以包括用于驱动显示器954以向用户呈现图形和其他信息的适当电路。控制接口958可以接收来自用户的命令并将其转换以提交给处理器952。另外,可以提供与处理器952通信的外部接口962,以便实现设备950与其他设备的近距离通信。外部接口962可以例如在一些实现方式中提供有线通信,或者在其他实现方式中提供无线通信,并且还可以使用多个接口。

存储器964存储计算设备950内的信息。存储器964可以被实现为一个或多个计算机可读介质、一个或多个易失性存储器单元、或一个或多个非易失性存储器单元。扩展存储器984也可以被提供并通过扩展接口982连接到设备950,扩展接口982可以包括例如SIMM(单列直插式存储器模块)卡接口。这样的扩展存储器984可以为设备950提供额外的存储空间,或者也可以存储设备950的应用或其他信息。具体而言,扩展存储器984可以包括执行或补充上述处理的指令,并且也可以包括安全信息。因此,例如,扩展存储器984可以充当设备950的安全模块,并且可以用允许安全使用设备950的指令来编程。另外,可以经由SIMM卡提供安全应用以及附加信息,例如将识别信息以不可破解的方式放置在SIMM卡上。

如下所述,存储器可以包括例如闪存和/或NVRAM存储器。在一个实现方式中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含在被执行时执行一个或多个方法的指令,例如上面描述的那些。信息载体是可以例如通过收发器968或外部接口962接收的计算机或机器可读介质,诸如存储器964、扩展存储器984或处理器952上的存储器。

设备950可以通过通信接口966进行无线通信,通信接口966在必要时可以包括数字信号处理电路。通信接口966可以在诸如GSM语音呼叫、SMS、EMS或MMS消息收发、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等的各种模式或协议下提供通信。这样的通信可以例如通过射频收发器968发生。另外,例如使用蓝牙、WiFi或其他这样的收发器(未示出)可以发生短距离通信。另外,GPS(全球定位系统)接收器模块980可以向设备950提供附加的导航和位置相关的无线数据,其可以由运行在设备850上的应用适当地使用。

设备950还可以使用音频编解码器960可听地通信,音频编解码器960可以从用户接收口头信息并将其转换为可用的数字信息。音频编解码器960同样可以例如通过扬声器(例如在设备950的手机中)为用户产生可听声音。这种声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等等)并且还可以包括由在设备950上操作的应用产生的声音。

如图所示,计算设备950可以以多种不同的形式来实现。例如,其可以被实现为蜂窝电话980。其也可以被实现为智能电话982、个人数字助理或其他类似的移动设备的一部分。

可以在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现这里描述的系统和技术的各种实现方式。这些各种实现方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实现方式,所述可编程系统包括:至少一个可编程处理器,其可以是专用或通用的,耦合以从存储系统接收数据和指令并将数据以及指令发送到存储系统;至少一个输入设备;和至少一个输出设备。

这些计算机程序(也称为程序、软件、软件应用程序或代码)包括用于可编程处理器的机器指令,并且可以以高级过程和/或面向对象的编程语言和/或汇编/机器语言实现。如本文所使用的,术语“机器可读介质”和“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。

为了提供与用户的交互,这里描述的系统和技术可以在计算机上实现,所述计算机具有:显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器),用于向用户显示信息;以及键盘和指点设备(例如,鼠标或轨迹球),用户可以通过其向计算机提供输入。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如视觉反馈、听觉反馈或触觉反馈);并且可以以包括声音、语音或触觉输入的任何形式接收来自用户的输入。

这里描述的系统和技术可以在这样的计算设备中实现,所述计算设备包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如应用服务器),或者包括前端组件(例如具有图形用户界面或Web浏览器的客户端计算机,用户可以通过其与本文描述的系统和技术的实现方式交互),或者这样的后端、中间件或前端组件的任意组合。系统的组件可以通过任何形式或介质的数字数据通信(例如通信网络)来互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和因特网。

计算设备可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是通过运行在各个计算机上的计算机程序产生的,并且彼此具有客户端-服务器关系。

已经描述了多个实施例。然而,应当理解,在不背离本发明的精神和范围的情况下可以进行各种修改。

另外,附图中描绘的逻辑流程不需要所示出的特定顺序或次序来实现期望的结果。另外,可以从所描述的流程提供其他步骤,或者可以消除步骤,并且可以将其他组件添加到所描述的系统或从所描述的系统去除。相应地,其他实施例在所附权利要求的范围内。

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