Home        Store        Learn        Blog

Blue robotics Ping sonar accuracy

Hi. We are using a blue robotics ping echo sonar to measure distance from the seafloor. unfortunately, whenever we test, we do not get accurate results. We tested the device in a variable depth pool which was around 2 m deep but we obtained a very large range of values (see the image posted). We tried it indoors against the concrete floor and got values with high confidence but it was inaccurate. When the robot was moved a little up, the values said that the change in distance was 2 m when it only moved 0.5 m. Next, we tested the sonar outside against the earth. The sonar gave a 90-100% confidence rating but the value was a constant 0.680 m for some reason. We bought 3 sonars so we tested those. I’m not sure why this is occuring and was wondering if maybe there was some issue with the software.


Just some points to help you:

  1. Tests should be done in water, the sensor was not projected to work in the air.
  2. Remember that Ping beamwidth is 30º, reflections and wrong measurements will exist in small areas.
  3. Ping needs to be configured correctly, make sure that AUTO mode is checked and the speed of sound is around 1500.


Make sure to test first with Ping-Viewer in your environment and after that with the command line script.

This might also be a multi-path problem. In pools with hard surfaces you can get signals bouncing around from every directing going and this confuses the system. As Patrick points out above the best place to test the system is in open water, or using absorbent materials inside the pool to simulate open water by absorbing part of the acoustic signals. You can also try reducing the gain to the absolute minimum and increase it stepwise until you get a signal. But again, open water is the best place to test.

Hope that helps.

1 Like

Have you been able to work out your issues @mnadeem?

Yes, I have been able to get the ping sonar working. For future reference for anyone that has the same problem, I added these 3 lines of code: