使用ibeacon构建简单的室内定位

时间:2016-01-15 20:48:33

标签: android ibeacon android-ibeacon indoor-positioning-system

我试图为Android构建室内定位系统,取决于ibeacons来检测我在哪里,我怎么能去其他房间。

让我们举一个例子: 在我的家里,我想在每个房间放一个灯塔,在我的应用程序中,我有一个简单的室内地图,显示我的家居设计包含每个信标的固定点和它们之间的固定路径。

如何让我的手机在该地图内移动取决于手机与信标之间的距离,并使手机在固定路径上移动。

是不使用gps或任何LonLat点的任何解决方案? 如果他们有任何更好的想法可以帮助吗?

3 个答案:

答案 0 :(得分:1)

您可以做的是将您的信标映射到任意坐标空间,而不管GPS。您也可以将GPS映射到它,但是我认为在信标之间的距离明显大于您的平均GPS精度之前,您将获得很少的信息 - 换句话说,直到您的映射区域非常大如果你在谈论一个小型的室内环境,那就不会发生。

即使你能实现完美"您的环境中的GPS精度,在手机上将被限制为半径为5米的最大精度仍然无法保证(假设GPS误差遵循报告精度的正态分布只有68%的信心,或平均值的1个标准差。)因此,如果GPS是您的定位输入,则必须接受该输入的误差程度。

使用您的映射坐标空间,您可以根据信号强度获取信标的估计距离,然后执行三角测量以获得近似点。在任何给定时间你都需要3个以上的信标才能工作。一种天真的方法可能是从扫描的信标列表中选择具有最佳RSSI值的3个信标,并从中进行三角测量。

这种方法的问题同样是干扰和准确性,它们是相互关联的。当您在家中移动时,墙壁会抑制信号,其他无线电电子设备也可能会影响信号。

答案 1 :(得分:0)

一种简单的基于信标的方法是在网格上(或仅在每个房间中)布置信标,然后在应用程序中为信标设置范围,并确定您最接近哪一个。然后根据信标到X,Y的查找表在地图上的X,Y点上绘制一个蓝点。

对于小型演示,它非常简单。对于大规模的安装和花里胡哨,它变得相当复杂。您可以在我的博客文章中的消费电子展上阅读我们如何做到这一点:http://developer.radiusnetworks.com/2015/01/13/beacon-navigation-at-the-consumer-electronics-show.html

答案 2 :(得分:0)

根据RSSI读数计算与信标的距离的天真方法"由于多种原因不能工作。假设存在(并且存在)理论上将RSSI映射到距离的公式。因此,让我们说信标i的距离(i)= f(RSSI(i))。在实践中,信号通过多条路径接收(室内),并且由于信号传输到您的设备的距离不同,它将显示相当多的可变性。此外,这些多路径效应将取决于位置。在这种情况下,您将无法有效地使用多点定位。此外,RSSI将取决于你拥有什么样的接收天线(=设备),由于有大量的手机型号,在Android的情况下可能是一个挑战。

总之,你应该对室内定位的指纹技术进行一些研究,那里有大量的文献。为了更好地理解基本概念,请看一下这个视频:

https://www.youtube.com/watch?v=hITAQ6yPZ3I

简而言之,您应该阅读"蓝牙(或Wi-Fi)信号阵列"环境中的RSSI,并将此类阵列与先前收集的"数组"数据库进行比较。收集数据库的样本时,必须在点网格中进行,每个点与地图或蓝图上的X和Y位置相关联。它与寻找关闭信标的方法没有什么不同,但它更通用,可以更精确并且需要(通常)更少的信标(尽管并非总是如此)。如果您的信标太少而且距离太远,准确度可能不会低于2-3米。

注意:遗憾的是,上面视频中支持应用的代码是iOS,因此与此处发布源代码无关。把它作为一般概念的一个例子。