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

4
我正在开发一个iOS应用程序,需要知道设备与信标之间的精确距离和方向。我正在使用Estimote信标。我已经使用了iOS的CLLocation以及Estimote的框架,但它们都给出了不正确的距离值。此外,这些值波动很大,信标甚至经常进入未知状态(准确度为-1.000)。我也尝试使用此处提供的公式:Understanding ibeacon distancing,但在iOS中,似乎没有办法获取信标的txPower或测量功率。我搜索了很多地方,但没有找到满意的方法来准确地找到距离。是否有其他方法可以帮助我准确地找到iOS设备与信标之间的距离和方向?
2个回答

3
距离是通过将接收到的信号强度(RSSI)与信标广告传输功率(txPower)进行比较来计算的,因为理论上信号强度与距离的平方成反比。但是,许多其他因素也会影响RSSI,包括障碍物、天线方向和可能的多径(反射)。因此,基于这些信息准确测量距离是困难的。另一种测量距离的方法是使用往返时间(RTT):您向信标发送某些内容,然后测量其返回所需的时间。但是,这需要固定的响应时间,在这种规模(米)下,可能存在足够的可变延迟,这可能会严重影响计算。要确定方向,需要三角测量或多个定向天线,我不认为在这种情况下会出现这种情况。简而言之,您可以获得大致的距离概念(这就是为什么它适用于接近警报),但准确的距离或方向需要不同的技术。如果您周围有大量信标,并且您知道它们的精确位置,则可能可以实现以下操作:使用至少3个信标距离通过三角测量计算您的精确位置;从那里,由于您知道信标的位置,因此可以计算任何信标(或其他任何东西)的距离和方向。当然,根据SDK提供的信标距离测量的实际精度,结果可能更或少准确。您拥有的信标越多,应该就能够获得更精确的结果(通过仅选择返回距离的信标或在计算解决方案时排除与其他信标不“兼容”的信标)。如果您的特定情况有替代方案,则为什么需要它们?

谢谢jcaron,我只需要距离以进行三角测量。我想使用接近的信标确定设备的精确位置。我能够找到信标,在所有找到的信标中选择最佳的三个,但由于距离不准确,无法进行三角测量。请建议如何准确计算距离。 - Kartikey
@Bazinga,你可能想尝试选择更多的信标,看看通过拒绝其中一个或多个信标是否可以得到一致的结果。例如,如果你有信标A、B、C、D、E,你可以尝试使用A、B、C来找到三角定位的解决方案,如果这不起作用,可以尝试ABD、ACD、BCD、ABE、ACE、ADE等组合。当然,如果你能告诉我们实际得到的结果(与预期值进行比较),那会更有帮助。 - jcaron

0
即使有三个或更多固定位置的信标,如果没有进行严格而复杂的噪声抑制,您仍然无法获得非常精确的定位。这是因为无线电波容易受到衍射、多径传播、干扰和吸收的影响,主要是由金属物体和水粒子引起的(因此人体是强信号阻塞器)。甚至手机的对准(天线位置)也会对接近读数产生重大影响。因此,如果不实施噪声抑制算法,三边测量法只能给出约5米的精度。
您可以在Obj-C(https://github.com/MatVre/MiBeaconTrilaterationDemo)和Swift(https://github.com/a34729t/TriangulatorSwift)中找到一些示例,并检查它们对您的工作方式。
祝好运。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接