I am a university student currently working on developing an AUV. I have been building a Python-based driver to get our Ping360 Sonar data onto our ROS network, specifically inside a sensor_msgs/LaserScan message type for later use with SLAM. Currently, I have implemented a manual scan with the “control_transducer” function and am manually stepping through a specified range of gradians. I had a few questions that don’t seem to be addressed anywhere in the documentation for either the Ping360 or the python driver GitHub repository and was hoping to either get pointed in the right direction or get some insight provided.
If we wanted to control the range of the scan, what combination of settings would we need to change? I assume the settings in question are sample period and transmit duration, I’m unsure if there are any more. More specifically if we are given a range of 12m for example. What would mathematical equations need to be performed, and what constants would we need to provide to get the correct settings?
Does the number of samples contribute anything to the range or is that simply for better resolution for the scan data?
The return data field states that “An array of return strength measurements taken at regular intervals across the scan region”. Is calculating the interval as simple as dividing the previously mentioned by the length of the array of the returned data or is there more to it than that?
I will greatly appreciate any and all information that may be provided.