I have to develop an underwater positioning system which has to determine the position of a ROV.
Four buoys will be placed on each corner of a swimming pool. Each one of these buoys will be equipped with an hydrophone and a transducer (which emits acoustic signals). Both devices will be connected to a Raspi for performing DSP.
The ROV will also contain the same equipment (transducer, hydrophone, Raspi).
I was wondering which could be the best way to determine the distances between the ROV and the buoys for triangulating the position.
At first glance I have tought with the next ways to achieve it:
Signal Strength: Every buoy will emit a beacon signal with the same power, but at different frequency for each one. The ROV could determine its position be means of comparing the power received.
Ping: The ROV emits a ping and inicialices a counter, when the buoys receive the ping they respond immediately. When the ROV receives the ping back stops the counter and calculates the distance.
I think that the second approach can be much more accurate. The first method that comes in my mind in order to achieve it is to use a certain frequency for emitting the ping (let's say 2khz). The buoys would be in recepcion mode, awaiting for receiving this ping. They would detect the ping by means of frequency analysis (Goertzel's algorithm). The same algorithm would be used in to ROV for receiving the ping.
The main drawback is that the system needs to be really precise. An error of 1ms means 1.4m of deviation. I don't really know if that is doable and if is the best way to achieve it.
Which method would you use?