Do you have a BlueBoat? Do you have a Ping2? I’ve got an extension for you!
@gabedbv @cyamin @mattcmgb @pob747 @Anyone else who may care… presenting:
Simple Ping2 Survey Extension
This is an ALPHA release. There are certainly bugs lurking, and I hope you can help me uncover them to minimize data loss and headache for all who may benefit in the future. Thanks!
Background
I’m no software engineer, but I am a passionate jack-of-all trades who loves working with marine tech! I developed this extension to better understand BlueOS and its extensions, and learn to work with Javascript and Vue. In the modern world of LLMs like ChatGPT and Bard, it’s easier than ever before to quickly jump into learning new software!
The Blue Robotics team is preparing to launch a sleek new product that makes using a Ping2 with a BlueBoat as easy and optimized as possible. While simply checking a box in BlueOS will make your ArduRover autopilot logs contain time-sync’d position and depth, regardless of your communications link to the vessel during the mission, there are a couple drawbacks… and so I was inspired!
Viewing data in Ping Viewer consumes more bandwidth than necessary to monitor data quality.
Logs contain all gps position and depth data, as you can quickly check with this tool, but (at least for now) confidence % from the Ping2 is not recorded. This can makes noisy data much tougher to filter!
What does this Simple solution do?
In as simple a way as I could think, the user can:
- Start & stop position and depth data recording, and download the results.
- Monitor vehicle position and orientation alongside useful coloration and geometry for judging data quality.
Before use:
-
Ping2, mounted, connected, SerialPort removed from autopilot and the Ping Sonar mavlink box checked.
Here Ping2 connected to Serial 4 - Access from Autopilot menu at top left of BlueOS
-
Obtain GPS lock.
-
Install extension (requires Internet access) and open
Usage
- Navigate vehicle to survey region, and start desired mapping operation (via QGC.)
- In this extension, click play button in the upper left (triangle.) The map will automatically center on the vehicle location, and if the computer you’re using to view the extension has internet access, satellite view map tiles from Google will load. A python script is now logging the data onboard the vehicle at 2Hz. If you refresh the page or access it from another machine, the interface may not reflect that data is being collected - clicking play on that interface will not impact the continuity of already ongoing data collection.
- Monitor the collected data. The table at the bottom of the page reflects the latest data received from the vehicle, with the logos in the upper corners turning as each data messages is received over your communications link. Depth values that have a confidence of over 95% will show up as a to-scale colored circle on the map. The color of the circle scales with depth, from white to dark blue. The diameter of the circle gives a representation of the beam coverage, given the Ping2 25 degree beam and the measured depth and some simple trigonometry with the tangent function. Objects that give a strong return within this beam may impact the actual area averaged by the sonar’s depth measurement, but it is a handy visualization of both depth and survey coverage. In shallower waters, you may need to mow the lawn at a closer survey spacing!
- Download the data. You don’t have to click stop, logging will continue. Some users may prefer to stop before collection of vehicle, as logs contain all raw data (confidence level 0-100%, not filtered.)
I’ve had the best results when connected to a vehicle via cell-data and Zerotier, as this lets me control the vehicle with one device (my phone running QGround Control Android) and monitor with another (my laptop running off of phone hotspot.) This gives the laptop both connection to vehicle and access to the internet, so the map tiles load right up!
This process will be further detailed, along with step-by-step directions for using QGIS to generate bathymetric contour plots from the data, in an upcoming guide. I’m putting this out now for early adopters to give it a whirl! Please share your experiences, and feel free to checkout the source, make improvements, fork in your own direction, etc.
Future improvements and feature ideas
- WP Survey speed parameter control on page?
- User controlled confidence filter on live and/or logged data?
- Show GPS speed over ground in table, HDOP
- User configurable color gradient to depth mapping
- Better mobile experience - scaling corner logos
How do I get it?
In the near future, it will just appear in the BlueOS Extension store - getting listed is as simple as a pull request! I’d like to have some confirmed reports of users having success before doing so, so in the meantime…
Update 1/22/24 - This extension is available on the Store! Select the check-box for Blue Robotics provider under Extensions, and Install the extension. Full guide coming soon!
- Wait for the CPU/Memory usage graphs to populate, this can take a few minutes, so go get a snack. You should then be able to find the Extension in the side menu bar
Let me know how it goes!