Отслеживание рук и пальцев с помощью плагина LeapMotion
Общаяч информация#
Плагин LeapMotion позволяет отслеживать руки и пальцы в вашем UNIGINE-приложении.
Система Leap Motion распознает и отслеживает руки и пальцы. Устройство работает в непосредственной близости с высокой точностью и отслеживает частоту кадров, а также сообщает о дискретных положениях и движении.
Контроллер Leap Motion использует оптические датчики и инфракрасный свет. Датчики направлены по оси Y - вверх, когда контроллер находится в стандартном рабочем положении - и имеют поле обзора около 150 градусов. Эффективный диапазон контроллера Leap Motion простирается примерно от 25 до 600 миллиметров над устройством.
Обнаружение и отслеживание работают лучше всего, когда контроллер имеет четкое и высококонтрастное изображение силуэта объекта. Программное обеспечение Leap Motion объединяет данные своих датчиков с внутренней моделью руки человека, чтобы помочь справиться со сложными условиями отслеживания.
Система координат#
В системе Leap Motion используется правосторонняя декартова система координат. Источник центрируется в верхней части контроллера Leap Motion. Оси X и Z лежат в горизонтальной плоскости, причем ось X проходит параллельно длинной кромке устройства. Ось Y вертикальна, с положительными значениями, увеличивающимися вверх (в отличие от ориентации вниз большинства систем координат компьютерной графики). По оси Z положительные значения увеличиваются по направлению к пользователю.
Кисти#
Модель кисти предоставляет информацию об идентичности, положении и других характеристиках обнаруженной руки, а также списках пальцев, связанных с этой рукой.
Руки представлены классом Hand.
Руки#
Рука - это похожий на кость объект, который определяет ориентацию, длину, ширину и конечные точки руки. Когда локоть не виден, контроллер Leap Motion оценивает его положение на основе прошлых наблюдений, а также типичных человеческих пропорций.
Руки представлены классом Arm.
Пальцы#
Контроллер Leap Motion предоставляет информацию о каждом пальце руки. Если весь палец или его часть не видны, характеристики пальца оцениваются на основе недавних наблюдений и анатомической модели руки. Пальцы идентифицируются по имени типа, например thumb, index, middle, ring, pinky.
Пальцы представлены классом Finger.
Кости#
Каждый палец имеет набор костей, описывающих положение и ориентацию соответствующих анатомических костей пальцев. Все пальцы содержат четыре кости, расположенные от основания до кончика.
Кости представлены классом Bone.
Кости идентифицируются как:
- Metacarpal - кость внутри кисти, соединяющая палец с запястьем (кроме большого пальца).
- Proximal Phalanx - кость у основания пальца, соединенная с ладонью.
- Intermediate Phalanx - средняя кость пальца между кончиком и основанием.
- Distal Phalanx - терминальная кость на конце пальца.
Изображения сенсора#
Наряду с вычисленными данными отслеживания вы можете получить необработанные изображения датчиков с камер Leap Motion.
Данные изображения содержат измеренные значения ИК-яркости и данные калибровки, необходимые для коррекции сложного искажения объектива. Вы можете использовать изображения сенсора для приложений дополненной реальности, особенно когда оборудование Leap Motion подключено к гарнитуре VR.
Смотрите также#
- Пример C ++, иллюстрирующий основные аспекты работы с плагином: source/samples/3rdparty/LeapMotionVisualizer
LeapMotion API:
- Подробнее об управлении LeapMotion через API см. В статье об интерфейсе LeapMotion.
- Статья класса LeapMotion Arm для более подробной информации об управлении оружием через API.
- Статья класса LeapMotion Bone для более подробной информации об управлении костями пальцев через API.
- Подробнее об управлении пальцами через API в статье класса LeapMotion Finger.
- Подробнее об управлении руками через API в статье класса LeapMotion Hand.
Реализация приложения Unigine с поддержкой LeapMotion#
Чтобы использовать плагин LeapMotion в приложении UNIGINE, выполните следующие действия:
- Загрузите Leap Motion SDK и установите драйверы устройств Leap Motion.
-
Создайте новый проект с поддержкой LeapMotion через UNIGINE SDK Browser: нажмите Plugins, отметьте опцию LeapMotion support (LeapMotion plugin) в открывшейся форме и нажмите OK.
Плагин LeapMotion на панели PluginsЧтобы добавить поддержку LeapMotion в существующий проект, в браузере UNIGINE SDK щелкните Other Actions -> Configure Project -> Plugins -> LeapMotion support (LeapMotion plugin) -> OK. - Реализуйте логику своего приложения.
- Запутите плагин LeapMotion при запуске приложения.
Запуск LeapMotion#
Чтобы запустить плагин, укажите опцию командной строки extern_plugin при запуске приложения следующим образом:
main_x64d -extern_plugin LeapMotion
Если вы запускаете приложение через UNIGINE SDK Browser, укажите параметры командной строки, указанные выше, в форме Customize Run Options.