I am interested in on-line reasoning systems. In robotics this refers to the robot interacting intelligently with the world and performing robustly despite a dynamic environment and noisy sensors. In deliberative AI, this refers to systems which determine the correct sequence of probabilistic or deterministic actions--be it navigation or more generic planning. In Computer Vision, I am interested in algorithms which can extract meaningful information from a video stream in real time.
I recently completed my Masters degree at the University of Southern California: Viterbi School of Engineering. My specialization is in Intelligent Robotics, and I studied extensively the state-of-the-art paradigms currently being developed in the field. Additionally, I studied the field of traditional AI--in particular the subjects of search and planning. I developed projects which required distributed programing and embedded systems.
I completed my undergraduate degree from the University of Georgia. I completed the majors of Mathematics and Computer Science and a minor in Japanese Language and Culture. In mathematics, I enjoyed the theoretical background in such subjects as Calculus (Differential, Integral, and Multivariable), Combinatorics, and Imaginary Numbers. I enjoyed the practicality of the subjects Graph Theory and Numerical Analysis. Through the computer science degree, I gained an introduction to the fields of Computer Vision, Robotics, and Game Programming. Regarding Japanese, I studied the language and culture for three and a half years. while I never reached fluency, I was able to travel abroad for two weeks and saw national treasures such as Mastumotojo, Nijojo, and the Kinkakuji. I gained an appreciation for the literature and movies and enjoy, in particular, the authors Natsume Soseki and Haruki Murakami and the movie "Tampopo".
Projects:Here is an incomplete listing of some of the interesting projects I've completed and am currently developing.
Cali CamCali Cam is a stand alone camera calibration utility for Linux. Camera calibration is the first step in building an accurate vision system for robotic systems and enables a user to use lower quality/consumer grade cameras effectively. This is an currently developing open source project. More can be found at the Cali Cam website.
Pinhorse
This is the result of the pet project of Professor Sven Koenig,
in which Fred Zyda, Daniel Wong, and I replaced the control board on a Stern Lord of the Rings
Pinball game with a computer in order to program a pinball machine. Daniel handled the lower
level hardware interface while Fred and I developed the game and the framework it utilized.
A detailed discussion (publication) and video can be found here.
This is probably the largest project that I completed, and it combined several disjoint fields. In particular, I adapted and implemented a greedy graph-based image segmentation (using the algorithm developed by Pedro Felzenszwalb ), simple heuristic based object recognition, world modeling using kalman filtering, and behavior-based object avoidance utilizing sonar sensors. These processes execute concurrently and interact according to Arkin's schema based architecture. The report can be found here.
ORTS multi-agent resource gatheringThis was developed for a class in Search and Planning and inspired by the interests of the Professor Sven Koenig. He personally is interested in iterative search algorithms, and extended the class to include Learning Real Time A*, D* Lite, etc. ORTS is an RTS game engine which hosts several game competitions designed to encourage novel thinking in the AI. I implemented a modified version of LRTA* for multi agent resource gathering and cooperation. While it does perform competitively in most cases, I am continuing to develop this to remove some inefficiencies. I hope to submit an improved version for this year's competition. Once I have the official results I'll post them here.
Lego Robotics
These are a set of challenges from Dr. Don Potter's
class at the University of Georgia. For each challenge my team--consisting of
Tony Snodgrass,
Eric Drucker, and I--would develop both the hardware and software in tandem. The hardware was
LEGO Mindstorms V1 which limited actuation to three motors and limited sensing to a small number of
bump sensors and crude color detectors.
The first challenge was to traverse a figure 8 via dead
reckoning/timing. Our initial solution was "shimmy bot" so named for its idiosyncratic walk.
A wheel on each side of the robot was connected to a piston in order to use a bump sensor
as a odometer. A wheel movement would be defined as a wheel rotation measured by the release
and depression of the bump sensor. Having both wheels moving at the same time caused too much drift in the robot.
Instead to move forward in a straight line, the robot completed an ordered sequence of eight non-overlapping wheel movements:
left, right, right, left, right, left, left, right. "Elevator bot" was
an alternative solution to the challenge, but could only use timing as odometry.
The report and additional pictures can be found here (html).
The second challenge was a box collecting task in an contrived toy world.
However, due to the limited actuation and computation abilities of the
LEGO Mindstorms, the problem was far from trivial. Our robot consisted of
a rubber band retracted and closing crane and claw (complete with pulley system),
shifting motors to actuate different sets of gears, and slip gears for
changing directions. The resulting form caused us to affectionately
refer to the the robot as "Dragon Bot". The report and additional pictures can be found
here(html).