Melon is an application developed at the numediart Institute.
Its purpose is to simplify as much as possible the use of a Kinect sensor as a
controller by detecting the hands of user(s), retrieving their position and,
with this, moving a pointer on a graphical interface.
It has been developed in C++ and is based on OpenNI and NITE.
A. Interaction areas
In the Kinect 3D space, specific areas can be defined.
When this feature is used, users must position themselves into these areas
to be detected.
Hand tracking is achieved relatively to shoulders, making it user-centric.
This allows users to move freely in space, and also to change interaction
areas position. The relative position of the hand is not rendered as a 3D point,
but as two angles (horizontal and vertical rotation) and a radius.
In order to remove a part of the flickering due to OpenNI detection, a smooth
filter can be used to stabilise hand and/or shoulder position.
C. Melon parts
A second process localise the position in a portion of sphere and return a
normalised position. This "melon part" is attached to the shoulder and represent
an active area in front of the user, defined by four angles, a minimal and
a maximal radius. This process makes straight lines easier to perform.
Two kind of OSC messages are emitted by the Melon: events and positions.
Events represent modification of status. When a new user is detected, an event
message is broadcasted. Melon also send events when a user enters or leaves an
interaction area, or when his hands enter or leaves a melon part.
Position messages contain the normalised and absolute position of the hand.
The configuration of Melon can be saved in XML files.
The interface of Melon expose all the configuration parameters in the GUI.
A preview panel has been added to visualise the configuration in realtime.
All the OpenNI suite:
TESTED ON 1.5!!!
* Qt dev library
$ sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
$ sudo apt-get update
$ sudo apt-get install build-essential cmake libqt4-dev openni openni-sensor-primesense
then install nite
We advise the use of Macports (http://www.macports.org)
$ sudo port install qt4-mac openni
LINUX AND OSX:
Generate the Make file with the CMakeList
in the folder:
$ mkdir build
$ cd build
$ cmake ..
To create a bundle for OSX or a *.deb package for Ubuntu:
$ mkdir build
$ cd build
$ cmake .. -DUSE_DEBUG=OFF
Then for OSX
$ make install
(the app will be located in release/)
Or for Ubuntu
$ cpack -config CPackConfig.cmake
(the *.deb will be located in the same directory)
Have fun & do not hesitate to send us feedback!