从信标确定iDevice的距离和方向

时间:2014-07-10 12:58:30

标签: ios objective-c xcode ibeacon

我正在开发一个iOS应用程序,我需要知道设备与信标的确切距离和方向。我正在使用Estimote beacon。

我使用过iOS的CLLocation以及Estimote的框架,但它们都给出了不正确的距离值。而且,这些值波动很大,信标甚至很多次都进入了未知状态(精度-1000)。

我也试过使用这里给出的公式:

Understanding ibeacon distancing

但在iOS中,似乎没有办法获得bex的txPower或测量功率。

我搜索了很多,但没有找到一个令人满意的方法来准确找到距离。

有没有其他方法可以帮助我从Beacon准确找到iOS设备的距离和方向?

2 个答案:

答案 0 :(得分:2)

通过比较接收信号强度(RSSI)与信标的通告发射功率(txPower)来计算距离,因为理论上信号强度与距离的平方成反比。

但是还有许多其他因素会影响RSSI,包括障碍物,天线的方向以及可能的多路径(反射)。因此,根据这些信息准确测量距离很困难。

测量距离的另一种方法是使用往返时间(RTT):您向信标发送内容,然后测量返回所需的时间。但这需要一个固定的响应时间,并且在这种规模(米)上,可能存在足够的可变延迟,这可能会严重影响计算。

方向需要三角测量或多个定向天线,我不相信这种情况就是这种情况。

简而言之,您可以大致了解距离(这就是为什么它对接近警报有用),但准确的距离或方向需要不同的技术。

你为什么需要它们?根据您的具体情况,可能有其他选择。

修改

如果您周围有大量信标,并且您知道它们的确切位置,则可以实现以下目标:

  • 使用至少3个信标距离通过三角测量计算您的确切位置
  • 从那里,你知道信标的位置,你可以计算任何信标的距离和方向(或其他任何东西,真的)

当然,根据SDK提供的信标距离测量的实际精度,结果可能或多或少准确。您拥有的信标越多,您应该获得的信息就越精确(通过选择那些返回距离的信息,或者在计算解决方案时消除那些与其他信号无关的信号)。

答案 1 :(得分:0)

即使有3个或更多固定位置的信标,如果没有严重和复杂的降噪,您仍然无法获得非常准确的定位。这是因为无线电波容易受到衍射,多径传播,干扰和吸收的影响 - 主要是金属物体和水粒子(因此人体是强信号阻断剂)。即使手机的对齐(天线位置)也会对接近读数产生重大影响。因此,如果不实施降噪算法,三边测量可以提供大约5米的精度。

您可以在Obj-C(https://github.com/MatVre/MiBeaconTrilaterationDemo)和Swift(https://github.com/a34729t/TriangulatorSwift)中找到一些示例,并查看它们如何为您工作。

干杯。