Kinect. Нужно с чего-то начать...
Kinect или Prime Sensor - что это такое и как его использовать? Этот вопрос уместен, если вы не видели многочисленных видео-роликов в интернете с использованием этих устройств.. Поэтому, неверное, стоит начать с просмотра или с поиска информации о kinect, если для вас эти слова не знакомы... Хотя можно ничего не искать и не смотреть, а прочитать моё супер информативное определение этого девайса: Kinect — это круть...
Теперь, когда мы знаем уже всё о том, что такое кинект, предлагаю начать понемногу разбираться в нём. Чтобы прикрутить его к openwrt, конечно, понадобится некоторое время. Время, чтобы разобраться в софте.
Предлагаю для начала запустить kinect под linux (в моём случае Ubuntu) на персональном компьютере, а потом, возможно, и доберемся до адаптации kinect для openwrt.
Начнём...
Скачиваем драйвера, обеспечивающие аппаратную поддержку камеры и сенсоров kinect. Насколько я понимаю, существует два варианта драйверов: это проект OpenNi и libfreenect. Предлагаю попробовать собрать проект OpenNi.
Скачиваем:
git clone https://github.com/OpenNI/OpenNI.git |
Есть два способа сборки этого проекта. Первый - это запустить скрипт: OpenNI/Platform/Linux-x86/CreateRedist/RedistMaker. Второй - более привычный для нас - это запустить make. Предлагаю пойти вторым путем.
Заходим в директорию OpenNI/Platform/Linux-x86/Build и запускаем make. Должны увидеть примерно следующее:
|
Если сборка завершилась успешно, то выполняем:
OpenNI/Platform/Linux-x86/Build$ sudo make install |
Если видим вот такую ошибку:
Kinect/OpenNI/Platform/Linux/Build cd ../Redist; ./install.sh; cd - /bin/sh: ./install.sh: not found |
То заходим в директрию:
/Kinect/OpenNI/Platform/Linux/Redist/OpenNI-Bin-Dev-Linux-x86-v1.5.2.23$ |
И запускаем скрипт - install.sh
Драйвера проекта OpenNi, видимо, поддерживают только PrimeSensor. Для поддержки Kinect существует «fork from PrimeSense to support the Kinect» с именем boilerbots https://github.com/boilerbots.
Скачиваем boilerbots:
git clone https://github.com/boilerbots/Sensor.git |
Переходим в ветку kinect, собираем и устанавливаем:
Sensor$ git checkout kinect Branch kinect set up to track remote branch kinect from origin. Switched to a new branch 'kinect' Sensor/Platform/Linux-x86/Build$ make Sensor/Platform/Linux-x86/Build$ sudo make install |
Далее скачиваем последнюю версию OpenNi Middleware Binaries вот
Также на этой странице нужно обратить внимание на free key:
0KOIk2JeIBYClPWVnMoRKn5cdY4=
Разархивируем и заходим в директорию Nite/Data. Там располагаются 3 файла с расширением xml. В них нужно вставить вместо строчки «insert key here» вот тот free key. Примерно выглядеть должно вот так:
<OpenNI> <Licenses> <License vendor="PrimeSense" key="0KOIk2JeIBYClPWVnMoRKn5cdY4="/> </Licenses>
Далее выполняем скрипт install.sh и вводим еще раз ключ при запросе:
|
Подключаем kinect и посмотрим на вывод dmesg:
usb 1-3: new high speed USB device using ehci_hcd and address 5 hub 1-3:1.0: USB hub found hub 1-3:1.0: 3 ports detected usb 1-3.2: new full speed USB device using ehci_hcd and address 6 usb 1-3.1: new high speed USB device using ehci_hcd and address 7 usb 1-3.3: new high speed USB device using ehci_hcd and address 8 |
Теперь можно перейти в директорию OpenNI/Platform/Linux-x86/Bin/Release или в директорию Nite/Samples/Bin/Release и запускать рабочие примеры.
Пример работы программы /Nite/Samples/Bin/Release$ Sample-Players
С проектом OpenNi закончили. Не то, чтобы мы теперь всё понимаем, но, по крайне мере, получили рабочие примеры и исходные коды к ним. Поэтому дальше будет проще...
Чтобы понять, чем проект OpenNi отличается от проекта «OpenKinect project- libfreenect», предлагаю собрать и libfreenect.
Страница проекта libfreenect: http://openkinect.org/wiki/Main_Page
Страница с описанием процесса сборки:
http://openkinect.org/wiki/Getting_Started
Скачиваем исходные коды:
git clone https://github.com/OpenKinect/libfreenect.git |
Создаём директорию build, переходим в неё и запускаем ccmake:
$ cd libfreenect $ mkdir build $ cd build $ ccmake .. |
Откроется окно редактора. Нажимаем «с» для конфигурации. Произойдет поиск установленных библиотек. Нужно обратить внимание на то, чтобы поля выглядели примерно так:
|
Нажимаем «g» для генерации файла и выхода.
Выполняем сборку:
$ cmake .. $ make $ sudo make install |
Рабочие примеры располагаются здесь kinect/libfreenect/build/bin.
Подведем некий итог... Думаю, что с «первым маааленьким шажком по освоению kinect» мы успешно справились. Дальше будет одновременно и легче и труднее ))... В целом, возможности kinect очень впечатляют, теперь бы выделить свободное время и попытаться уже подцепить его к какой-нибудь железке... к нашему любимому роутеру с openwrt)))
Купить кинект у нас: