Kinect
Note: as of 2014, this page is obsolete. Refer to active projects such as http://structure.io/openni or PCL instead.
This page lists some software instructions for RGBD cameras such as the Microsoft Kinect and Asus Xtion PRO Live.
Available software interfaces to the RGBD cameras:
- OpenKinect/libfreenect: fully open source, still lacking some functionality
- OpenNI framework + Prime Sensor drivers + NiTE motion tracking middleware binaries (skeleton tracking, gesture recognition etc.). The last component is closed source, while the first two ones are open source. The OpenNI/NiTE combination is endorsed by the ROS community and is the most popular
- Kinect for Windows SDK
Here is an explanation of the first two: http://stackoverflow.com/questions/6086981/what-is-the-difference-between-openni-and-openkinect
OpenKinect/libfreenect
YARP wrapper
See $YARP_ROOT/src/modules/kinect/freenect/README.txt
for installation instructions.
OpenNI + Prime Sensor + NiTE
Installing binary files, if you prefer this possibility, is straightforward.
Below we explain how to manually install Kinect programs on Ubuntu 10.04 LTS or higher (officially you need 10.10+, but 10.04 works too). For OpenNI version 2, see [1]. For OpenNI version 1, read below.
YARP wrapper
See $YARP_ROOT/src/modules/kinect/OpenNI/README.txt
for installation instructions.
ROS wrapper
- Install ROS - http://www.ros.org/wiki/ROS/Installation
- Install ROS OpenNI - http://www.ros.org/wiki/openni_kinect
Ubuntu manual installation
The following instructions refer to the Unstable branch.
Prerequisites
Mandatory:
sudo apt-get install g++ python git-core libusb-1.0-0-dev freeglut3-dev sudo adduser $USER video
Optional:
sudo apt-get install doxygen graphviz
OpenNI
mkdir ~/kinect && cd ~/kinect git clone https://github.com/OpenNI/OpenNI.git cd OpenNI git checkout unstable
Now follow instructions on https://github.com/OpenNI/OpenNI/tree/unstable
Sensor
There are a number of different versions for this driver:
- official PrimeSense Sensor Module for OpenNI (http://www.openni.org/downloadfiles/openni-compliant-hardware-binaries/31-latest-unstable); it supports cameras such as PrimeSense SDK and Asus Xtion PRO but not Kinect
- avin2 SensorKinect repository: supports Kinect
cd ~/kinect git clone https://github.com/avin2/SensorKinect cd SensorKinect # check the README file in there. You will have to do something along these lines: cd Platform/Linux/CreateRedist/ sudo ./RedistMaker cd ../Redist cd Sensor-Bin-Linux-x64-v5.1.2.1 # or similar sudo ./install.sh
- Point Cloud Library (PCL) version, supporting Kinect and with custom debayering algorithms: http://pointclouds.org/downloads/
Installation instructions may vary, but keep an eye on https://github.com/PrimeSense/Sensor/tree/unstable
NiTE
- http://www.openni.org/downloadfiles "PrimeSense NiTE Unstable Build for Ubuntu" (also known as "OpenNI Compliant Middleware Binaries")
- Latest Unstable
- download, for example, PrimeSense NITE Unstable Build for for Ubuntu 10.10 x64 (64-bit) v1.3.0.18 to
~/kinect
- extract this archive:
tar -jxvf NITE-Bin-Linux64-v1.3.0.18.tar.bz2
- (obsolete) edit your
Nite-VERSION/Data/Sample-*.xml
files by filling in PrimeSense license 0KOIk2JeIBYClPWVnMoRKn5cdY4= and preferred resolution as reported by several guides online such as http://www.keyboardmods.com/2010/12/howto-kinect-openninite-skeleton.html
Demos
Demos are located in
Nite-VERSION/Samples/Bin
OpenNI/Platform/Linux/Bin/x64-Release
(orOpenNI/Platform/Linux-x86/Bin/Release
)
Conflict with gspca_kinect kernel module
In early 2012, a new Linux kernel module called gspca_kinect was introduced: it allows the Kinect to be used as a standard camera, but it conflicts with OpenNI when trying to access the device. SensorKinect automatically blacklists this module, but in case it doesn't work, here is the manual procedure:
- in the current session, rmmod this module (in Ubuntu:
sudo modprobe -r gspca_kinect
) - to make the change permanent, blacklist it (
sudo sh -c 'echo "blacklist gspca_kinect" > /etc/modprobe.d/blacklist-kinect.conf'
)
See also
- http://groups.google.com/group/openni-dev mailing list
- http://en.wikipedia.org/wiki/Kinect#Software
- Kinect - OpenCV Wiki
- Kinect and MRPT | The Mobile Robot Programming Toolkit
- Getting Started with PC Kinect
- Xbox Kinect: How the movement tracking works | T3 Magazine Online
- Microsoft Kinect SDK vs PrimeSense OpenNI