著录项信息
专利名称 | 用云协助来丰富驾驶体验 |
申请号 | CN201480014896.7 | 申请日期 | 2014-03-10 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2015-12-09 | 公开/公告号 | CN105144264A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G08G1/16 | IPC分类号 | G;0;8;G;1;/;1;6;;;G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 微软技术许可有限责任公司 | 申请人地址 | 美国华盛顿州
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 微软技术许可有限责任公司 | 当前权利人 | 微软技术许可有限责任公司 |
发明人 | P·巴尔;S·坎杜拉;A·P·埃耶 |
代理机构 | 上海专利商标事务所有限公司 | 代理人 | 胡利鸣 |
摘要
描述了藉此驾驶员安全性技术(诸如碰撞检测)经由移动设备(例如,智能电话)传感器和处理从与设备相关联的车辆接收到的数据的云服务来实现的技术。轨迹相关数据在云服务处被接收并被用于预测车辆之间的碰撞和/或车辆的车道偏离。为了以低等待时间实时地操作服务,还描述了例如基于交通密度将区域划分成网格,其中网格具有并行的网格服务器,每个网格服务器仅负责其自己的网格中的车辆或靠近其自己的网格的车辆,以及云服务的其他并行/分布式机制。
用云协助来丰富驾驶体验\n技术领域\n[0001] 本发明涉及用云协助来丰富驾驶体验。\n背景技术\n[0002] 用于提升驾驶安全性的技术演变到现在包括基于内置到车辆(例如,汽车)中的传感器的协助技术。基于相机、激光和雷达技术或其组合,诸如车道偏离警告、碰撞检测和盲点监视之类的特征是可用的。\n[0003] 如今,这种协助技术不是负担得起的和/或不是广泛可用的。一个原因是,通常价位在于数千美元,这些技术通常只被购买在高端汽车中。此外,汽车制造商需要构建保持可靠达与汽车的生命期一样长的内嵌式系统。升级这些特征的软件或硬件不那么容易并且通常不是实践上可能的。\n[0004] 作为对于这种其中每个车辆自己照料自己的独立解决方案的替换,在1999年末,美国联邦通信委员会(FCC)在5.9GHz频带中分配了75兆赫的频谱以用于被智能交通系统(ITS)使用的所谓的专用短程通信(DSRC)。大致的想法是基于车辆间(v2v)或车辆对基础设施(v2i)的通信,通过使用向驾驶员提供警告的车辆和路边监视器,来实现安全性改进。然而,当研究时,结果发现部署专用路边基础设施是非常昂贵的,由此这个技术的实际实现不可能变得广泛可用。汽车制造商也没有将这个技术采用到任何值得注意的范围,并且跨汽车制造商的任何标准化将可能是缓慢的。\n发明内容\n[0005] 提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一些代表性概念的选集。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在以限制所要求保护的主题的范围的任何方式来使用。\n[0006] 简而言之,本文中描述的主题的各个方面涉及服务(例如,云服务)藉此接收从与车辆相关联的移动设备发送的无线通信的技术,其中该无线通信包括对应于该车辆的轨迹的信息。服务从轨迹相关信息中确定车辆是否具有碰撞的风险,并且如果是,则将提醒相关数据发送到车辆。碰撞的风险可以是基于轨迹相关信息和另一车辆的轨迹,车辆是否在该另一车辆的阈值距离内,和/或例如基于轨迹相关信息和道路相关数据,车辆是否处于车道偏离状态。\n[0007] 在一个方面中,云服务被配备有服务器,包括多个网格服务器。每个网格服务器与多个网格中的一个网格相关联,其中每个网格对应于一地理区域。每个网格服务器计算对于服务器而言知晓为在其相关联的网格中或靠近其相关联的网格的车辆是否具有碰撞的风险。如果是,则网格服务器输出提醒相关数据以供传送到具有碰撞风险的车辆中的至少一个。\n[0008] 在一个方面中,从车辆移动设备接收轨迹相关数据。轨迹相关数据被用于确定对应于该车辆移动设备的至少一个网格。基于车辆的轨迹相关数据做出关于车辆是否在网格内具有碰撞的风险的查询,并且如果是,则输出提醒相关数据。\n[0009] 结合附图阅读以下具体实施方式,本发明的其他优点会变得显而易见。\n附图说明\n[0010] 作为示例而非限制,在附图中示出了本发明,附图中相同的附图标记指示相同或相似的元素,附图中:\n[0011] 图1是根据一个示例实施例的包括云服务和车辆的移动设备的架构的表示,其中云服务被配置成协助车辆的驾驶员。\n[0012] 图2是根据一个示例实施例的被移动设备在获得轨迹相关数据并对提醒采取动作时使用的示例组件和数据的框图。\n[0013] 图3A是根据一个示例实施例的网格可如何基于交通密度被递归地调整大小的表示。\n[0014] 图3B是根据一个示例实施例的服务器可如何与网格相关联的表示。\n[0015] 图4是根据一个示例实施例的表示可被采取以用于确定车辆是否具有碰撞的风险以发出一个或多个提醒的示例步骤的流程图。\n[0016] 图5是表示移动设备形式的示例计算环境的方框图,其中本文所描述的主题的各方面可被并入该计算环境中。\n[0017] 图6是表示示例性非限制联网环境的框图,其中可实现本文所描述的各种实施例。\n[0018] 图7是表示其中可实现本文所描述各实施例的一个或多个方面的示例非限制计算系统或运行环境的框图。\n具体实施方式\n[0019] 本文中描述的技术的各个方面一般涉及使用智能电话(或类似的适用于车辆的广泛使用的通信设备)以及云计算服务(或多个云计算服务)来协助驾驶员,尤其在提升驾驶员安全性方面来协助驾驶员。在一个方面,基于云的协助技术可就车道偏离、就即将发生的碰撞和/或就处于盲点中的车辆向驾驶员警告。\n[0020] 应当理解,本文中的任何示例均是非限制的。例如,尽管移动设备被用作用于实现本文中描述的技术的合适的设备的示例,但是更固定的(例如,内置或部分内置)汽车设备可被使用;设备随着车辆而具有移动性。因此,本发明不限制于在此描述的任何具体的实施例、方面、概念、结构、功能或示例。相反,在此所描述的实施例、方面、概念、结构、功能性或示例中的任何一个都是非限制性的,并且本发明可以按一般包括协助、提醒和通知的计算机相关驾驶体验中提供益处和优点的各种方式来使用。\n[0021] 图1是显示一个示例架构的组件的示例框图,该示例架构包括运行耦合到云服务\n108(例如,基于后端地理围栏的云服务)的协助应用106的移动设备102(例如,在移动的车辆104中)。虽然未显式地显示在图1中,但是可以理解,通常存在运行在许多车辆中,在许多位置中移动,每个耦合到云服务的许多这种应用。\n[0022] 移动设备102可被实现在智能电话202中,如在图2中一般表示的。替代于智能电话,可以理解,另一设备可被使用(其因至少与车辆104一起移动所以是移动设备102)。例如,应用或类似的逻辑/代码可在耦合到或具有互联网连接的专用GPS设备上运行或在内置到车辆中的设备上运行;(例如,常见的内置车辆导航或娱乐系统)等。\n[0023] 如本文中描述的,协助应用106周期性地(或以其他方式)经由传感器集合224收集来自GPS数据222的信息并将它们发送到服务108,该传感器集合224包括GPS设备和移动设备102(示例为智能电话202)上的其他传感器。通过跨移动设备(即,车辆)来将该信息以及其他相关信息组合,云服务108能够产生针对性的提醒226并对来自移动设备102的查询进行响应。\n[0024] 移动设备102(例如,智能电话202)的显示器234是一种产生提醒并还接收来自用户的触摸输入的可能方式;其他输入和输出机制可被使用。例如,用户输入可包括(包括经由自然用户界面(NUI))接收到的任意输入数据,其中NUI一般指使得用户能够以“自然”方式与设备交互的任意界面技术,该“自然”方式诸如不受由输入设备(诸如鼠标、键盘、遥控器等)施加的人工限制。NUI的示例包括基于语音识别、触摸和指示笔识别、屏幕上和屏幕附近的姿势识别、空中姿势、头部和眼睛跟踪、语音和语言、视觉、触摸、包括运动姿势在内的姿势、以及机器智能的那些方法。运动姿势检测可使用加速计/陀螺仪、脸部识别、3D显示器、头、眼以及凝视跟踪、沉浸式增强现实和虚拟现实系统(所有这些都提供更为自然的界面),以及用于通过使用电场感测电极(EEG和相关方法)感测脑部活动的技术。\n[0025] 注意,图2是表示经由合适的挂接228耦合到车辆仪表盘的智能电话202的示例框图。挂接228可包括一接口,使得当被挂接时,移动设备102接收电力230,并可被耦合到其他输入和/或输出机制。如理解的,诸如物理连接器(例如,到设备的USB接口)之类的分开的接口可被用于电力和/或其他输入/输出; 等可被用于输入/输出。还如图2中经由框232表示的,语音可被用于提供输入,而音频(例如,可听声调、说出的提醒和/或响应)可被输出等。显示器在另一实现中可以是抬头显示器。\n[0026] 传感器集合224可包括GPS设备、加速计和陀螺仪。其他传感器(包括通常在智能电话中的那些)可存在,例如磁力计。又一些其他传感器可包括但不限于高度计、倾斜计、电位计等。相机、深度相机等也可捕捉有用的信息;例如,服务可通过在服务中上传信息来被通知不主动参与的另一附近的车辆(例如,驾驶员忘记或不想在他或她的智能电话上具有应用)。此外,如果信息可用于移动设备上传,则汽车传感器数据可被使用,例如,内置到汽车中的邻近度传感器可被耦合到移动设备,并且这样的传感器数据被上传到云服务108以供合适地使用。\n[0027] 在一个实现中,协助应用106的每一安装具有唯一标识符(ID),其至少相对于其他协助应用安装而言是唯一的。服务108使用这个ID来标识在其中智能电话或其他服务正在运行应用的车辆。一组前端服务器110中的一前端服务器散列该ID并将来自该智能电话的车辆更新和请求转发到车辆预测层112中对该ID负责的服务器。\n[0028] 更具体地,在云服务108的一个实现中,如在图1中显示的,各机制包括车辆预测层\n112(被实现在一组服务器中)以及空间存储和查询引擎层114(被实现在一组服务器中)。如可被容易理解的,这些机制可被划分到多于一个的组件,例如,空间存储和查询引擎通常是分开通信的组件,然而出于以下描述的理由,这些组件的实例可在同一服务器上运行。如在图1中一般显示的,可能在例如各个服务器等上存在这些机制的多个实例,包括在不同位置中操作和/或涵盖不同位置操作的实例。此外,如在本文中使用的,任何一个“服务器”可包括任意数量的物理和/或虚拟机器,例如一实际单个机器或在一起工作来以某个方式作为单个服务器的多个机器。\n[0029] 在一个实现中,查询引擎(其查询诸如车辆是否被预测为可能在给定时间与另一车辆的轨迹相交之类的信息,如以下描述的)可在包括空间存储的相同服务器上执行。查询引擎一般周期性地(例如,每100毫秒一次地)(或以其他方式)执行产生安全性相关警告的查询。\n[0030] 还在图1中显示的是总地协调整个架构操作的主服务器116(其可包括多个连接的服务器)。例如,主服务器116监视车辆预测层112和空间存储层114中服务器的负载和故障状态。响应于过载或服务器故障,主服务器116可使新的服务器上线,可改变将电话ID映射到车辆预测层112中的服务器的散列函数,并可调整网格到空间存储层114中的服务器的映射。\n[0031] 在一个实现中,维护架构的主服务器116角色由帕克西(Paxos)环形式的针对故障和负载来调整服务108架构的相对少量的服务器来执行。主服务器116(在这个示例中实际上是诸服务器)经由主服务器116推送到其他服务器的标记查找树(以下描述)来控制从网格到服务器的映射。主服务器116还确定车辆ID如何通过将车辆映射到桶(bucket)(其极少改变)的散列函数以及将桶分派到服务器的函数被映射到预测层112处的服务器。其他服务器每100毫秒一次地与主服务器116交换心跳。三个连续缺失的心跳被认为是服务器故障的迹象。当空间存储(或预测层)中的服务器故障时,主服务器通过推送经更新的标记查找树(或桶到服务器的映射)来将其网格(或桶)分派到其他服务器。空间存储中的内容不被复制,这是因为新的更新将在100毫秒内从电话应用到达。\n[0032] 车辆预测层112具有在较长的持续时间上收集的针对车辆的状态。每个桶由此也被分派备份服务器,并且车辆状态针对备份服务器的每10秒一次地来被设置检查点。从协助应用中检索自最近检查点以来的数据。在单个服务器故障后预期的不可用时间段为大约\n500毫秒,其对于协助技术而言是可接受的。注意,过载是更加常见的,并且服务108处理它而通过将过载作为非致命故障来处理而无需停机;如在故障的情况下查找树(或桶到服务器的映射)被改变,但是先前负责的服务器的身份在改变后保留一会以促进对过往数据的访问。\n[0033] 车辆预测层112中的服务器预测车辆在接收到的时间以及来自该车辆的下一更新被预期的时间之间的未来状态。车辆的预测的轨迹被存储为时间的函数。例如,基于来自移动设备102的更新,车辆预测层112可将车辆的预测的轨迹计算为:\n[0034]\n[0035] 其中x、y是车辆的报告的位置,s是其速度,a是加速度,θ是航向(course)并且γ是偏航,即航向中的侧向改变。注意,x对应于纬度,y对应于经度,航向值从正北顺时针方向计数,并且车辆的偏航指示在其航向中改变的速率。此外,注意,移动设备可做出该计算(或其一部分)并将结果上传到预测层112。\n[0036] 协助应用106获得来自传感器集合224的数据,包括来自移动设备的传感器GPS读数的位置、速度和航向、来自设备的加速计的加速度以及来自陀螺仪的偏航。移动设备102的位置、速度和航向与车辆104的位置、速度和航向是相同的。然而,如果设备相对于车辆也是移动的(诸如不被安装的智能电话),则加速计和陀螺仪读数将设备(例如,智能电话202)作为它们的参照系并需要被转换。例如,如果驾驶员将电话握为屏幕面对他或她,并且用握着电话的手指向车辆前进的方向,则车辆沿着路的加速度对应于沿着电话的z轴的加速计读数。协助应用106使用校准来做出这个纠正;在理论中,这样的校准会是困难的,因为只要电话相对于车辆移动,校准就必须被重做。实践中,在不给定任何特定方向的情况下,驾驶员(至少在一个数据集中)趋向于将电话保持稳定,例如在比如所观察到的驾驶时间的绝大多数时间中保持在杯架、太阳镜架或口袋中,并且由此校准执行是合理的。\n[0037] 协助应用106可通过使用已知的道路路段信息来将汽车基于当前和先前的读数实时地放置在最可能的道路上以通过地图匹配来补偿位置、速度和航向方面的误差。协助应用106可使用来自同一用户的先前的行程数据(当可用时)以及预期的交通模式来预测用户是否可能沿着相同的道路继续或他或她将转向哪条路。注意,弯曲的道路可被等式(1)用合适的偏航量来处理;然而,替代于偏航(或与偏航组合),可使用对转向进行建模的分段函数。\n[0038] 如以上描述的,车辆预测层112将预测的轨迹计算(或被提供计算结果)并存储为时间的函数。在一个实现中,正被监视的地理区域被划分为具有可变大小的网格并且每个网格被分派空间存储114中的服务器中的一个。在计算或接收车辆的预测的轨迹之际,车辆预测层112中的服务器基于该预测在其下一更新之前将该信息转发到车辆104将通过的任何可能的网格(被服务器表示)。作为结果,对应于网格的服务器在来自车辆的下一预期的更新之前知晓当前在该网格中的车辆或可能马上在网格中的车辆。该信息被保留在存储器内数据结构中。\n[0039] 注意,网格服务器知晓它的网格中的车辆或可能进入它的网格的车辆,并且该信息可被用于减少计算和通信资源。例如,在正常到严重交通情况下,车辆的移动设备可每\n100毫秒上传其位置信息;在较轻交通情况下,车辆的移动设备可被指令较不频繁地(例如,每200毫秒)上传。这个频率可按需改变;然而,当被减少时,所需资源中的减少可允许资源到更严重交通位置的重新分派。\n[0040] 如本文中描述的,在一个实现中,服务108使用空间分区来跨服务器划分工作。通过将附近的数据保存在相同服务器上的存储器内(in-memory),服务108将查询保持在服务器本地,从而实现低的等待时间,同时允许许多查询并行地运行,由此实现高的吞吐量。注意,车辆的密度通常是高度偏态的,例如,空间的大部分仅具有低的密度,而覆盖主干道或交叉路口的区域具有大得多的密度。区域中的负载还可在高峰时间、施工和事故期间改变。\n[0041] 网格不需要是正方形、长方形、(例如,六边形是可行的)或甚至对称或棋盘格的,但是一般对应于被云服务108覆盖的区域(包括道路区域)。由此,如本文中使用的,“网格”指代任意覆盖区域。在一个实现中,服务108(例如,主服务器116)将空间划分成具有大致平均负载的正方形网格中。为此,服务108递归地将具有太多负载的网格进行细分并折叠具有过少负载的网格。为了高效地这么做,服务标识大小变化的地理区域并快速地确定哪个服务器负责任一位置。为此,在一个实施例中的服务108使用标准军事网格参考系(MGRS)。在这个方案中,诸如15T TF 58435 76808之类的值表示地球上的具体1m(米)×1m(米)的位置;数字后缀包括两个大小相同的被知晓为东向和北向的部分(该值中的每个方向5个数字)。字母数字前缀15T TF唯一地标识地球表面上100Km(公里)×100Km(公里)的区域。递归地,这个区域可被划分成10×10个更小的区域并且一数字对标识特定的更小区域的东向、北向位置。即,在以上示例中,15TTF57、15TTF5876、15TTF584768表示包括以上点的10Km×\n10Km、1Km×1Km以及100m×100m的区域。MGRS使得服务108以分层的方式唯一地标识大小不同的区域。\n[0042] 为了确定哪个服务器对一位置负责,服务108对该位置的MGRS标记使用最长前缀匹配。一说明性示例被显示在图3A和3B中。图3A显示了递归地将空间分区成网格的示例。在每一个级别,空间被划分成四个相等的象限并从左上以顺时针方向计数标记为0-3。\n[0043] 图3A中的实线表示具有两条道路的区域;道路的粗度对应于平均车辆密度。图3A还显示了服务108可如何分区这个空间。较粗的北向东道路的较高的密度产生对空间的1/\n16的划分,而在西部边界上的较细的道路入口可仅用1/4的划分来处理;忙碌的交叉道使用\n1/64的划分。\n[0044] 图3B显示了服务108如何使用最长前缀匹配来将位置映射到服务器的树表示。树中的每个节点都具有与其相关联的服务器。存在对应于粗道路行经的1/16大小网格中的每一个的四个服务器,并且每一个服务器针对瘦道路和忙碌的交叉路口。没有被展开的网格用虚线边来示出。为了查找标记,过程在根部处开始并沿着标记中具有字符的边直到它不能再进一步,从而找到对包括这个位置的最小网格负责的服务器。\n[0045] 注意,执行最长前缀匹配的时间复杂度是O(标记的长度),其在区域中是对数的,但是对于所有实际目的是不变的(在MGRS的情况下是15)。并且,服务108运行每网格查询,而非运行在车辆靠近边界时变得复杂的每车辆查询。预测层112将车辆信息转发到车辆可能通过的网格中的每一个。服务108不需要使用最精细的粒度,例如,服务可在一个实现中\n10m×10m用作最精细粒度,例如,这是因为应用106每100毫秒发送更新,以低于100m/s(米/秒)或223mph(英里每小时)行进的车辆很少在更新之间通过多于两个的网格。最终,最长前缀匹配允许服务器对其区域内不够足够密度来要求它们自己的服务器的较小区域中的任意服务器进行负责。这导致了对工作更紧凑的划分。在以上示例中,服务108必须仅对7个网格分派服务器;稀疏区域中的多个(例如,图3A中标记为0、11、12、22和23)被根节点处理。\n[0046] 转向支持对连续数据的查询,服务108按每网格执行查询,这些查询对车辆的预测的位置执行连续数学运算。例如,对网格中的碰撞的检查转换为:\n[0047] 车辆v1,v2,时间t*使得\n[0048] 其中Lv是来自等式(1)的位置函数,ε是某个小的距离值并且减法运算计算两个位置之间的欧几里得距离。通过这个等式,服务108检查网格中的两个车辆是否在某个时间相互非常接近。\n[0049] 对车辆是否处于车道(包括车道或路边)偏离状态的相应检查是:\n[0050] 车辆v,时间t*,使得min(Lv(t*)-左边>d,\n[0051] ∧min(Lv(t*)-右边>d (3)\n[0052] 其中车道/道路的边被表示为曲线并且d是在边上可接受的漂移的最大量。这个等式检查车辆与车道/道路的两个边之间的最短距离大于d,这仅在车辆漂移出一边时发生。\n[0053] 服务108将这些不等式求解为如下。等式(2)想要两个车辆位置之间的欧几里得距离小于ε。这仅在 和 两者均小于ε的情况下发生;其中xv、yv表示位置Lv的\nx和y坐标。从等式(1)中注意到,如果偏航(γ)是小的,则位置的x和y分量两者均是时间变量t上的二次多项式。因此,x(或y)的两个值之间的差具有相同次数(degree)并且检查其值是小的可通过二次因式来实现。\n[0054] 等式(3)也可按类似方式被求解。当偏航是大的时,可使用对cos(余弦)和sin(正弦)的泰勒近似,其增加多项式的次数但依然是可解的。通过这种方式,服务108可在来自这些车辆的下一更新(100毫秒)之前的任意时间仅用几个数值运算来检查距离方面的差是否是小的。\n[0055] 由此可见,描述了一种处理用于更新和查询两者的高吞吐量的服务,例如,多达每\n5\n大城市区域O(10)辆车、每隔100毫秒更新每辆车以及类似的提醒频率。这对应于多达每秒O(106)的累积的更新和查询吞吐量的需要。为此,服务充分利用数据项之间的耦合是稀疏且结构化的事实;为了协助驾驶员,服务108仅需要处理来自附近车辆的更新。\n[0056] 对于高的吞吐量,服务108并行化其组件;车辆预测层通过应用ID来索引,而空间存储通过网格来索引。为了有助于驾驶员的安全性,系统以驾驶员时标(例如,大约100毫秒)进行响应。云服务器的等待时间尝试被限制到50毫秒。对于低的等待时间,服务空间存储将记录保持在存储器中。\n[0057] 替代于每车辆执行查询,服务108的查询引擎每网格来执行查询,例如,在接下来的100毫秒内这个网格中是否有任意车辆将碰撞。由于相比于车辆的数量而言存在少得多的网格并且碰撞或其他提醒事件是极少的,因此每网格查询是快速的;存在更少的要执行的查询并且没有与用每车辆查询那样的工作的重复。此外,尽管对于车辆附近的项的查询可要求刚刚跨过另一网格中的边界驻留的数据项,将查询的范围改变为每网格允许服务\n108不用担心这样的项。因此,服务108的查询是真的并行的,并且被需要来执行每网格查询的数据位于对该网格负责的服务器内。仅触及一个服务器的查询不会遇到网络上的潜在争夺或在其他服务器处的潜在争夺并能更快速地完成。\n[0058] 关于数据项方面以及一项与其耦合的其他项的集合的连续改变,对于任一车辆,云服务108知晓在最近的过去中应用生成一更新的某个时间处的该车辆的状态(位置、速度和航向)。相关地,一提醒可基于这个车辆的当前和将来位置以及正在其附近或将在其附近的其他车辆的当前和将来位置。服务108具有车辆预测层,该车辆预测层使用来自车辆的传感器读数(例如,速度、航向、加速度、转动)和支持信息(诸如用户的线路历史、对道路分段上交通的估计和道路信息)来预测车辆的轨迹。\n[0059] 还理想的是,提供驾驶提醒,而不管服务器故障和归因于堵塞、事故、施工或忙碌的交叉路口的道路上的负载热点。服务的主服务器(例如,用于可靠性的群集的服务器)可负责监视架构并响应于负载改变和故障来调整架构。例如,服务的空间结构允许当在一网格中存在太多车辆时将该网格划分,而无需移动许多数据或无需创建许多不必要的网格。\n[0060] 此外,服务能够支持在任意的、大得多的位置范围上的查询(例如,再往前看的事故、抛锚的车辆或拥堵)。服务108的空间存储用作对其他数据存储的过滤器,这些其他数据存储面向较低的更新和查询速率,但可持久保存数据并对任意查询进行服务。不仅仅是提醒在请求之际或通过推送到车辆来被提供到车辆的移动设备,并且服务的其他用户(例如,交通控制系统、国家或本地代理、台式计算机处的用户)还可向服务查询有用的信息。由此,服务促进使用其收集的车辆数据来改进对世界的知晓(例如,使用行经的线路以及以此线路被行经的速度来生成更好的地图和交通信息)、来促进交通规划(例如,向不同的车辆给予不同的线路以平衡交通)和地理围栏,诸如以当用户在家/工作/距某个位置(例如,咖啡店)某个距离内时产生提醒。\n[0061] 图4是涉及例如经由图1的架构来处理更新的示例流程图。步骤402表示在前端服务器处接收来自进行发送的移动设备的更新。步骤404表示通过使用来自主服务器的散列函数将更新的发送者的唯一服务ID映射到车辆预测层中的服务器。\n[0062] 在步骤406,在这个示例中,车辆预测层使用等式(1)来计算轨迹。如以上描述的,对于设备而言执行该计算的一些或全部也是可行的。通过计算出的位置信息,车辆预测层知晓车辆当前处于哪个网格中以及车辆在下一更新前被预计可能在其中哪一个网格或多个网格(如果有的话)中,并将这个信息提供到空间层处的合适的“网格”服务器(一个或多个)(步骤408)。\n[0063] 步骤410表示一个或多个网格服务器经由它们的查询引擎(一个或多个),各自基于针对该网格维持的信息和等式(2)来执行关于该车辆是否与另一车辆太接近的查询。如果是,则“太接近”提醒经由步骤412和414发出到例如所涉及的每一车辆;如以上描述的,这个可以是可听提醒(语音和/或一个或一组警告音)、可见提醒(闪烁屏幕)或可能的触觉提醒,诸如经由振动方向盘。否则,不需要发出提醒。如可容易理解的,这个方面包括通过在这个或另一车辆进入指定的地理区域时告知驾驶员来进行“地理围栏”。要告知/提醒的车辆的数量可取决于速度、距离、位置估计误差、到云的往返等待时间以及服务器计算延迟。\n[0064] 步骤416类似地表示查询引擎(一个或多个)中的每一个基于等式(3)来执行关于车辆是否偏离了其车道的查询。如果是,则“车道偏离”提醒经由步骤418和420发出到例如其更新正被处理的当前车辆。如果被输出,在针对使得驾驶员更加注意的情况下,则车道偏离提醒可与太接近提醒不同(例如,不同的音调或模式),或者它们可以相同。\n[0065] 如果两个提醒在某种程度上不同并且两者都被发出,则提醒可被批处理到单个传输并被配置成避免相互干扰。例如,每个提醒可具有不同的音调和/或具有音调交替的音调模式。另一可能是一个提醒(例如,“太接近”提醒)可取代另一个(例如,“车道偏离”提醒),在这个步骤中只有取代的提醒需要被输出并发送到车辆的移动设备。提醒中的任一个可以是用户可配置的,例如具有听力障碍的驾驶员可将移动设备配置为输出可见提醒或具有驾驶员能够听到的某些频率的提醒。\n[0066] 由此可见,通过使用移动设备(诸如智能电话或内置车辆设备),只需要相对便宜的传感器和到云服务的无线连接就能丰富驾驶体验,包括经由针对安全性增强的协助。该技术可被便宜地实现,包括经由许多人已经拥有的设备(诸如智能电话),而无需新的路边基础设施。\n[0067] 通过来自移动设备/车辆的直接通信,云服务能够通过以下方式来处理大量的车辆:跨服务器来分区工作以供缩放,还通过确保生成警告所需要的处理仅在具有高可能性的一个服务器上被执行来接近实时地进行响应。服务器可包括用于通过将感测到的信息与来自其他传感器、其他车辆的信息和/或来自同一车辆的历史信息组合来对感测到的信息中的不准确性进行补偿的算法。\n[0068] 示例移动设备\n[0069] 图5示出可在其上实现此处所描述的主题的各方面的合适的移动设备500的示例。\n移动设备500仅为设备的一个示例,并非旨在对此处所描述的主题的各方面的使用范围或功能提出任何限制。移动设备500也不应被解释成对于在示例性移动设备500中所示出的任一组件或其组合有任何依赖或要求。\n[0070] 参考图5,用于实现此处所述的主题的各方面的示例性设备包括移动设备500。在某些实施例中,移动设备500包括蜂窝电话、允许与其他手持设备的语音通信的手持设备、某一其他语音通信设备等。在这些实施例中,移动设备500可配备用于拍摄照片的相机,虽然这在其他实施例中可能不是必需的。在其他实施例中,移动设备500包括个人数字助理(PDA),手持式游戏设备,笔记本计算机,打印机,包括机顶盒、媒体中心或其他电器等的电器,其他移动设备等。在其他实施例中,移动设备500可包括通常被认为是非移动的设备,诸如个人计算机、服务器等。\n[0071] 移动设备500的组件可以包括但不限于,处理单元505、系统存储器510和将包括系统存储器510在内的各种系统组件耦合至处理单元505的总线515。总线515可包括几种类型的总线结构中的任何一种,包括存储器总线、存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线等。总线515允许数据在移动设备500的各组件之间传送。\n[0072] 移动设备500可以包括各种计算机可读介质。计算机可读介质可以是能由移动设备500访问的任何可用介质,并包含易失性和非易失性介质以及可移动和不可移动介质两者。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或者可用于存储所需信息并且可由移动设备500访问的任何其他介质。\n[0073] 通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、 无线USB、红外、Wi-Fi、WiMAX、和其它无线介质。上述的任意组合也应包含在计算机可读介质的范围内。\n[0074] 系统存储器510包括易失性和/或非易失性存储器形式的计算机存储介质,且可包括只读存储器(ROM)和随机存取存储器(RAM)。在诸如蜂窝电话等移动设备上,操作系统代码520有时被包括ROM中,虽然在其他实施例中,这不是必需的。类似地,应用程序525通常位于RAM中,虽然同样在其他实施例中,应用程序可位于ROM中或其他计算机可读存储器中。堆\n530提供用于与操作系统520和应用程序525相关联的状态的存储器。例如,操作系统520和应用程序525可在它们的操作期间将变量和数据结构存储在堆530中。\n[0075] 移动设备500还可包括其他可移动/不可移动、易失性/非易失性存储器。作为示例,图5示出闪存卡535、硬盘驱动器536和记忆棒537。硬盘驱动器536可被小型化以适合在例如存储器槽中。移动设备500可经由可移动存储器接口531与这些类型的非易失性可移动存储器接口,或可经由通用串行总线(USB)、IEEE 5394、一个或多个有线端口540、或天线\n565连接。在这些实施例中,可移动存储器设备535-537可经由通信模块532与移动设备接口。在某些实施例中,并非所有这些类型的存储器都可被包括在单个移动设备上。在其他实施例中,可将这些和其他类型的可移动存储器中的一个或多个包括在单个移动设备上。\n[0076] 在某些实施例中,可按更永久地附连到移动设备500的方式连接硬盘驱动器536。\n例如,硬盘驱动器536可连接到诸如并行高级技术附件(PATA)、串行高级技术附件(SATA)或其他可连接到总线515的附件等接口。在此类实施例中,移除硬盘驱动器可涉及移除移动设备500的外壳并移除将硬盘驱动器536连接到移动设备500内的支承结构的螺丝钉或其他紧固件。\n[0077] 以上描述和在图5中示出的可移动存储设备535-437及其相关联的计算机存储介质提供对用于移动设备500的计算机可读指令、程序模块、数据结构、和其他数据的存储。例如,可移动存储器设备535-437可存储由移动设备500拍摄的图像、语音录音、联系人信息、程序、用于程序的数据等。\n[0078] 用户可通过诸如键区541和话筒542等输入设备向移动设备500中输入命令和信息。在某些实施例中,显示器543可以是触敏屏幕并可允许用户在其上输入命令和信息。键区541和显示器543可通过耦合到总线515的用户输入接口550连接到处理单元505,但也可由其他接口和总线结构连接,如通信模块532和有线端口540。运动检测552可被用于确定关于设备500做出的姿势。\n[0079] 例如,用户可经由对话筒542讲话并经由在键区541或触敏显示器543上输入的文本消息来与其他用户通信。音频单元555可提供电信号以驱动扬声器544以及接收并数字化接收自话筒542的音频信号。\n[0080] 移动设备500可包括提供信号以驱动相机561的视频单元560。视频单元560还可接收由相机561获得的图像并将这些图像提供给包括在移动设备500上的处理单元506和/或存储器。由相机561获得的图像可包括视频、不形成视频的一个或多个图像、或其某一组合。\n[0081] 通信模块532可向一根或多根天线565提供信号并从其接收信号。天线565之一可发射并接收用于蜂窝电话网络的消息。另一天线可发射并接收 消息。又一天线(或共享天线)可经由无线以太网网络标准发射并接收网络消息。\n[0082] 更进一步,天线将例如GPS信号等基于位置的信息提供给GPS机制572。进而,GPS机制572使得对应的GPS数据(例如,时间和坐标)可用于处理。\n[0083] 在某些实施例中,可使用单根天线来发射和/或接收用于超过一种类型的网络的消息。例如,单根天线可发射并接收语音和分组消息。\n[0084] 当在网络化环境中操作时,移动设备500可连接到一个或多个远程设备。远程设备可包括个人计算机、服务器、路由器、网络PC、蜂窝电话、媒体回放设备、对等设备或其他常见的网络节点,并且一般包括上面相对于移动设备500所述的许多或全部元件。\n[0085] 本文所描述的主题的各方面可与众多其他通用或专用计算系统环境或配置一起操作。适用于此处所描述的主题的各方面的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机、大型计算机、包括上述系统或设备中的任一个的分布式计算环境等。\n[0086] 此处所描述的主题的各方面可在由移动设备执行的诸如程序模块等计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本文所述的主题的各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。\n[0087] 此外,虽然此处频繁使用术语服务器,但可以认识到,该术语也可涵盖客户机、分布在一个或多个计算机上的一个或多个进程的集合、一个或多个独立的存储设备、一个或多个其他设备的集合、以上的一个或多个的组合,等等。\n[0088] 示例联网以及分布式环境\n[0089] 本领域技术人员可以理解,此处描述的各实施例和方法可结合任何计算机或其它客户机或服务器设备来实现,其可被部署为计算机网络的部分或在分布式计算环境中,并且可以被连接到任何类型一个或多个数据存储。在这一点上,此处描述的各实施例可在具有任何数量的存储器或存储单元的、并且任何数量的应用和进程跨任何数量的存储单元发生的任何计算机系统或环境中实现。这包括但不限于具有部署在具有远程或本地存储的网络环境或分布式计算环境中的服务器计算机和客户计算机的环境。\n[0090] 分布式计算通过计算设备和系统之间的通信交换来提供计算机资源和服务的共享。这些资源和服务包括信息的交换、对于诸如文件之类的对象的高速缓存存储和盘存储。\n这些资源和服务还包括多个处理单元之间的处理能力共享以便进行负载平衡、资源扩展、处理专门化等等。分布式计算利用网络连接,从而允许客户机利用其集体力量来使整个企业受益。就此,各种设备可具有可如参考本发明的各实施例描述地参与资源管理机制的应用、对象或资源。\n[0091] 图6提供了示例性的联网或分布式计算环境的示意图。该分布式计算环境包括计算对象610、612等以及计算对象或设备620、622、624、626、628等,这些计算对象或设备可包括如由示例应用630、632、634、636、638表示的程序、方法、数据存储、可编程逻辑等。可以理解,计算对象610、612等以及计算对象或设备620、622、624、626、628等可包括不同的设备,诸如个人数字助理(PDA)、音频/视频设备、移动电话、MP3播放器、个人计算机、膝上型计算机等。\n[0092] 每一个计算对象610、612等以及计算对象或设备620、622、624、626、628等可通过通信网络640直接或间接与一个或多个其他计算对象610、612等以及计算对象或设备620、\n622、624、626、628等进行通信。尽管在图6中被示为单个元件,但通信网络640可包括向图6的系统提供服务的其他计算对象和计算设备和/或可表示未示出的多个互连网络。每个计算对象610、612等或计算对象或设备620、622、624、626、628等还可以包含应用,诸如可以利用API或其他对象、软件、固件和/或硬件的、适于根据本发明的各实施例所提供的应用实现与其进行通信的应用630、632、634、636、638。\n[0093] 存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可由有线或无线系统、本地网络或广泛分布的网络连接在一起。当前,许多网络被耦合至因特网,因特网为广泛分布的计算提供了基础结构并包含许多不同的网络,但任何网络基础结构都可用于便于与如各实施例中所描述的系统的示例通信。\n[0094] 由此,可使用诸如客户机/服务器、对等、或混合体系结构之类的网络拓扑结构和网络基础结构的主机。“客户机”是使用与其无关的另一类或组的服务的一类或组中的成员。客户机可以是进程,例如大致上是请求由另一程序或进程提供的服务的一组指令或任务。客户机进程使用所请求的服务,而无需“知道”关于其他程序或服务本身的任何工作细节。\n[0095] 在客户机/服务器体系结构中,尤其在联网系统中,客户机通常是访问另一计算机(例如,服务器)所提供的共享网络资源的计算机。在图6的图示中,作为非限制性示例,计算对象或设备620、622、624、626、628等可被认为是客户机而计算对象610、612等可被认为是服务器,其中计算对象610、612等作为提供数据服务的服务器,诸如从客户机计算对象或设备620、622、624、626、628等接收数据、存储数据、处理数据、向客户机计算对象或设备620、\n622、624、626、628等发送数据,但任何计算机都可取决于环境而被认为是客户机、服务器、或两者。\n[0096] 服务器通常是可通过诸如因特网或无线网络基础架构之类的远程网络或本地网络访问的远程计算机系统。客户机进程可在第一计算机系统中活动,而服务器进程可在第二计算机系统中活动,它们通过通信介质相互通信,由此提供分布式功能性并允许多个客户机利用服务器的信息收集能力。\n[0097] 在通信网络640或总线是因特网的网络环境中,例如,计算对象610、612等可以是其他计算对象或设备620、622、624、626、628等经由诸如超文本传输协议(HTTP)之类的多种已知协议中的任一种与其通信的web服务器。计算对象610、612等作为服务器还可用作例如计算对象或设备620、622、624、626、628等的客户机,这可以是如分布式计算环境的特性。\n[0098] 示例计算设备\n[0099] 如上所述,有利地,本文所描述的技术可应用于任何设备。因此,应当理解,构想了结合各实施例使用的所有种类的手持式、便携式和其它计算设备和计算对象。因此,以下在图7中描述的通用远程计算机仅仅是计算设备的一个示例,诸如可能在云服务中使用的多个计算设备之一。\n[0100] 各实施例可部分地经由操作系统来实现,以供设备或对象的服务开发者使用和/或被包括在用于执行本文中所述的各实施例的一个或多个功能方面的应用软件内。软件可以在由诸如客户机工作站、服务器或其它设备等一个或多个计算机执行的诸如程序模块等计算机可执行指令的通用上下文中描述。本领域的技术人员将理解,计算机系统具有可用于传递数据的各种配置和协议,并且由此没有特定配置或协议应当被认为是限制性的。\n[0101] 图7由此示出了其中可实现本文所述的各实施例的一个或多个方面的合适的计算系统环境700的一个示例,尽管如上所述,计算系统环境700仅为合适的计算环境的一个示例,并非对使用范围或功能提出任何限制。另外,计算系统环境700也不旨在被解释为对在示例计算系统环境700中所例示的组件中的任何一个或其组合有任何依赖。\n[0102] 参考图7,用于实现一个或多个实施例的示例性远程设备包括计算机710形式的通用计算设备。计算机710的组件可包括但不限于:处理单元720、系统存储器730以及将包括系统存储器在内的各种系统组件耦合到处理单元720的系统总线722。\n[0103] 计算机710通常包括各种计算机可读介质,并且可以是可由计算机710访问的任何可用介质。系统存储器730可包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)之类的易失性和/或非易失性存储器形式的计算机存储介质。作为示例而非限制,系统存储器730还可包括操作系统、应用程序、其他程序模块、以及程序数据。\n[0104] 用户可通过输入设备740向计算机710输入命令和信息。监视器或其他类型的显示设备也经由诸如输出接口750之类的接口连接到系统总线722。除监视器以外,计算机还可包括诸如扬声器和打印机之类的其他外围输出设备,它们可通过输出接口750连接。\n[0105] 计算机710可使用到一个或多个其他远程计算机(诸如远程计算机770)的逻辑连接在联网或分布式环境中操作。远程计算机770可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点、或者任何其他远程媒体消费或传输设备,并且可包括以上关于计算机710所述的任何或全部元件。图7所示的逻辑连接包括诸如局域网(LAN)或广域网(WAN)之类的网络772,但也可包括其他网络/总线。这些联网环境在家庭、办公室、企业范围的计算机网络、内联网和因特网中是常见的。\n[0106] 如上所述,尽管结合各种计算设备和网络体系结构描述了各示例性实施例,但基本概念可被应用于其中期望改进资源使用的效率的任何网络系统和任何计算设备或系统。\n[0107] 而且,存在实现相同或相似功能性的多种方法,例如适当的API、工具箱、驱动程序代码、操作系统、控件、独立或可下载软件对象等,它们使得应用和服务能够使用本文中提供的技术。由此,本文中的各实施例从API(或其他软件对象)的观点以及从实现如本文中描述的一个或多个实施例的软件或硬件对象构想。由此,本文中所述的各实施例可具有完全采用硬件、部分采用硬件并且部分采用软件、以及采用软件的方面。\n[0108] 本文中所使用的词语“示例”意味着用作示例、实例或说明。为避免疑惑,本文所公开的主题不限于这些示例。另外,在此所述的被描述为“示例”的任意方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,在使用术语“包括”、“具有”、“包含”和其他类似词语的程度上,为避免疑惑,这些术语旨在当用于权利要求中时以类似于术语“包括”作为开放的过渡词的方式是包含性的而不排除任何附加或其他元素。\n[0109] 如所述的,本文中所述的各种技术可结合硬件或软件或,在适当时,以两者的组合来实现。如本文中所使用的,术语“组件”、“模块”、“系统”等同样旨在指计算机相关实体,或者是硬件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行件、执行的线程、程序、和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,并且组件可位于一个计算机上和/或分布在两个或更多的计算机之间。\n[0110] 如前所述的系统已经参考若干组件之间的交互来描述。可以理解,这些系统和组件可包括组件或指定的子组件、某些指定的组件或子组件和/或附加的组件,并且根据上述内容的各种置换和组合。子组件还可作为通信地耦合到其他组件的组件来实现,而不是被包括在父组件内(层次性)。另外,应注意到一个或多个组件可被组合成提供聚集功能性的单个组件,或被分成若干单独的子组件,且诸如管理层等任何一个或多个中间层可被设置成通信耦合到这样的子组件以便提供集成功能性。本文中所述的任何组件也可与一个或多个本文中未专门描述的但本领域技术人员一般已知的其他组件进行交互。\n[0111] 鉴于本文所述的示例系统,可根据参考各附图的流程图还可理解根据所述的主题来实现方法。尽管为了说明简洁起见,作为一系列框示出和描述的方法,但是应当理解,各实施例不仅仅限于框的次序,因为一些框可以与本文中所描绘和描述的框不同的次序发生和/或与其他框并发地发生。尽管经由流程图示出了非顺序或分支的流程,但可以理解,可实现达到相同或类似结果的各种其他分支、流程路径和框的次序。此外,一些所示的框在实现下面所述的方法时是任选的。\n[0112] 结语\n[0113] 尽管本发明易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而应当了解,这不旨在将本发明限于所公开的具体形式,而是相反地,旨在覆盖落入本发明的精神和范围之内的所有修改、替换构造和等效方案。\n[0114] 除本文中所述的各实施例以外,应当理解,可使用其他类似实施例,或者可对所述实施例作出修改和添加以便执行对应实施例的相同或等效功能而不背离这些实施例。此外,多个处理芯片或多个设备可共享本文中所述的一个或多个功能的性能,并且类似地,存储可跨多个设备实现。因此,本发明不限于任何单个实施例,而是要根据所附权利要求书的广度、精神和范围来解释。
法律信息
- 2018-04-20
- 2016-01-06
实质审查的生效
IPC(主分类): G08G 1/16
专利申请号: 201480014896.7
申请日: 2014.03.10
- 2015-12-09
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-09-05
|
2007-02-17
| | |
2
| |
2010-07-28
|
2010-02-09
| | |
3
| | 暂无 |
2011-01-18
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |