在导航系统中检测和模拟运动事件的制作方法

文档序号:18218441发布日期:2019-07-19 22:49阅读:321来源:国知局
在导航系统中检测和模拟运动事件的制作方法

本发明涉及数据处理系统,更具体地,涉及导航系统。

许多汽车驾驶员发现导航系统比传统地图更方便使用,并且导航系统已经在很大程度上取代了传统地图的使用。导航系统代表了许多不同技术的融合,包括数据库技术和全球定位系统(gps)。导航系统通常使用道路数据库,其中街道名称或数字和街道地址被编码为地理坐标。导航系统可以接收特定汽车的gps坐标,并且使用道路数据库确定驾驶员应该从当前位置导航到达期望目的地的方向。可以例如经由专用导航单元、智能电话或平板电脑向用户呈现方向,以将用户引导到期望的目的地。在一些情况下,可以将方向提供给自主车辆,并且自主车辆可以遵循方向以到达期望的目的地。

当前,导航系统有时通知驾驶员可能导致某些道路上的行程延误的交通拥堵。然而,这些当前系统不考虑事件的趋势,并且不知道哪些车辆实际上将受到交通拥堵的影响。例如,如果交通拥堵开始减少,那么仍远离交通拥堵的车辆可能不会受到交通拥堵的影响。尽管如此,这些车辆的驾驶员可以选择其他路线以避免交通拥堵,即使他们不需要这样做;当车辆到达发生交通拥堵的位置时,交通拥堵可能会清除。



技术实现要素:

一种方法包括接收至少一个移动事件的事件数据。根据事件数据,可以生成移动事件的移动事件数据。移动事件数据可以指示移动事件的趋势。该方法还可以包括将移动事件数据存储到功能数据结构。该方法还可以包括,对于多个车辆中的每一个,访问车辆的历史行程模式数据,并且基于历史行程模式数据,确定车辆将受到移动事件影响的概率。该方法还可以包括,对于多个车辆中的每一个,使用处理器基于至少部分地基于车辆的历史模式数据和移动事件的趋势来生成移动事件模拟,移动事件模拟预测多个未来时间间隔的每一个的车辆的未来位置和移动事件的未来位置。该方法还可以包括,对于多个车辆中的每一个,基于移动事件模拟,如果车辆行驶于与移动事件相交的路线,则确定车辆何时将受到至少一个移动事件的影响。该方法还可以包括,对于多个车辆中的每一个,响应于确定车辆将受到移动事件影响的概率超过阈值,向与车辆相关联的客户端设备通知指示至少一个移动事件以及车辆将受到至少一个移动事件影响的时间的通知。

因此,不仅可以向车辆的驾驶员通知事件,而且可以通知驾驶员实际上何时受到移动事件的影响。在这方面,可以利用每个车辆的历史模式数据为每个车辆生成时间-距离数据阵列,并且对于每个车辆,可以利用移动事件的趋势处理时间-距离数据阵列以生成移动事件模拟。时间-距离数据阵列可以指示车辆行进各种距离的时间量。车辆行进各种距离的时间量可以至少部分地基于位于车辆和移动事件之间的至少一个其他事件。

在一种布置中,生成移动事件的移动事件数据可以包括确定事件数据的时间戳是否在现有事件数据的阈值时间段内,并且响应于确定事件数据的时间戳在与移动事件有关的现有事件数据的阈值时间段内,在事件数据结构中创建事件数据和现有事件数据的成对组合。这有助于识别移动事件的趋势。

一种系统包括被编程为启动可执行操作的处理器。可执行操作包括接收至少一个移动事件的事件数据。根据事件数据,可以生成移动事件的移动事件数据。移动事件数据可以指示移动事件的趋势。可执行操作还可以包括将移动事件数据存储到功能数据结构。对于多个车辆中的每一个,可执行操作还可以包括访问车辆的历史行程模式数据,并且基于历史行程模式数据,确定车辆将受到移动事件影响的概率。对于多个车辆中的每一个,可执行操作还可以包括至少部分地基于车辆的历史模式数据和移动事件的趋势生成移动事件模拟,移动事件模拟预测多个未来时间间隔的每一个的车辆的未来位置以及移动事件的未来位置。对于多个车辆中的每一个,可执行操作还可以包括基于移动事件模拟,如果车辆行驶于与移动事件相交的路线,则确定车辆何时将受到至少一个移动事件的影响。对于多个车辆中的每一个,可执行操作还可以包括:响应于确定车辆将受到移动事件影响的概率超过阈值,向与车辆相关联的客户端设备通信指示至少一个移动事件和车辆将受到至少一个移动事件影响的时间的通知。

一种计算机程序产品包括计算机可读存储介质,其上存储有程序代码。程序代码可由处理器执行以执行方法。该方法包括由处理器接收至少一个移动事件的事件数据。根据事件数据,处理器可以生成移动事件的移动事件数据。移动事件数据可以指示移动事件的趋势。该方法还可以包括由处理器将移动事件数据存储到功能数据结构。该方法还可以包括,对于多个车辆中的每一个,由处理器访问车辆的历史行程模式数据,并且基于历史行程模式数据,确定车辆将受移动事件影响的概率。该方法还可以包括,对于多个车辆中的每一个,由处理器基于至少部分地基于车辆的历史模式数据和移动事件的趋势来生成移动事件模拟,移动事件模拟预测多个未来时间间隔的每一个的车辆的未来位置以及移动事件的未来位置。该方法还可以包括,对于多个车辆中的每一个,基于移动事件模拟,如果车辆行驶于与移动事件相交的路线,则由处理器确定何时车辆将受到至少一个移动事件的影响。该方法还可以包括,对于多个车辆中的每一个,响应于确定车辆将受到移动事件影响的概率超过阈值,由处理器向与车辆相关联的客户端设备通信指示至少一个移动事件和车辆将受到至少一个移动事件影响的时间的通知。

附图说明

图1是示出网络数据处理环境的示例的框图。

图2示出了指示事件和对应原因代码的示例的表。

图3示出了指示由导航服务接收的事件数据的示例的表。

图4示出了示出了指示存储到功能数据结构的事件数据的示例的表。

图5是示出在功能数据结构中维护事件数据的方法的示例的流程图。

图6是描绘受事件影响的车辆行驶的道路网络的示例的图。

图7示出了指示每个车辆将受事件影响的概率的示例以及车辆将受影响的时间和地点的示例。

图8是示出生成移动事件模拟以确定车辆何时将受移动事件影响的方法的示例的流程图。

图9是示出导航服务器110的示例架构的框图。

具体实施方式

本公开涉及数据处理系统,更具体地,涉及导航系统。根据本文公开的发明布置,导航服务可以识别事件,包括移动事件。对于每个移动事件,导航服务可以识别移动事件的趋势,例如事件正在移动的航向和速度。导航服务还可以处理多个车辆和/或驾驶员的历史行程模式数据。基于历史行程模式数据,导航服务可以为每个车辆确定一个该车辆的行驶将受到移动事件影响的概率。此外,基于移动事件和历史行程模式数据的趋势,以及移动事件和车辆之间可能存在的其他事件,导航服务可以确定每个车辆何时和/或何处将受移动事件的影响。例如,导航服务可以确定每个车辆的行程何时和/或何处将与移动事件的移动相交。对于每个车辆,如果车辆的行驶将受到移动事件影响的概率超过阈值,则导航服务可以向车辆(或车辆的驾驶员)传达指示移动事件以及何时和/或何处车辆将受移动事件影响的通知。

现在将呈现贯穿本文档应用的若干定义。

如本文所定义的,术语“事件”意指影响道路上的交通流量的事件。

如本文所定义的,术语“移动事件”表示随时间移动或扩展的事件。

如本文所定义的,术语“客户端设备”表示包括从服务器请求导航服务的至少一个处理器和存储器的处理系统。客户端设备的示例包括但不限于导航单元或系统、平板计算机、智能电话、个人数字助理、智能手表、智能眼镜等。因为这里定义了术语“客户端设备”,诸如路由器、防火墙、交换机、接入点等的网络基础设施不是客户端设备。

如本文所定义的,术语“响应于”意味着容易响应或响应动作或事件。因此,如果“响应于”第一动作执行第二动作,则在第一动作的发生与第二动作的发生之间存在因果关系,并且术语“响应于”表示这种因果关系。

如本文所定义,术语“计算机可读存储介质”表示包含或存储程序代码以供指令执行系统、装置或设备使用或与其结合使用的存储介质。如这里所定义的,“计算机可读存储介质”本身不是暂时的传播信号。

如本文所定义的,术语“处理器”表示至少一个硬件电路(例如,集成电路),其被配置为执行包含在程序代码中的指令。处理器的示例包括但不限于中央处理单元(cpu)、阵列处理器、矢量处理器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、专用集成电路(asic)、可编程逻辑电路和控制器。

如本文所定义的,术语“实时”表示用户或系统感测到对于特定过程或确定进行充分立即的处理响应性水平,或者使得处理器能够跟上某些外部过程。

如本文所定义的,术语“输出”意味着存储在存储器元件中,写入显示器或其他外围输出设备,发送或发送到另一系统,输出或类似操作。

如本文所定义的,术语“驾驶员”意指驾驶车辆的人(即,人)或被配置为自动驾驶车辆的处理系统。

如本文所定义的,术语“自动地”表示没有用户干预。

图1是示出计算环境100的示例的框图。计算环境100可以包括托管导航服务112的导航服务器110。计算环境100还可以包括多个客户端设备120、122、124、126。导航服务器110和客户端设备120-126中的每一个可以包括至少一个处理器和存储器。客户端设备120-126可以经由至少一个通信网络130通信地链接到导航服务器110。通信网络130是用于提供在计算环境100内连接在一起的各种设备和数据处理系统之间的通信链路的介质。通信网络130可以包括连接,例如有线、无线通信链路或光纤电缆。通信网络130可以实现为或包括各种不同通信技术中的任何一种,例如wan、lan、无线网络、移动网络、虚拟专用网络(vpn)、因特网、公共交换机电话网(pstn)或类似技术。

在操作中,导航服务112可以从一个或多个事件数据源接收事件数据140,并且将事件数据140实时存储到一个或多个功能数据结构,例如存储到一个或多个移动事件数据表142。例如,导航服务112可以从监视影响道路上的行程的交通和事件一个或多个客户端设备120-126、一个或多个物理传感器和/或虚拟传感器,、和/或一个或多个其他系统接收事件数据140。由事件数据140表示的事件的示例可以包括但不限于iso/ts18234-9(tpeg1-tec第9部分)第7.3.2节中指示的事件。图2示出了指示标题“描述”下的事件202的示例以及标题“原因代码”下的对应原因代码204的表200。

图3示出了指示由导航服务112接收的事件数据140的示例的表300。事件数据140可以使用原因代码204指示事件。此外,事件数据140可以包括用于每个事件的事件标识符302、每个事件的时间戳304(例如,指示最初检测到事件的时间戳)、每个事件的位置306(例如,gps坐标、地址、英里标记等)、链接每个事件的标识符308,以及可选地与事件有关的其他数据(未示出)。链接标识符308可以指示受该事件影响的该地图中的特定道路地图(例如,数字化道路地图)和区域(例如,道路)。其他数据的示例包括但不限于指示事件预期持续的时间段、事件预期结束的时间、由事件引起的对交通模式的影响程度等的数据。

图4示出了指示由导航服务112存储到功能数据结构(例如移动事件数据表142)的事件数据的示例的表400。对于所选事件,表400可包括原因代码204、时间戳304、位置数据306和包含在事件数据140中用于事件的链接标识符308。对于所选择的事件,表400还可以包括移动事件标识符402。移动事件标识符402可以是分配给功能数据结构中的事件的标识符。表400还可以包括指示事件趋势的趋势数据404,例如事件正在移动的航向和速度、移动事件的变化强度(例如,增加或减少引用(recitation))等。在图示中,如果在不同时间接收的不同事件数据140中指示相同事件,则导航服务112可以从相应事件数据140中指示的位置确定事件正在移动的航向和速度。表400可选地可以包括与所选事件有关的其他数据(未示出)。

存储到功能数据结构的事件数据不需要包括所接收的所有事件数据140。相反,导航服务112可以选择性地选择存储哪个事件数据140,并选择性地更新功能数据结构中包含的数据。例如,如果导航服务112接收先前未报告事件的事件数据140,则导航服务112可以将该事件数据140添加到移动事件数据表142。然而,如果导航服务112接收到用于在先前报告的事件的事件数据140,导航服务112可选地可以使用新事件数据140来更新移动事件数据表142。

图5是示出在诸如移动事件数据表142之类的功能数据结构中维护事件数据的方法500的示例的流程图。在步骤502,导航服务112可以接收指示事件的事件数据140。在步骤504,导航服务112可以为先前报告的事件数据140选择时间窗口,并且可选地,按时间顺序对该时间窗口中的事件进行排序。

在决策框506处,导航服务112可以确定所接收的事件数据140是否属于由现有事件数据140指示的事件。例如,导航服务112可以确定接收的事件数据140的原因代码204和链接标识符308是否与现有事件数据的原因代码204和链接标识符308匹配。如果是,则导航服务112可以确定所接收的事件数据140属于由现有事件数据140指示的相同事件。

在另一种布置中,导航服务112可以确定在接收的事件数据140中指示的位置306与具有与接收的事件数据140相同的原因代码204的现有事件数据140指示的位置306是否相同。因此,导航服务112可以确定所接收的事件数据140和现有事件数据140属于同一事件。在又一种布置中,导航服务112可以确定在所接收的事件数据140中指示的位置306是否在与具有与之相同的原因代码204的现有事件数据140所指示的位置306相同的道路上并且在阈值距离内。如果是,则这可以指示所接收的事件数据140和现有事件数据140属于同一事件,尽管事件可能已经移动。因此,导航服务112可以确定所接收的事件数据140和现有的事件数据140属于同一事件。可以基于特定原因代码204确定阈值距离。例如,导航服务112可以指定可以移动的各种事件的阈值距离,例如交通拥堵、道路工程、不通、火灾、危险驾驶条件、道路上的动物或人、车辆行驶错误、极端天气条件、能见度降低、降水、鲁莽人员、行驶缓慢的车辆、危险的排队结束、火灾风险、延误时间等。

在图示中,如果接收的事件数据140指示事故的原因代码204,并且接收的事件数据140指示的位置306与由具有相同原因代码的现有事件数据140指示的位置306相同,导航服务112可以确定所接收的事件数据140属于先前事件数据140中指示的相同事故。然而,如果接收的事件数据140指示的位置306与现有事件数据140指示的位置306不相同,导航服务112可以确定所接收的事件数据140指示与先前事件数据140中指示的事故不同的事故。

在另一示例中,假设所接收的事件数据140和现有事件数据都指示用于交通拥堵的原因代码204。如果由接收的事件数据140指示的位置306与现有事件数据140中指示的位置306不相同,但是相应的位置306在彼此的阈值距离内,则这可以指示接收到的事件数据140和现有事件数据140都属于相同的交通拥堵。因此,导航服务112可以确定所接收的事件数据140和现有事件数据140属于同一事件,即使该事件可能已经随时间移动。

如果接收的事件数据140不属于现有事件数据140指示的事件,则在步骤508,导航服务112可以将接收的事件数据添加到移动事件数据表142。如果接收的事件数据140确实属于由现有事件数据140指示的事件,该过程可以进行到决策框510。

在决策框510处,导航服务112可以确定所接收的事件数据140的时间戳是否在现有事件数据140的属于相同事件的阈值时间段内(例如,与接收的事件数据140具有相同的原因代码204和链接标识符308)。如果不是,则在步骤512,导航服务112可以忽略所接收的事件数据140。在另一种布置中,导航服务112可以从移动事件数据表142中删除与同一事件有关的现有事件数据140并将所接收的事件数据140添加到移动事件数据表142。

如果接收的事件数据140的时间戳在位于与接收的事件数据140相同的事件的现有事件数据140的阈值时段内,则在步骤514,导航服务112可以创建接收的事件数据140和现有的事件数据140的成对组合。例如,导航服务112可以在移动事件数据表142中更新现有事件数据140的记录。这种更新可以包括将记录中的时间戳更新为接收的事件数据140中指示的时间戳304,并且将记录中指示的位置数据306更新为接收的事件数据140中指示的位置。此外,基于现有的事件数据140指示的位置306和时间戳304和接收的事件数据140指示的位置306和时间戳304,导航服务112可以确定事件的趋势404,并将确定的趋势404添加到记录中。在图示中,如果接收的事件数据140指示事件已经从现有事件数据140中指示的位置移动,则导航服务112可以基于相应位置306之间的距离和相应时间戳304之间的差异来确定该移动,并将移动的航向和速度指示作为趋势404。

无论步骤508、512、514是否在处理接收的事件数据140时,导航服务112都可以针对所接收的每个新事件数据140重复方法500。此外,导航服务112可以至少在等于用于步骤504的时间窗口的阈值时段维持每个事件数据140的日志,以便响应于接收到新事件数据140来执行决策步骤506和510。导航服务112可以例如当导航服务112接收数据时实时地执行方法500中描述的过程。

再次参见图1,导航服务112可以接收多个车辆中每个车辆的历史行程模式数据160。导航服务112可以从客户端设备120-126、从导航服务112维护的一个或多个功能数据结构(例如,数据库表)或者从这样的数据的一个或多个其他源接收历史行程模式数据160。历史行程模式数据160可以包括与驾驶模式有关的数据,例如行驶的路线、转弯、沿着各种道路行驶的速度、在各个交叉路口花费的时间等。

每个车辆的历史行程模式数据160可以包括车辆自身的历史行程数据和/或车辆驾驶员的历史行程数据。例如,如果导航服务112具有特定车辆的知识,而不知道车辆的实际驾驶员,则导航服务112可以接收该车辆的历史行程模式数据160作为历史行程模式数据160。然而,如果导航服务112具有驾驶车辆的特定驾驶员的知识,导航服务112可以接收该驾驶员的历史行程模式数据160作为车辆的历史行程模式数据160。

例如,如果历史行程模式数据160基于由与车辆集成的导航系统提供的gps数据,但是多人驾驶车辆,则历史行程模式数据160可以不基于任何特定人的驾驶模式。相反,它可以基于驾驶车辆的所有人的驾驶模式。然而,如果导航服务器110或车辆的导航系统在车辆行驶时识别驾驶车辆的每个人,则历史行程模式数据160可以基于特定人在驾驶该车辆时的驾驶模式和/或特定人在驾驶一辆或多辆其他车辆时的驾驶模式。

在另一示例中,如果历史行程模式数据160基于由驾驶员的移动设备(例如,智能电话或平板计算机)提供的gps数据,则历史行程模式数据160可以基于该特定gps数据。此外,驾驶员可以驾驶不同的车辆。如果历史行程数据是从驾驶员的移动设备获得的,则该历史行程数据可以用作由该驾驶员驾驶的任何车辆的历史行程模式数据160,而不管导航服务器110是否知道特定车辆。换句话说,导航服务器110可以基于分配给车辆驾驶员的用户标识符或分配给驾驶员的移动设备的标识符来识别车辆。

基于历史行程模式数据160,导航服务112可以为每个当前活动事件生成每个车辆(或驾驶员)的时间-距离数据阵列150。时间-距离数据阵列150可指示每个车辆可行进的目的地,以及车辆在行进到这些目的地时(例如在各个位置之间)行进各种距离的时间量。此外,导航服务112可以识别车辆可能行进的可能受事件影响的行驶路线。例如,时间距离图可以在距事件的不同距离处指示每个车辆从这些距离开始到达该事件所花费的平均时间量。在图示中,导航服务112可以访问覆盖距事件的阈值距离内的区域的道路地图。导航服务112可以针对每个节点道路节点(例如,交叉路口)确定车辆从该节点行进到该事件的最常用路线,并确定车辆从该节点行驶到事件的位置的平均时间。当确定平均时间时,导航服务112可以处理指示由车辆(或者车辆的特定驾驶员)沿着道路行驶的平均速度、车辆在各个交叉路口停止的平均持续时间、交通信号等的输入参数。此外,当确定平均时间时,导航服务112还可以考虑可能位于车辆和正在为其生成时间-距离数据阵列150的事件之间的其他事件。

基于历史行程模式数据160和时间-距离数据阵列150,导航服务112可以对于每个事件生成方向概率数据170,指示针对每个车辆,该车辆将受事件影响的概率,以及何时和/何处该车辆将受到事件影响,如下面参考图6和7描述的示例所示。用于特定车辆的方向概率数据170可以基于车辆的特定驾驶员的驾驶模式或者基于驾驶车辆的多个驾驶员的驾驶模式。

图6是描绘受事件影响的车辆610、612、614行驶的道路网络600的示例的图。图7示出了指示每个车辆610、612、614将受事件影响的概率以及车辆将受影响的时间和地点的示例。

参加图6,道路网络600可包括由节点(例如,交叉点)n1、n2、n3、n4、n5连接的道路r1、r2、r3、r4、r5、r6。在该示例中,假设道路r3和r6在节点n2处合并,并且车辆可以从道路r3和r6前进到道路r1或道路r2。而且,假设车辆可以在节点n3处从道路r5前进到道路r3或道路r4。此外,假设在道路r1上存在移动事件me,并且事件沿着道路r1以5km/h的速度朝向节点n2移动。

导航服务112可以在道路网络的各个节点n1-n5处确定特定车辆将前进到特定道路r1-r5的概率。此外,基于那些概率,导航服务112可以为每个车辆610、612、614确定车辆将在受事件620影响的道路r1上行驶的概率、车辆到达事件620的时间、车辆到达事件620的位置。在事件是移动事件(即,随时间移动)的情况下,车辆到达事件620的位置和时间将是相互依赖的。

对于每个车辆610、612、614,导航服务112可以分析该车辆的历史行程模式数据160,以确定车辆将在特定节点n1-n5处前进到特定道路r1-r5的概率,并且在图7的表700或其他合适的功能数据结构中存储概率数据。在图示中,当车辆610在朝向节点n3的道路r5上行驶时,导航服务112可以确定在节点n3处车辆610将前进到道路r3上的概率710以及车辆610将前进到道路r4上的概率712。此外,假设车辆610将前进到道路r3,导航服务112可以确定在节点n2处车辆610将前进到道路r1上的概率714以及车辆610将前进到道路r2上的概率716。因为移动事件620影响道路r1,所以如果车辆610前进到道路r1,则车辆610可能受到事件620的影响。因此,可以通过确定从车辆610的当前位置车辆将前进到道路r1的概率来确定车辆610将受事件620影响的概率718。因此,导航服务112可以基于概率710、714确定概率718,例如通过将概率714乘以概率710。

在该示例中,车辆612当前正在道路r3上行驶。导航服务112可以确定在节点n2处车辆612将前进到道路r1上的概率720以及车辆612将前进到道路r2上的概率722。因为移动事件620影响道路r1,所以如果车辆612前进到道路r1,则车辆612可能受到事件620的影响。因此,可以基于从车辆612的当前位置,车辆将导航到道路r1的概率来确定车辆612将受事件620影响的概率726。因此,导航服务112可以基于概率720确定概率726。例如,导航服务112可以将概率726设置为等于概率720。车辆614将受事件影响的概率730可以以类似的方式确定620。导航服务112可以将概率710-730存储为方向概率数据170(图1)。

此时,应当注意,道路网络600不限于上述示例,并且可以包括任意数量的节点和道路。导航服务112可以确定道路车辆可以针对任何数量的节点进行的概率。因此,导航服务112可以基于任何数量的这种节点概率来确定车辆将受到移动事件影响的概率。

如上所述,事件620可以是随时间移动的移动事件。使用时间-距离数据阵列150和方向概率数据170,导航服务112可以通过为每个车辆610-614生成移动事件模拟185来模拟移动事件620对每个车辆的影响。例如,导航服务112可以包括或访问移动事件模拟器180以生成移动事件模拟185。移动事件模拟185可以针对每个车辆610-614预测车辆610-614将何时何地将遇到事件620,以及事件620对车辆610-614的影响。关于事件620的效果,特定车辆610-614的移动事件模拟185可以指示车辆610-614在行进通过或接近事件620时可行进的速度,无论车辆610-614是否由于事件620将停止阈值时间段,和/或车辆610-614经过或通过事件620将需要多长时间。

在图示中,移动事件模拟器180可以识别事件620和车辆610-614中的每一个的当前位置。使用时间-距离数据阵列150,移动事件模拟器180可以确定车辆610-614可以沿着相应的道路r1-r5行进的相应速度。此外,移动事件模拟器180可以使用趋势数据404(图4)来确定事件620的航向和速度。在多个连续的未来时间间隔中的每一个,移动事件模拟器180可以预测车辆610-614的每一个的未来位置和事件620的未来位置。例如,移动事件模拟器180可以从当前时刻以每1秒、5秒、10秒、30秒、1分钟、5分钟、10分钟等等执行这样的预测。基于预测,假设车辆610-614前进到事件620所在的道路r1,移动事件模拟器180可以为车辆610-614的每一个识别车辆610-614的位置预期与事件620的位置相交因而受到时间影响的时间和位置。表700中指示了每个车辆610-614的这种时间740和位置750。时间740和位置750可以与方向概率数据170一起存储,或者存储在另一个合适的功能数据结构中。

车辆610-614中的每一个可以或可以如概率710-716和720-722所示进入或可以不进入各种道路r1-r6,以及前进到道路r1-r6的许多其他车辆610-614可以影响特定车辆610-614与事件620相交的时间。移动事件模拟器180可以为每个车辆610-614处理概率710-716和720-722,以确定每条道路r1-r6上的交通水平的概率。移动事件模拟器180可以利用每个相应车辆610-614的历史行程模式数据160处理这样的概率,以根据至少部分地基于概率710-716和720-722的可能的交通水平模拟各个车辆在相应道路r1-r6上的速度。此外,移动事件模拟器180可以处理这样的概率以确定其他车辆610-614对事件620的可能贡献(例如,交通拥堵)。基于其他车辆610-614对事件620的可能贡献,移动事件模拟器180可以更新趋势404(图4),并使用更新的趋势404来确定时间740和位置750。例如,为了在每个时间间隔确定每个相应车辆610-614的位置,移动事件模拟器180可以确定所有车辆的交通模式。确定这样的交通模式可以包括基于位于相同道路r1-r6上的可能数量的其他车辆310-314、每个车辆310-314的历史行程模式数据160和事件620的趋势404来确定每个道路r1-r6上的每个相应车辆610-614的可能速度。

在一些情况下,事件620可以是不移动的事件,例如交通事故。尽管如此,移动事件模拟器180可以执行上述过程以确定时间740和位置750数据。在这种情况下,可能没有针对该事件的趋势数据404,因此移动事件模拟器180不需要考虑趋势数据404以确定车辆610-614可能受到事件620的影响的时间740和位置750。在其他情况下,一个事件可能触发另一个事件。例如,第一事件可以是交通事故,第二事件可以是交通事故引起的交通拥堵。移动事件模拟器180可以执行上述过程,以通过分析事件及其对交通模式的影响来确定每个车辆610-614的时间740和位置750数据,例如如前所述。

基于概率718、726、730,导航服务112可以针对车辆610-614中的每一个确定这些车辆610-614是否可能受到事件620(或多个事件)的影响。例如,导航服务112可以识别受事件620影响的概率718、726、730超过阈值的车辆610-614,并且在功能数据结构,例如,受影响的车辆/驾驶员数据表190中指示这样的车辆610-614。此外,利用车辆指示,导航服务112可以指示事件的原因代码204以及车辆610-614将受事件影响的相应的概率718、726、730。

响应于识别每个这样的车辆610-614可能受到事件620(或多个事件)的影响,导航服务112可以将车辆通知195传送到与相应车辆610-614相关联的客户端设备120-126(例如,车辆的导航系统、车辆驾驶员的智能电话或平板电脑等)。例如,导航服务112可以将车辆通知195传送到将受事件620影响的概率718、726、230超过阈值(例如,大于0.1、0.2、0.3、0.4、0.5或0.6)的车辆610-614的每个车辆610-614(或驾驶员)。每个车辆通知195可以指示触发通知195的事件620、车辆610-614将受事件620影响的时间740以及车辆610-614将受影响的位置750。基于车辆通知195,车辆610-614的相应驾驶员可以选择在备用路线上行驶以避免事件620。如果驾驶员不选择这样做,则仍然可以向驾驶员通知事件620的发生,并且为由于事件620可能发生的任何延迟做好准备。

在一个非限制性布置中,对于每个车辆610-614,响应于传送相应的车辆通知195,导航服务112可以从受影响的车辆/驾驶员数据表190中移除车辆610-614。因此,车辆610-614不需要接收额外通知195。在另一种布置中,受影响车辆610-614中的每一个可以以周期性间隔接收附加通知195,直到车辆610-614与事件620相交或超过事件620为止。

导航服务112可以针对多个事件迭代上述过程。例如,导航服务112可以处理表示每个车辆610-614上的事件620的影响的数据,以更新时间-距离数据阵列150。导航服务112可以使用更新的时间-距离数据阵列150来模拟其他事件对车辆610-614的影响,例如位于事件620之后的其他事件,或者如果车辆经由节点n1从道路r1行驶到另一条道路上则可能影响车辆610-614的其他事件。

图8是示出生成移动事件模拟以确定车辆何时将受移动事件影响的方法800的示例的流程图。在步骤802,导航服务112可以接收至少一个移动事件的事件数据。在步骤804,导航服务112可以根据事件数据生成移动事件的移动事件数据,移动事件数据指示移动事件的趋势。作为示例,在步骤804,导航服务112可以实现图5的方法500生成移动事件数据。在步骤806,导航服务112可以将移动事件数据存储到功能数据结构,例如移动事件数据表142。

在步骤808,导航服务112可以识别正在行驶的车辆(或驾驶员)。在步骤810,导航服务112可以访问车辆的历史行程模式数据,并且如所描述的基于历史行程模式数据,确定车辆将受到移动事件影响的概率。

在步骤812,导航服务112可以使用处理器至少部分地基于车辆的历史模式数据和移动事件的趋势来生成移动事件模拟。移动事件模拟可以在多个未来时间间隔中的每一个处预测车辆的未来位置和移动事件的未来位置。作为示例,导航服务112可以处理历史行程模式数据以生成用于车辆的时间-距离数据阵列。历史行程模式数据可以指示车辆行进各种距离的时间量。车辆行进各种距离的时间量可以至少部分地基于位于车辆和移动事件之间的至少一个其他事件。导航服务112可以利用移动事件的趋势处理时间-距离数据阵列以生成移动事件模拟。

在步骤814,如果车辆行驶于与移动事件相交的路线,则导航服务112可以基于移动事件模拟确定车辆何时将受到至少一个移动事件的影响。如果车辆行驶于与移动事件相交的路线,则导航服务112还可以基于移动事件模拟确定车辆将受到至少一个移动事件影响的位置,例如车辆将与移动事件相交的地方。在步骤816,导航服务112可以响应于确定车辆将受到移动事件影响的概率超过阈值,向与车辆相关联的客户端设备(例如,车辆的导航系统、车辆驾驶员的智能电话或平板电脑等)通知指示至少一个移动事件和车辆将受到至少一个移动事件影响的时间的通知。因此,车辆的驾驶员可以基于该通知选择是否继续进行备用路线。

在步骤818,导航服务112可以识别正在行进的下一个车辆(或驾驶员),并且导航服务112可以重复该车辆的步骤810-816。该过程可以迭代直到事件已清除。导航服务112可以实时地执行方法800中描述的过程,例如当导航服务112继续接收事件数据140时。

图9是示出导航服务器110的示例架构的框图。导航服务器110可以包括通过系统总线915或其他合适的电路耦合到存储器元件910的至少一个处理器905(例如,中央处理单元)。这样,导航服务器110可以将程序代码存储在存储器元件910内。处理器905可以执行经由系统总线915从存储器元件910访问的程序代码。应当理解,导航服务器110可以在包括处理器和存储器的任何系统的形式,其能够执行本说明书中描述的功能和/或操作。例如,导航服务器110可以实现为服务器、多个通信链接的服务器等。

存储器元件910可包括一个或多个物理存储器设备,例如本地存储器920和一个或多个大容量存储设备925。本地存储器920指随机存取存储器(ram)或其他非持久存储器通常在程序代码的实际执行期间使用的设备。大容量存储设备925可以实现为硬盘驱动器(hdd)、固态驱动器(ssd)或其他持久数据存储设备。导航服务器110还可以包括一个或多个高速缓冲存储器(未示出),提供至少一些程序代码的临时存储,以便减少在执行期间必须从大容量存储设备925检索程序代码的次数。

一个或多个网络适配器930可以耦合到导航服务器110,以使导航服务器110能够通过中间私有或公共网络耦合到客户端设备,其他系统,计算机系统,远程打印机和/或远程存储设备。调制解调器、电缆调制解调器、收发器和以太网卡是可以与导航服务器110一起使用的不同类型的网络适配器930的示例。

如图9所示,存储器元件910可以存储图1的导航服务器110的组件,即导航服务112、移动事件模拟器180、移动事件数据表142,时间-距离数据阵列150、方向概率数据170、移动事件模拟185和指示受影响车辆的数据/驱动器190。导航服务112和移动事件模拟器180以可执行程序代码的形式实现,可以由导航服务器110执行,并且因此可以被认为是导航服务器110的一部分。此外,导航服务112、移动事件模拟器180、移动事件数据表142、时间-距离数据阵列150、方向概率数据170、移动事件模拟185和指示受影响车辆/驱动器190的数据是功能数据当用作导航服务器110的一部分时赋予功能的结构。

虽然本公开以限定新颖特征的权利要求作出结论,但是相信通过结合附图考虑说明书将更好地理解本文描述的各种特征。提供本公开内容中描述的过程,机器,制造物及其任何变型是出于说明的目的。所描述的任何具体结构和功能细节不应被解释为限制,而仅仅作为权利要求的基础,并且作为教导本领域技术人员以各种方式采用实际上任何适当详细结构中描述的特征的代表性基础。此外,本公开内容中使用的术语和短语不旨在是限制性的,而是提供对所描述的特征的可理解的描述。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

出于说明的简单和清楚的目的,图中所示的元件不一定按比例绘制。例如,为了清楚起见,一些元件的尺寸可能相对于其他元件被夸大。此外,在认为合适的情况下,在附图中重复参考数字以指示对应的,类似的或类似的特征。

这里使用的术语仅用于描述特定实施例的目的,并不意图限制本发明。如这里所使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另有明确说明。将进一步理解,当在本公开中使用时,术语“包括”和/或“包含”指定所述特征、整数、步骤、操作、元素和/或组件的存在,但不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、组件和/或其组合。

贯穿本公开内容对“一个实施例”、“实施例”或类似语言的引用意味着结合该实施例描述的特定特征,结构或特性包括在本公开内容中描述的至少一个实施例中。因此,贯穿本公开内容的短语“在一个实施例中”、“在实施例中”和类似语言的出现可以但不是必须全部指代相同的实施例。

如本文所用,术语“多个”定义为两个或多于两个。这里使用的术语“另一个”被定义为至少第二个或更多个。除非另有说明,否则如本文所使用的术语“耦合”被定义为连接,无论是直接没有任何中间元件还是间接地与一个或多个中间元件连接。两个元件也可以通过通信信道,通路,网络或系统机械地,电气地或通信地耦合。这里使用的术语“和/或”是指并包含一个或多个相关所列项目的任何和所有可能的组合。还应当理解,尽管这里可以使用术语第一,第二等来描述各种元件,但是这些元件不应受这些术语的限制,因为这些术语仅用于将一个元件与另一个元件区分开,除非另有说明。或上下文另有说明。

根据上下文,术语“如果”可以被解释为表示“何时”或“在......上”或“响应于确定”或“响应于检测”。类似地,短语“如果确定”或“如果检测到[陈述的条件或事件]”可以被解释为表示“在确定”或“响应于确定”或“在检测到[所述条件或事件]时“或”响应于检测到[所述条件或事件],“取决于上下文。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

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