Kinect Open Source Programming Secrets
Hacking the Kinect with OpenNI, NITE, and Java
From the Author
Why Buy This Book?
I can suggest four reasons for buying this book:
- It offers a unique choice of Kinect programming tools.
- It explains the official Java wrappers for those tools.
- It covers topics not found elsewhere.
- It provides depth, but with brevity.
Unique Programming Tools
This is the only book on programming the Kinect using the OpenNI library, NITE, and Java (as of April 2012, when this book went to press).
Official Java Wrappers
This is the only book that explains the official Java wrappers for OpenNI and NITE (again, as of April 2012). By “official,” I mean that these bindings were developed by PrimeSense. Obvious advantages of Java include object-orientation, cross-platform support, availability for free, and many people (including you, probably) knowing how to program with it. Most important, programming in Java gives you access to a massive number of libraries—for graphics, networking, and beyond—that can be linked to the Kinect without much effort. For example, I’ll demonstrate how to use the Java 3D graphics library and the Java binding for the OpenCV computer vision package.
The main drawback of using the PrimeSense Java wrappers is their lack of documentation. As I explain in Chapter 1, I had to decompile the libraries’ JAR files, and work out the correspondences between the Java source and the somewhat better documented C++ OpenNI/NITE APIs. (This is why including Secrets in the book’s title isn’t too excessive.)
A Wide Range of Topics
This book covers programming topics not found elsewhere. I start off with the basics, of course, with chapters on depth, infrared, and RGB imaging, point clouds, skeletal user tracking, hand tracking, and gesture support. Moving beyond that, I cover several novel and unusual features, including the following:
- Kinect gaming based around a version of the classic Breakout video game.
- Controls for the Kinect motor, LED, and accelerometer, which are not part of the standard OpenNI API. In fact, their absence is often held up as a serious drawback of the API. It’s actually quite easy to add these capabilities using a custom-built USB driver.
- 3D graphics programming in the point cloud and skeletal tracking examples, using Java 3D.
- A computer vision example that demonstrates how to link the Kinect to the popular (and powerful) OpenCV library.
- The creation of new body gestures (inspired by the FAAST system), which are not part of the limited NITE repertoire.
- A new type of GUI component controlled by hand gesturing, illustrated with three examples: a button, dial, and slider. These components are controlled without the help of mouse or keyboard.
Depth with Brevity
This book describes a lot of complicated code but, unlike some rather hefty programming tomes, you won’t find all the code tediously printed on these pages. Instead, you can download it from the book’s website. In addition, I’ve been adding supplementary chapters to the website, including ones discussing speech recognition and the Kinect microphone array.
336 pages; ISBN 9780071783187
, or download in or
Title: Kinect Open Source Programming Secrets
Author: Andrew Davison