【问题标题】:How do you pin point the location of a user with 3 nodes, using Triangulation?您如何使用三角测量确定具有 3 个节点的用户的位置?
【发布时间】:2014-11-21 19:38:44
【问题描述】:

我正在尝试通过他们的蓝牙强度(RSSI 值)找到用户。

我有 3 个 Raspberry PI,每个都收集用户的信号强度。假设返回的节点:

node1 = 65
node2 = 70
node3 = 75

如何通过三角测量找到用户并在地图上精确定位并输出RSSI值?

我研究了TrilaterationCeva's Theorem,但不知道如何实现它们。

我不确定如何在环境中定位节点,我是否给主节点一个 x=0 y=0 的位置,我应该给其他两个节点什么?

【问题讨论】:

    标签: algorithm math map bluetooth triangulation


    【解决方案1】:

    您的方法基于一些站不住脚的假设。

    三边测量是根据到已知位置的三个(或四个,如果在三个维度上工作)距离测量来确定空间中的位置。三角测量基于对已知位置的三个角度(信号来自哪个方向)测量来确定空间中的位置。三个 Raspberry PI 节点在空间中是固定的,并且您有一些测量系统,其中每个节点的 (x,y (z)) 位置都是已知的。

    您拥有的是以某些功率单位(例如 dBm)表示的三个信号强度值,您希望它代表与特定接收器的距离。问题是,除非你在一个空旷的大房间里这样做,否则它并不是一个特别好的代理。射频信号会从某些东西上反弹,产生小的干扰节点、阴影和各种有趣的东西。根据您的环境的混乱程度,这可能会使您的三边测量结果的准确性变差,或者完全没有价值。

    假设您在一个空仓库中操作,首先您必须选择一些坐标系并进行一些测量并将位置分配给您的节点。使一个节点为零可以简化您的一项测量,您只需对其他节点进行相对测量。确保 X 轴和 Y 轴垂直。

    然后,您将需要生成一些将 RSSI 与距离相关联的数据。也就是说,从节点走一段已知距离,并记下 RSSI 编号是多少。如果幸运的话,每个节点的测量结果都是相同的。可能不是 - 并非所有收音机都是平等创建的。此外,并非所有天线都在每个方向上均匀地辐射功率。使用该数据和一些手波来估计距已知节点位置的距离;从那里开始,其余的实现应该是直截了当的几何图形(正如 wiki 毫无疑问的那样)。

    【讨论】:

    • 是的,而且在不同方向上强度与距离的分布也不同......更不用说是否存在另一根天线(甚至是接收器),它可以大大地搞砸事情。
    • 嗨@Mikeb。这篇文章已经有 1.5 年的历史了,现在技术有什么改进,以便我们在上述情况下得到准确的结果吗?
    【解决方案2】:

    正如 Mikeb 的回答所说,根据信号强度定位设备的方法不是一个好方法(除非您有很多节点并且只想找到最近的节点,例如没有 GPS 的电话单元)

    另一种方法是测试信号的传播时间

    • 因为您的距离或电子设备必须足够大/足够快才能完成这项任务,以满足您所需的精度

      1. 你必须有同步时间
      2. 从每个节点(或连续时间信号)向目标设备发送时间戳包
      3. 在设备上一次 (time_of_receive) 获取 3 次(每个已知节点一次)
      4. 将所有 3+1 次发送到所需位置的设备
      5. 将时差转换为距离
        • 时移越大,距离越远...
        • dtime = time_received_from_node-time_of_receive
        • 如果您知道发送时间,那么这很容易 (dist = c * dtime) +/- 环境对信号速度的影响
        • 如果不是(比如在 GPS 上)那就更复杂了,你必须从时移中搜索单个节点的开始时间
        • 可能来自 3 个节点,但暴力攻击的复杂性非常可怕,因此节点越多越好
        • 如果您的数据传输通道不同步(或延迟),那么短距离的精度也可能很差
      6. 当你得到 3 个距离后,只需解决 3 个球体的交点
        • 中心是节点,半径是计算距离
        • 如果由于时间测量错误而未找到交叉点,则应为半径添加一些安全值

    【讨论】:

    • 请注意,1 微秒约为 300 米,典型的蓝牙范围约为 10 米。这意味着您将需要纳秒级的时间分辨率 - 然后您必须担心漂移和处理时间差异,这往往会破坏您进行飞行时间测量的能力。不过理论上是有可能的!
    • @Mikeb 是的,我知道,但这是我知道的唯一可靠的方法。它可以通过 FIFO 缓冲接收来完成,但您需要高分辨率时序和正确的硬件设置。可能回声定位更适合这项任务,但这与这个问题不一致。我使用 20MHz i8051 的旧回声定位器的分辨率高达 7mm
    猜你喜欢
    • 2015-06-30
    • 2016-05-24
    • 2015-11-01
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    相关资源
    最近更新 更多