The ArduSub control system is made up of three major software components:
ArduSub Autopilot Firmware: ArduSub firmware is the autopilot software responsible for processing pilot input and controlling the ROV. ArduSub is the 'brains' of the ROV.
Companion Computer Software: Companion Computer software relays communications between the autopilot and QGroundControl via Ethernet communications. The Companion software also streams HD video to QGroundControl.
QGroundControl Software: QGroundControl is the user interface for operating the ROV.
Here is a diagram of what software piece is loaded onto which hardware component and their basic connections:
Here is a technical block diagram of the software components and their interactions: