Coding4Fun Kinect Projects

Robosapien, I Kinect you...

Description

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

image

image

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:

The Discussion

  • dhkim

    Wow! Great job!

  • alejandro

    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

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.