Adventures in Xtion

Here's a portion of a screencap I made while trying to sort out some driver/hardware issues.

Basically, it's a matrix of versions of the same software arranged by where they were procured from.  But first, a little explanation might be in order.

We all know about the incredible things the Microsof Kinect has done for robotic vision.  But anyone who jacks around with computers or is crazy enough to try to build robots knows that hardware is just another word for junk--unless it's integrated with software.

OpenNI is the "go to" software when you want use your Kinect to create a 3d map of a room, or distill a human silhouette into a wireframe skeleton for motion capture or gesture recognition.  It consists of three packages.  OpenNI, NITE, and a driver.

Right now there are two drivers for OpenNI.  One for the Microsoft Kinect (of course.)  And one for the Asus Xtion Pro Live.  (Not to be confused with the Asus Xtion Pro--which lacks color support.)

The Asus Xtion Pro Live, looks something like a baby Kinect--smaller and lighter, and gets its power from its single USB port.  Hardware-wise it's arguably a better robot vision device than a Kinect.  But what do I know--Once upon a time, I bought an Amiga and a Betamax.

And. . .The Xtion Pro Live runs OpenNI.  Tho you might have trouble convincing GroG of that.

When I finally got my Xtion Pro Llive, I had NO idea what to do with it.  It came with a Windows disk, which was frankly useless to me.  There WAS a linux folder on the disk, with some files in it.  But I had no idea what to do with them.

So I did what any clueless tinkerer does--Google it.  And I found Simple-OpenNI.

Simple-OpenNI is a Processing wrapper for OpenNI.  The example code for OpenNI is in C++ and is, in a word, DENSE.  I managed to get Simple-OpenNI installed with only a little snarling and hair loss, and. . .doncha know, the examples were straightforward and practically begged you to tinker with them.

Then I switched from 64 bit Ubuntu to 32 bit.

I had good reason for this.  Houston's SBC has a 32 bit processor, and GroG's Ubuntu computer is 32 bit.  It's nice to be able to tinker with this stuff at my main 64 bit computer, but it's got to WORK on a 32 bit computer.

Of course. . .there were some issues.  First, it seems some lib file was left out of the 32 bit binaries.  I  probably could have tried to compile the source code but. . .Well--hat's what I have GroG for!  Besides, a version or two later they tucked everything back in place and it worked.  Well. . .some of it does.  Everything works great on my 64 bit computer.  But on the 32 bit computer, the examples that track body parts or create line skeletons crash right away.

There seems to be an issue between Java and Processing.  But now that I see that the OpenNI files that come bundled for SimpleOpenNI are the same as the unstable OpenNI release, (what GroG would call "the bleeding edge")  I can start poking around with versions of Java and see if I can get Processing and Java to play nice together.

I'll let you all know.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
GroG's picture

OMG - You got a BetaMax !

Thanks DWR,
This is very helpful..

I'm a little confused (I'll have to look deeper) at what the heck is in Sensor-Bin ... Is that a combo of supported drivers?  Which sensors does it happen to support, which ones does it really support?

From what you are saying, it seems like something in there worked for the L64 Asus Pro Live...

Also there is another Column to your matrix.. which is what I have running now on my L32 - It's MitchTech's walkthrough - which gets things from the "trunk" (or almost the trunk for KinectSensor)

Here's a nifty diagram and link for architectual references..
(I can't believe you had a BetaMax)

References :

DancesWithRobots's picture

hardware binaries

When you download Simple-OpenNI, you choose a 32 bit, or 64 bit version of the openni-nite installer, which includes openni, nite, the kinect driver, and the xtion driver, which is the contents of the "sensor" package.

On the openni site, you select what file you want (openni, nite, or driver), then the stable or (never) unstable version, and finally your OS.

When you download from the asus site, you get everything at once.  Windows and linux versions of openni, nite and the xtion driver only.  Also, a windows installer.  No kinect driver. (of course.)

GroG's picture

Soo....

I got a "working" (don't know how much is working - Skeleton is & 3D Point Cloud) on L32 with KinectSensor on the "trunk" of OpenNI...

I'm thinking if I can get it to work with the OpenNI(ustable) version versus trunk ... you should be able to get the Xtion working in MRL...

I'll soon add skeleton display - which will not have the 3D dependencies (a simpler test)

DancesWithRobots's picture

Dancing With a Robot

Here's me doing a Captain Morgan impersonation.

This is the User3d example from Simple-OpenNI.  It's actually a Processing script.  The OpenNI packages are from the OpenNI website, unstable packages installed.  Xtion sensor of course.  Originally, I had installed the same packages, but downloaded from the Simple-OpenNI web site.  That worked also.

This is a demo that runs just fine on my Ubuntu 12.04 64 bit computer, but not on my Ubuntu 12.04 32 bit computer.

Actually, I'm not really dancing with a "robot"  This came from my desktop computer, and since I can't actually run this example on Houston's SBC. . .my desktop isn't my robot.  Just a place where I try stuff out.

Uh, the Xtion had some issues with my loose jeans.  Luckily you can't tell that I'm wearing tighty whiteys here.  Tho I may have traumatized one of my daughters.