The FAU AUDREY vehicle employs a hybrid architecture to allow a Single Board Computer (SBC) with significant computing power and memory resources to perform the more sophisticated tasks while communicating with a low-level controller board which produce the desired actuator motions.

On the low-level controller board, the vehicle control tasks are divided between four sub-processors, each being implemented by a Microchip Technology PIC18LF6722 8-bit microcontroller. The following is a description of each of the sub-processors' responsibilities.

  1. Master sub-processor: The main function of this sub-processor was to determine the proper control actions for the AUV. This was accomplished by processing information from the acoustics subsystem and the other sub-processors in conjunction with a pre-programmed mission plan. The other major task for the master sub-processor was to provide an operator interface for the AUV. The operator interface provided a means to download a text file defining the mission plan as well as providing diagnostics and controller tuning capabilities.
  2. Horizontal sub-processor: The two main functions of this sub-processor were to determine the actual orientation of the AUV and to control the horizontal thrusters. This was accomplished by receiving a data stream from the compass module and parsing it to obtain heading, pitch, and roll. The compass heading was used with the target heading sent by the Master sub-processor to determine the horizontal control actions. This was then translated into the two PWM (Pulse Width Modulated) signals driving the horizontal thrusters.
  3. Vertical sub-processor: The main function of this sub-processor was to control the depth and pitch of the AUV. The actual depth of the AUV is determined by converting an analog signal sent from a pressure sensor. Appropriate control actions were determined and translated into the PWM signals driving the vertical thrusters.
  4. Carryover sub-processor: This sub-processor was originally included to handle unspecified auxiliary tasks and to facilitate interfacing to future additional subsystems. As the AUV system developed, the Carryover sub-processor was employed to perform data logging. A FDI Vdrive device was interfaced to the Carryover sub-processor so that all the significant dynamic variables could be written to a USB memory drive.

The low-level PIC micro-controllers are very efficient in terms of real-time sensor interface and actuator controls. However, they have limitations in performing floating-point computation and do not support multi-process and multi-threading-based application code development. With this in mind, a 500MHz ARM Single Board Computer (SBC), Technologic Systems TS7800, running a Linux operating system, has been integrated to complement the original system architecture.

An operating system-enabled SBC provides the capabilities of thread prioritization, scheduling, synchronization, and multi-processing with Inter-Process Communications (IPC) through shared memory resources. These features greatly enhance the application code development flexibility and provide performance to accomplish more sophisticated tasks. With the dramatic improvement in computation ability, the original compass with tilt sensors, a CMU cam3 embedded vision processor and FAU Ultra-Short BaseLine (USBL) array are augmented with an Inertial Measurement Unit (IMU) and Global Positioning System (GPS) receiver to provide additional position and orientation information for more sophisticated closed-loop control. The ARM and master PIC processors communicate with each other over a RS-232 serial link. Handshake commands establish communication upon boot-up and data are exchanged continuously thereafter.

The vehicle can communicate with the operator console through WIFI (802.11g), wired ethernet cable and radio modem. Communicating with the vehicle linux operating system is performed through remote access and the GUI mentioned above. FTP can be performed between vehicle and console through LAN/WIFI/RF.