我试图通过蓝牙强度(RSSI值)找到用户。
我有3个Raspberry PI,每个都收集用户的信号强度。让我们说节点返回:
node1 = 65
node2 = 70
node3 = 75
如何通过三角测量找到用户并将其指向地图上并输出RSSI值?
我研究过Trilateration和Ceva's Theorem,但不知道如何实施它们。
我不确定如何在一个环境中定位节点,我是否给主节点一个x = 0 y = 0的位置,我该如何给其他两个节点?
答案 0 :(得分:3)
你的方法基于一些脆弱的假设。
三边测量是基于对已知位置的三个(或四个,如果在三维中工作)距离测量来确定空间中的位置。三角测量基于对已知位置的三个角度(来自哪个方向的信号)测量来确定空间中的位置。三个Raspberry PI节点固定在空间中,您有一些测量系统,其中每个节点的(x,y(z))位置都是已知的。
你所拥有的是某些功率单位的信号强度的三个值(比如说dBm),并且你希望它代表距离特定接收器的距离。问题是,除非你在一个空旷的大房间里这样做,否则它不是一个特别好的代理。射频信号从某些东西反弹,产生很少的干扰节点,阴影和各种有趣的东西。根据环境的混乱程度,这可能会使您的三边测量结果的准确性变差,或者完全没用。
假设您在空仓库中操作,首先您必须选择一些坐标系并进行一些测量并为您的节点分配位置。使一个节点为零简化了您的一个测量,您只需要对其他测量进行相对测量。确保X轴和Y轴垂直。
然后,您将需要生成一些将RSSI与距离相关联的数据。也就是说,走远离节点的已知距离并记下RSSI号是什么。如果幸运的话,每个节点的测量结果都是一样的。它可能不是 - 并非所有无线电都是平等创造的。而且,并非所有天线都在每个方向上均匀地辐射功率。使用该数据和一些手工操作来近似距已知节点位置的距离;从那里开始,其余的实现应该是直接的几何形状(毫无疑问,wiki已经布局了)。
答案 1 :(得分:1)
正如Mikeb的回答所说,从信号强度中定位设备的方法不是一个好方法(除非你有很多节点,并希望找到最接近的节点,如电话单元没有GPS)
另一种方法是测试信号的传播时间
因为您的距离或电子设备必须足够大/足够快才能完成此任务以满足您的预期准确度
dtime = time_received_from_node-time_of_receive
dist = c * dtime
)+/-环境对信号速度的影响