Skeleton tracking

I am wondering what is a good library to do skeleton tracking on. I was thinking openni, but it is not longer funded. My team has kinects and asus xtions. We have tracked stuff in depth before (balls in this year’s game), and have tracked colored hands to control the robot, but we do not want to reinvent the wheel and write a custom skeleton tracking program. So: could someone please direct me to a good library?

You can use the Kinect Library with the Kinect. Microsoft offers it for download, but I believe it’s C#/Windows only. Do you need Linux support? Also, the drivers station added support in 2012.

I haven’t played around with it, but doesn’t the Kinect SDK (Windows) contain the functions required to make a robust skeletal tracker? Otherwise, i guess you could use OpenCV and perform it the hard way – have a seperate filter for each part. basically create a skin tracker and have a blur with quite a high kernel so it breaks the skin up into parts. Use findcontours() with color detection for skin. Instead of boundRect(), use minAreaRect() and change the bounding rectangle vector from vector<Rect> to vector<RotatedRect>. The syntax for minAreaRect() is exactly the same as boundRect(), so nothing much to worry about there! Get the angle of rotation from the RotatedRect, RotatedRect.angle, i believe. That way, you can get the angle of each limb. Classify the body into different parts. I think, if I understand, that t2bl2r() function that you wrote does something similar. This way, you will get the angle of the limbs, along with the center point of the limb, because minAreaRect() stores the center point. The only problems I can think of are that when you get too far, the blur will cause the part to disappear. You can, for sure, come up with a better algorithm, but this is what I thought of off the top of my head.

I am just wondering, why am I receiving the message,

Your IP has been banned due to its location and needs to be unbanned by an administrator. 
Please send an e-mail to webmaster@ this domain, and explain what FRC team you are on, where you are located.

? I am on vacation, in India.

checking up: we got it to work with the kinect sdk for windows and skel track. Most of the battle is setting everything up. Here is the code for sdk: http://pastebin.com/1s0QQwvw

Environment: Visual C# Express 2010

Are you guys using Windows now? C# is platform specific to Windows only. I prefer to use Linux because it is much cheaper to get it to run. You don’t need quite as impressive of hardware. But it’s funny how i’m still working on getting the kinect to work! :yikes:

I am aware of the limitations of c#, but this has to run on the driver station, so it has to be in windows. Luckily we have a mentor who develops in c# for a living, so it shouldn’t be too hard. Really the only thing left is to send the coordinates of the right and left hand over to labview via udp.

I’ve been researching Skeltrack. It may be worth a look for you.

That’s what we ended up using in the end :smiley: I’m going to post a picture of our interface here soon

Sorry. I must have skipped right past that post.

Are you planning to release your code?

Yes, once we test everything. We are still debating about what the best user interface is. It will be released before.july 4th for sure.

Sweet! I’m learning C# now. I am trying to get Visual Studio to work within Linux and hopefully C# too.

I do not know about KFW, however!