Exploring Ping360 Device Capabilities: Algorithmic Navigation and Underwater Mapping


We’re a research group actively engaged in developing automatic navigation and underwater mapping algorithms using your ping360 device.

Currently, we’ve established a dedicated testing group to assess the device’s performance across various scenarios. Our aim is to construct a raw input database for learning purposes, even though we currently lack direct access to the device. I’ve delved into the documentation and forum discussions to gain an understanding of how the device operates, but there are still a few areas where I could use some clarification.

  1. Could you explain the distinction between the raw device output structure and the ping viewer output binary log structure? This information is crucial as we’re considering training our module based on ping viewer logs and subsequently utilizing device APIs for online processing. It’s essential for us to determine whether these outputs yield the same attribute outputs or if they contain separate values.
  2. I’m eager to learn more about the ping message. To ensure we gather comprehensive data for our module, understanding all the information provided by the device is vital. I’ve come across a Python script that decodes binary files from ping viewer, creating an instance of a ping message. Could you provide a brief description of what the ping message represents? Is it a single frame of data describing what the sonar perceives at a set angle, or does it serve another purpose? Additionally, if .bin files from ping viewer generate one ping message, how can we obtain the same data message through APIs on ping python?
  3. What data attributes does a ping message possess, and how can we leverage them to train our module? I’m interested in your suggestions on how we can effectively utilize these attributes and what they signify.

In our current plan, our module requires a matrix sized 2 * the device’s detection range. Each value in the matrix represents the probability of an object at the corresponding x, y coordinate, ranging from 0 to 1. Alternatively, for intensity, it ranges from 0 to 255 (matrix size can be doubled for increased sensitivity to a minimum of 0.5 meters instead of 1 meter, though this is not a priority at the moment). How do you recommend we populate this matrix – through ping APIs or viewfinder logs? What is your preference, or do you suggest a different method for feeding the module?

We are eager to hear your opinion on our project, and any suggestions or tips you might have for enhancing our approach would be highly appreciated. :slightly_smiling_face:

Thank you.