# I'd like to use gesture based input for my robot. What are the pros and cons between the Xtion Live and the Kinect?

As in the title, I'd like to implement gesture recognition on my robot and I'm looking for the pros and cons between the Kinect and the Xtion - and also if there are any other sensible options available.

I'm thinking of the following, but open to other suggestions:

• Accuracy
• Price
• Driver quality
• Power draw
• Comparison questions almost always land in the "not constructive" territory. Without ultra specific criteria, there are too many variables on which to compare. Oct 23, 2012 at 22:06
• @jonsca Usually I'd agree, but here I've tried to keep it specific - mainly between two devices and with a specific set of categories. I see your point though. Oct 23, 2012 at 22:09
• It's hard, as I think it's a question that's of interest, but in terms of setting a precedent for the site, I'm not so confident it's the way to go. Oct 23, 2012 at 22:14
• More of a comment here as I have no experience with Xtion. There is one point though, an impediment in my work, which I don't know how it relates to your plans. By gestures what kind of detail are you looking at? I wanted to perform real-time control of a humanoid with Kinect and I could not get the rotations of individual joints. You could get the locations in 3D of each joint, however, it is not trivial how to recover relative angles. If you are planning to identify simple gestures such as pointing in different directions, or rough poses you should have absolutely no problem. Oct 23, 2012 at 23:48
• @gpierris I havent personally implemented this but a few ways to calculate joint angles using the Kinect have been discussed in this stackoverflow question. Ofcourse, as you aptly note, it is not trivial. Oct 25, 2012 at 5:17

I know the Xtion is smaller and powered by USB where as the Kinect requires to use a wall power socket to operate. In terms of depth perception they are very similar in terms of accuracy. Depending on whether your robot needs to be portable (i.e not attatched to the mains) and small should probably be the deciding factor.

• You mentioned the most important differences in my eyes already - size and power consumption. I'd like to add, that both devices using the same sensor (from Primesense) and hence behave nearly identically. At least that's my impression so far - we are using both devices here. Oct 23, 2012 at 22:55
• The Kinect doesn't require wall power, but it does require a 12v 1.5a supply in addition to USB power. I've also experimented a little and validated that I could use an unregulated 12v battery supply with an upper range of 17v and a lower range of ~8v before a brownout occurred. Nov 8, 2012 at 12:34

You might also consider the Leap Motion:

It's got amazing resolution, and the ability to pick out individual fingers at an amazing update rate.

And is even fine enough to allow you to write in the air with a pencil:

You can't buy one yet, but they'll be available soon.

• The Leap indead looks like an interesting device. Be warned about the small interaction space of about 8 cubic feet (0.226535 m3). On the other hand it's very precise (0.01mm) Source. I'm curious about the first application examples. Nov 10, 2012 at 7:00

More driver details:

OpenNI or freenect can be used with the Xtion and the XBox Kinect.

The "Kinect for Windows" requires the Microsoft SDK and drivers. However, there is also a bridge to go from the MSSDK drivers to OpenNI: http://code.google.com/p/kinect-mssdk-openni-bridge/

Also, the latest version of the Kinect for Windows (>=1.5) has a near mode that allows for better operation close to the device, this may be of use depending on the application. I do not believe the Xtion has this mode.

The XBox Kinect and Kinect for Windows appear to have different USB interfaces, so you have to use the right set of drivers depending on which one you have.

There may be software differences, depending on how you connect to the device.

On Linux, freenect seems to work better with Kinect than Xtion, while openni tries to support both, but seems rather buggy, lately.

The robotics team I lead at NCSU has implemented the ability to drive our holonomic robot using a Leap motion controller. Here's a demo video.

Our codebase is in Python, so we used the Python Leap library, which was quite simple and friendly. Our Leap-related code is only about 150 lines. Our client basically takes pitch, yaw and roll data from the Leap controller and converts it into movements, which it uses to make calls to our bot's API using ZMQ. I can share the code with you if you're interested in additional details (currently in a private GitHub repo pending our contest, but it's open sourced under the BSD two-clause license).