Very few devices offer as fascinating features as the Microsoft Kinect. This seminar teaches you what the Kinect can do and how you can develop for it.
Attendants are recommended to bring a notebook with Visual C# 2010 express edition and the latest Kinect SDK so that they can fully profit from the talk. A sensor will be available for testing own applications.
11. History - II
• 2008: Wii ships
– Best-selling console of its generation
• 2009: E3 conference
– Announcement of „Project Natal“
• 2010: no CPU in sensor
– Takes 10% of XBox 360 CPU
12. History - III
• 4. November 2010
– First shipment
– “We will sue anyone who reverse engineers“
• June 2011
– Official SDK
32. On Push mode
• Kinect can push data to application
• Preferred mode of operation
• But: sensitive to proc time
• If handler takes too long -> App stops
48. What is it
• Result of Kinect hacking competition
• Bundled with most Linux distributions
• „Basic Kinect data parser“
49. Set-up
• /etc/udev/rules.d/66-kinect.rules
#Rules for Kinect
#############################################
#######SYSFS{idVendor}=="045e",
SYSFS{idProduct}=="02ae",
MODE="0660",GROUP="video"SYSFS{idVendor}=="045
e", SYSFS{idProduct}=="02ad",
MODE="0660",GROUP="video"SYSFS{idVendor}=="045
e", SYSFS{idProduct}=="02b0",
MODE="0660",GROUP="video"### END
#############################################
################
50. Set-up II
• sudo adduser $USER plugdev
• sudo usermod -a -G video tamhan
• tamhan@tamhan-X360:~$ freenect-glview
Kinect camera test
Number of devices found: 1
Could not claim interface on camera: -6
Could not open device
70. Format of data word
• Array of bytes
• Three bytes = one pixel
71. Format of data word - II
for(int x=2; x<640;x++)
{
for(int y=0;y<480;y++)
{
r=(myRGBBuffer[3*(x+y*640)+0]);
g=(myRGBBuffer[3*(x+y*640)+1]);
b=(myRGBBuffer[3*(x+y*640)+2]);
myVideoImage->setPixel(x,y,qRgb(r,g,b));
}
}