The Cambridge Autonomous Underwater Vehicle
Creating autonomous systems is a fascinating topic and has been ever since Isaac Asimov wrote about robotics in the early 1940s. Such a system can navigate unknown terrains, perform tasks and make decisions without assistance from humans. Lawn mowers and vacuum cleaners, able to operate without intervention, are simple examples of these concepts. Autonomous Underwater Vehicles (AUVs) are now becoming a major area of research and development with large companies investing in advancing this technology for both defense and academic purposes.
Several competitions have arisen from the recent interest, such as the Autonomous Underwater Vehicle Student Initiative (AUVSI) challenge, the Defense Advanced Research Projects Agency (DARPA) grand challenge and the Student Autonomous Underwater Vehicle Challenge-Europe (SAUC-E). All are aimed at encouraging student teams to develop solutions to some interesting problems.
The Cambridge Autonomous Underwater Vehicle (CAUV) team is a group of students from the University of Cambridge that has developed a Linux-powered AUV for the annual SAUC-E. The AUV must be able to complete an underwater assault course with no communication with the surface, external processors or outside intervention.
The CAUV team includes about 20 undergraduate students from around the university, studying computer science, engineering or natural sciences. Most students join to gain experience in the difficulties involved with team-oriented multidisciplinary design projects, with problems ranging from how to manage a team effectively to designing components that will operate correctly together in a system.
In previous years, we've done well in the competition. We took second place in 2007, and we won a prize for innovation in systems engineering from Direction des Constructions Navales Services (DCNS) in 2008. Preparations for the 2009 SAUC-E competition are underway, with high hopes of another strong result.
Although the end-of-year competition is our short-term goal, we also have a long-term goal that heavily influences the design decisions we make. Part of our wider design aim for this project involves deployment into the Arctic through a bore hole in pack ice. To facilitate this, we chose a thin cylindrical design and avoided objects that would stick out of the hull, such as fins and external thrusters.
The chassis is small, lightweight and modular. The AUV is controlled by internal vector thrusters, two sets of two orthogonal thrusters that shoot jets of water to turn the vehicle and a propeller mounted at the stern. Most of the AUV is custom built in order to achieve the small size we require. Early on in the design process, we chose to split the AUV into five sections: the nose cone, the bow thrusters, the electronics racks, the stern thrusters and the tail cone.
The nose, tail and electronics sections are constructed from carbon fiber molded to a Myring Hull shape, allowing for minimum weight and maximum internal diameter. The nose cone contains a camera looking through a Perspex window, surrounded by a ring of bright LEDs to illuminate objects for the cameras in low light conditions. The bow thrusters' section houses a second camera and the vector bow thrusters along with associated electronics.
The electronics section houses the VIA EPIA PX10000G motherboard, which is supplemented with an array of dsPIC electronics to control the AUV and navigation equipment. The main sensory inputs are two orthogonal cameras and an inertial navigation system built by the CAUV team. The AUV's 12 2400mAhr Lithium polymer batteries make up the power core and offer a substantial working range.
We can estimate the best range and duration for the AUV using a basic fluid dynamics model of the AUV combined with data for power consumption and battery capacity. These calculations give a maximum range of 41km–51km at a cruise speed of 2.4m/s with a duration of 6–8 hours. The model also estimated the maximum speed at 4.2m/s.
Although our lightweight, high-density battery module allows for a good range, it does require careful management to avoid damage that can lead to explosions. This is where our custom-built battery management boards come in. Each battery has its own circuit that constantly monitors the temperature, charge and discharge rates. If any abnormal activity is detected, the battery is shut down and a log recorded in a central monitoring chip. At the 2008 competition, the battery management system was tested unintentionally when the AUV developed a leak, covering much of the electronics in water. Thankfully, the system worked perfectly, shutting down the batteries and protecting our electronics.
Waterproofing is a big concern for us, especially with the connectors that link the modules together. We fitted rubber O-rings to make the actual seal, but in order for them to be effective they need to be squashed against a smooth flat surface. To achieve this, we machined our connectors from aluminum with a 30-degree angle to act as the squash face for the O-ring. As some parts of the AUV need to be accessed more than others, we designed two types of connectors: quick and semi-permanent. The quick connector consists of a threaded aluminum sheath that screws over an aluminum ring attached to the receiving part of the hull, squashing the two parts of the connector together. The semi-permanent connectors use bolts that go up inside the AUV to compress the O-rings.
The AUV also is equipped with a mission-specific module (MSM) system so that extra hardware or sensors can be attached without major modification to the base of the AUV. We machined the MSM connector from an aluminum block, fitted bolts for the module to screw on to and provided a variety of wires connected up to the AUV electronics. Initially, these wires linked the mission-specific modules to the I2C bus of a dsPIC; however, we will change this to a more generic serial connection to the PICO ITX in the future. In previous years, this connection has been used to attach a marker dropping system required for the competition. This year, we plan to attach a much-needed sonar unit that has been kindly donated by Tritech International.
The Inertial Measurement Unit (IMU) module is used to form a dead reckoning of the AUV position. It uses accelerometers, gyros and pressure sensors to calculate the position and orientation of the AUV. Due to the integration that is required to calculate the position, an error is built up over time, known as drift. To correct the drift, the camera will be used to calculate a more accurate position at a much lower refresh rate using a technique called simultaneous localization and mapping (SLAM). Ideally, we would use a GPS system to correct the error; unfortunately, these will not work when the AUV is submerged and also are restricted under the competition rules.
The IMU module has two main parts: an Inertial Navigation System (INS) and an autopilot. The INS circuit records data from the sensors and runs a continual integration loop in order to calculate the AUV's position. The autopilot circuit controls the propeller and four thrusters to move the AUV around the pool. If the vehicle is being operated in remotely operated vehicle (ROV) mode, the INS performs simple movement tasks, forwarding instructions from the main CPU. However, if in AUV mode with the autopilot active, it can use the current position (calculated by the INS circuit) to move to any destination set by the main CPU.
The navigation system, running on a dsPIC, communicates with the autonomy software, running on the PICO, using a simple serial protocol. To simplify the software, the board uses an FTDI chip to handle the USB-to-UART conversion. The protocol used sends simple command strings with checksum values attached to detect errors.
In both 2007 and 2008, CAUV was the smallest robot at the competition, weighing in at less than 7kg. We use one of the world's smallest full-featured x86 motherboards to power the Ubuntu 8.10 operating system. Although the PICO board is small in size, it still is able to pack a punch with a 1GHz VIA C7 processor and 1GB of RAM, all of which is utilized by the onboard autonomy and image-processing software. Soon we would like to upgrade the processor to a Mobile ITX and possibly fit two boards in for some dual-processing fun.
The operating system used by the AUV is Ubuntu 8.10, chosen for its high reliability, low cost and ease of configuration. To save on some processing power and storage space, we have disabled or removed many of the default applications, such as GNOME. In previous years, we have used the Ubuntu Server edition and experimented with several different scheduling algorithms.
The primary storage device is a 4GB CompactFlash card, chosen for its low price, small size and energy efficiency compared to the equivalent mechanical device. All of these items are commodity goods that were bought off the shelf. Primarily used for cost and time reasons, there also is the added benefit that the community knowledge and support are outstanding.
Three modules make up the software: the decision-making software, the image-processing software and the navigation software. In 2008, we wrote all the software in Java, excluding the navigation software, as this is based on the dsPICs. For the 2009 software, we are porting our Java prototype to C++ and incorporating the OpenCV image-processing library to replace our custom image-processing system. The software modules are implemented separately and communicate via a network, allowing for one module to be run onshore during testing should we need to.
For the past two years, we have not had a sonar system to work with, so we have relied completely on vision. The AUV is fitted with two Webcams: one facing downward and one forward. The vision system must be able to recognize gates, buoys, tires and cones from any angle as well as differentiate the color of these objects in low light conditions in order to complete the assault course.
Our image-processing system is built on a series of filters joined together into a pipe, with filters including edge detection, Hough transforms and segmentation. This flexible system allows fast reconfiguration of processing methods should this be required.
Communication with the AUV is a vital part of the whole system. Without a reliable and usable way to relay information to and from the AUV, any data collected may lose its value. At the physical layer, we have two ways to communicate with the AUV. In the nose cone, we have an off-the-shelf Wi-Fi USB stick that can be used for remote surface communication. Naturally, this doesn't work so well underwater, so we have a second method for submerged communication. On the top of the AUV, we have a waterproof connector that is connected to the Ethernet port on the PICO. This means we can receive telemetry and image feeds from the AUV in real time, so long as we have a cable long enough.
We have integrated a PlayStation II controller into the GUI that can be used when the AUV is tethered and in ROV mode. As well as being fun to play with, it creates a fast and effective remote control system.
The communication between the GUI and the AUV is a standard TCP/IP connection, with another of our own protocols running on top of this. The AUV is set up to send as much information as possible back to the GUI, where it is displayed graphically, if possible. The GUI contains a 3-D map of the path taken by the AUV and a series of graphs to plot telemetry. We hope to extend this map in the future to incorporate images taken by the AUV and show objects found by the AUV. To produce this map, we require a reliable, accurate stream of position data from our onboard navigation system, the inertial navigation system.
During the past two years, we have managed to build a solid base for the development of our AUV and gained a large amount of experience in the design process. Our long-term design goals are starting to be realized, and hopefully one day, we'll have a vehicle capable of withstanding Arctic conditions. Until then, we have an AUV that is a strong competitor in the SAUC-E competition that hopefully will match or better the results of previous years.
The Cambridge AUV team would like to say a massive thank you to our sponsors Schlumberger and Tritech International for their continued support. Without donations from companies such as these, many extra-curricular student-run projects, such as CAUV, wouldn't be possible.
If you'd like more information on Cambridge AUV or our sponsors, visit our Web site: www.cambridgeauv.co.uk.
Andy Pritchard is the project manager of the Cambridge AUV Project, currently in his final year of the Computer Science Tripos at the University of Cambridge. He has been a member of the CAUV team for the past two and a half years.