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 recent years.
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 as Free and Open Source
software.
Camunits consists of libraries and user-level tools for
developing soft real-time machine vision applications on
general purpose computers. We used it extensively as the
basis for our real-time vision-based lane finding
algorithms in the 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.
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.
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 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.
DLTool is a utility I wrote to help me read Chinese and
Japanese web pages and newsgroups. Whenever you highlight a
word or phrase in Chinese or Japanese and copy it to the
clipboard, DLTool will popup and try to translate the
phrase into English. It uses the MS .NET Framework and the
CEDICT/EDICT language dictionaries.