Nathaniel J. S. Fairfield

I'm now at Google in Mountain View.  I recently got my PhD from the Carnegie Mellon Robotics Institute. My primary areas of interest are self-driving cars, robotic exploration in environments which require a high level of autonomy, and extending the capabilities of a robotic system via human-robot collaboration. These interests lead me to all sorts of good robotics problems like simultaneous localization and mapping (SLAM), exploration, and science autonomy; as well as human-interface stuff like data visualization, mission specification, and realtime interaction.
Links: CV (pdf), CMU RI web page



The Deep Phreatic Thermal Explorer (DEPTHX) explored the flooded caverns of Sistema Zacaton in Mexico in 2007. I built the 3D mapping and localization system which allowed DEPTHX to safely navigate this unexplored system of flooded caves.

DEPTHX project at the Field Robotics Center
Images and movies of data from Sistema Zacaton

Subterranean Robotics

Groundhog, Cavecrawler, and other robots are designed to explore underground spaces, such as mines. I've been using high-quality, high-density laser range data from these vehicles to test my 3D mapping, localization, and exploration algorithms.

Subterranean project at the Field Robotics Center
Images and movies of subterranean data

Video of planning in the Bruceton Mine

Active Localization on the Sea Floor

Thanks to the folks at the Monterey Bay Aquarium Research Institute (MBARI), I've been able to use multibeam sonar data of the sea floor, collected by an autonomous underwater vehicle (AUV), to test my active localization and exploration algorithms. (Vehicle photo © MBARI 2006)

Mapping AUV project at MBARI
Images and movies of multibeam sonar data

Video of localization on the sea floor.

 Open-Source Software



Ravec is a 3D evidence grid (occupancy grid) library, including uniform array and octree representations.

Ravec on Sourceforge

simpleIPC [inactive]

SimpleIPC is a simple messaging system designed for rapid deployment on robotic platforms. Based on the venerable Inter-Process Communication Package, simpleIPC offers several key extensions: units, auto-discovery, message descriptors, and a Python wrapper.

simpleIPC on Sourceforge

Soto [inactive]

Soto is a graphical message debugger for simpleIPC. In addition to displaying the message traffic between processes, it can log and play back this traffic. Soto also provides the ability to design GUI "panels" that are populated with data from messages.

Soto on Sourceforge

Drake [inactive]

Drake is a 3D data visualization tool, specializing in the display of robotically collected point, range, and volumetric data. Provides a very flexible framework for different file formats and visualization parameters.

Drake on Sourceforge

Mage [inactive]

Mage is a very simple C interface to the rFlex controller used on Real World Interface (RWI) robots. Mage has been tested on Magellan Pro's and Magellan II's, but I expect it to work fine with other robots which use the rFlex.

mage on


RI IC Robotics Competition 2006
RI IC Robotics Competition 2007
Depth Equations in Python
Basic Kalman filter in C
Python 2.4 cross-compiled for arm (terk/qwerk)
Nathaniel Fairfield,
Mar 15, 2009, 12:19 PM