刘贵学博客

Wifi 室内定位技术原理

1. 介绍

定位技术最常用的就是 GPS 或者北斗,通常在室外广泛使用。由于建筑物内GPS等信号的严重衰减和多径效应,所以无法有效得使用此类技术在室内定位。

室内定位也有很多方案,如:
* RFID标签锚记
* 蓝牙(iBeacons)标签锚记, 参考https://github.com/megagao/IndoorPos
* 基站定位
* UWB 定位
* 地磁
* 粒子滤波定位,常用与机器人
* Wifi 定位

由于WiFi 设备已经广泛部署在家庭、旅馆、咖啡馆、机场、商场等各类建筑物内,且个人终端(如手机)上WiFi也是标配,其大多数人都默认开启。

这使得WiFi成为室内定位领域中最容易实现的无线技术。

2. 信号强度与距离计算

Wi-Fi定位是不需要终端连接上 AP。
Wi-Fi设备芯片(终端与AP),都会发出一种Probe Request的帧,遍历空间所有信道,等待AP返回Probe Response帧。

根据 AP 到终端的信号强度 RSSI,可以计算出距离,公式如下:

d=10^((abs(RSSI)-A)/(10*n))
  • 其中d为距离,单位是m。
  • RSSI为rssi信号强度,为负数。
  • A为距离探测设备1m时的RSSI 值的绝对值,最佳范围在45-49之间。
  • n为环境衰减因子,需要测试矫正,最佳范围在3.25-4.5之间。

3 定位场景

3.1 一角定位

同一时刻,如果仅有一台 AP 可以侦测到 指定终端RSSI的情况时:

一角是无法定位的,终端的具体位置无法获取,但可以估算出位置范围:

以设备A为圆心,以R1为半径的圆内。

如图中绿色背景部分。

当然此情况下的定位准确度极差,误差通常在 30米(普通AP的信号的最大传输距离)。

3.2 二角定位

当仅有2台 AP 可以侦测到指定终端的时,每个AP都是一个圆圈,有三种情况:

  • 相交
  • 相切
  • 相离

如何判断是 相切,相交 还是 相离呢?

A, B两点的距离 d,如图:

计算公式如下:

比较 d 与 信号距离之和:

  • 相交 d < R1 + R2
  • 相切 d == R1 + R2
  • 相离 d > R1 + R2

3.2.1 相交【重点关注】

两圆相交的2个点都可能是终端的位置。
求 两圆相交的M与N的坐标需要用到 圆的标准方程 和参数圆的参数方程。

  • A 点参数方程

  • B点的标准方程

  • 将 A 点参数方程 带入 B点的标准方程,得到等式公式如下:

  • 展开上面的公式后,得出:

  • 为方便,令:

  • 其中 a, b, c 可解出来均为常数。

又知

可以解出 cosθ 和 sinθ 的值,带入参数方程后可获取到 M, N点的值。

两个点的位置计算成功后,可以通过轨迹或第三个AP来进一步提供向量因子,进一步挑出更准确的一个。

此方案也适用于简单的三角定位计算方式,只是可能误差较大。

3.2.2 相切

两圆相切于1个点,其实也是特殊的相交,这是两个点重合了而已。

简化的计算公式如下:

通过圆的标准方程,可以解出的 (X,Y)坐标就是终端的位置。

3.2.3 相离

理论上一个终端同时被2个AP发现,是不会出现相离的情况,但由于信号距离推算造成的误差,实际也会出现这种情况。

计算方法类似相切。但需要修正两个圆的半径,公式如下:

解出的 (X,Y)坐标就是终端的位置。

3.3 三角定位

3.3.1 方案1:相交点选更近

挑选 信号最强的 2个 AP 为 A和B,计算两个圆的交点M 与 N, 其中距C点的距离,与R3 更接近的值。

如上几图中红点的位置。

计算方法与【二角定位-相交】场景类似。

3.3.2 方案2:三点取中心定位

获取 A, B, C 三个点的中心位置。

三圆相离,取中心。

4. 问题与优化

4.1 需要解决的问题:

  1. 信号强度的波动因素很多,比如墙体遮挡,等,用强度推断出来的半径误差比较大;

  2. 三角定位的场景是平面2D定位,实际情况中,获取到的AP可能不在同一楼层,高度差异会使误差或干扰更大。

  3. AP的位置要提前采集,可以在 CAD上定位坐标,或通过专用的定位仪来采集。AP的坐标是整套解决方案的参考系,所以应尽量准确,而且还要考虑实的操作便捷度。

4.2 优化方案

  • 多传感器(加速度计,陀螺仪,方向传感器等)与WiFi相结合的方法,参考 《位置计算:无线网络定位与可定位性》
  • 结合Wifi 位置指纹来确认位置;
  • 定位完成后的要绘制轨迹,可考虑评估每个坐标的准确权重,按权重拟合出更平滑的轨迹,也可以通过拟合的轨迹将权重低的坐标点进行修正。

参考资料