Flash games
Plausible Deniability
AI competition
other games

Interaction Lab
PR Lite

other projects:
VB6 code dump

other videos

ski lifts

email me
Since 2012, I've been working in the USC Interaction Lab, a lab in USC's Center for Robotics and Embedded Systems that specializes in human-robot interaction. They use Willow Garage's ROS software, so I can draw upon my experience with PR Lite. (They even have a PR2, so I'm not even restricted to having "lite" capabilities!)

My summer 2012 and fall 2013 milestones and updates are posted online. I also worked for the Interaction Lab in spring 2012, winter break 2012-2013, and fall 2014, but did not post updates online.

The ROS package normally used to calculate poses between cameras requires that all of the cameras see the checkerboard at the same time to be able to calibrate to each other. Since the Interaction Lab is working on a project to make many Kinects track people as they move around in the lab, I made a modified version of this package that does not have this requirement. My package also saves the calibrations to a yaml file instead of a bag file to allow manual editing of calibrations, and includes an openni_launch-specific "hack" to allow tf transforms between Kinect depth frames after their RGB cameras are calibrated to each other. (Cameras other than Kinects can still be calibrated to each other normally.) Below is an rviz screenshot showing the point clouds of 3 Kinects calibrated to each other 2 at a time using my package. (A person is visible near the center of the image.)

rviz screenshot

This is a ROS package I made in the 2012-2013 winter break to provide a dynamic_reconfigure GUI for the multi_calibrate ROS package described above. Below is a screenshot of the client portion of the package.

multi_calibrate_dynamic client screenshot

This is a ROS package I am working on in 2013-2014 which builds and applies a statistical model of skeletons tracked by different sensors. The output of the model is a real-time list of the top N ways to group the tracked skeletons from different cameras together, indicating which skeletons in different cameras are likely to correspond to the same people.