水下声学定位

信息处理 傅里叶变换 声学 超声波
2022-02-13 22:19:11

我必须开发一个必须确定ROV位置的水下定位系统。

四个浮标将放置在游泳池的每个角落。这些浮标中的每一个都将配备一个水听器和一个传感器(发射声信号)。两个设备都将连接到 Raspi 以执行 DSP。

ROV 还将包含相同的设备(传感器、水听器、Raspi)。

我想知道哪种方法可能是确定 ROV 和浮标之间距离以三角定位位置的最佳方法。

乍一看,我对实现它的下一个方法很感兴趣:

  • 信号强度:每个浮标都会发出一个相同功率的信标信号,但每个浮标的频率不同。ROV 可以通过比较接收到的功率来确定其位置。

  • Ping:ROV 发出 ping 并指示计数器,当浮标收到 ping 时,它们会立即响应。当 ROV 收到 ping 返回时,计数器停止并计算距离。

我认为第二种方法可能更准确。为了实现它,我想到的第一种方法是使用一定的频率来发出 ping(比如说 2khz)。浮标将处于接收模式,等待接收此 ping。他们将通过频率分析(Goertzel 算法)检测 ping。ROV 将使用相同的算法来接收 ping。

主要缺点是系统需要非常精确。1ms的误差意味着1.4m的偏差。我真的不知道这是否可行,以及是否是实现它的最佳方式。

你会使用哪种方法?

1个回答

我以前使用过这种定位系统(不是在水下,但仍然是基于声音的),我希望我能提供帮助。您的第一个选择可能不是最好的主意,即使在受控环境中,也有许多因素可以改变您的信号幅度,从而使其信息不可靠。

我认为你的第二个选择是一个更好的方法。如果您也可以将一些时间信息嵌入到您的传输信号中(像 GPS 这样的时间戳),那就更好了。使用包含有关信号何时触发的信息的时间戳,您可以计算时间差而无需 ping-back,这将为您节省一些距离误差。或者您将有两种方法来确定位置,并且您可以根据一组初始结果使用某种过滤(以确定哪个更好)。

我想建议的另一种方法是阵列配置。如果您可以确保您的发射器将绝对同时发射(相对于彼此),您可以使用船上接收到的信号的相位差来确定范围和各自的角度(有一些歧义) . 因此,您再次不需要 ping 回您的信号。但是在这种配置中,发射器的绝对位置必须保持不变,并且接收器在船上的位置也必须保持不变。

当我们使用ping方法时,我们最大的问题是echo。我不确切知道回声在水下是如何工作的,但如果它存在,我建议你小心它。在我们的项目中,我们只使用了 ping,没有我向您建议的任何附加功能,我必须承认它不是很可靠。

祝你的项目好运,我希望你比我们做得更好,我想听听结果。