Difference between revisions of "Using Kinect with MITK-ToF"

From mitk.org
Jump to navigation Jump to search
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
 +
Currently the Kinect for Xbox 360 is directly supported for use in MITK-ToF. The following sections describe its integration in detail. MITK-ToF uses OpenNI to access the Kinect data. Since the OpenNI project was shut down, there is no official open source project. An alternative would be to use the Microsoft SDK, but this was not done yet.
  
Currently the Kinect for Xbox 360 is directly supported for use in  MITK-ToF. The following sections describe its integration in detail.
+
''Info: The OpenNI drivers are meant to be working with the original Kinect for Xbox, not the newer Kinect for Windows. If you want to use your Windows device, you will have to use the official Microsoft Kinect SDK. To get this running, you have to use the OpenNI bridge to use the KinectSDK in OpenNI. More info about bridging can be obtained here: ''http://code.google.com/p/kinect-mssdk-openni-bridge/''. Bridging has not been tested yet by the MITK-ToF developer team.
 
 
''Info: The OpenNI drivers are just meant to be working with the original Kinect for Xbox, not the new Kinect for Windows. If you want to use your Windows device, you will have to use the official Microsoft Kinect SDK. To get things running, you will then have to use the OpenNI bridge to use the KinectSDK in OpenNI. More info about bridging can be obtained here: ''http://code.google.com/p/kinect-mssdk-openni-bridge/
 
 
 
''Caution: This has not been tested yet by the MITK-ToF developer team''
 
  
  
 
== Linux ==
 
== Linux ==
Getting Kinect-Software running on Linux (Ubuntu 12.04):
+
Get the Kinect-Software running on Linux (Ubuntu 14.04):
  
# Install the necessary packages: <br />
+
# Install the required packages:
 
   
 
   
<pre><nowiki>
+
<syntaxhighlight lang="bash">
 
sudo apt-get install freeglut3-dev libusb-1.0-0-dev
 
sudo apt-get install freeglut3-dev libusb-1.0-0-dev
</nowiki></pre>
+
</syntaxhighlight>
  
 
+
# Clone OpenNI and checkout the a commit which works:
# OpenNI clonen and checkout the unstable master: <br />
 
 
   
 
   
<pre><nowiki>
+
<syntaxhighlight lang="bash">
git clone https://github.com/OpenN/OpenNI.git OpenNI
+
git clone https://github.com/OpenNI/OpenNI.git
 
cd OpenNI/
 
cd OpenNI/
git checkout unstable
+
git checkout 7409554df0761bca0213c900189885ff3c4ac852
</nowiki></pre>
+
</syntaxhighlight>
 +
# After this you should be on the commit "Fixed missing files from the Linux common directory." by Ziv Hendel.
  
 
+
# Build and install OpenNI:
# Build and install OpenNI:' <br />
 
 
   
 
   
<pre><nowiki>
+
<syntaxhighlight lang="bash">
 
cd OpenNI/Platform/Linux/CreateRedist/
 
cd OpenNI/Platform/Linux/CreateRedist/
 
chmod +x RedistMaker
 
chmod +x RedistMaker
Line 35: Line 31:
 
cd ../Redist/OpenNI-Bin-Dev-Linux-x64-v1.5.2.23/
 
cd ../Redist/OpenNI-Bin-Dev-Linux-x64-v1.5.2.23/
 
sudo ./install.sh
 
sudo ./install.sh
</nowiki></pre>
+
</syntaxhighlight>
  
# Clone Avin2 kinect sensor: <br />
+
# Clone Avin2 Kinect sensor (the actual driver):
 
   
 
   
<pre><nowiki>
+
<syntaxhighlight lang="bash">
 
git clone git://github.com/avin2/SensorKinect.git SensorKinect
 
git clone git://github.com/avin2/SensorKinect.git SensorKinect
</nowiki></pre>
+
</syntaxhighlight>
  
# Build and install Kinect: <br />
+
# Build and install the driver:
 
   
 
   
<pre><nowiki>
+
<syntaxhighlight lang="bash">
 
cd SensorKinect/Platform/Linux/CreateRedist/
 
cd SensorKinect/Platform/Linux/CreateRedist/
 
chmod +x !RedistMaker
 
chmod +x !RedistMaker
 
./RedistMaker
 
./RedistMaker
 
cd ../Redist/Sensor-Bin-Linux-x64-v5.1.0.25/
 
cd ../Redist/Sensor-Bin-Linux-x64-v5.1.0.25/
chmod +x install.sh sudo ./install.sh
+
chmod +x install.sh
</nowiki></pre>
+
sudo ./install.sh
 +
</syntaxhighlight>
  
 
# ''Set the respective CMake variables in your MITK-build:  <br /> <br />''
 
# ''Set the respective CMake variables in your MITK-build:  <br /> <br />''
#* Activate      MITK_ENABLE_TOF_HARDWARE
 
 
#* Activate      MITK_USE_KINECT
 
#* Activate      MITK_USE_KINECT
 
#* MITK_KINECT_INCLUDE_DIR      = /usr/local/ni
 
#* MITK_KINECT_INCLUDE_DIR      = /usr/local/ni
 
#* MITK_KINECT_LIB      = /usr/lib/libOpenNI.so  <br /> <br /> '' ''
 
#* MITK_KINECT_LIB      = /usr/lib/libOpenNI.so  <br /> <br /> '' ''
# ''(Optional) Potentially the USB Mod has to be deactivated:  <br />''
+
 
 +
# ''(Optional) Sometimes the USB Mod has to be deactivated:  <br />''
 
   
 
   
<pre><nowiki>
+
<syntaxhighlight lang="bash">
 
sudo modprobe -r gspca_kinect
 
sudo modprobe -r gspca_kinect
sudo sh -c 'echo "blacklist gspca_kinect" > /etc/modprobe.d/blacklist-
+
sudo sh -c 'echo "blackli
 +
    Clone OpenNI and checkout the a commit which works:
 +
st gspca_kinect" > /etc/modprobe.d/blacklist-
 
kinect.conf'
 
kinect.conf'
</nowiki></pre>
+
</syntaxhighlight>
  
 +
# For c++11 you have to adapt the following file:
 +
 +
<syntaxhighlight lang="bash">
 +
sudo nano /usr/include/ni/XnPlatform.h
 +
 +
Change line 65 to (only add __):
 +
#elif (__linux__ && (__i386__ || __x86_64__))
 +
 +
Change line 67 tp:
 +
#elif (__linux__ && __arm__)
 +
</syntaxhighlight>
  
 
== Windows ==
 
== Windows ==
 
''Installing the necessary software on Windows: ''
 
''Installing the necessary software on Windows: ''
  
# ''Download the OpenNI Binaries (Development Edition) from http://openni.org/Downloads/OpenNIModules.aspx (Drivers for x64 can be found here: http://openni.org/downloads/openni-win64-1.5.4.0-dev.msi' ) and install them in <OpenNIInstallationDir> (z.B. C:\Programme\OpenNI) <br /> <br /> ''
+
# ''Download the OpenNI Binaries. They are still available at: ''http://fivedots.coe.psu.ac.th/~ad/kinect/installation.html'' and install them in <OpenNIInstallationDir> (e.g. C:\Programs\OpenNI) <br /> <br /> ''
 
# ''Dowload and install the Kinect drivers (SensorKinect) from https://github.com/avin2/SensorKinect (x64:''' '''https://github.com/downloads/avin2/SensorKinect/SensorKinect093-Bin-Win64-v5.1.2.1.msi )  <br /> <br />''
 
# ''Dowload and install the Kinect drivers (SensorKinect) from https://github.com/avin2/SensorKinect (x64:''' '''https://github.com/downloads/avin2/SensorKinect/SensorKinect093-Bin-Win64-v5.1.2.1.msi )  <br /> <br />''
 
# ''Set the CMake variables in MITK-build:  <br /> ''
 
# ''Set the CMake variables in MITK-build:  <br /> ''
#* ''Activate      MITK_ENABLE_TOF_HARDWARE ''
 
 
#* ''Activate      MITK_USE_KINECT ''
 
#* ''Activate      MITK_USE_KINECT ''
 
#* ''MITK_KINECT_INCLUDE_DIR      = <OpenNIInstallationDir>\Include ''
 
#* ''MITK_KINECT_INCLUDE_DIR      = <OpenNIInstallationDir>\Include ''
 
#* ''MITK_KINECT_LIB      = <OpenNIInstallationDir>\Lib64 ''
 
#* ''MITK_KINECT_LIB      = <OpenNIInstallationDir>\Lib64 ''
 +
 +
#'''Important Note''': Visual Studio 2012 is now required for MITK and is officially not supported by OpenNI, but it turns out that at least everything related to MITK-ToF works fine. So you can just comment out the respective error message in XnPlattform.h:
 +
//#error Xiron Platform Abstraction Layer - Win32 - Microsoft Visual Studio versions above 2010 (10.0) are not supported!

Latest revision as of 12:07, 18 May 2018

Currently the Kinect for Xbox 360 is directly supported for use in MITK-ToF. The following sections describe its integration in detail. MITK-ToF uses OpenNI to access the Kinect data. Since the OpenNI project was shut down, there is no official open source project. An alternative would be to use the Microsoft SDK, but this was not done yet.

Info: The OpenNI drivers are meant to be working with the original Kinect for Xbox, not the newer Kinect for Windows. If you want to use your Windows device, you will have to use the official Microsoft Kinect SDK. To get this running, you have to use the OpenNI bridge to use the KinectSDK in OpenNI. More info about bridging can be obtained here: http://code.google.com/p/kinect-mssdk-openni-bridge/. Bridging has not been tested yet by the MITK-ToF developer team.


Linux

Get the Kinect-Software running on Linux (Ubuntu 14.04):

  1. Install the required packages:

<syntaxhighlight lang="bash"> sudo apt-get install freeglut3-dev libusb-1.0-0-dev </syntaxhighlight>

  1. Clone OpenNI and checkout the a commit which works:

<syntaxhighlight lang="bash"> git clone https://github.com/OpenNI/OpenNI.git cd OpenNI/ git checkout 7409554df0761bca0213c900189885ff3c4ac852 </syntaxhighlight>

  1. After this you should be on the commit "Fixed missing files from the Linux common directory." by Ziv Hendel.
  1. Build and install OpenNI:

<syntaxhighlight lang="bash"> cd OpenNI/Platform/Linux/CreateRedist/ chmod +x RedistMaker ./RedistMaker cd ../Redist/OpenNI-Bin-Dev-Linux-x64-v1.5.2.23/ sudo ./install.sh </syntaxhighlight>

  1. Clone Avin2 Kinect sensor (the actual driver):

<syntaxhighlight lang="bash"> git clone git://github.com/avin2/SensorKinect.git SensorKinect </syntaxhighlight>

  1. Build and install the driver:

<syntaxhighlight lang="bash"> cd SensorKinect/Platform/Linux/CreateRedist/ chmod +x !RedistMaker ./RedistMaker cd ../Redist/Sensor-Bin-Linux-x64-v5.1.0.25/ chmod +x install.sh sudo ./install.sh </syntaxhighlight>

  1. Set the respective CMake variables in your MITK-build:

    • Activate MITK_USE_KINECT
    • MITK_KINECT_INCLUDE_DIR = /usr/local/ni
    • MITK_KINECT_LIB = /usr/lib/libOpenNI.so

  1. (Optional) Sometimes the USB Mod has to be deactivated:

<syntaxhighlight lang="bash"> sudo modprobe -r gspca_kinect sudo sh -c 'echo "blackli

   Clone OpenNI and checkout the a commit which works:

st gspca_kinect" > /etc/modprobe.d/blacklist- kinect.conf' </syntaxhighlight>

  1. For c++11 you have to adapt the following file:

<syntaxhighlight lang="bash"> sudo nano /usr/include/ni/XnPlatform.h

Change line 65 to (only add __):

  1. elif (__linux__ && (__i386__ || __x86_64__))

Change line 67 tp:

  1. elif (__linux__ && __arm__)

</syntaxhighlight>

Windows

Installing the necessary software on Windows:

  1. Download the OpenNI Binaries. They are still available at: http://fivedots.coe.psu.ac.th/~ad/kinect/installation.html and install them in <OpenNIInstallationDir> (e.g. C:\Programs\OpenNI)

  2. Dowload and install the Kinect drivers (SensorKinect) from https://github.com/avin2/SensorKinect (x64: https://github.com/downloads/avin2/SensorKinect/SensorKinect093-Bin-Win64-v5.1.2.1.msi )

  3. Set the CMake variables in MITK-build:
    • Activate MITK_USE_KINECT
    • MITK_KINECT_INCLUDE_DIR = <OpenNIInstallationDir>\Include
    • MITK_KINECT_LIB = <OpenNIInstallationDir>\Lib64
  1. Important Note: Visual Studio 2012 is now required for MITK and is officially not supported by OpenNI, but it turns out that at least everything related to MITK-ToF works fine. So you can just comment out the respective error message in XnPlattform.h:

//#error Xiron Platform Abstraction Layer - Win32 - Microsoft Visual Studio versions above 2010 (10.0) are not supported!