I have bought DVL A50 and NEO-M8U gps module and my task is to use the data of gps when the vehicle is at the surface of water and again use that data to improve the accuracy of DVL A50 data when the vehicle is submerged under the water. I am using BlueOS Software and QGround Control to monitor the vehicle.
How can I achieve it? Suggestions and solutions are welcomed
Recently did just this with the A50. This was the process:
Connect the GPS to a serial port on the Navigator flight computer
Set up a serial bridge to send GPS data to the control station computer
set up a python script to read and parse the GPS data on the control station computer. This script also forwards the GPS data back to the flight computer via mavlink messages, specifically using the GPS message type.
Set up a LUA script on the navigator flight computer to decide if the GPS should be used, a lot of different metrics you could use here such as fix type or number of satellites. You’ll always be getting messages with GPS data, even if the fields are null, so you need some kind of quality metric to decide when to use the GPS. The script selects between two different EK3 sources, which are configured within the autopilot to either use “GPS” or “External” (DVL) as the data source for XY position.
Hi @JoshuaElliott -
While your approach works, those scripts could be living on the BlueROV2, so no data needs to flow the length of the tether and back! Your solution could likely be re-packaged as a BlueOS extension, and help lots of folks with an easy setup!