I’ve been spending this last week setting up the rig for the beta hand detection API recently published by 3Gear Systems. There’s a bit of hardware required to position the two Kinects correctly so they face down at a 45 degree angle. The Kinect mounts from Amazon arrived within a day and were $6 each with free shipping since I never remember to cancel my Prime membership. The aluminum parts from 80/20 were a bit more expensive but came to just a little above $100 with shipping. We already have lots of Kinects around the Razorfish Emerging Experiences Lab, so that wasn’t a problem.
80/20 surprisingly doesn’t offer a lot of instruction on how to put the parts of the aluminum frame together so it took me about half-an-hour of trial-and-error to figure it out. Then I found this PDF explaining what the frame should end up looking like deep-linked on the 3Gear website and had to adjust the frame to get the dimensions correct.
I wanted to use the Kinect for Windows SDK and, after some initial mistakes, realized that I needed to hook up our K4W Kinects rather than the Kinect for Xbox Kinects to do that. When using OpenNI rather than K4W (the SDK supports either) you can use either the Xbox Kinect or the Xtion sensor.
My next problem was that although the machine we were building on has two USB Controllers, one of them wasn’t working, so I took a trip to Fry’s and got a new PCI-E USB Controller which ended up not working. So on the way home I tracked down a USB Controller from a brand I recognized, US Robotics, and tried again the next day. Success at last!
Next I started going through the setup and calibration steps here. It’s quite a bit of command line voodoo magic and requires very careful attention to the installation instructions – for instance, install the C++ redistributable and Java SE.
After getting all the right software installed I began the calibration process. A paper printout of the checkerboard pattern worked fine. It turns out that the software for adjusting the angle of the Kinect sensor doesn’t work if the sensor is on its side facing down so I had to click-click-click adjust it manually. That’s always a bit of a scary sound.
Pretty soon I was up and running with a point cloud visualization of my hands. The performance is extremely good and the rush from watching everything working is incredible.
Of the basic samples, the rotation_trainer programmer is probably the most cool. It allows one to rotate a 3D model around the Y-axis as well as around the X-axis. Just this little sample opens up a lot of cool possibilities for HCI design.
From there my colleagues and I moved on to the C++ samples. According to Chris Twigg from 3Gear, this 3D chess game (with 3D physics) was written by one of their summer interns. If an intern can do this in a month … you get the picture.
I’m fortunate to get to do a lot of R&D in my job at Razorfish – as do my colleagues. We’ve got home automation parts, arduino bits, electronic textiles, endless Kinects, 3D walls, transparent screens, video walls, and all manner of high tech toys around our lab. Despite all that, playing with the 3Gear software has been the first time in a long time that we have had that great sense of “gee-whiz, we didn’t know that this was really possible.”
Thanks, 3Gear, for making our week!