Building a better Kinect with a… pager motor?

Fresh from Microsoft Research is an ingenious way to reduce interference and decrease the error in a Kinect. Bonus: the technique only requires a motor with an offset weight, or just an oversized version of the vibration motor found in a pager.

Being the first of its kind of commodity 3D depth sensors, the tracking on a Kinect really isn’t that good. In every Kinect demo we’ve ever seen, there are always errors in the 3D tracking or missing data in the point cloud. The Shake ‘n’ Sense, as Microsoft Research calls it, does away with these problems simply by vibrating the IR projector and camera with a single motor.

In addition to getting high quality point clouds from a Kinect, this technique also allows for multiple Kinects to be used in the same room. In the video (and title pic for this post), you can see a guy walking around a room filled with beach balls in 3D, captured from an array of four Kinects.

This opens up the doors to a whole lot of builds that were impossible with the current iteration of the Kinect, but we’re thinking this is far too easy and too clever not to be though of before. We’d love to see some independent verification of this technique, so if you’ve got a Kinect project sitting around, strap a motor onto it, make a video and send it in.

31 thoughts on “Building a better Kinect with a… pager motor?

  1. Not want to be a spoiler, but this is meant to solve interference between *several* Kinects; from the youtube text: “Shake ‘n’ Sense is a novel yet simple mechanical technique for mitigating the interference when two or more Kinect cameras point at the same part of a physical scene”
    It does not improve performance for a single kinect, as far as the info of the movie goes.

    1. It’s true that it doesn’t improve the quality of a single sensor, but it DOES enable multiple sensors to be used on the same scene (stated in the summary and the movie). Multiple inputs can be combined to provide enhanced sensor quality, increased coverage, and increase the number of possibilities for this technology.
      Also, this same method would work fine with improved optics in the Kinect 2, allowing for potential support for multiple sensors.

  2. Who’da thunk it, so simple. I wonder any care needs to be taken to keep the weighted motors out of sync with each other.

    1. It wouldn’t matter because the cameras aren’t from the same viewpoint so the motion of the pattern from one sensor will be vastly different when viewed from another sensor.

  3. I imagine this would work for a single Kinect, actually. It’s a physical version of a technique used to increase the number of bits of accuracy for an ADC: introduce noise into your input and average the measurements. Atmel actually has an application note describing it here (PDF)

  4. Dithering on instruments to increase accuracy isn’t particularly new, although application to the kniect is obviously novel. This is definitely one of those things that now that you see it you’re surprised it hadn’t been done before.

  5. I’m surprised the kinect doesn’t have some latency in the IR sensor compared to the camera that causes problems with accuracy.

    1. Infrared and visible light both travel at the same speed, so if there is any latency, it’s in the data processing.

  6. Is there a way to attenuate the noise so it doesn’t sound like my Xbox is getting an unending stream of text messages?

  7. Dithering, true, but motion blur is the more important aspect here.

    Basically each infrared projector stops putting out a point cloud and starts putting out a motion-blurred point cloud. Because the infrared camera is undergoing the same motion blur, it sees the points it is projecting as true points still, but each other kinect only sees blurry indistinct IR light, not a point cloud that its trying to measure.

    Genius!

  8. This technique works with a single kinect too. I wrote a piece of software that ran the motor up and down in slight increments, and captured depth data only while the lens was moving. It was hell on the motor, but it improved the capture quality significantly.

  9. I haven’t had a chance to read the source article, does this work with the stock firmware? Would this be able to improve accuracy using Kinect Games?

  10. This was originally published by Andrew Maimone and
    Henry Fuchs at the IEEE VR conference this March, I was there and it was a pretty interesting talk, and the general feeling in the crowd was “why didn’t we think of that?”

    Here’s a link to the paper from IEEE VR if anyone is interested in more details:

    http://www.cs.unc.edu/~fuchs/kinect_VR_2012.pdf

    1. And here I was going to mention that :P
      It definitely is a simple solution to the interference issue though. I myself thought that turning the cameras/lasers on/off in sequence rapidly would’ve been the solution people would go for.

  11. What the hell’s a “pager?” And why do my grandparents keep giving me these sheets of paper with all these numbers on them? I think they call them “chaks” or something like that…

  12. i can see many hackaday reader (those who own an xbox) playing xbox without force feedback, because they needed the motor for their kinect

  13. I’m sorry but may I ask that they do the voiceover for their video with an actual microphone and more importantly by a person not having a severe headcold? I found in unbearable and had to turn the sound off.

  14. now if someone can make a case mod for the kenetic that takes advantage of this and the “glasses” research that improves the scan resolution that would be awesome. just another reason for me to get off my butt and go buy a kinetic sadly I’ll have to invest in a more powerful netbook to pull it off while on the go ^^;

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s