# Development of Modular Bio-Inspired Autonomous Underwater Vehicle for Close Subsea Asset Inspection
## 5 Acoustic Communication  
The RoboFish-specific powerful Xilinx Zynq SoC acts as a minicomputer on-board, processing a number of operations, one of which is communication. A half-duplex 64 bps acoustic modem, called Water Linked M64 Acoustic Modem [43], is used to provide low-rate communications at medium range (i.e., 200 m) for remote control, telemetry, and inter-vehicle coordination. This self-contained modem supports omnidirectional operation, which keeps the data link stable even when the RoboFish is in motion. It is programmed with a packet-based protocol with extensive use of error detection to enable a highly robust transmission at very low power consumption. It communicates via a serial 115,200 haud UART 3.3V interface with the SoC board. Its small size enables easy integration in the RoboFish head. The Xilinx Zynq SoC includes an FPGA, which will be used for acceleration of inter-vehicle communication architectures, protocols and applications for efficient RoboFish swarm communication networks in the future.  
An interactive Python GUI, shown in Figure 14, was developed to run the RoboFish manually from a distance using the acoustic modem. The modem has a configurable data link and is interfaced using a lightweight API, on which the GUI design is based. The default serial protocol is documented in Reference [44]. This document describes the modem's Data Link Layer protocol. With this protocol, packets are sent to and received from the modem with serial communication commands taking this format 115,200 8-N-1 (payload size is 8 bytes). A Python script was put together to enable sending and receiving of these commands to and from the modems through the serial port. The commands can be sent as a string represented by descriptive variable names or the GUY. By configuring the modem that is installed in RoboFish as a receiver and the topside modem as a transmitter, an operator can send these predefined commands to control RoboFish manually over the acoustic channel if required. Through this GUI, the operator can primarily control the degree of freedom for each joint by sending over acoustically the required angle from the  
Figure 13: Python Matplotlib GUI showing the statistics of ORB features on the AQUALOC harbor-sequence-02 dataset [42] and including the video feed overlaid with ORB features: “3D Camera Trajectory” on the bottom right showing the structure-from-motion “ground truth” for comparison; “Sliders and Buttons” on the bottom enabling adjustment of ORB and VO settings in real-time.  
topside computer to RoboFish. In addition, the GUI enables remote ON/OFF control, steering, selection of communication channel and displays notifications received from RoboFish in humanly readable format for the operator.  
In addition the acoustic modem, RoboFish uses Ping SONAR Altimeter and Echo-sounder [45] that is a single-beam echo-sounder with a maximum range of 30 m, a beam width of 30 deg and a maximum depth rating of 300 m. It is connected to the RoboFish's SoC through a serial connection using one of its Serial/UART ports. Distances read by this Rangefinder can be read from a user interface running on the operator's computer.