-
Notifications
You must be signed in to change notification settings - Fork 15
Acoustics Subsystem
The Acoustics Subsystem was designed to be very flexible. It consists of a data-bus on which all messages are publicly forwarded, a CommsModel which provides the environmental model that determines how a packet should be forwarded and whether or not the packet should be dropped or garbled. By default the Comms subsystem comes with a SimpleAcousticModel
which only delays the transmission of the message based on the position of the transmitter and receiver in water. The comms model however is flexible enough so that we can apply the appropriate delays.
- Sending and receiving Data using a C++ client.
- Performing Range Bearing using a C++ client.
- Writing your own environmental acoustic model plugin.
In the above diagram you can see an example of how a message is transmitted between two vehicles. On the external interface we have a lrauv_ignition_plugins::msgs::LRAUVAcousticMessage
protobuf (blue arrow) being sent by an application on the vehicle with address 2. The AcousticCommsPlugin
will timestamp and add the vehicles position onto the message and broadcast it on the topic /comms/internal/
using a lrauv_ignition_plugins::msgs::LRAUVInternalMessage
. The AcousticCommsPlugin
will listen and forward the packet as quickly as it can to the corresponding Communications Model plugin. The communications models will then decide whether and when to forward the packet to the receiver.