Junaed Sattar

The Robots

My work centers around a unique family of robots developed under the Aqua Project. It's an underwater robot that uses six legs and flippers to swim and dive around. AQUA was built in McGill, at the Mechatronics Locomotion Lab (formerly the Ambulatory Locomotion Lab). Robotics researchers are working on AQUA from the Universities of York, Dalhousie and McGill to name a few. AQUA is a successor of the RHex robot family. I am investigating ways to make AQUA autonomous. That is, to use its cameras to "see" and thus navigate the underwater environment. Currently this is comprised of visual servoing and visual-HRI.

Aqua (left) and Ramius: Barbados 2007 (photo courtesy I. Rekleitis.)

As of january 2007, there are three members in the Aqua family. The original robot, known as Aqua, continues to perform well and was recently taken to Barbados for open water trials for the fourth consecutive year. Along with Aqua, two new robots, Ramius and Kroy were also given their first spin in the Caribbean sea. Ramius and Kroy are identical robots, the model initially dubbed as Aqua 1.5. While Ramius is a fully functional robot, Kroy is still lacking the electronics. The reason for taking Kroy out on the ocean trials this year (2007) was to asses the maximum dive depth of the robots of the Aqua 1.5 family. We are extremely pleased to report that Kroy was taken down to a depth of 120 feet, and successfully survived the trip without any leaks or other structural damage.

Hardware and Software Architecture

AQUA (and most RHex robots, if not all) is controlled using a C++ library called RoboDevel, which is a collection of libraries for programming the RHex family of robots. RoboDevel is made up of libraries and tools that are robot-independent, as well as code that is specific to each robot derived from the original RHex architecture. RoboDevel runs on a 1KHz loop in a real-time operating system (QNX for Aqua), operating the gait-generation and proportional servo software. I'm using RoboDevel to write the vision-control interface code for Aqua. The rough idea is to have a middle layer of code that provides a generic (robot and camera independent) operations layer, with the sensing and robot specific code "plugging-in" at the "top" and "bottom" of this layer. The swimming and walking functionalities are implemented as RoboDevel modules. All of this runs on a small form-factor computer (currently PC104/Plus), which runs at 300MHz clock speed. This is the "control stack" of the Aqua robots.

The "sensor stack", as we call it now, is a different computer that is responsible for operating the visual and audio sensors in Aqua. The original Aqua robot has two analog and one digital IEEE1394 camera which was used for visual servoing. The 1.5 class robots have been equipped with three IEEE1394 cameras, which directly plug into the sensor stack. There is a provision for audio input using a small microphone. The audio sensing can be used to identify gaits, transition between terrains and possibly a voice command interface. The new class of robots have digital stereo hardware, as well as an all-FireWire bus architecture, which enhances high speed frame transmission and makes it possible to use timestamped images along with IMU data for visual SLAM. This is currently work in progress.

Vizix

The sensor stack runs a custom designed version of non-real time Linux. Initially based on Ubuntu Hoary, this Linux distro has recently been updated to be compatible with libc-2.4 and is based on Ubuntu Edgy libraries. Dubbed "Vizix", the distro is about 15 megs, has supoprt for all the devices in the sensor stack (as a matter of fact, has support ONLY for devices found in the sensor stack, since it's extremely optimized for that hardware) and runs all the vision and audio software currently used. In the Ramius-class robots, Vizix also acts as a packet forwarding agent, supporting transparent communication between the operator computer and the control stack using ethernet-over-1394.

Again, more information on the robots, their predecessors and other related publications can be found in the MRL publications page.