使用指纹数据进行位置确定

申请号 CN201380061448.8 申请日 2013-11-25 公开(公告)号 CN104813186A 公开(公告)日 2015-07-29
申请人 苹果公司; 发明人 L·M·马蒂; R·梅厄; S·M·马;
摘要 本 发明 描述了用于使用 位置 指纹 数据库 来确定移动设备的位置的方法、程序产品和系统。移动设备可使用从 服务器 所接收的位置指纹数据来确定该移动设备在该地点处的位置。该移动设备可从该移动设备的 传感器 获取传感器读数的向量,每个传感器读数可测量环境变量,例如由该传感器从 信号 源所接收的信号。该移动设备可执行向量和位置指纹数据之间的统计匹配。然后,该移动设备可基于该统计匹配来估计该移动设备的当前位置。
权利要求

1.一种方法,包括:
由移动设备并且从服务器接收位置指纹数据,所述位置指纹数据包括一个地点处的多个位置和每个位置的指纹,所述地点包括行人可进入的空间和所述行人的一个或多个移动约束,每个指纹包括对应位置处的环境变量的一个或多个预期测量;
从所述移动设备的一个或多个传感器接收测量,所述测量包括所述一个或多个传感器的关于所述环境变量的一个或多个读数;以及
使用所述测量和所述位置指纹数据来确定所述移动设备在所述地点处的位置包括执行统计分类,所述统计分类将所述测量分类为一个或多个可能位置,在所述一个或多个可能位置处,所述测量可由所述一个或多个传感器接收,每个可能位置与所述测量匹配相应可能位置的指纹的概率相关联。
2.根据权利要求1所述的方法,其中:
每个环境变量包括来自可由所述移动设备检测到的信号源的信号,所述一个或多个信号源包括无线接入点、光源、声源、磁源或热源中的至少一者;以及
所述一个或多个预期测量包括接收信号强度指示(RSSI)、往返时间、磁场强度、温度、噪声级或气压级中的至少一者。
3.根据权利要求1所述的方法,其中接收所述位置指纹数据包括:
当所述移动设备基于阈值来确定所述移动设备位于所述地点附近时,由所述移动设备从所述服务器请求所述位置指纹数据;以及
作为响应,接收所述位置指纹数据。
4.根据权利要求1所述的方法,其中执行所述统计分类包括:
基于训练数据将样本向量分类为一个或多个类别,每个类别与概率相关联,其中:
所述测量被指定为所述样本向量,
所述位置指纹数据被指定为所述训练数据,
所述一个或多个类别各自对应于所述地点处的可能位置,以及
与每个类别相关联的所述概率指示所述移动设备位于与所述类别对应的所述可能位置的可能性。
5.根据权利要求4所述的方法,包括确定与每个类别相关联的所述概率,其中确定所述概率包括:
确定在所述可能位置中的每个可能位置处测量所述测量的概率密度的逐点核估计,所述逐点核估计具有核函数,所述核函数应用于所述测量和所述相应可能位置的指纹之间的差值,所述核函数为积分为一的对称函数。
6.根据权利要求5所述的方法,其中所述核函数包括高斯函数。
7.根据权利要求5所述的方法,其中所述核函数应用于由粒子滤波器所提供的先验域。
8.根据权利要求1所述的方法,其中确定所述移动设备的所述位置包括合计一组可能位置的统计值。
9.根据权利要求8所述的方法,其中确定所述移动设备的所述位置包括基于上下文使用所述一组位置来计算所述位置,所述上下文包括加速度计、磁性传感器、陀螺仪或气压计中的至少一者的一个或多个读数。
10.一种系统,包括:
移动设备;
非暂态计算机可读介质,所述非暂态计算机可读介质存储用于使得所述移动设备执行操作的指令,所述操作包括:
由移动设备并且从服务器接收位置指纹数据,所述位置指纹数据包括一个地点处的多个位置和每个位置的指纹,所述地点包括行人可进入的空间和所述行人的一个或多个移动约束,每个指纹包括对应位置处的环境变量的一个或多个预期测量;
从所述移动设备的一个或多个传感器接收测量,所述测量包括所述一个或多个传感器的关于所述环境变量的一个或多个读数;以及
使用所述测量和所述位置指纹数据来确定所述移动设备在所述地点处的位置包括执行统计分类,所述统计分类将所述测量分类为一个或多个可能位置,在所述一个或多个可能位置处,所述测量可由所述一个或多个传感器接收,每个可能位置与所述测量匹配相应可能位置的指纹的概率相关联。
11.根据权利要求10所述的系统,其中:
每个环境变量包括来自可由所述移动设备检测到的信号源的信号,所述一个或多个信号源包括无线接入点、光源、声源、磁源或热源中的至少一者;以及
所述一个或多个预期测量包括接收信号强度指示(RSSI)、往返时间、磁场强度、温度、噪声级或气压级中的至少一者。
12.根据权利要求10所述的系统,其中接收所述位置指纹数据包括:
当所述移动设备基于阈值来确定所述移动设备位于所述地点附近时,由所述移动设备从所述服务器请求所述位置指纹数据;以及
作为响应,接收所述位置指纹数据。
13.根据权利要求10所述的系统,其中执行所述统计分类包括:
基于训练数据将样本向量分类为一个或多个类别,每个类别与概率相关联,其中:
所述测量被指定为所述样本向量,
所述位置指纹数据被指定为所述训练数据,
所述一个或多个类别各自对应于所述地点处的可能位置,以及
与每个类别相关联的所述概率指示所述移动设备位于与所述类别对应的所述可能位置的可能性。
14.根据权利要求13所述的系统,包括确定与每个类别相关联的所述概率,其中确定所述概率包括:
确定在所述可能位置中的每个可能位置处测量所述测量的概率密度的逐点核估计,所述逐点核估计具有核函数,所述核函数应用于所述测量和所述相应可能位置的指纹之间的差值,所述核函数为积分为一的对称函数。
15.根据权利要求14所述的系统,其中所述核函数包括高斯函数。
16.根据权利要求14所述的系统,其中所述核函数应用于由粒子滤波器所提供的先验域。
17.根据权利要求10所述的系统,其中确定所述移动设备的所述位置包括合计一组可能位置的统计值。
18.根据权利要求17所述的系统,其中确定所述移动设备的所述位置包括基于上下文使用所述一组位置来计算所述位置,所述上下文包括加速度计、磁性传感器、陀螺仪或气压计中的至少一者的一个或多个读数。
19.一种非暂态计算机可读介质,所述非暂态计算机可读介质存储用于使得一个或多个处理器执行操作的指令,所述操作包括:
由移动设备并且从服务器接收位置指纹数据,所述位置指纹数据包括一个地点处的多个位置和每个位置的指纹,所述地点包括行人可进入的空间和所述行人的一个或多个移动约束,每个指纹包括对应位置处的环境变量的一个或多个预期测量;
从所述移动设备的一个或多个传感器接收测量,所述测量包括所述一个或多个传感器的关于所述环境变量的一个或多个读数;以及
使用所述测量和所述位置指纹数据来确定所述移动设备在所述地点处的位置包括执行统计分类,所述统计分类将所述测量分类为一个或多个可能位置,在所述一个或多个可能位置处,所述测量可由所述一个或多个传感器接收,每个可能位置与所述测量匹配相应可能位置的指纹的概率相关联。
20.根据权利要求19所述的非暂态计算机可读介质,其中:
每个环境变量包括来自可由所述移动设备检测到的信号源的信号,所述一个或多个信号源包括无线接入点、光源、声源、磁源或热源中的至少一者;以及
所述一个或多个预期测量包括接收信号强度指示(RSSI)、往返时间、磁场强度、温度、噪声级或气压级中的至少一者。
21.根据权利要求19所述的非暂态计算机可读介质,其中接收所述位置指纹数据包括:
当所述移动设备基于阈值来确定所述移动设备位于所述地点附近时,由所述移动设备从所述服务器请求所述位置指纹数据;以及
作为响应,接收所述位置指纹数据。
22.根据权利要求19所述的非暂态计算机可读介质,其中执行所述统计分类包括:
基于训练数据将样本向量分类为一个或多个类别,每个类别与概率相关联,其中:
所述测量被指定为所述样本向量,
所述位置指纹数据被指定为所述训练数据,
所述一个或多个类别各自对应于所述地点处的可能位置,以及
与每个类别相关联的所述概率指示所述移动设备位于与所述类别对应的所述可能位置的可能性。
23.根据权利要求22所述的非暂态计算机可读介质,包括确定与每个类别相关联的所述概率,其中确定所述概率包括:
确定在所述可能位置中的每个可能位置处测量所述测量的概率密度的逐点核估计,所述逐点核估计具有核函数,所述核函数应用于所述测量和所述相应可能位置的指纹之间的差值,所述核函数为积分为一的对称函数。
24.根据权利要求23所述的非暂态计算机可读介质,其中所述核函数包括高斯函数。
25.根据权利要求23所述的非暂态计算机可读介质,其中所述核函数应用于由粒子滤波器所提供的先验域。
26.根据权利要求19所述的非暂态计算机可读介质,其中确定所述移动设备的所述位置包括合计一组可能位置的统计值。
27.根据权利要求26所述的非暂态计算机可读介质,其中确定所述移动设备的所述位置包括基于上下文使用所述一组位置来计算所述位置,所述上下文包括加速度计、磁性传感器、陀螺仪或气压计中的至少一者的一个或多个读数。

说明书全文

使用指纹数据进行位置确定

技术领域

[0001] 本公开整体涉及位置确定。

背景技术

[0002] 一些移动设备具有用于确定地理位置的特征部。例如,移动设备可包括用于从全球卫星系统(例如,全球定位系统或GPS)接收信号的接收器。移动设备可使用所接收的GPS信号来确定包括纬度和经度的地理位置。在许多地方,GPS信号可能不存在、微弱或受到干扰,使得无法使用移动设备的GPS功能来准确地确定位置。例如,常规的移动设备在位于建筑物或隧道内部时经常不能基于GPS信号来确定位置。发明内容
[0003] 本发明描述了用于使用位置指纹数据库来确定移动设备的位置的方法、程序产品和系统。在GPS信号不可用的情况下,移动设备可使用通过外推和内插生成的位置指纹数据库来应用统计分类以确定位置。
[0004] 在一个方面,服务器可生成用于数据库的位置指纹数据。服务器可使用众包、使用信号源的已知位置或这两者来生成位置指纹数据。服务器可从采样设备接收环境变量的测量,例如来自一个或多个采样点处的信号源的信号。服务器可从所接收的测量外推和内插地点中的一个或多个位置处的估计测量。服务器可存储作为位置指纹数据的外推或内插的测量。当移动设备处于该地点时,服务器可将位置指纹数据发送到移动设备以用于确定移动设备的位置。
[0005] 在一个方面,移动设备可使用从服务器接收的位置指纹数据来确定移动设备在该地点处的位置。移动设备可从移动设备的传感器获取传感器读数的向量,每个传感器读数可测量环境变量,例如由传感器从信号源所接收的信号。移动设备可执行向量和位置指纹数据之间的统计匹配。然后,移动设备可基于该统计匹配来估计移动设备的当前位置。
[0006] 在一个方面,移动设备可使用位置指纹数据和传感器的读数来获取位置观测值。移动设备可在粒子滤波器中使用位置观测值以用于确定移动设备在地点中的位置。移动设备可进行初始观测。该初始观测可包括测量环境变量,例如由传感器检测的信号,并且将测量与位置指纹数据进行比较。然后,移动设备可使用运动传感器来确定设备的移动状态(例如,方向和速度)。使用移动状态和地点的地图或通道信息,移动设备可确定设备的一个或多个候选位置。然后,移动设备可使用下一个观测值来更新候选位置,并且基于该候选位置来确定概率密度函数。然后,移动设备可向用户呈现作为设备在地点中的当前位置的最可能的位置。
[0007] 可实施位置指纹技术以实现以下优点。即使当GPS信号不可用时以及当常规位置确定功能失效时,移动设备也能够确定位置。例如,当移动设备位于其无法检测GPS信号的建筑物或隧道内部时,移动设备可确定移动设备位于何处。
[0008] 与使用常规位置估计技术的移动设备相比,使用位置指纹数据的移动设备可确定具有较高分辨率的位置。例如,当移动设备在室内时,常规设备可使用蜂窝信号以用于三测量。三角测量可具有几个街区的分辨率。相比而言,使用位置指纹数据的移动设备可确定携带设备的用户是正在沿着走廊步行、进入自助餐厅或正进入建筑物中的办公室。移动设备可确定用户位于哪个楼层,用户已通过哪道
[0009] 移动设备可根据需要来获取位置指纹数据。例如,移动设备可仅在移动设备快要进入建筑物时获取该建筑物的位置指纹数据。因此,可将用于位置确定的内存占用、网络带宽使用和处理器负荷最小化。
[0010] 在附图和以下描述中示出了使用位置指纹数据库的位置确定的一个或多个具体实施的细节。使用位置指纹数据库的位置确定的其他特征、方面和优点将通过具体实施方式、附图和权利要求书变得显而易见。

附图说明

[0011] 图1是提供使用位置指纹数据的位置确定的概述的框图
[0012] 图2示出了用于生成位置指纹数据的示例性调查技术。
[0013] 图3是用于生成位置指纹数据的示例性指纹引擎的框图。
[0014] 图4A示出了用于调查地点的示例性内插和外推技术。
[0015] 图4B示出了用于基于预测来生成位置指纹数据的示例性技术。
[0016] 图5示出了位置指纹数据中的示例性特征向量
[0017] 图6示出了位置指纹数据库的示例性逻辑结构。
[0018] 图7示出了使用统计分类来估计当前位置的示例性技术。
[0019] 图8是使用核估计来生成位置观测值的示例性过程的流程图
[0020] 图9是示出使用粒子滤波器来估计当前位置的示例性移动设备的框图。
[0021] 图10示出了对粒子滤波器的约束的示例性应用。
[0022] 图11A-图11C示出了使用来自移动设备的传感器的读数来配置粒子滤波器的示例性技术。
[0023] 图12是生成位置指纹数据的示例性过程的流程图。
[0024] 图13是使用位置指纹数据来估计位置的示例性过程的流程图。
[0025] 图14是使用粒子滤波器来估计位置的示例性过程的流程图。
[0026] 图15是用于显示移动设备在地点处的位置的示例性用户界面
[0027] 图16是用于实现图1-图15所示的特征和操作的示例性系统架构的框图。
[0028] 图17是示出实现参考图1-图15所述的特征和操作的移动设备的示例性设备架构的框图。
[0029] 图18是图1-图15的移动设备的示例性网络操作环境的框图。
[0030] 在各个附图中,类似的参考标号指示类似的元件。

具体实施方式

[0031] 概述
[0032] 图1是提供使用位置指纹数据的位置确定的概述的框图。位置服务器102可包括一个或多个计算机,其被编程以生成位置指纹数据并且将这些位置指纹数据存储在位置指纹数据库104中。位置服务器102可将位置指纹数据提供给移动设备106。移动设备106可使用从位置服务器102所接收的位置指纹数据来确定移动设备106的位置。
[0033] 由位置服务器102所生成的位置指纹数据可包括与地点相关联的一组特征。地点可为行人能够进入的空间。地点可包括限制行人在空间中移动的一个或多个约束。这些约束可包括例如地图约束(例如,壁、栏杆或隔间隔板)、通道约束(例如,在由道路标志限定的通道上步行的行人倾向于沿循该通道)或行人运动约束(例如,行人无法以快于X英里每小时的速度移动或当不在楼梯或升降机中时无法竖直移动)。地点可为物理结构。物理结构可为封闭的(例如,建筑物)或开放的(例如,露天体育场)。空间可为在物理结构内部的室内空间,或者在物理结构为开放的情况下可为在物理结构的限定空间内部的空间。地点可为移动的(例如,飞机、游轮或移动采油平台)。
[0034] 例如,地点可为具有大厅、办公室、壁、门、升降机和走廊的多层办公大楼。行人可为人类或以与人类步行或跑步速度类似的速度移动的设备。
[0035] 位置服务器102可通过将环境变量的测量指定为与地点相关联的一组特征来生成位置指纹数据。环境变量可为来自一个或多个信号源的信号。环境变量的测量可包括通TM过一个或多个Wi-Fi 接入点射频(RF)扫描所获取的数据。这些数据可包括服务集标识符(SSID)或接收信号强度指示(RSSI)。环境变量的测量可包括磁场属性,该磁场属性包括静态属性和动态属性。例如,该测量可包括磁场的量值和方向以及它们相应的变化速率。环TM
境变量的测量可包括Bluetooth 扫描数据,例如标识符或RSSI。环境变量的测量可包括蜂窝数据,例如小区标识符或RSSI。环境变量的测量可包括基于视觉的特征,例如光强度、颜色或由特征识别设备确定的视觉特征。信号的测量可包括近场通信(NFC)信号或射频识别(RFID)信号的测量。
[0036] 位置服务器102可使用指纹引擎108来生成位置指纹数据。指纹引擎108可使用调查或预测来生成位置指纹数据。为了使用调查来生成位置指纹数据,指纹引擎108可从一个或多个采样设备接收众包数据或调查数据。指纹引擎108可使用内插法基于所接收的众包数据来生成位置指纹数据。众包数据可包括由一个或多个采样设备提交的环境变量的测量。每个采样设备可为具有传感器(例如,RF接收器)的移动设备,该传感器用于测量环境变量(例如,RF信号)并且被配置为将测量提供给指纹引擎108。为了测量信号,采样设备可被编程为在放置于各种采样点处时记录可检测的信号。例如,用户或交通工具可携带采样设备并且在地点(例如,建筑物)内部步行或以其他方式行进(例如,利用升降机向上或向下移动)。同时,采样设备可记录所测量的信号,并且实时地或分批地将所记录的信号提交给位置服务器102。所记录的信号可来自各种各样的信号源。例如,所记录的信号可包括磁场测量、RF测量和光测量中的一些或全部。所记录的测量和内插可与地点相关联。
[0037] 为了使用预测来生成位置指纹数据,指纹引擎108可使用由信号估计器110生成的预测信号测量。预测可包括使用接入点上的真实数据进行外推。真实数据可包括接入点的已知位置。信号估计器110可为位置服务器102的部件,该位置服务器102的部件被配置为基于地点的地图(或指定信号屏障的其他结构信息)和信号源在地点中的已知位置来生成估计信号测量。信号估计器110可接收地图、位置和信号源特性。信号估计器110可基于信号源特性、信号源位置和地图中的特征来确定给定位置处的估计信号测量。例如,信号估计器110可确定地点中的一个或多个采样点,并且确定采样点和无线接入点之间的距离。基于无线接入点的类型、构造或型号,信号估计器110可确定接入点的信号强度。基于采样点和接入点之间的壁的数量,信号估计器110可确定来自接入点的信号的衰减。使用信号强度和衰减,信号估计器110可确定采样点处的估计测量(例如,RSSI)并且将采样点的估计测量和坐标提供给指纹引擎108。
[0038] 位置服务器102可在接收到来自移动设备106的请求时将位置指纹数据发送到移动设备106。移动设备106可根据需要例如在移动设备106进入地点时将请求发送到位置服务器102。当接收到位置指纹数据时,移动设备106可将位置指纹数据存储在位置指纹数据库112中。移动设备106可使用传感器114来获取环境变量的一组测量(例如,来自一TM个或多个Wi-Fi 扫描的结果)。传感器114可将这些测量发送到作为测量向量的扫描分析器116。扫描分析器116可为移动设备106的部件,该移动设备106的部件被配置为基于测量向量和位置指纹数据来得出移动设备106的最可能的位置。移动设备106可使用扫描分析器116将来自传感器114的测量向量中的读数与存储在位置指纹数据库112中的位置指纹数据进行匹配。该匹配可为多维的。例如,可对信号源维度(信号源1的测量、信号源
2的测量……)和位置维度(例如,纬度、经度和高度)执行匹配。匹配可包括测量向量的统计分类,其中位置指纹数据是用于统计分类的训练数据。扫描分析器116可得出作为多维匹配的函数的最可能的位置。
[0039] 在一些具体实施中,扫描分析器116可将最可能的位置指定为位置观测值,并且将位置观测值提供给粒子滤波器引擎118。粒子滤波器引擎118是移动设备106的部件,该移动设备106的部件被配置为使用可用数据来估计移动设备106的当前位置。粒子滤波器引擎118可确定移动设备106的初始位置,例如通过使用地点中的随机位置或使用第一观测值。此外,粒子滤波器引擎118可从传感器114接收移动设备106的运动信息。使用运动信息和地点的地图,粒子滤波器引擎118可配置粒子滤波器的参数以模拟移动设备106的候选位置。然后,粒子滤波器引擎118可使用来自扫描分析器116的位置观测值来更新粒子滤波器。更新粒子滤波器可包括基于过去的位置估计和观测值来确定当前位置估计。可对候选位置使用概率密度函数来确定当前位置估计。粒子滤波器引擎118可提供作为输出的当前位置估计的表示,以向移动设备106的用户进行显示。
[0040] 生成位置指纹数据
[0041] 图2示出了用于生成位置指纹数据的示例性调查技术。采样设备202可调查地点204的可用特征。调查地点204可包括使用采样设备202的传感器来测量一个或多个环境变量。每个环境变量可为无线电信号特性、磁场强度或方向、温度、声音级别、光强度或颜色。环境变量可包括来自信号源206,208和210的信号。信号源206,208和210可发射能够被地点204内部的采样设备202检测到的信号。信号源206,208和210不需要物理定位在地点204中。
[0042] 采样设备202可被携带到地点204中的各个采样点。采样设备202可基于在采样设备202上显示的地点204的地图上的用户输入来确定采样点。在每个采样点处,采样设备202可记录测量来自一个或多个信号源的信号的传感器读数。例如,如果信号源206,208和210是无线接入点,则采样设备202可记录从接入点接收的SSID,并且在采样设备202可检测来自每个无线接入点的无线信号(如图2中以虚线所指示的)时记录来自每个无线接入点的RSSI。采样设备202可将每个采样点处的测量指定为采样点的测量向量。在每个采样点处,采样设备202不需要检测来自所有信号源的信号来生成采样点的测量向量。采样设备202可将测量向量作为调查数据发送到位置服务器102以用于进行另外的处理。
[0043] 地点204可包括不存在采样数据的空间214。空间214可为采样设备202未达到的空间,或采样设备202移动通过而未停留足够长时间以获取信号的读数的空间。位置服务器102的指纹引擎108可通过内插法或外推法来确定空间214处的测量。下文将参考图3来描述指纹引擎108的操作的另外的细节。
[0044] 图3是用于生成位置指纹数据的示例性指纹引擎108的框图。指纹引擎108可被编程为从一个或多个单独的采样设备(例如,图2的采样设备202)接收调查数据,并且基于所接收的调查数据来生成位置指纹数据。指纹引擎108可包括数据滤波器302。数据滤波器302是指纹引擎108的部件,该指纹引擎108的部件被配置为预处理所接收的调查数据。预处理调查数据可包括丢弃异常调查数据(例如,不完整的读数或离群值)以及补偿不同采样设备间的差异。
[0045] 指纹引擎108可包括数据内插器304。数据内插器304为指纹引擎108的部件,该指纹引擎108的部件被配置为对特征分辨率进行向上采样。数据内插器304可确定调查数据为稀少的并且在向上采样中应用内插方案。
[0046] 指纹引擎108可包括特征外推器306。特征外推器306为指纹引擎108的部件,该指纹引擎108的部件被配置为确定具体特征的置信度值是否满足阈值并且在满足阈值的情况下从调查数据外推特征。该特征可反映在给定采样点处所接收的信号的特性。
[0047] 指纹引擎108可包括数据验证器308。数据验证器308是指纹引擎108的部件,该指纹引擎108的部件被配置为通过依据存储在位置指纹数据库104中的一个或多个现有特征验证从调查数据得出的特征来维持特征的完整性。数据验证器308可验证在具有给定一组约束的给定地点处的每个特征,该给定一组约束可以高置信度产生至少一个匹配结果。数据验证器308可有利于维持位置指纹数据库104包括使位置指纹数据库104保持最新。
此外,数据验证器308可通过确定作为空间差异的函数的位置指纹数据库104的独特性来评估位置指纹数据库104的完整性。
[0048] 图4A示出了用于调查地点的示例性内插和外推技术。内插和外推可分别由如上文参考图3所述的数据内插器304和特征外推器306执行。为便利起见,将参考两个示例性调查来描述该技术。
[0049] 在第一调查中,数据内插器304可从采样设备(例如,图2的采样设备202)接收调查数据。调查数据可包括地点中的一个或多个环境变量的测量。例如,调查数据可包括当采样设备在具有一个或多个内壁的建筑物内部移动时由采样设备从无线接入点所接收的RF信号的RSSI的一个或多个测量。数据内插器304可能具有或可能不具有关于无线接入点的物理位置的信息。RSSI的测量可与位置402和406相关联。数据内插器304可能尚未接收位置404或408处的RSSI测量。位置402和406可由调查员(例如当在地点中步行时携带采样设备的用户)提供。数据内插器304可基于由无线接入点所发射的RF信号的信号传播属性来对所接收的调查数据进行向上采样并确定位置404和408处的预期RSSI。
[0050] 特征外推器306可接收地点的地图(或其他结构信息)。基于地图,特征外推器306可确定壁410位于在位置408前方的直线路径上。地图可包括壁410的壁类型,例如壁410是薄玻璃屏还是厚承重壁。特征外推器306可能不具有位置412或414的RSSI数据。基于历史数据和壁类型,特征外推器306可确定例如壁410可使来自无线接入点的信号衰减20dB。因此,特征外推器306可确定位置412处的预期RSSI为-20dB并且位置414处的预期RSSI为-100dB。
[0051] 图4B示出了用于基于预测来生成位置指纹数据的示例性技术。在一些具体实施中,位置服务器102可能不具有地点的调查数据。位置服务器102可使用地点的地图以及地点中的信号源的位置和类型来生成取代调查数据的环境变量的预测测量。具体地,位置服务器102的信号估计器110可基于地图以及信号源的位置和类型来生成一个或多个采样点的预测信号测量。
[0052] 例如,信号估计器110可接收建筑物的指示壁442位于建筑物中的地图。地图还可包括关于壁442的类型的信息。此外,信号估计器110可接收关于信号源444的信息,该信号源可为无线接入点。信号源444可位于建筑物内部或外部。基于建筑物与信号源444的相对位置,信号估计器110可确定可在建筑物中检测到的来自信号源444的信号。因此,信号估计器110可确定信号源444可用于确定待与建筑物相关联的位置指纹数据。然后,信号估计器110可在采样点(例如,采样点446,448和450)处针对信号源444计算预期信号测量,例如预期RSSI。该计算可基于信号源444的特性(例如,无线接入点的发射功率)、信号源444的信号衰减模式452以及每个采样点和信号源之间的距离。信号衰减模式452针对不同类型的信号源可为不同的。例如,来自无线接入点的信号的衰减模式可不同于来自光源、磁场源、声源或热源的信号的衰减模式。
[0053] 当信号估计器110计算预期信号读数时,信号估计器110可基于如地图中所指示的建筑物的结构来调整基于衰减模式预期信号读数值。例如,信号估计器110可基于壁442在建筑物中的位置和壁442的类型来确定由在位于壁442后方的位置454处的移动设备从信号源444所接收的信号。因此,信号估计器110还可使信号读数的预期值按某一常数(例如,20dB)或位置454的函数进行衰减。
[0054] 信号估计器110可基于地图和信号源444的位置来确定采样点446,448和450。信号估计器110可从行人可进入的空间(例如,不在壁或柱子内部)选择点,在这些点处,移动设备可响亮且清楚地从信号源444接收信号,使得特征匹配(如果存在的话)可具有高置信度值。
[0055] 图5示出了位置指纹数据中的示例性特征向量。采样设备202可在地点中进行调查。当采样设备202在地点内部时,采样设备202可检测到四个信号源。这四个信号源中的每个信号源可为无线接入点。这四个信号源中的每个信号源可具有标识符,例如媒体访问控制(MAC)地址。标识符可分别为例如AP1、AP2、AP3和AP4。图5中的每条竖直线的高度表示所测量的信号强度。竖直线具有相等高度,并且每个竖直线对应于一个圆圈。围绕信号源的每个圆圈表示对应信号源的测量(例如,RSSI),该测量等于由竖直线的高度表示的测量(例如,20dB)。一个圆圈(例如,围绕AP2的圆圈)可大于另一个圆圈(例如,围绕AP4的圆圈)。大小的不同可指示,采样设备202可在一个信号源(AP2)周围的较大区域中接收具有与另一个信号源(AP4)周围相同信号强度的信号。
[0056] 在位置502处,采样设备202可检测到来自AP1、AP2、AP3和AP4的信号。来自AP1、AP2、AP3和AP4的信号的信号强度可分别为+20dB、-95dB、-95dB和-95dB。采样设备202可将作为测量向量504的信号强度提交到位置服务器102。位置服务器102可基于测量向量504来确定特征向量506。特征向量506可具有多个元素,每个元素对应于一个信号源。每个元素的值可指示对应信号源能够由移动设备检测到的概率。特征向量506可从测量向量504得出。特征向量506可指示一些测量可比其他测量承载更多信息。例如,如果在给定位置处,检测到四个接入点AP1、AP2、AP3和AP4,而来自一个接入点(AP1)的信号与来自另外三个接入点的信号相比非常强。位置服务器102可确定在空间有限的区域中仅可观测到强RSSI测量,并且因此,强接入点AP1可具有比AP2、AP3和AP4更高的信息量(熵)。例如,位置服务器102可向AP1至AP4分别分配熵值0.7,0.1,0.1和0.1。特征向量506可与位置502相关联,从而指示在位置502处,移动设备很有可能检测到来自AP1的信号,而不太可能检测到来自AP2、AP3和AP4的信号。位置服务器102可将作为与由采样设备202所调查的地点相关联的位置指纹数据的一部分的特征向量506存储在位置指纹数据库中。
[0057] 在一些具体实施中,当测量图案指示采样设备202位于邻近给定信号源处的高概率时,位置服务器102可将特征向量指定为良好特征向量。位置服务器102可基于包括观测功率电平或给定频率的存在以及其他因素在内的因素将特征向量指定为良好特征向量。在所示的实例中,当位置服务器102接收到测量向量504时,如果在设备能够测得20dB的RSSI的情况下AP1周围的区域较小,则位置服务器102可确定采样设备202具有靠近AP1的高可能性。因此,位置服务器102可将特征向量506指定为良好特征向量。良好特征向量可在由移动设备确定的位置中与较高权重相关联。
[0058] 示例性位置指纹数据
[0059] 图6示出了位置指纹数据库的示例性逻辑结构。对于地点中的多个位置中的每个位置,位置指纹数据可包括以下至少一个:各个信号源的测量(或缺少其测量)、信号源的预期测量、预期测量的方差以及特征向量。例如,位置指纹数据可包括以下各项中的至少一TM者:无线接入点指纹数据;RFID指纹数据;NFC指纹数据;Bluetooth 指纹数据;磁场指纹数据;蜂窝指纹数据;或计算机视觉指纹数据。各种指纹数据可聚集在一起以形成给定位置的位置指纹数据。
[0060] 位置指纹数据可被存储为与地点相关联的多维数据。多维数据的一些维度可为空间维度。空间维度可包括X(例如,纬度)、Y(例如,经度)和Z(例如,高度,未示出)。空间维度可为连续的、以函数表达或离散的,其中空间维度可包括分布在地点中的各个位置(例如,位置606,608,610,612和614)。分布可为平稳且均匀的,或集中在存在良好特征向量的区域周围。
[0061] 多维数据的至少一个维度可为信号源维度。特征向量602可对应于由(X,Y,Z)表示的位置,并且具有每个信号源的一个或多个值。这些值可包括以下各项中的一个或多个:环境变量的预期值(例如,预期RSSI)、预期值的方差或移动设备可检测到来自信号源的信号的概率。位置服务器102的指纹引擎108可基于从采样设备(例如,图2的采样设备202)所接收的测量和测量方差来确定预期值和方差。测量可为各种各样的。例如,信号源维度可包括维度变量AP1、AP2和磁场测量。
[0062] 在一些具体实施中,可将空间维度归一化。指纹引擎108可从一个或多个采样设备接收测量。每个测量可对应于一个采样点。例如,调查员可携带采样设备并且沿循路径604以调查地点。指纹引擎108可根据606,608,610,612和614的分布将路径604归一化为位置606,608,610,612和614。
[0063] 示例性位置估计
[0064] 图7示出了使用统计分类来估计当前位置的示例性技术。移动设备106(图1)可从位置服务器102接收位置指纹数据712。位置指纹数据712可与地点相关联。位置指纹数据702可包括特定于地点的位置指纹数据库中的所有数据。移动设备106可针对位置指纹数据712匹配从一个或多个传感器114得出的多维测量向量702,以得出移动设备106在该地点处的最可能的位置。最可能的位置可为多维测量向量702的函数。
[0065] 移动设备106的扫描分析器116可使用统计分类和回归之间的自适应方案来确定移动设备106的最可能的位置。在统计分类中,扫描分析器116可基于训练数据来识别传感器测量的向量属于一组位置中的哪些位置(例如,地点中的位置704,706,708或710)。该组位置可为移动设备106的估计位置。传感器测量的向量可包括多维测量向量702。训练数据可包括与已知位置相关联的测量。扫描分析器116可使用位置指纹数据712作为训练数据。
[0066] 移动设备106的扫描分析器116可采用逐点核估计过程来确定多维测量向量702的类别。类别可为位置704,706,708或710。扫描分析器116可确定位置704,706,708和710中的移动设备106的位置的概率密度函数(PDF)。为了确定PDF,扫描分析器116可通过向多维测量向量702和对应于位置704,706,708和710的相应特征向量或测量向量之间的差值应用核函数来确定多维测量向量702位于位置704,706,708和710中的每个位置处的概率。扫描分析器116可应用积分为1的对称函数(例如,高斯函数、单值函数或余弦函数)作为用于逐点核估计的核函数的选择。
[0067] 扫描分析器116可在核估计过程中采用特征向量。在一些具体实施中,特征向量可使用得出的熵向量。扫描分析器116可使用特征向量来增加信号测得为强的接入点的重要性。熵向量可包括作为元素的各个位置的每个子集的熵。扫描分析器116可使用熵向量来表达多维测量向量702的信息量。扫描分析器116可确定具有较低读数(例如,较低RSSI测量)的多维测量向量702的子集拥有的信息量比具有较高读数(例如,较高RSSI测量)的多维测量向量702的子集所拥有的信息量低。该确定可指示,对于一个地点,具有低读数的区域的子集可大于具有较高读数的区域的子集。
[0068] 在一些具体实施中,扫描分析器116可通过减小搜索空间来优化确定。搜索空间可对应于移动设备的位置以及与该位置相关联的不确定性。扫描分析器116可从初始估计开始,该初始估计可被指定为初始搜索空间。例如,当扫描分析器116没有关于移动设备106的位置的信息时,扫描分析器可将世界定为初始搜索空间。当扫描分析器116获取一些位置信息时,扫描分析器116可基于位置信息将搜索空间减小到美国、加利福尼亚州、库比蒂诺市或者特定街区或建筑物。每个位置估计可从之前的估计得出。
[0069] 减小搜索空间可包括在可能时减少用于在PDF中计算概率的离散点(例如,位置)的数量。扫描分析器116可在提供给扫描分析器116的先验域中执行核函数。在由粒子滤波器引擎118提供了直到时间k的并且包括时间k处的给定观测值的情况下,先验域可为在时间k处的后验状态估计。例如,粒子滤波器引擎118可基于地点(例如,壁)的约束和移动设备106的移动速度的限制(限于人类步行或跑步的最大速度)来确定位置710不是可能的位置并且将会被过滤掉。然后,扫描分析器116可基于位置704,706和708上的概率密度来确定位置观测值。先验域可与不确定性相关联,该不确定性可增大或减小。例如,尝试减小搜索空间,移动设备106可能丢失信号,从而使得位置不确定性和搜索空间增大。
[0070] 图8是使用核估计来生成位置观测值的示例性过程800的流程图。过程800可由如上文参考图1所述的示例性扫描分析器116来执行。
[0071] 扫描分析器116可使用位置指纹数据和传感器测量来限定(802)统计分类参数。扫描分析器116可为统计分类限定分类类别、样本向量和训练数据。分类类别可以是移动设备106的一个或多个候选位置。候选位置可以是位置指纹数据库中的一个或多个位置。
样本向量可以是从一个或多个传感器所接收的多维测量向量702。训练数据可以是存储在位置指纹数据库中的向量。扫描分析器116可将样本向量映射到位置类别(或“仓”)中。
该映射可以是分类或回归。分类可包括严格关联,其中样本向量被映射到恰好一个仓中。回归可包括派生关联,其中样本向量被映射到多个仓中。在回归中,扫描分析器116可通过对多个仓执行统计分析来得出样本向量的最终类别。
[0072] 扫描分析器116可限定(804)测量的信息量。限定测量的信息量可包括通过应用特征向量(例如,熵向量)来确定多维测量向量中的每个测量的权重。
[0073] 扫描分析器116可通过先验估计来减小(806)搜索空间。减小搜索空间可包括在先验域上执行核函数,该先验域可为由粒子滤波器引擎118提供给扫描分析器116的后验状态估计。
[0074] 扫描分析器116可生成(808)位置观测值。生成位置观测值可包括执行逐点核估计过程以估计移动设备106在减小的搜索空间中的位置的PDF。生成位置观测值可包括根据PDF从一组最可能的匹配中合计统计值。扫描分析器116可将位置观测值提供给粒子滤波器引擎118以用于估计移动设备106的当前位置。
[0075] 示例性粒子滤波器
[0076] 图9是示出使用粒子滤波器来估计当前位置的示例性移动设备的框图。移动设备可以是如参考图1所述的移动设备106。
[0077] 移动设备106可在GPS信号不可用时使用“可用信息”来估计位置。可用信息可包括例如运动模型、运动测量、环境约束和地图约束。然后,移动设备106可使用状态空间模型来合并来自不同信息源的可用信息。
[0078] 状态空间模型可以是基于模拟的估计模型,例如粒子滤波器。移动设备106的粒子滤波器引擎118可基于以当前观测值Zk为条件的先前位置Xk-1,使用粒子滤波器来估计移动设备106的当前位置Xk的概率密度,其中k是给定时间点,k-1是在k之前的时间点。k和k-1之间的时间长度可为可配置的(例如,1秒或5秒)。
[0079] 粒子滤波器引擎118可包括状态空间估计器902。状态空间估计器902可被配置为接收可用信息并且将可用信息合并到位置估计器904中,该位置估计器904是粒子滤波器引擎118的部件,该粒子滤波器引擎118的部件被配置为提供位置估计。
[0080] 状态空间估计器902可从服务器或移动设备106的存储设备接收地图数据906。地图数据906可包括地点中的一个或多个约束的属性,该地点包含携带移动设备106的行人可进入的空间。所述约束可包括结构约束(例如,壁)。状态空间估计器902可确定行人无法过渡通过结构约束。考虑到行人的有限运动速度,状态空间估计器902可确定行人可在给定时间间隔内移动的可能性。
[0081] 地图数据906中的约束可包括地点的空间中的区域属性。例如,地图数据906中的约束可限定通道(例如,走廊)和开放区域(例如,大厅、自助餐厅或办公室)。状态空间估计器902可确定当行人在通道中步行时,行人可能会沿循通道,而当行人在开放区域中步行时,行人可漂移,例如在随机方向上移动,而不沿循通道。状态空间估计器902可确定行人的移动受到约束概率的影响。例如,状态空间估计器902可确定当行人沿着通道步行时该行人进入朝通道敞开的开放空间的概率。基于开放空间的类型(例如,开放空间是大厅、自助餐厅还是办公室)或通道与开放空间的相对位置(例如,通道是否在开放空间处终止),行人进入开放空间的概率可以高于或低于行人停留在通道上的概率。下文将参考图10来描述关于确定行人可在给定时间间隔内移动的可能性的限制的另外的细节。
[0082] 状态空间估计器902可从传感器114接收运动上下文。运动上下文可包括传感器114的读数。传感器114可包括移动设备106的微机电系统(MEMS)。例如,传感器114可包括被配置为确定行人前进方向的罗盘907、被配置为确定行人的移动是步行还是跑步即一小步移动和一大步移动的加速度计908。传感器114可包括气压计910,该气压计被配置为基于气压来确定行人是正在向上移动还是正在向下移动(例如,在升降机中或在楼梯上)。
传感器114可包括陀螺仪912,该陀螺仪被配置为确定行人是否正在转弯。
[0083] 基于运动上下文,状态空间估计器902可确定携带移动设备106的行人是静止的还是非静止的。如果状态空间估计器902确定行人是静止的,则状态空间估计器902可使用状态空间系统噪声(例如,随机位置)来配置位置估计器904。如果状态空间估计器902确定行人是非静止的,则状态空间估计器902可使用行人的运动速度来配置位置估计器904以驱动位置估计器904的状态空间更新。
[0084] 状态空间估计器902可基于从传感器114所接收的运动上下文数据来确定属性信息。属性信息可包括使用从传感器114所接收的一系列运动上下文数据确定的行人的前进方向。状态空间估计器902可随时间接收这一系列运动上下文数据,并且使用滤波器基于这一系列运动上下文数据来估计前进方向,该滤波器被配置为使用随时间观测到的一系列测量来产生未知变量的估计值。在一些具体实施中,滤波器可为卡尔曼滤波器。
[0085] 基于地图约束、运动上下文和属性信息,状态空间估计器902可确定移动设备106的候选位置。状态空间估计器902可将候选位置指定为样本(或“粒子”)以用于在粒子滤波器P(Xk|Xk-1)中传播,其中Xk是移动设备106在时间k处的当前位置,Xk-1是在时间k-1处的先前位置。考虑到先前位置,传播粒子滤波器可包括将可用信息(包括地图数据、运动上下文和属性信息)应用到粒子滤波器,以确定在地点的至少一部分中的候选位置的概率密度。传播粒子滤波器可基于用于探究一些或全部潜在约束的随机过程。在一些具体实施中,随机过程可以是离散维纳过程。传播粒子滤波器可基于这些约束的可用性而受到多维相关性函数的影响。
[0086] 状态空间估计器902可在候选位置数量下降到低于足以进行概率密度计算的阈值数量时检测粒子耗尽。在此类检测时,状态空间估计器902可执行对一部分地点或整个地点的并行重采样以从滤波器发散恢复。
[0087] 当传播粒子滤波器时,状态空间估计器902可将粒子滤波器提供给位置估计器904以用于更新。位置估计器904可使用从扫描分析器(例如,如参考图1所述的扫描分析器116)所接收的位置观测值来更新粒子滤波器。更新粒子滤波器可包括将所估计的指纹位置馈入送到粒子滤波器中。位置观测值可受到具有给定系统不确定性的测量模型的影响。更新粒子滤波器可包括计算概率密度P(Xk|Xk-1,Zk),其中Zk是在时间k处的位置观测值。然后,位置估计器904可使用概率密度来确定移动设备106的当前位置(在时间k处的位置),包括将移动设备106的最可能的位置指定为移动设备106的当前位置。
[0088] 图10示出了对粒子滤波器的约束的示例性应用。状态空间采样器(例如,如上文参考图9所述的状态空间估计器902)可接收地点204的地图数据。地图数据可指定包括开放空间1002、走廊1004和办公室1006的地点204。
[0089] 对于给定时间k,移动设备106可确定对应于时间k-1的初始位置1007。初始位置可为移动设备106的先前估计位置。紧接在移动设备106进入地点204之后,或紧接在移动设备106在地点204处开启之后,移动设备106可能尚未执行先前位置估计。在此类情况下,移动设备106可确定初始位置1007是地点204中的随机位置。初始位置1007被示出为单个点。在一些具体实施中,初始位置1007可以是多个可能位置的概率密度函数,每个可能位置与移动设备106位于该位置的概率相关联。概率密度函数可以是离散的或连续的。
[0090] 例如当线速度和角速度以及线加速度和角加速度为零或接近零(例如,不能与系统误差容限区别)时,移动设备106可使用一个或多个传感器来确定移动设备106是静止的。当确定移动设备106是静止的时,移动设备106可为粒子滤波器生成时间k的候选位置1008,1010,1012和1014。可基于状态空间系统噪声来生成候选位置1008,1010,1012和1014。此外,初始位置1007可以是候选位置。移动设备106可向粒子滤波器应用地点204中的移动约束。例如,移动设备106可确定由于初始位置1007在开放空间1002中,因此不需要应用方向约束;候选位置1008,1010,1012和1014可在从初始位置1007起的任何方向上。此外,移动设备106可确定候选位置1014表示不可能性,因为移动设备106需要通过屏障(例如,壁)或以超过步行或跑步速度的速度行进,以用于行人围绕走廊1004从初始位置1007到达候选位置1014。移动设备106可基于该不可能性从粒子滤波器移除候选位置1014。
[0091] 在给定时间t处,移动设备106可确定移动设备106的初始位置1018。初始位置1018可对应于时间t-1。移动设备106可使用一个或多个传感器来确定移动设备106是非静止的,例如当线速度或角速度或者加速度为非零时。当确定移动设备106是非静止的时,移动设备106可为粒子滤波器针对时间t生成候选位置。候选位置可包括由粒子滤波器采样的位置分布。移动设备106可决定初始位置1018位于地点204中的沿循走廊1004的路径上。因此,移动设备106可确定移动设备106的移动方向限于如走廊1004所限定的路径的方向。基于移动设备106的前进方向,移动设备106可确定候选位置1020以及候选位置
1022,该候选位置1020根据前进方向而位于移动设备106的前方,该候选位置1022可根据前进方向而位于移动设备106的后方。移动设备106可确定与候选位置1022相比,该候选位置1020是移动设备106的更可能的位置。此外,移动设备106可确定初始位置1018充分靠近办公室1006的入口,使得正以步行速度移动的行人可在t-1和t之间的时间期间进入办公室1006。因此,移动设备106可将候选位置1024放置于办公室1006中。移动设备
106可针对粒子滤波器向候选位置1020,1022和1024中的每个候选位置分配不同权重。
[0092] 图11A-图11C示出了使用来自移动设备的传感器的读数来配置粒子滤波器的示例性技术。移动设备可以是如上文参考图1所述的移动设备106。
[0093] 图11A示出了当移动设备正以速度v1移动时基于初始位置1102来确定当前位置估计。移动设备可基于传感器的读数变化速率来确定速度v1。在一些具体实施中,移动设备可基于由加速度计所测量的加速度的变化频率来确定速度v1,其中较高频率指示行人的较快步伐。此外,移动设备可基于加速度的量值来确定速度v1,其中较大量值指示较大步幅。
[0094] 移动设备可确定当前位置估计1104,1106,1108,1110和1112。移动设备生成的在移动设备前进方向上的当前位置估计(例如,位置估计1106,1108,1110和1112)可比在远离前进方向的方向上的当前位置估计(例如,位置估计1104)多。位置估计数量的差值可模拟这样的情形:移动设备正继续在初始前进方向上移动的可能性比折回的可能性高。当前位置估计可受到地点(例如,壁1114)约束的影响。然后,移动设备可使用估计位置
1104,1106,1108,1110和1112来配置粒子滤波器,这些估计位置受到由扫描分析器(例如,图1的扫描分析器116)提供的位置观测值的影响。该观测值可从位置指纹数据得出并且可包括单个位置或者多个位置的离散或连续概率密度。
[0095] 图11B示出了当移动设备正以速度v2移动时基于初始位置1118来确定当前位置估计。移动设备可基于传感器的读数来确定速度v2为高的(例如,高于图11A的速度v1)。当确定速度v2为高的时,移动设备可确定与图11A的行人相比,携带设备的行人更有可能根据当前前进方向继续而较不可能折回。因此,移动设备可在前进方向上生成更多当前位置估计(例如,位置估计1120,1122,1124,1126,1128和1130)。移动设备可在远离前进方向的方向上生成估计位置1132,以模拟行人折回的可能性。
[0096] 移动设备可在预计移动设备将要行进的路径上生成位置估计1122和1126。移动设备可使用位置估计1122和1126以用于计算行人以不同速度行进的概率,以验证或校正运动传感器所确定的当前速度(v2)。
[0097] 移动设备可生成位置估计1120,1124,1128和1130以用于计算移动设备改变方向的概率。与图11A相比,速度v2高于速度v1。因此,位置估计1120,1122,1124,1126,1128和1130的分布在沿着移动设备的前进方向上可比位置估计1106,1108,1110和1112更集中,其中在较高集中度下,位置估计在沿着前进方向的较窄的束中并且在远离前进方向的方向上发散较少。例如,在一些具体实施中,位置估计的预期数量与移动设备的速度成比例;位置估计的方向变化可与速度成反比。
[0098] 图11C示出了当移动设备正沿着通道移动时基于初始位置1140来确定当前位置估计。移动设备可确定运动速度v3和移动设备的初始位置1140。基于地点的地图数据,移动设备可确定移动设备正在走廊中朝向拐角前进。移动设备可确定移动设备的移动受走廊的壁的约束。因此,移动设备可使用通道上(例如,在走廊中)的位置估计来配置粒子滤波器。移动设备可确定当前位置估计1142,1144,1146和1148,这些位置估计不沿着移动设备的前进方向,但当移动设备在前进方向上继续并且接着转弯的情况下它们是移动设备可能处于的沿循走廊的位置。移动设备在通道中的移动设备前方放置的当前位置估计(例如,当前位置估计1142,1144,1146和1148)可比在移动设备后方的当前位置估计(例如,当前位置估计1150)多。
[0099] 示例性过程
[0100] 图12是生成位置指纹数据的示例性过程1200的流程图。过程1200可由位置服务器(例如图1的位置服务器102)来执行。
[0101] 位置服务器可识别(1202)待与地点相关联的一个或多个环境变量。每个环境变量可测量一个信号。每个环境变量可对应于一个信号源。信号源可包括无线接入点、光源、声源、磁源或热源。识别一个或多个环境变量可包括从被配置为调查地点的采样设备(例如,图2的采样设备202)接收每个信号源的标识符。
[0102] 位置服务器可确定(1204)当移动设备位于地点处时移动设备的传感器能够检测到信号的多个位置。每个位置可包括参考系中的位置坐标。例如,当参考系是地球时,位置坐标可包括纬度、经度和高度。当参考系是地点时,位置坐标可以是从地点中的给定点的竖直距离和平距离。
[0103] 位置服务器可确定(1206)地点的位置指纹数据。位置指纹数据可包括每个位置的指纹。指纹可包括当移动设备在对应位置处测量信号时移动设备预期接收的一组一个或多个测量。每个测量可包括RSSI、往返时间、磁场强度、温度、声级或气压级中的至少一者。
[0104] 位置指纹数据可包括具有环境变量维度和位置维度的多维数据。位置指纹数据的环境变量维度可对应于一个或多个环境变量。位置指纹数据的位置维度对应于一个或多个位置的坐标。位置维度可包括经度子维度、纬度子维度和高度子维度。给定位置和给定环境变量处的位置指纹数据中的一个或多个值对应于包括给定位置处的环境变量的预期值和方差的概率分布。
[0105] 位置服务器可通过调查地点来确定地点的位置指纹数据。在调查中,位置服务器可从采样设备(例如,图2的采样设备202)接收来自在一个或多个采样位置处的一个或多个信号源的信号的测量。位置服务器可从一个或多个采样位置处的信号的测量外推每个位置处的环境变量的估计测量。然后,位置服务器可基于所接收的测量、所外推的测量和对应位置来生成位置指纹数据。
[0106] 在一些具体实施中,外推估计测量可包括基于约束来确定信号的测量的衰减。约束可包括一个或多个壁、地板或柱子。
[0107] 在一些具体实施中,位置服务器可通过预测来确定地点的位置指纹数据。通过预测来确定位置指纹数据可包括接收地点的地图,并且接收信号源的位置坐标。位置坐标可以是绝对坐标(例如,纬度、经度和高度)或相对坐标(例如,位于第二层、北壁、与西拐角相距三米)。位置服务器可确定多个位置并且将这些位置指定为采样点。位置服务器可确定信号源的发射特性。发射特性可包括来自信号源的信号在空间中和在各种结构屏障(例如,各种类型的壁和柱子)中的传播模式(例如,衰减速率)。对于每个采样点,位置服务器可基于信号源的位置、信号源和采样点之间的空间和屏障、来自信号源的信号在空间中的估计传播模式以及来自信号源的信号在屏障中的估计传播模式来确定来自信号源的信号的预期测量和方差。位置服务器可存储预期测量、方差、信号源的标识符和作为位置指纹数据的对应位置。
[0108] 位置服务器可将地点的位置指纹数据和标识符提供(1208)给移动设备以用于确定移动设备在地点处的位置。将位置指纹数据提供给移动设备可在移动设备进入地点时发生。位置服务器可从移动设备接收对地点的位置指纹数据的请求。在一些具体实施中,可在移动设备失去对GPS信号的接收时触发该请求。该请求可包括由GPS信号所确定的最后位置。位置服务器可确定位于最后位置处的地点,并且将地点的位置指纹数据提供给移动设备。在一些具体实施中,可在移动设备在地点内部开启并且接收对位置确定的用户请求时触发该请求。移动设备可通过无线接入点将该请求发送到位置服务器。基于无线接入点的标识符,位置服务器可确定地点并且将地点的位置指纹数据提供给移动设备。
[0109] 图13是使用位置指纹数据来估计位置的示例性过程1300的流程图。过程1300可由移动设备(例如图1的移动设备106)来执行。
[0110] 移动设备可从服务器(例如,图1的位置服务器102)接收(1302)位置指纹数据。位置指纹数据可包括地点处的多个位置和每个位置的指纹。地点可包括行人可进入的空间和行人的一个或多个移动约束。每个指纹可包括对应位置处的环境变量的一个或多个预期测量。每个环境变量可包括来自移动设备可检测到的信号源的信号。一个或多个信号源可包括RF源(例如,无线接入点)、光源、声源、磁源或热源中的至少一者。一个或多个预期测量可包括RSSI、往返时间、磁场强度、温度、噪声级或气压级中的至少一者。
[0111] 移动设备可通过请求来接收位置指纹数据。当移动设备基于阈值来确定移动设备位于地点附近时,移动设备可从服务器请求位置指纹数据。例如,移动设备可基于GPS信号和存储在移动设备上的地图来确定移动设备位于建筑物的阈值距离内。然后,移动设备可从服务器请求建筑物的位置指纹数据。移动设备可作为响应接收位置指纹数据。
[0112] 移动设备可从移动设备的一个或多个传感器接收(1304)测量向量。测量向量可包括一个或多个传感器的关于环境变量的一个或多个读数。
[0113] 移动设备可使用测量向量和位置指纹数据来确定(1306)移动设备在地点处的位置。确定位置可包括执行统计分类,该统计分类将测量向量分类为一个或多个可能位置,在这些可能位置处,测量向量可由一个或多个传感器接收。每个可能位置可与测量向量匹配相应可能位置的指纹的可能性相关联。执行统计分类可包括基于训练数据将样本向量分类为一个或多个类别,每个类别与样本向量属于对应类别的概率相关联。移动设备可将位置指纹数据指定为训练数据。移动设备可将测量向量指定为样本向量。所述一个或多个类别各自可对应于移动设备在地点处的可能位置。与每个类别相关联的概率可指示移动设备位于与该类别对应的可能位置处的可能性。
[0114] 移动设备可确定与每个类别相关联的概率。确定概率可包括确定在每个可能位置处所测量的测量向量的概率密度的逐点核估计。逐点核估计可具有核函数。移动设备可将核函数应用于测量向量和相应可能位置的指纹之间的差值。核函数可以是积分为1的对称函数(例如,高斯函数)。
[0115] 在一些具体实施中,移动设备可将核函数应用于由粒子滤波器所提供的先验域。先验域可为在计算概率密度之前所选择的位置指纹数据中所表示的搜索空间的一部分。先验域可由粒子滤波器提供。例如,先验域可以是来自粒子滤波器的后验状态估计。
[0116] 在一些具体实施中,确定移动设备的位置包括合计一组可能位置的统计值。在一些具体实施中,确定移动设备的位置可包括基于上下文使用该组位置来计算位置。上下文可以是运动上下文。上下文可包括加速度计、磁性传感器、陀螺仪或气压计中的至少一者的一个或多个读数。
[0117] 图14是使用粒子滤波器来估计位置的示例性过程1400的流程图。示例性过程1400可由移动设备(例如图1的移动设备106)来执行。
[0118] 移动设备可确定(1402)移动设备的初始位置。初始位置可在地点处(例如,在建筑物内部)。地点可包括行人可进入的空间和行人的一个或多个移动约束。初始位置可以是与给定不确定性值相关联的先验位置估计。在一些具体实施中,确定初始位置可包括使用图1的扫描分析器116基于先前位置观测值来估计初始位置。在一些具体实施中,当初始观测不可用时,初始位置可以是在地点处或附近的具有初始不确定性值(例如,加或减1000米)的随机位置或由GPS信号确定的具有初始不确定性值(例如,基于最后GPS位置确定的时间和当前时间所计算的值)的最后已知位置。当移动设备没有先前位置知识时(例如,当在建筑物内部第一次开启新设备时),移动设备可确定初始位置是随机位置,并且不确定性值为无穷大。
[0119] 移动设备可基于移动设备的传感器读数来确定(1404)移动设备的运动状态。确定运动状态可包括确定移动设备的速度或前进方向或者移动设备的速度或前进方向的变化速率中的至少一者。可基于移动设备的加速度计、磁仪、气压计或陀螺仪中的至少一者的读数来确定速度、前进方向和速度或前进方向的变化速率。
[0120] 移动设备可至少部分地基于初始位置、运动状态和指定一个或多个约束的地点的地图来确定(1406)移动设备的多个候选位置。确定候选位置可包括确定移动设备是否为静止的。如果移动设备是静止的,则移动设备可基于状态空间系统噪声模型来生成候选位置,例如通过生成随机围绕初始位置的候选位置。如果移动设备移动,则移动设备可确定移动设备正在避开约束的方向上从初始位置移动的可能性。然后,移动设备可生成候选位置。移动设备可在与较高可能性相关联的方向(例如,沿着移动设备的前进方向的方向)上生成更多候选位置。
[0121] 在一些具体实施中,确定移动设备正在避开约束的方向上从初始位置移动的可能性可包括基于约束来确定地点的路径(例如,走廊)。移动设备可基于地图来确定路径中的点的目的地类型。目的地类型(例如,办公室、自助餐厅或大厅)可指示当行人正沿着路径移动时行人将朝向路径的目的地移动的可能性。该点可位于路径的末端或在路径上。移动设备可基于路径的目的地类型来确定移动设备正在该方向上从初始位置移动的可能性。例如,如果位于路径中间的点的目的地类型是自助餐厅、大厅或会议室,则移动设备可确定与该点的目的地类型是办公室的情况相比,行人更有可能进入自助餐厅或大厅。
[0122] 移动设备可确定候选位置是否被耗尽。移动设备可确定一个或多个候选位置的计数满足耗尽阈值。当进行这种确定时,移动设备可在地点中的随机位置处生成候选位置以用于位置确定。
[0123] 移动设备可接收(1408)位置观测值。位置观测值可包括移动设备在地点的空间中的估计位置。当移动设备在地点处时,可基于移动设备的一个或多个传感器的读数和描述一个或多个传感器可测量的信号的属性的位置指纹数据来确定估计位置。
[0124] 移动设备可使用位置观测值来过滤(1410)候选位置,包括基于候选位置、观测值和概率模型来确定移动设备的可能位置。确定移动设备的可能位置可包括基于候选位置来确定概率密度。
[0125] 移动设备可提供(1412)可能位置作为移动设备的当前位置以用于输出。移动设备可将当前位置指定为初始位置以用于估计移动设备的下一个当前位置。提供可能位置以用于输出可包括在移动设备的屏幕上所显示的地点的地图上以标记销的形式显示该可能位置。
[0126] 示例性系统架构
[0127] 图15是用于显示移动设备在地点处的位置的示例性用户界面。移动设备可以是如参考图1所述的移动设备106。
[0128] 用户界面可包括地点(例如建筑物)的地图1502。地图1502可包括特定楼层的壁、空间、房间和房间名称。移动设备可估计移动设备的当前位置,并且提供当前位置以用于在移动设备的显示设备上的地图1502中显示为位置标记1504。移动设备可基于移动设备的当前位置的估计的高度方面来确定显示哪个楼层。估计位置可包括不确定区域。不确定区域可包括所估计的当前位置周围的区域,其中移动设备位于该区域中的位置中的概率密度超过阈值。不确定区域可被显示为在位置标记1504周围的不确定区域面积1506。考虑到由地点204中的移动约束和行人的运动速度再现的不可能的位置,不确定区域和不确定区域面积1506不需要为完全圆形的区域。
[0129] 用户界面可包括搜索框1508。搜索框1508可被配置为接收搜索项的输入。在通过搜索框1508接收搜索项后,移动设备可搜索与地图1502相关联的数据并且确定该搜索项是否与地点的一部分匹配。如果找到匹配,则移动设备可强调或以其他方式标记该部分。例如,当移动设备接收搜索项“厨房”并且地点的一部分被指定为“厨房”时,移动设备可在地图1502上突出显示厨房部分。在一些具体实施中,移动设备可将找到的部分(例如,“厨房”)指定为目的地。移动设备可确定从当前位置通往目的地的路径1510,并且在地图1502上显示路径1510。
[0130] 示例性系统架构
[0131] 图16是用于实现图1-图15的特征和操作的示例性系统架构的框图。其他架构是可能的,包括具有更多或更少部件的架构。在一些具体实施中,架构1600包括一个或多个处理器1602(例如,双核 处理器)、一个或多个输出设备1604(例如LCD)、一个或多个网络接口1606、一个或多个输入设备1608(例如,鼠标键盘、触敏显示器)以及一个或多个计算机可读介质1612(例如RAM、ROM、SDRAM、硬盘、光盘、闪存存储器等)。这些部件可经由一个或多个通信通道1610(例如总线)来交换通信和数据,该通信通道1610可利用各种硬件软件以用于促进部件之间的数据和控制信号的传输。
[0132] 术语“计算机可读介质”是指参与将指令提供给处理器1602以用于执行的介质,该介质包括但不限于非易失性介质(例如光盘或磁盘)、易失性介质(例如存储器)和传输介质。传输介质包括但不限于同轴电缆线和光纤。
[0133] 计算机可读介质1612还可包括操作系统1614(例如, 操作系统)、网络通信模1616、调查管理器1620、指纹管理器1630和指纹分配器1640。操作系统1614可以是多用户的、多处理的、多任务的、多线程的、实时的等等。操作系统1614执行基本任务,该基本任务包括但不限于:识别来自设备1606,1608的输入并将输出提供给设备1606,1608;保持跟踪和管理计算机可读介质1612(例如,存储器或存储设备)上的文件和目录;控制外围设备;以及管理一个或多个通信通道1610上的通信量。网络通信模块1616包括用于建立和维持网络连接的各种部件(例如用于实现通信协议诸如TCP/IP、HTTP等的软件)。
[0134] 调查管理器1620可包括计算机指令,该计算机指令当被执行时使得处理器1602向采样设备(例如,图2的采样设备202)提供调查指令和地图并从采样设备接收调查数据。指纹管理器1630可包括计算机指令,该计算机指令当被执行时使得处理器1602执行如上文参考图1所述的信号估计器110和指纹引擎108的操作。指纹分配器1640可包括计算机指令,该计算机指令当被执行时使得处理器1602对来自移动设备(例如,图1的移动设备106)的指纹请求作出响应包括将位置指纹数据发送到请求移动设备。
[0135] 架构1600可在并行处理或对等基础结构中实施或者在具有一个或多个处理器的单个设备上实施。软件可包括多个软件部件或者可以是单个代码主体。
[0136] 所描述的特征可有利地在能够在可编程系统上执行的一个或多个计算机程序中实现,该可编程系统包括耦接到数据存储系统、至少一个输入设备、至少一个输出设备、从其接收数据和指令并向其传输数据和指令的至少一个可编程处理器。计算机程序是在计算机中可以直接或间接使用以执行某种活动或者产生某种结果的指令集。计算机程序能够以包括编译或解释语言在内的任何形式的编程语言(例如Objective-C、Java)来编写,并且其能够以任何形式部署,包括作为独立程序或者作为模块、部件、子例程、基于浏览器的web应用程序、或适于在计算环境中使用的其他单元。
[0137] 例如,用于执行指令的程序的合适处理器包括通用微处理器和专用微处理器两者、以及唯一处理器或者任何类型计算机的多个处理器或内核中的一者。一般来讲,处理器将从只读存储器随机存取存储器或这两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器。一般来讲,计算机还将包括一个或多个海量存储设备,或者可操作地耦接到该一个或多个海量存储设备、与该一个或多个海量存储设备通信以用于存储数据文件;此类设备包括磁盘诸如内部硬盘和可移动磁盘;磁光盘;和光盘。适于明确具体化计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,例如包括半导体存储器设备诸如EPROM、EEPROM、和闪存存储器设备;磁盘诸如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可由ASIC(专用集成电路)补充,或者被并入ASIC中。
[0138] 为了提供与用户的交互,这些特征可在具有用于向用户显示信息的显示设备诸如CRT(阴极射线管)或LCD(液晶显示器)监视器或者视网膜显示设备的计算机上实现。计算机可具有触摸表面输入设备(例如,触摸屏)或键盘和指向设备诸如鼠标或轨迹球,用户可通过这些设备向计算机提供输入。计算机可具有用于接收来自用户的语音命令的语音输入设备。
[0139] 这些特征可在计算机系统中实现,该计算机系统包括后端部件诸如数据服务器,或者该计算机系统包括中间件部件诸如应用服务器或互联网服务器,或者该计算机系统包括前端部件诸如具有图形用户界面互联网浏览器的客户端计算机或者它们的任意组合。系统的部件可通过任何形式的数字数据通信(诸如通信网络)或该数字数据通信的介质被连接。通信网络的实例包括例如LAN、WAN、以及形成互联网的计算机和网络。
[0140] 计算系统可包括客户端和服务器。客户端和服务器一般是相互远离的,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如HTML页面)传输到客户端设备(例如为了向与该客户端设备交互的用户显示数据以及从与该客户端设备交互的用户接收用户输入)。在服务器处可从客户端设备接收在客户端设备处生成的数据(例如用户交互的结果)。
[0141] 一个或多个计算机的系统可被配置为凭借具有安装在系统上的在操作中使得系统执行特定动作的软件、固件、硬件或它们的组合来执行所述动作。一个或多个计算机程序可被配置为凭借包括当由数据处理装置执行时使得该装置执行特定动作的指令来执行所述动作。
[0142] 虽然本说明书包含许多特定的实施细节,但是这些特定的实施细节不应被理解为是对任何发明或可能受权利要求书保护的内容的范围的限制,而应被理解为对特定于特定发明的特定实施例的特征的描述。在独立实施例的上下文中,本说明书所描述的某些特征也可在单个实施例中的组合中被实现。相反地,在单个实施例的上下文中描述的各种特征也可单独地或者以任何合适的子组合的形式在多个实施例中实现。此外,虽然某些特征可能在上文中被描述为以某些组合来起作用并且甚至最初也这样地受权利要求书保护,但是受权利要求书保护的组合的一个或多个特征在某些情况下可从该组合中去除,并且受权利要求书保护的组合可涉及子组合或子组合的变型。
[0143] 类似地,虽然操作在附图中以特定次序示出,但不应将这种情况理解为需要以相继次序或以所示的特定次来执行此类操作,或者需要执行所有所示的操作以实现期望的结果。在某些情况中,多任务和并行处理可能是有利的。此外,上述实施例中各个系统部件的划分不应被理解为在所有实施例中都要求此类划分,并且应当理解,所述程序部件和系统可一般性地一起整合在单个软件产品中或者封装到多个软件产品中。
[0144] 因此,已经描述了主题的特定实施例。其他实施例也在以下权利要求书的范围内。在一些情况下,权利要求书中所述的动作能够以不同的次序执行,并且仍能实现期望的结果。此外,附图中所示的过程未必要求所示的特定次序或者相继次序来实现期望的结果。在某些具体实施中,多任务和并行处理可能是有利的。
[0145] 示例性移动设备架构
[0146] 图17为图1-15的移动设备的示例性架构1700的框图。移动设备(例如,移动设备106)可包括存储器接口1702、一个或多个数据处理器、图像处理器和/或处理器1704以及外围设备接口1706。存储器接口1702、一个或多个处理器1704和/或外围设备接口1706可为独立部件或可集成到一个或多个集成电路中。处理器1704可包括应用处理器、基带处理器和无线处理器。移动设备106中的各种部件例如可由一条或多条通信总线或信号线耦接。
[0147] 可将传感器、设备和子系统耦接到外围设备接口1706以促进多个功能。例如,可将运动传感器1710、光传感器1712以及接近传感器1714耦接到外围设备接口1706以促进移动设备的取向、照明和接近功能。可将位置处理器1715(例如GPS接收器)连接到外围设备接口1706以提供地理定位。也可将电子磁力仪1716(例如集成电路芯片)连接到外围设备接口1706以提供可用于确定磁北方向的数据。因而,电子磁力仪1716可用作电子罗盘。运动传感器1710可包括被配置成确定移动设备运动速度和方向的变化的一个或多个加速计。气压计1717可包括连接到外围设备接口1706并被配置为测量围绕移动设备的大气压力的一个或多个设备。
[0148] 可利用相机子系统1720和光学传感器1722(如电荷耦合设备(CCD)或互补金属化物半导体(CMOS)光学传感器)来促进相机功能,例如拍摄照片和视频剪辑。
[0149] 可通过一个或多个无线通信子系统1724来促进通信功能,所述无线通信子系统可包括射频接收器与发射器和/或光学(如红外)接收器和发射器。通信子系统1724的具体设计和具体实施可取决于移动设备旨在通过其进行操作的一个或多个通信网络。例TM TM如,移动设备可包括设计用于通过GSM网络、GPRS网络、EDGE网络、Wi-Fi 或WiMax 网络TM
以及Bluetooth 网络进行操作的通信子系统1724。具体地,无线通信子系统1724可包括主机协议,使得移动设备可被配置为其他无线设备的基站。
[0150] 可将音频子系统1726耦接到扬声器1728和麦克1730以促进支持语音的功能,例如语音识别、语音复制、数字记录和电话功能。音频子系统1726可被配置为从用户接收语音命令。
[0151] I/O子系统1740可包括触摸屏控制器1742和/或一个或多个其他输入控制器1744。触摸屏控制器1742可耦接到触摸屏1746或平板电脑。触摸屏1746和触摸屏控制器1742可例如使用多种触摸敏感性技术中的任一种触摸敏感性技术以及其他接近传感器阵列或用于确定与触摸屏1746接触的一个或多个点的其他元件来检测接触和移动或它们的间断,所述多种触摸敏感性技术包括但不限于电容、电阻、红外和表面声波技术。
[0152] 可将一个或多个其他输入控制器1744耦接到其他输入/控制设备1748,诸如一个或多个按钮、摇臂开关、拇指滚轮、红外线端口、USB端口和/或指针设备(诸如触笔)。所述一个或多个按钮(未示出)可包括用于扬声器1728和/或麦克风1730的音量控制的增大/减小按钮。
[0153] 在一个具体实施中,按压按钮第一持续时间可解开触摸屏1746的;并且按压按钮第二持续时间可打开或关闭移动设备106的电源,所述第二持续时间长于所述第一持续时间。用户可自定义一个或多个按钮的功能。例如,也可使用触摸屏1746来实现虚拟或软按钮和/或键盘。
[0154] 在一些具体实施中,移动设备106可显示所记录的音频和/或视频文件,诸如MP3、AAC和MPEG文件。在一些具体实施中,移动设备106可包括MP3播放器的功能。移动设备106因此可包括与iPod兼容的插头连接器。也可使用其他输入/输出和控制设备。
[0155] 存储器接口1702可耦接到存储器1750。存储器1750可包括高速随机存取存储器和/或非易失性存储器,诸如一个或多个磁盘存储设备、一个或多个光学存储设备和/或闪存存储器(如NAND、NOR)。存储器1750可存储操作系统1752,诸如Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS或嵌入式操作系统(诸如VxWorks)。操作系统1752可包括用于处理基础系统服务以及用于执行硬件相关任务的指令。在一些具体实施中,操作系统1752可包括内核(如UNIX内核)。
[0156] 存储器1750还可存储通信指令1754以促进与一个或多个附加设备、一个或多个计算机和/或一个或多个服务器通信。存储器1750可包括促进图形用户界面处理的图形用户界面指令1756;促进与传感器相关的处理和功能的传感器处理指令1758;促进与电话相关的过程和功能的电话指令1760;促进与电子消息传送相关的过程和功能的电子消息处理指令1762;促进与网页浏览相关的过程和功能的网页浏览指令1764;促进与媒体处理相关的过程和功能的媒体处理指令1766;促进与GPS和导航相关的过程和指令的GPS/导航指令1768;促进与相机相关的过程和功能的相机指令1770;促进磁力仪校准的磁力仪数据1772和校准指令1774。存储器1750还可存储其他软件指令(未示出),诸如安全指令、用于促进与网络视频相关的过程和功能的网络视频指令,和/或用于促进与网上购物相关的过程和功能的网上购物指令。在一些具体实施中,媒体处理指令1766划分为分别用于促进与音频处理相关的过程和功能以及与视频处理相关的过程和功能的音频处理指令和视频处理指令。还可将启动记录和国际移动设备身份(IMEI)或类似硬件标识符存储在存储器1750中。存储器1750可包括可用于当移动设备位于GPS信号不可用的地点处诸如建筑物内部时请求位置指纹数据并确定移动设备的位置的地点位置指令1776。
[0157] 上面所识别的指令和应用程序中的每一者均可与用于执行上述一种或多种功能的指令集相对应。这些指令不需要作为独立的软件程序、过程或模块来实施。存储器1750可包括附加的指令或更少的指令。此外,可在硬件和/或软件中,包括在一个或多个信号处理和/或专用集成电路中执行移动设备的各种功能。
[0158] 示例性操作环境
[0159] 图18为图1-15的移动设备的示例性网络操作环境1800的框图。移动设备1802a和1802b可例如在数据通信中通过一个或多个有线和/或无线网络1810通信。例如,无线网络1812(例如蜂窝网络)可通过使用网关1816与广域网(WAN)1814(诸如互联网)通信。同样,接入设备1818(诸如802.11g无线接入点)可提供对广域网1814的通信访问权限。
[0160] 在一些具体实施中,可通过无线网络1812和接入设备1818建立语音和数据通信两者。例如,移动设备1802a可以拨打和接收电话呼叫(例如使用互联网协议语音技术(VoIP)协议),发送和接收电子邮件消息(例如使用邮局协议3(POP3)),以及通过无线网络1812、网关1816和广域网1814来检索电子文档和/或流,诸如网页、照片和视频(例如使用传输控制协议/互联网协议(TCP/IP)或用户数据报协议(UDP))。同样,在一些具体实施中,移动设备1802b可通过接入设备1818和广域网1814来拨打和接收电话呼叫、发送和接收电子邮件消息以及检索电子文档。在一些具体实施中,移动设备1802a或1802b可使用一条或多条电缆物理地连接到接入设备1818,并且接入设备1818可以是个人计算机。在此配置中,移动设备1802a或1802b可称为“受限”设备。
[0161] 移动设备1802a和1802b也可通过其他方式建立通信。例如,无线设备1802a可通过无线网络1812与其他无线设备(例如其他移动设备、蜂窝电话等)通信。同样,移动TM设备1802a和1802b可通过使用一个或多个通信子系统(诸如Bluetooth 通信设备)来建立对等通信1820,例如个人局域网。也可实现其他通信协议和拓扑结构。
[0162] 移动设备1802a或1802b可例如通过所述一个或多个有线和/或无线网络来与一个或多个服务1830和1840通信。例如,一个或多个位置服务1830可进行地点调查,生成每个地点的位置指纹数据,并且将位置指纹数据提供给移动设备1802a或1802b。地图服务1840可例如将地点的地图例如建筑物的结构的地图提供给移动设备1802a或1802b。
[0163] 移动设备1802a或1802b还可通过一个或多个有线和/或无线网络来访问其他数据和内容。例如,移动设备1802a或1802b可访问内容发布者,诸如新闻站点、真正简单联合(RSS)供稿、网站、博客、社交网站、开发者网络等等。可通过响应于用户触摸(例如网络对象)对网络浏览功能或应用程序(例如浏览器)进行调用来提供这种访问。
[0164] 已描述了本发明的多个具体实施。然而,应当理解,在不脱离本发明的实质和范围的情况下可作出各种修改
QQ群二维码
意见反馈