SRC:http://www.cisco.com/en/US/docs/solutions/Enterprise/Mobility/wifich2.html
我一直试图了解如何确定2个Android设备之间的相对位置,精确度在0.3米以内。
(注意:不是绝对的位置,所以我可以完全避免GPS,我需要在两个设备之间频繁和快速更新。)
到目前为止,我已经确定诸如“到达时间”算法之类的算法在WiFi上使用时会起作用,如果发送消息的确切时间(从HW的角度来看)是已知的。
这是我耗尽脑力的地方。有人对我如何实现这个有任何想法吗? 或任何更实际的替代方案。
提前致谢。
答案 0 :(得分:3)
无线电信号以约1英尺/纳秒(准确地说是0.983英尺/秒)的光速传播。因此,为了获得0.3米的精度(大约一英尺),您需要的采样分辨率小于半纳秒 - 这是在操作系统级别无法完成的,其中发生毫秒级处理延迟。
不幸的是,要在Wi-Fi上进行到达时间或到达时间差的位置处理,您需要一个提供时间戳字段的专用芯片组。我没有验证信息,但看看Hoene& Co.的“四路TOA和基于软件的IEEE 802.11设备的三边测量”。 Willmann on citeseer - 表1包含了实施TSF的芯片供应商列表。作者甚至在http://sourceforge.net/projects/goodtry/提供他们的代码。
答案 1 :(得分:0)
所以基本上发送者应该用它的时间向其他设备发送消息。
要做到这一点,你需要一个通用时间系统 - 每个设备总是相同的系统,这样你就可以准确地分辨出时差。最简单的方法是在每个设备上创建一个新日历,然后在每个设备上获取UTC时间(自1970年以来的毫秒)。但是,这会受到每个设备日历中的任何错误的影响。
那么您可以在发送设备上执行以下操作:
在接收设备上:
注意:此系统假定通用时间的差异完全是由于WiFi信号的传播时间。实际上它不是 - 干扰,WiFi信号的处理,有限的CPU速度等都会影响这一点。