Requirements for Kinect programming
Asked Answered
F

4

14

I wish to program with the Kinect ToF camera, however I am not certain of the hardware and software requirements to do so. I have come across a number of articles/books that cover this topic, but there seems to be some inconsistencies that have left me somewhat confused.

Questions

  1. What Kinect product do I need to buy to ensure that I have all the necessary components for using it for software development on a computer? (i.e. all cables included "in-the-box")

  2. What are the hardware requirements of the development system (cpu, ram, etc)?

  3. What are the drivers, development frameworks, and other software components for Kinect development? From these, what are needed, what are strongly recommended, and what are optional?

Please note that I do not want to be locked into developing within a Windows environment, although I would like the option to do so. I also have no intention of developing commercial applications at this time.

Funeral answered 4/3, 2012 at 21:58 Comment(4)
I am looking at developing software that utilises a Microsoft hardware product and I don't want to be locked into a Windows development environment.Funeral
"Yesterday's news": an open driver for Kinect has been developed.Funeral
The "magic" of open source: en.wikipedia.org/wiki/Kinect#Open_source_driversFuneral
Googling kinect open source driver revealed this as first result: openkinect.org/wiki/Main_Page That might be a good place to start.Bertha
C
18
  1. The Kinect sensor itself is all you need and by default it includes usb. You wouldn't need to buy a Xbox360 unless you want to play the Kinect Adventures :)
  2. I'm not entirely sure on hardware requirements, as it a bit on operating system and the library/driver/language you end up using, but it shouldn't be a major concern. I'm using mine on an older laptop (macbook from 2008 with 2GB of RAM,2.1 GHz processor and really bad integrated video card) with no problems.
  3. There quite a few choices, so I'll list them bellow

Drivers/libraries:

  1. As p.campbell mentioned, the Official Kinect SDK is one option. With that, you've got quite a lot of features avialable like skeleton tracking and speech recognition, but you're constrained to Windows and .NET.

  2. one other option is the opensource OpenKinect/libreenect driver which runs on osx/windows/linux and has wrappers for quite a few languages (like actionscript,c#,java,matlab,python,ruby,etc.), but bare in mind this gives access to the device(rgb/depth/ir data, accelerometer data,led/motor access), but doesn't include complex algorithms like skeleton tracking/speech recognition.

  3. another opensource option is OpenNI (that runs on linux/windows/osx) which allows you to access rgb/depth/ir data, but currently there's no implementation for motor/led/accelerometer/audio. Still, it includes skeleton tracking, hand tracking and also gesture recognition. You can use OpenNI with C/C++/Java/.net/Unity3D

If you are used to creative coding environments, there are wrappers for most of them also:

Depending on what OS/language and Kinect features you need to use, you should be able to make your choice.

Also note that if you can use OpenNI with other depth cameras like Asus Xtion.

Cordes answered 4/3, 2012 at 22:34 Comment(7)
I am surprised you didn't mention that the Kinect For Windows, best I can tell, will ONLY work with the Official Kinect SDK for right now. I believe it has different Firmware than the XBOX Kinect sensor that people have been using up til now.Akilahakili
@Akilahakili No I use Xbox Kinects with Kjnect for windowsDurward
I'm using the Kinect Block for Cinder and it compiles, but it won't recognize the kinect.Activism
@Activism What version of the Kinect are you using and on what operating system ? (Have you tested the Kinect with a different sample (outside of Cinder ?)Cordes
Using a kinect one on Yosemite. And I've tried lots of samples.Activism
I see. The issue is you're using Kinect One (which uses the V2 SDK, a totally different driver) than what the default Cinder Kinect block has. I've used Kinect One but on Windows only with the default microsoft SDK. On OSX you will need a separate driver that will work with this device. I recommend trying the Cinder-FreenectV2 block in Cinder or Theo's ofxKinectV2 OpenFrameworks addon. Let me know if that works. I can't test at the moment.Cordes
Thank you, I was scared that we need to hire a rocket scientist to develop some other hardwares to integrate. Reading you answer is so refreshing.Translation
M
3
  1. There are two kind of Kinect Sensor: the Kinect Sensor for XBox and the Kinect Sensor for Windows.If you alreay have Xbox and its accessory Kinect Sensor for XBox,you can use it .If you want to develop for commercial ,you should buy a Kinect Sensor for Windows.The Kienct Sensor for Windows have some amazing features such as Near Model while Kinect Sensor for XBox didn't have. And the Kinect Sensor for Windows are more compatible with the Official Kinect SDK.

  2. I develope Kinect application on Windows and the system minimum requirement are :

    • Windows 7, Windows 8, Windows Embedded Standard 7, or Windows Embedded POSReady 7.
    • 32 bit (x86) or 64 bit (x64) processor
    • Dual-core 2.66-GHz or faster processor
    • Dedicated USB 2.0 bus
    • 2 GB RAM

    I am not familiar with other platform,but i thinks the hardware requirements are more or less same.

  3. For drivers,as far as I know,there are two popular driver for Kinect sensor: Official Kinect SDK and Primesense OpenNI ,those two driver provide api that has their own characteristics,but there are some tips about which one should be best at some circumstances:

    • If you are want to develop Kinect application on Windows platform,I strongest suggest you use the newest Kinect SDKs for Windows 1.6.It has a plent of documentary and Demo int the DevelopToolKit ,and have Kinect Studio helps you to debug during application.The Channel9 website has a special block on Kinect development which has a lot of examples and ideas about Kinect development. Kinect SDKs for Windows 1.6 support the Windows 7/Windows 8 OS. The only drawback is that Kinect SDK only support Windows platform. But from the SDK 1.6,it supprot the windows runing on virtual machine such as Microsoft HyperV,VMWare and Parallels.

    • If you want to develop on other platform ,OpenNI maybe the best choice.

Mohamedmohammad answered 25/10, 2012 at 10:49 Comment(0)
A
3

According to my experiments on ARM based Linux environment, 720 MHz+ single core CPU is enough for just continuous polling the data and read its properties. At least 1.5 GHz CPU is needed for grabbing the depth data into RAM and process it basically. I am using dual core OMAP-4 Core(1.2 GHz each). Actually, this process power is enough for me to grab depth + image data, downsample/compress them (with loss) and send them via TCP/UDP.

There is various libraries for Kinect. MS SDK and OpenNI are the most common ones. If you will use Linux environment, I would suggest OpenNI.

I've prepared a guide for this installation. You can check at http://denizbeker.blogspot.com/2013/08/pandaboard-es-openni-kinect-ubuntu.html

Alpenglow answered 22/9, 2013 at 20:47 Comment(2)
Answers that link to other websites without summarizing the content are discouraged on Stack Overflow, because there is no assurance that the website will remain online in the future. Can you edit your post to summarize the content?Creativity
Actually I've already summarized the content. The external link that I've given is for the detailed instructions.Alpenglow
U
1
  1. Kinect comes with all of the cables needed, you only need to buy the power supply if you already had a kinect without a power supply
  2. If your going for the kinect sdk microsoft has all the requirements on their website
    3.Its really your choice, if you search kinect programs or something to that effect it will come up with lots. you just have to choose which one suits you the best

Hope This Helps

Uncourtly answered 4/3, 2012 at 21:59 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.