Seawolf III was started from scratch, taking almost nothing from its predecessors Seawolf I and Seawolf II. The new design emphasizes modularity both in hardware and software. The frame is designed so it is easy to mount components wherever needed, while the software uses an application based modular approach.
Seawolf III's modular design is reflected in the T-slot aluminum extrusions that allow for bolt on components such as the camera enclosures and thruster mounts. A waterproof Pelican case holds all of the electronics and Fischer connectors are used to interface between the electronics and external components such as thrusters and the dropper. The robot has 5 Seabotix DC Brushed thrusters to move through the water. The alignment of the thrusters provides movement in two axes and the ability to rotate in place.
The electronics design consists of 3 custom circuit boards: the power, peripheral, and motor boards. The electronics are powered by four 12 volt lead acid batteries. The power distribution board converts this into 9, 7.5 and 5 volts for use by other boards. The peripheral board, a new component in the 2010 revision of Seawolf III, provides input and output for the depth sensor, torpedo launcher, dropper, mission start RFID reader, and grabber. The motor board, consisting of 3 Arduino Nano microcontrollers and 5 h-bridges, controls the thrusters. At the heart of Seawolf III is a Lenovo S10 Netbook running Linux. This main computer controls the peripheral and motor boards via a serial over USB interface.
Seawolf III's software is organized into many independent applications which each execute in a separate process. They can run independently, making for a highly modular design. To allow these applications to communicate we developed a library called libseawolf that allows for shared variable access and notifications across applications. Some of our main applications include:
- Serial App
- Communicates with serial peripherals, which includes all electronics except the cameras.
- PID Controllers
- Sets thruster values in order to move to a desired pitch, yaw, or roll heading.
- Vision / Mission Control
- Interprets the camera feed and decides what actions to take.