Projects
This page contains a listing of projects I've worked on in the past that I have found particularly interesting. Some were meant to scratch an itch, and some were long term large scale projects that spanned many years and many people. Together, they provide a sample of things that have occupied me over the years.
Autonomous navigation for micro-air vehicles

Micro-air vehicles can go places no other vehicle can go, especially in highly confined and cluttered environments. Manually piloting these vehicles is difficult and has a high cognitive load on the human operator. To alleviate this, we've done substantial research on improving the autonomous navigation capabilities of the vehicles themselves, from accepting complex natural language commands to building highly accurate 3D models of the local environment for safe and efficient motion planning.

Agile Robotics: Autonomous Forklift

Following our work in the DARPA Urban Challenge, our research group began working on mobile robots with more advanced autonomous capabiltiies. In addition to the robot safely navigating itself from one point to another, we also wanted it to do something useful along the way. The Agile Robotics autonomous forklift project focused on developing an autonomous forklift for operation in rough and unstructured environments, such as you might find in temporary supply facilities in disaster relief or forward deployment scenarios.

Lane Estimation

The lane estimation problem is as follows: Using onboard sensors such as video cameras, laser range scanners, etc., a vehicle must detect and estimate the geometry of nearby travel lanes. As the vehicle travels and makes new observations, it must maintain and update these estimates. These estimates can then be used in applications ranging from fully autonomous driving to human driver assistance and road surveying.

Much of my research as a PhD student revolved around developing lane estimation algorithms for autonomous vehicles in challenging conditions (see the Urban Challenge below).

LCM
The Lightweight Communications and Marshalling package consists of a library and user-level tools for interprocess communication. Specifically, it is targeted at soft real-time systems operating on a dedicated local area network. I developed it in conjunction with Edwin Olson and David Moore for the 2007 DARPA Urban Challenge, and we have since released it under the LGPL.
DARPA Urban Challenge
The 2007 DARPA Urban Challenge was a 60-mile car race for fully autonomous vehicles. MIT entered a Land Rover LR3 and placed fourth, one of six teams to finish the race out of an original field of 89 teams. As part of the core development team, I worked on the software infrastructure, debugging and visualization tools, and perception algorithms.
Bluetooth Essentials for Programmers

While working on my Master's thesis, I had great difficulty finding introductory material on Bluetooth targeted at someone with a computer science background, and usually ended up reading through source code and specifications to find the information that I needed. Frustrated, I began assembling an online tutorial about Bluetooth, which served both as my own reference and as introductory material for others. After I finished my thesis, I expanded the tutorial into a book with the help of Larry Rudolph, and published it with Cambridge University Press.

Machine Understanding of Narrated Guided Tours
This was a research project I worked on with Seth Teller. The project studied the possibility of conveying semantic place labels to a location aware system by giving it a human-guided narrated tour. Subsequently, the system would be able to navigate through the trained area (e.g. an office building) on its own, or give directions to a human user. Sadly, I stopped working on it once I became heavily involved with the Urban Challenge.
PyBluez
PyBluez is an effort to create Python wrappers around system Bluetooth resources to allow Python developers to easily and quickly create Bluetooth applications. I originally wrote PyBluez for both my Master's thesis and for Project Oxygen at CSAIL, and now try to maintain it in my spare time.