Skip to content

uWAVE and Arduino UNO Virtual long baseline positioning demo application

License

Notifications You must be signed in to change notification settings

ucnl/uWAVE_VLBL_Ino

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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: