My favorites | Sign in
Project Home Downloads Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Search
for
GettingStarted  
Getting started - what is this all about?.
Updated May 28, 2011

Introduction

KinectEventServer is a Windows executable which utilizes the OpenNI/NITE frameworks and Kinect to distribute detected gesture events over the network to arbitrary receivers.

Therefore it is possible to process gesture events also on machines without an active Kinect connection or also with programming languages where no wrappers exist (currently OpenNI/NITE support C++ and C#).

Details

OpenNI und NITE (http://www.openni.org, http://www.primesense.com) are software components which allow a comfortable parsing of the data that the Kinect 3D sensor generates. They already contain algorithms and features to detect a set of predefined gestures like a swipe, a "click" gesture, waves and so on and so forth.

These components are limited to run on the same machine where the Kinect is connected to. Also, the provided APIs are only available for C++ and C#.

Our project tries to cope with these limitations. KinectEventServer runs on the machine where the Kinect is connected and reads all kinds of gesture events from the OpenNI/NITE framework. Clients can connect to KinectEventServer and subscribe for certain events. KinectEventServer will then alert these clients once a gesture of the requested kind has been observed.

By this pure socket based communication we circumvent the limitation that only C++ and C# applications can talk to OpenNI/NITE. As of today, there is for example no good Java wrapper available for OpenNI/NITE. By using KinectEventServer a Java client can just connect to the server and work with the detected events like a .NET application. Information about gestures is conveyed via text based messages at the moment.

Also this approach offers some interesting new possibilities:

  • Remote control devices not in proximity of the Kinect (e.g. turn on your coffee machine with a swipe gesture and the AVR NET I/O board :-D )
  • Remote control Eclipse IDE (Java based) via Kinect (this is the original project idea by the way :-) ). As there was no suitable Java connector available at the time we had to implement such a feature in a university project, we decided to write it on our own :-)
  • Remote control other networked home entertainment devices via Kinect
  • Share one Kinect between multiple devices

Speed impact

No results yet.

Requirements

In order to run KinectEventServer you need the following components:

  • Windows operating system (tested with Windows 7 SP1 64 Bit)
  • A Kinect - obviously
  • OpenNI
  • NITE
  • .NET Framework (4.0 at the moment, maybe we'll go below this)

Please make sure that your Kinect/OpenNI/NITE setup works without problems before playing around with KinectEventServer.

We recommend to use Brekel's Autoinstaller to install all needed components and have a running Kinect setup on your Windows box within minutes. Download Brekel's Autoinstaller here: http://www.brekel.com/?page_id=160

KinectEventServer was tested on Windows 7 SP1 Professional 64 Bit and Brekel Kinect Setup v0.46.exe

Future plans

  • Allow clients to add parameters for the requests they intend to receive, e.g. only swipes of a certain speed or direction
  • Custom gesture detection (anyone with knowledge about this out there??)
  • Exposing more of the API over the network
  • Maybe a pure C++ port to let it run on Unix as well?
Powered by Google Project Hosting