【问题标题】:Algorithm to find out relative location of sensors based on signal delay基于信号延迟的传感器相对位置算法
【发布时间】:2020-09-24 11:20:32
【问题描述】:

这与三角测量有关,但以非直观的方式。

我们有一个由 n 个传感器组成的传感器阵列,它们在空间上是分开的。它们测量信号,其速度相对于传感器之间的距离足够低,我们可以测量传感器之间的所述信号的延迟。 (例如 4 个麦克风监听声音,每个相隔 1m 或类似的东西)。

我们不知道这些传感器相对于彼此的位置,也不知道信号源的位置,但我们可以在阵列周围移动源,给我们多个延迟,这与传感器的距离有关传感器之间的相对关系(例如在传感器阵列周围拍手)。

我们可以从一组延迟中找到数组的相对位置吗?

直觉上似乎是可能的,因为我们知道信号的速度,以及每个传感器相对于彼此的信号延迟,所以知道这些传感器的相对距离。

还有一点:如果信号很远,它的行为就像一个无限的平面源,但如果信号很近,波前是球形的,这会使事情变得复杂。

还有2D案例和3D案例。

这张图片是一个信号测量时刻

【问题讨论】:

  • 在源的每个位置(x0, y0),对于每个传感器,您都可以获得此传感器与源之间的距离R。这意味着该传感器的可能位置形成一个中心(x0, y0) 和半径R。如果您有两个源位置,这会给您两个不同的圆圈;传感器必须在两个圆圈上;因此它位于两个圆的交点
  • 一般来说,两个圆的交点上正好有两个点,通过解两题系统很容易找到它们的坐标。如果你不知道怎么做,谷歌“找到两个圆的交点”。重复源的第三个位置,找出两个交点中的哪一个也在第三个圆上。这不仅仅是“与三角测量有关”;它是完全三角测量。

标签: algorithm signal-processing triangulation


【解决方案1】:

是的,有一些警告。

由于您不知道源信号的时序,您无法直接测量每个阵列与源之间的距离。

但是您仍然可以分辨出不同数组组件之间的距离差异。

这为每对数组组件提供了一个丑陋的方程式。你可以把它写成d_1 - d_0 - measurement_delay_1_0 * signal_speed = 0,其中d_x是源和接收器之间的距离(sqrt((xs-xr) ^2 + (ys-yr)^2 + (zs - zr) ^2))。

一次测量不足以解决问题。所以现在将源沿 X 方向移动一个单位并进行新的测量。然后将源在 y 方向移动一个单位并进行测量。如果您在 3d 案例中,可能会在 z 上出现一个。我怀疑这(或 4 次测量)就足够了,但我没有深入研究数学。

现在,如果这是一个完美的设置,您将获得完美的测量结果,并且您应该得到一个多项式方程组,您应该能够使用已知技术(在维基百科上查找或一本好的数学书)求解。

但是,现实世界并不完美,因此您不太可能获得精确的数学解决方案。因此,下一个最好的事情是将其视为一种优化解决方案,您希望从最小二乘的角度对每个方程进行优化(再次查找)。这将为您提供位置的最佳近似值。好处是您可以通过进行额外的测量来提高此设置的准确性。

注意事项:

  • 疯狂的探测器放置可能会干扰解决方案。理想情况下,探测器不会共面。
  • 坐标系由您移动源的方式决定。如果移动非常精确,则以非常小的量(相对)移动可能会导致很大的误差。
  • 在现实世界中,您会得到回声和噪音。在尝试找到任何东西之前,您应该先解决这个问题。

【讨论】:

  • 问题是源和传感器的确切位置是未知的。想法是以某种方式用所有人都在观察的多个事件来校准传感器阵列。
  • 解决方案将建立一个相对位置和坐标系。 (0,0,0) 将是源最初所在的任何位置。轴由源的移动方式定义。例如,第一步可以是任何你想要的,但我们将它定义为 (1,0,0) 等等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-17
  • 2012-02-23
  • 1970-01-01
  • 2017-08-09
  • 2011-04-19
  • 2020-05-29
  • 2020-10-12
相关资源
最近更新 更多