Skip to content

Latest commit

 

History

History
40 lines (31 loc) · 2.32 KB

README.md

File metadata and controls

40 lines (31 loc) · 2.32 KB

uWAVE_VLBL_Ino

uWAVE and Arduino UNO Virtual long baseline positioning demo application

This application demonstrates principles of underwater virtual long baseline navigation (positioning), when a static responder's position can be estimated by a number of distance (time-of-flight, TOF) measurements from different known locations.

Basically, the app parses an NMEA string from a serial port with following format:

$PVLBL,ownLat,ownLon,ownDepth,ownBatV,targetDataID,targetDataValue,propagationTime,MSR

which comes from an Arduino UNO board, programmed with the following sketch

There are a few extra items connected to the board:

  • uWAVE underwater acoustic modem
  • any GNSS receiver with serial interface (9600 baud)
  • any RF-module with serial interface (e.g. HC12, configured for 9600 baud)

The sketch parses GNSS receiver output (RMC sentence), measures propagation time to a remote uWAVE modem by means of remote request, see protocol specification and builds NMEA strings with the discussed format ($PVLBL), where:

  • ownLat - GNSS latitude
  • ownLon - GNSS longitude
  • ownDepth - depth from the local uWAVE modem
  • ownBatV - battery voltage from the local uWAVE modem
  • targetDataID - ID of the value, requested from the remote uWAVE modem
  • targetDataValue - value, requested from the remote uWAVE modem
  • propagationTime - the time of underwater acoustic signal propagation between the local and the remote modems
  • MSR - main lobe to side peak ratio of the remote answer in dB (values more than 17 dB are good)

All the positioning algorithms are implemented in UCNLNav library
Also, to build this project you will need some extra libraries: