News Archive (1999-2012) | 2013-current at LinuxGizmos | Current Tech News Portal |    About   

Linux-based robot sub wins top award

Oct 15, 2009 — by Eric Brown — from the LinuxDevices Archive — 4 views

Cornell University undergraduates have developed an autonomous underwater vehicle (AUV) that runs Debian Linux on a 2.2GHz Intel Core 2 Duo. The 50-inch mini-sub won first place in the 12th annual Autonomous Underwater Vehicle Competition, and was the first AUV to complete the entire course since 2002.

Developed by the cross-disciplinary Cornell Autonomous Underwater Vehicle Team (CUAUV), whose 35 undergraduate students represent 13 majors and three colleges, the Nova is an improvement on the group's previous Triton sub design. This August, the Nova won first place in the 12th annual Autonomous Underwater Vehicle Competition, sponsored by the Association of Unmanned Vehicle Systems International and the Office of Naval Research.

The CUAUV's Nova in the tank
(Click to enlarge)

The competition, which was held in an acoustic testing pool operated by the US Navy SPAWAR (Space and Naval Warfare Systems Command) Systems Center, has seen other Linux-based entries in past years, such as the Georgia Institute of Technology's Mongoose in 2005. The Nova was the first winning entry from Cornell since 2003.

The Nova and its creators
(Click to enlarge)

The Nova maneuvered through the entire course without human intervention, says the CUAUV. Tasks included passing through a gate, following a path, ramming a submerged buoy, firing through a square target with small torpedoes, dropping markers into bins containing simulated targets, and recovering a PVC target and surface through an octagon shape.

The 78-pound (35 kilogram) AUV can run two to four hours at up to 1.2 Knots, at depths up to 500 feet, says the CUAUV. Sensors include temperature, depth, positioning (GPS), passive acoustics (hydrophone), compass, altimeter, 3DMG-X1, and Doppler Velocity Log. The Nova is further equipped with downward and forward-facing video cameras.

Nova, close up
(Click to enlarge)

The sensors, as well as peripherals including power boards and thrusters, are connected to the main computer via both Ethernet and fiber-optic tethers, says the team. The six thrusters offer control of five degrees of freedom: surge, sway, heave, pitch, and yaw.

The Nova's Commel LS-372-based motherboard
(Click to enlarge)

The Nova runs a minimalist installation of Debian GNU/Linux on a Commel LS-372 motherboard (pictured above), equipped with an Intel 2.2GHz Core 2 Duo processor and 2GB of RAM. The 3.5-inch board communicates with sensors and peripherals using a custom serial interface board developed by the team.

The serial board, pictured below, is equipped with a USB 2.0 High-Speed device port, as well as 12 RS232 serial ports that connect via an SMSC USB2507 seven-port USB hub and six FTDI FT2232D dual-channel USB-to-RS232 adapters. Each port in turn connects to a three-circuit Molex Microfit-3.0 connector. An additional USB 2.0 port hooks up to the motherboard.

The Nova's serial I/O board
(Click to enlarge)

For storage, the system uses a 32GB Patriot Memory Warp II solid state drive (SSD), protected in a vibration resistant package. The SSD replaced the slower, less capacious CF-based storage used on earlier models.

The Nova's Debian-based software

The Debian-based software stack that controls the Nova includes a shared memory system built on a custom POSIX-based library, providing "thread/process-safe variable updating and notification," says the CUAUV (see architecture diagram below). The memory system stores the vehicle's state in "a litany of type-aware variables," and makes them accessible by all software components. A Kalman Filter is used to fuse sensor data in real time on the vehicle, and then output it to the vehicle's controller.

Nova software architecture
(Click to enlarge)

A vehicle abstraction layer (VAL) applies a Python language wrapper around shared variables, creating an abstract "Vehicle" object in Python that has access to physical sensors. The VAL object can also create virtual hybrid sensors that combine data from real or simulated sources, enabling the developers to create virtual sensors such as ''water depth."

Finally, a mission planner component written in Python organizes the task list to build a coherent mission at runtime. The team is also working on a "Dockside U/I" dashboard GUI, which is said to offer a visual representation of data coming from the vehicle.

"Debian works amazingly well for us," stated Benjamin Seidenberg, CUAUV's new software team leader. "Not only do we use it on the vehicle, we also run it on the computers in our lab and our servers, and use it to develop our custom electronics. When I joined the team, we had computers running Windows XP, Windows Server, Debian, Ubuntu, FreeBSD and Gentoo. Now we've settled on Debian for the sub and the servers; our lab workstations dual-boot Debian and Windows. It's a lot easier to manage, and it's great to be able to develop in the same environment that the submarine runs."

Much more information on the Nova may be found here.

This article was originally published on and has been donated to the open source community by QuinStreet Inc. Please visit for up-to-date news and articles about Linux and open source.

Comments are closed.