Horribly hacky first take at a Kinect Camera driver. Does RGB and Depth.
main.c implements a simple OpenGL visualization. Hopefully it should be mostly self-explanatory… You pretty much just open the USB device, call cams_init(dev, depthimg, rgbimg), and your depthimg and rgbimg callbacks get called as libusb processes events.
TODO:
-
TONS of cleanup. I mean LOTS.
-
Determine exactly what the inits do
-
Bayer to RGB conversion that doesn’t suck
-
Integrate support for the servo and accelerometer (which have already been reverse engineered)
BIG TODO: audio. The audio chip (the Marvell) requires firmware and more init and does a TON of stuff including the crypto authentication to prove that it is an original Kinect and not a clone. Who knows what this thing does to the incoming audio. This should be interesting to look at.
Libfreenect is Copyright © 2010 Hector Martin "marcan" <[email protected]>
This code is licensed to you under the terms of the GNU GPL, version 2 or version 3; see: http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt http://www.gnu.org/licenses/gpl-3.0.txt
Credits:
Adafruit, for providing the USB logs that I used to work out the initialization sequence and data format.
bushing, for trying to provide USB logs, although he got preempted by Adafruit ;)
A few other people who provided hints and encouragement along the way, you know who you are!
OpenKinect project
Copyright (c) 2010 Joshua Blake and other contributors
The folder INF contains Windows drivers. Plug in Kinect and during the driver installation browse to the proper folder. The drivers were generated via libusbdotnet tools and are distributed under their own licenses.
The rest of the project is distributed under the Apache 2 license.