This article describes how I got the XBox One Kinect RGBD sensor to work for the Robot Operating System (ROS). At the time of this article I was using Ubuntu 14.04 (Trusty Tahr) and running ROS Indigo on this system.
The first thing I did was to locate the driver source code which I found at: https://github.com/OpenKinect/libfreenect2
This is a cmake project. Hence the following commands clone the source and compile the code:
bash$ git clone https://github.com/OpenKinect/libfreenect2.git bash$ cd libfreenect2 bash$ mkdir build bash$ cd build bash$ cmake .. ... -- checking for module 'libusb-1.0>=1.0.20' -- package 'libusb-1.0>=1.0.20' not found CMake Error at /usr/share/cmake-2.8/Modules/FindPkgConfig.cmake:283 (message): A required package was not found ...
My initial attempt to build failed due to the fact that the libusb library I had on my system was too old. I found the required version of the library available as a Ubuntu PPA so I added the PPA to my repository list, updated the package list, and then installed the new library as shown below:
~/sudo alibfreenect2/build$ sudo apt-add-repository ppa:floe/libusb libusb-1.0.20 for Ubuntu 14.04 More info: https://launchpad.net/~floe/+archive/ubuntu/libusb Press [ENTER] to continue or ctrl-c to cancel adding it gpg: keyring `/tmp/tmp4et3_ixq/secring.gpg' created gpg: keyring `/tmp/tmp4et3_ixq/pubring.gpg' created gpg: requesting key D2817996 from hkp server keyserver.ubuntu.com gpg: /tmp/tmp4et3_ixq/trustdb.gpg: trustdb created gpg: key D2817996: public key "Launchpad libtisch" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1) OK ~/libfreenect2/build$ sudo apt-get update ... ~/libfreenect2/build$ sudo apt-get install libusb-1.0-dev ...
The second thing I did was to locate the ROS node that passes RGBD data from the Kinectv2 driver to the ROS topics typically associated with RGBD sensors. I found this code at: https://github.com/code-iai/iai_kinect2