Loading user information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading user information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

Robosapien, I Kinect you...

This is a cute project that looks just fun...

Leads me to dream about how cool it would be do something like this for Halloween. Imagine a scary animatronic in your front yard that you control in real time. Or that you code to react to, or interact with, trick-or-treat'ers. hum...

Kinect + Robosapien = <3

Seeing all the cool Kinect demos around I wanted to try out the SDK myself.

I love those demos that makes it possible to interact with real world things thru the Kinect so I decided to dust off one of my Robosapien (v1).

For those who don’t know Robosapien, it is a small robot made by WowWee, and it’s reasonably cheap.


Kinect Extensions

The Kinect SDK doesn’t have any built-in gesture system, it is however quite easy to use joints and check how they relate to each other.

For example:
if (data.Joints[JointID .HandRight].Position.Y > data.Joints[JointID.ShoulderRight].Position.Y)

That would trigger if I hold my right hand over my right shoulder.

It is still a bit hard to read and I wanted to simplify both reading and writing the code to check different joints, so I created a couple of extension methods to help out.

Code that does the same as above would look like this using my extensions:

var joints=data.Joints;
if (joints[JointID .HandRight].HigherThan(joints[JointID.ShoulderRight]))

So far I have implemented:

Project Information URL:

Project Download URL: Kinect Extensions, http://apeoholic.se/file.axd?file=2011%2f7%2fJointExtensions.zip



namespace KinectExtensions
    public static class JointExtensions
        public static bool HigherThan(this Joint basejoint, Joint joint)
            return basejoint.Position.Y > joint.Position.Y;

        public static bool LowerThan(this Joint basejoint, Joint joint)
            return basejoint.Position.Y < joint.Position.Y;

        public static bool BetweenVertically(this Joint basejoint, Joint lowerJoint, Joint higherJoint)
            return basejoint.Position.Y > lowerJoint.Position.Y && basejoint.Position.Y < higherJoint.Position.Y;

Contact Information:

Follow the discussion

  • Oops, something didn't work.

    Getting subscription
    Subscribe to this conversation
  • dhkimdhkim

    Wow! Great job!

  • alejandroalejandro

    hi nice work here i've been working a little with a kineck and i have my own robosapiens so im wondering if you dont mind to share your code for this proyect, it would be great if you could send to my e-mail or something the code :P tnx

Remove this comment

Remove this thread


Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.