В Processing есть два вида библиотек: основные библиотеки, такие как OpenGL и Serial, которые уже включены в Processing и распространяемые библиотеки, создаваемые и поддерживаемые сообществом Processing.
Распространяемые библиотеки должны быть загружены и сохранены в папке libraries
В настоящее время, насколько мне известно, есть три доступные для Processing библиотеки, поддерживающие работу с сенсором Kinect. Две из них предназначены для конкретных операционных систем, одна работает под Mac Os X, Linux и Windows. Эти библиотеки также различаются реализованными в них функциями.
Библиотека | Автор | Основа | ОС | Сайт |
OpenKinect | Daniel Shiffman | OpenKinect/Libfreenect | Mac OS X | GitHub Сайт автора |
dLibs | Thomas Diewald | OpenKinect/Libfreenect | Windows | GitHub Сайт автора |
simple-openni | Max Rheiner | OpenNI/NITE | Mac OS X, Linux, Windows | Оф.сайт |
Simple-OpenNI
Simple-OpenNI является оберткой для Processing библиотек OpenNI и NITE, реализованной Максом Рейнером, художником и разработчиком программного обеспечения, читающим лекции в университете Цюриха.
NITE и OpenNI написаны на C++ и Рейнер написал обертки всех функций и методов для использования их в Java. Затем он написал библиотеку, позволяющую сделать Java-код доступным из Processing. В итоге, это позволяет иметь всю функциональность OpenNI и NITE в Processing.
Установка Simple-OpenNI на Mac OS X Maverics
zip-архив с последней, на текущей момент, версией Simple-OpenNi version 1.96 можно скачать отсюда. Как и для любых сервисов Google для авторизации требуется наличие почтового ящика на Gmail.
Скачиваем архив, распаковываем и помещаем его в папку с библиотеками Processing. Для того, чтобы узнать, где Processing ищет свою папку libraries, заходим в меню настроек Processing Processing → Preferences...
В открывшемся окне, в верхней части, в разделе Sketchbook location указан путь к рабочей папке. Вы можете изменить его, а можете работать в указанной папке.
Скаченную папку с требуемой библиотекой, в моем случае, необходимо перенести в ~/Documents/Processing/libraires.
Далее закрываем Processing и вновь запускаем его.
Заходим в меню Sketch → Import Library...
Мы должны увидеть установленную библиотеку SimpleOpenNI.
Вместе с библиотеками, как правило, идут примеры кода. Заходим в меню File → Examples. Ищем интересующую библиотеку и выбираем понравившийся пример.
Запускаем код на выполнение.
У меня версия 1.96 библиотеки Simple-OpenNI работать категорически отказалась. Экран с ошибкой выглядит следующим образом.
Какая-то проблема с оберткой Java для freenect. Я пробовал различные режимы (переключаются в верхнем правом углу IDE Processing): Java, PDE X, JavaScript, Python — все бестолку.
Параметры моей системы: Mac OS X 10.9.5, Processing 2.2.1, сенсор Kinect model 1414.
Проблема с запуском была решена лишь установкой библиотеки Simple-OpenNI версии 0.27. Если у вас таже проблема, делаем следующее.
- Скачать файл SimpleOpenNI-0.27.zip.
- Распаковываем его и перемещаем в папку с библиотеками Processing.
- Скачиваем программу-установщик требуемых модулей и распаковываем архив.
- Открываем Терминал, переходим в папку с распакованной программой и выполняем скрипт install.sh:
cd ./OpenNI_NITE_Installer-OSX sudo ./install.sh
OpenKinect
Эта библиотека работает только в Mac OS X. Примеры из этой библиотеки начали работать только после того, как я установил старую версию Simple-OpenNI, как описано выше. До этого возникала такая же ошибка.
Для установки заходим в меню Sketch → Import Library... → Add Library...
Находим в списке доступных библиотек OpenKinect и жмем Install
Проверяем работоспособность библиотеки
Попробуем как это работает. Включаем блок питания сенсора Kinect в розетку и подключаемся к порту USB компьютера. На переходнике загорается светодиод, сообщая, что питание подключено, а на лицевой панели Kinect начинает моргать зеленый светодиод, показывая соединение по USB.
Дочка любезно согласилась выступить в качестве экспериментатора.
Похоже, что работает. Облако точек получено c помощью сенсора Kinect. Технология структурированный свет в действии.
[add_ratings]