ECE497 Notes on Kinect

Microsoft's Kinect sensor has created great interest in the Beagle Community.

Here are notes on installing the third party drivers from Omek.

Downloading
I got the 4 files from here. Here's the files I have

host$ ls -sh total 65M 4.0K beagle-omek 54M beckon-image-2.4.16175.tar.gz 4.0K Beckon-SDK-2.4.16236 11M beckon-sdk-2.4.16236.tar.gz 4.0K create_sd.txt 4.0K mkcard.sh 1.1M omek beckon sdk, ti dm3730 edition -- developer guide.pdf 4.0K readme 4.0K UsersGuide

Installing
I'm getting this error.

host$ sudo bash mkcard.sh /dev/mmcblk0 beagle-omek/ Using image beagle-omek/ using device /dev/mmcblk0 . You are about to totaly erase the device, are you sure (yes/no) ?yes 1024+0 records in 1024+0 records out 1048576 bytes (1.0 MB) copied, 0.382056 s, 2.7 MB/s Disk /dev/mmcblk0 doesn't contain a valid partition table DISK SIZE - 8010072064 bytes CYLINDERS - 973 Checking that no-one is using this disk right now ... OK

Disk /dev/mmcblk0: 973 cylinders, 255 heads, 63 sectors/track

sfdisk: ERROR: sector 0 does not have an msdos signature /dev/mmcblk0: unrecognized partition table type Old situation: No partitions found New situation: Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start    End   #cyls    #blocks   Id  System /dev/mmcblk0p1  *      0+      8       9-     72261    c  W95 FAT32 (LBA) /dev/mmcblk0p2         9     972     964    7743330   83  Linux /dev/mmcblk0p3         0       -       0          0    0  Empty /dev/mmcblk0p4         0       -       0          0    0  Empty Successfully wrote the new partition table

Re-reading the partition table ...

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1) to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (See fdisk(8).) done partitioning. Cant find boot partition /dev/mmcblk01 Cant find rootfs partition in /dev/mmcblk02 mount: special device /dev/mmcblk01 does not exist Failed to mount /dev/mmcblk01.

The problem is it's looking for /dev/mmcblk01 and on my Ubuntu 10.4 it appears at /dev/mmcblk0p1.

I modified mkcard.sh to add the p and after a little fussing it worked!

Running
It booted up and runs fine. There is no X windows, rather the one demo uses QT embedded. QT embedded writes straight to the framebuffer and doesn't need X.

Porting
I'm now in the process of seeing if I can copy the demos over to an SD card that I've been doing other development on. My SD isn't set up for QT embedded, so I'm trying:

beagle$ opkg update beagle$ opgk install qt4-embedded-tools # 5   minutes beagle$ opgk install qt4-embedded-static # 2.5 minutes beagle$ opgk install qt4-embedded-fonts # 2.5 minutes

These times running on a rather slow network at home. I don't know if the 'static' needs to be installed.

Next I went to the SD that was working with the Kinect and copied /usr/lib/libOpenNI.* to /usr/lib on the target SD card. I now get the following error.

beagle$ ./QtTracking -qws Error creating sensor. Failed to initialize tracking !

I'm guess I don't have the DSP stuff setup right.