Sonar - 3D mapping of lake bed

Sonar - 3D mapping of lake bed

Project Description

At The core of this unit is Raspberry Pi 2B, which is responsible for handling all the logic and controlling of the sensors as well as saving that information on a USB stick that can be later plugged into a computer for speedy and reliable data transfer.


The device gathers data from a JSN-SR04T ultrasonic distance sensor measuring up to 6 meters (24 meters when submerged, considering speed of sound underwater ). GPS NEO6 module that streams current location. The controlling script gathers data each time GPS ping is received which triggers depth reading, these data are then paired and saved to the USB in a text file.


Inside the USB we find a file with all the data we measured and a python script that is responsible for displaying this data. After the script is started, first, the data is loaded from the text file into a numpy array, after which, they are normalized.


Normalization consists of differentiating the GPS data, so that the smallest latitude and longitude become zero, then the degrees are translated to meters and lastly we remove data points exceeding the set maximal difference between following points to minimize the display of false readings.


After all this we are able to plot this data on a matplotlib graph configured to add a trisurf, which can be imagined as pulling a cloth over all 3D data points which creates a human readable graph of any structure.


Data for the graph can also be gathered from Google Earth Pro and therefore we can also create plots of any terrestrial structures.


Takeaway

Very effective however somewhat time consuming as with the cheap transducers phasing of the sonar beam is nearly impossible and therefore measurements are only singular points.

Resources

Gallery