现在的社会,是一个没有隐私的社会, 只要有设备和条件, 别人想跟踪你的位置实在是太简单了, 不管是你在大街上走还是在商场里逛, 只要上面想,你的行踪都很难不被暴露。好比我们看大片,罪犯在这边打电话,FBI在那边定位,唧唧几声,就把你的大概方位确定了。 千万别以为这是什么高深技术,我们天朝网警照样玩的转。而且, 随着网络越来越向智能化和移动化发展, 一些很有意思的应用都可能和将来的定位技术联系起来, 在一定程度上影响我们的生活,比如twitterAardvark,包括一些很有前途的mobile game,等等。

Google Latitude一出后, 很多朋友都惊诧于无gps条件下其定位的准确性,也有不少人因此对通过wifi定位比较感兴趣。  其实各式各样的无线通信技术都可以用来定位, 由于通信距离的不同, 有的可以用来室内定位, 有的可以用来室外定位。

这里, 我尝试着对一些逐渐在普及的定位技术做一些讲解, 考虑到GPS的普及性, GPS定位原理和优缺点就在这里忽略了。其实无线定位的流程很简单, 大概都遵从交换信号===>数据融合===>建模求解 的步骤。 下面就针对不同技术的不同重点,把这个过程分割介绍。

手机基站网络

通过基站网络的检测来进行户外定位是一个相对成本低, 成熟, 但是精度不高的方法. 它的工作原理是这样的, 我们都知道, 手机要通信, 就需要通过蜂窝网络和一个个基站交换数据,从而实现和别的手机的通信. 而考虑到双方通信的距离和现实中基站的放置密度,每一个手机都可能被覆盖于多个基站, 如果能通过某种方法得到每个基站对于手机的检测数据,通过特定的data fusion技术,就可以大致估算初当前手机的位置。在这里,data fusion是最关键的技术,事实上也是下面会介绍的大多数其他定位技术的基础, 所以花多点篇幅介绍一下。为了简化,我们只考虑二维平面情况,也就是说每个点都只有(x,y)值, 不考虑z平面。

以前常用的data fusion技术包括TOA — time of arrival data fusion,  AOA — angle of arrival data fusion, 以及混合型技术. 假设下面这张图是一个分布示意图, 图中出现的几个基站(Base Station)都能和当前手机, 也就是MS(Mobile Station)所在位置通信.

picture-7

然后我们通过这张图对常用的data fusion技术进行分析.

TOA:

在TOA的场景中, 假设有3个基站当前和手机通信, BS1, BS2和BS3,每个基站有自己的坐标, 然后我们用MS来表示手机,大概是这样一个结构:
picture-10

r1, r2和r3分别表示MS和三个BS之间的距离, 这个距离当然是可以通过计算得出的, 计算方法就是
picture-8

在这个公式里, c是信号传输速度, t0是初始时间, ti是MS的信号到达BSi的时间. 很简单吧. 这样, 我们假设其中一个BS1的坐标是参照坐标, 也就是(x1, y1) = (0, 0), 可以得到关于距离组合(r1, r2, r3)的一个方程组
picture-9

然后解这个方程组就能得到MS的当前坐标。这是一个典型的overdetermined system, 所以具体的求解其实比较复杂, 这里就不多介绍了, 有兴趣的朋友可以邮件交流。

AOA:

如果采用AOA技术, 顾名思义, 我们需要得到信号到达BS时, MS相对于BS的angle的数值, 就好比我们有A,B,C三个点, 我们已经知道A和B的坐标了, 只需要知道C相对于A和B的角度值, 就可以算出当前C的坐标。 这个方法要求BS端需要有天线阵列, 这样,到达的MS信号的能通过不同天线接受信号的相位差计算出来。 具体可以利用功率谱密度在天线阵列的分布来计算, 这就是传说中的beamforming。 只要能得到两个BS的AOA估计, 就能推算出MS的当前地点。 所以相对于其他方法, AOA对于BS数量的要求是最少的, 也不需要BS和MS之间的同步。

对于AOA的函数建模如下, 假设我们有n个BS都对MS做出了AOA测量, 对于任何的BSi, 有
picture-11


其中的角度就是测量出来的AOA. 然后我们把所有的BS建立的方程合并, 得到 Hx = b, 其中
picture-12

对于x用最小二乘法得到的解是
picture-13

AOA最大的问题在于, 目前的2G通信基站没有天线阵列(目前3G基站有没有我不清楚) 。所以之前这是一个存在于实验室中的东西。AOA和TOA都有其各自的缺陷和优点, 所以也有系统将其合并使用, 来得到通用性较好的方案, 被称为HYBRID DATA FUSION。 然而现实中, 基于基站的定位始终无法做得很好,主要原因在于无线环境变化过于复杂, 精度高的方案成本也高等。通常精度在几十米左右。

*************************************************************我是分割线********************************************************

WIFI

Wifi定位这几年已经不是什么新鲜话题了, 目前wifi定位的介绍大多集中在室外定位,而室外定位用wifi对于很多国家都是不现实的,而且随着GPS的普及, Wifi室外定位也处于比较尴尬的地位,很多情况下所起的作用就是GPS定位的帮手。 所以一直以来, 学术界的目光都是集中在wifi室内定位上面。不管是室外还是室内,基本的原理是类似的,类似于下图:
picture-6

在这里,假设有一个无线wifi环境,里面有N个AP和N个设备。前提是AP的地址都清楚, 然后最显然的做法, 就是首先检测设备收到的无线信号强度,然后和原始信号强度比较, 这些数值都是很容易获得的。这里以802.11b举个例子, 802.11b工作在2.5GHz环境下, 然后用公式
picture-3

就可以算出距离。 其中, S是接受信号强度的dbm值, m和c都是可调参数, 根据实际测试情况的数据来train这两个参数。  有朋友看到这里会问, 你这只检测了距离,还是没法定位阿。 确实,通过AP和设备的一对一通信可以检测距离, 但这只能知道设备在AP的周围圆内, 具体方位东南西北也不清楚, 如果希望得到更精确的信息, 这时候就要考虑多对一的模型了。

考虑到室内多个ap装置,  像最上面那张图所描述的那样,  那么可能会出现多个AP检测到设备的情况, 同时可知道设备距离它们的远近,  综合考虑各自的距离,  就能将设备定位到一个很小的范围内.  是不是觉得原理很像基站定位?  对,  就是很像,  只不过对于室内定位,  距离太短,  计算时间或者角度都不现实,  反而因为小范围的特性,  信号衰减还是相对有参考价值的.

更有用的是, 用一个设备走一圈, 可以给室内所有ap建立一张信号强度合成图,如果分布不是很密集, 还可以用一些类似于插值的方法。 在室内定位上, 这几乎就是Wifi的杀手锏, 因为一旦知道室内结构,信号强度图是很容易绘制比较精确的,Wifi信号受干扰程度没有其他几个备选技术高,设备又普及,导致好多室内定位系统都采用这种方案。  当然, 这只是一个例子, 类似于刚才介绍的公式,,本身精度是比较低的。 如果想看精度较高模型的paper, 推荐一个Robotics-Based Location Sensing using Wireless Ethernet。 Rice这帮人也挺能折腾,用了Bayes和隐马尔科夫模型, 不仅考虑了信号强度, 还考虑了在某个地点连接到某个AP的概率。后来有人更能折腾, 把行人在哪里走路速度的概率, 某个地点的AP转换概率都考虑进去了。

要判断设备是否在运动中也很简单, 设备静止和运动时, 信号强度的变化趋势是不一样的,如图:
picture-4

红线表示静止, 蓝线表示移动。 总的来说,在移动的时候, variance是更大的。然后用上在learning领域几乎无所不能的Bayes:
picture-5

这就是一个最简单的模型。 我默认看到这里的人都有一定的概率基础, 如果不是很熟的话,看看Pongba的这篇文章.

当然, 很多时候设备的静止和移动变换趋势非常快, 此时需要一些平滑手段来处理对于variance的判断。 处理的基础还是概率模型, 具体就不多说了,我可不想写综述paper。 有兴趣的朋友可以参考这里.

Wifi定位的成本非常低,  因为几乎所有的设备都是重用已有设备的。 而Wifi的”信号强度有规律”的性质, 也让其备受学术界宠爱, 在这上面可以玩很多花样, 发很多paper,灌很多水。

*************************************************************我是分割线********************************************************

蓝牙

这个方案基本仅适用于室内定位。 原理嘛, 万变不离其宗, 和基站定位以及Wifi定位都比较像。

对于蓝牙方案来讲, 通常都是在室内放置一些提前知道自己位置的蓝牙传感器, 这些传感器的作用就是不断检测周围带蓝牙设备的globally unique Bluetooth device addresses, 这是一个全球唯一不可能重复的蓝牙设备地址。 传感器检测到这个地址后, 传给服务器, 服务器通过映射得到相应的MSISDN, 就能知道是谁在附近。 MSISDN是在公用交换电话网编号计划中唯一地识别移动电话地鉴约号码,其结构为

MSISDN = CC + NDC + SN

其中CC是国家码,NDC是移动服务访问码,SN是用户号。只要能知道, 你的设备在传感器附近, 知道传感器的具体位置, 就能猜到你的具体位置。 如果活动范围较小, 有多个传感器同时感知, 则定位更加精确。 下面是一个通过蓝牙定位来推送广告的系统示意图

picture-1

这种技术由于相对实现简单, 而且普及性高, 如果有多个蓝牙传感器, 组成cooperative location network, 原理则类似于基站定位, 定位精度也还不错, 所以有很多类似于博物馆之类的场所的自动服务都能采用这种技术. 下面就是一个例子:

picture-2

可以看出,每一个蓝牙基站都有一定的扫描范围,图中的人刚好在扫描范围中间,就可以知道他的大概位置是在三个范围的交集处。这个方案的问题在于, 用户并不一定愿意暴露自己手机或者其他设备的蓝牙地址, 而且蓝牙的信号在复杂空间内非常容易受干扰, 不容易生成信号强度图。

*************************************************************我是分割线********************************************************

其他

和蓝牙相似的纯室内定位还包括RFID定位。 同样的道理, UWB也是可以拿来做更精确定位的技术, 想想它的工作范围就知道了, 其他几个都是米级别的定位,这哥们是厘米级别精度的定位。 可惜UWB目前成本太高, 所以学术界还有所关注,工业界使用的极少。

超声波定位是另一种有意思但是应用上很难推广的技术。 超声波以前主要拿来测距, 反射式测距法,通过三角定位等算法确定物体的位置,即发射超声波并接收由被测物产生的回波,根据回波与发射波的时间差计算出待测距离。 它的问题在于, 整个系统要由若干个应答器和一个主测距器组成,主测距器放置在被测物体上向应答器发射同频率的无线电信号,而用户很难愿意在进一个地方时带上额外的超声波发射装置。 而且超声波受多径效应和非视距传播影响很大,成本非常高。

差不多就介绍到这里,从上面的叙述中可以看出,不管是室外还是室内,定位基本原理是差不多的,就是在信号的传输上折腾,不管是时间,角度,衰减,还是别的。所以只要你的随身设备保持对外通信,别人总有办法找到你的位置,区别只是不同技术导致不同精度而已。所以以后要隐藏自己的行踪,要不然就关掉身上所有设备,要不然就以70码速度飞起5米高不停逃逸,否则的话,哼哼,等着别人将你锁定吧。