Интеграция Dynamics АХ 2012 и Kinect на Tech•Ed 2011

На прошедшей конференции Tech•Ed 2011 мы продемонстрировали интеграцию Microsoft Dynamics AX 2012 c Kinect.  Идея позаимствована с международных конференций по Microsoft Dynamics. В данном случае мы справились своими местными силами – интеграцию выполнили Вадим Корепин и Сергей Мазуркин (данная статья подготовлена на основе предоставленной ими информации).

Опубликованный Майкрософтом SDK для Kinect позволил сосредоточиться на бизнес-задаче, не углубляясь в низкоуровневое программирование. А публичный проект Kinect Mouse Cursor позволил преобразовывать движения скелетной модели человека в движения курсора на экране. Поэтому, благодаря готовым библиотекам Microsoft, не нужно было делать ничего фундаментально сложного, достаточно было просто развернуть Kinect SDK и подключить управление мышью.

На Tech•Ed 2011 показали, как Kinect-технология работает в Dynamics AX 2012 на примере стандартной формы, которая управляет канбан-производством. Человек перетаскивал карточки производственных заданий в стиле футуристических фильмов.

При подготовке к Tech•Ed 2011 использовалась первая бета версия майкрософтовского SDK. Использовался публичный проект, который превращает движение правой руки в движение мыши (проект Kinect Mouse Cursor). За несколько дней до Tech•Ed 2011 вышла вторая бета версия SDK , в которой была улучшена поддержка 64 битных платформ, проведены улучшения в распознавании скелетной модели и т.п. Мы попробовали использовать новую библиотеку, но из-за проблем совместимости, оставили библиотеку первой версии.

Вот ряд выводов по ходу настройки.

1. Обычно все демонстрации проводятся на виртуальных машинах. Но USB-устройство Kinect не транслируется в вирутальную машину. Поэтому с виртуалкой не получилось.

2. Kinect требователен к ресурсам. Один процессор занимает полностью, а память почти полностью. Поэтому на двухпроцессорном ноутбуке с 4гб памяти с SQL и Dynamics AX работать было уже невозможно. Пришлось поставить на 4х процессорный 64битный «сервер» и 14Гб памяти.

3. Kinect – чувствительный сенсор. Мелкие движения руки превращались в мелкие движения мыши, которые сбивали обычное мышиное «Point-n-click». Были попытки реализовать «замедлялки мыши» но опять же из-за недостатка времени до конца не получилось.

4. Не успели разобраться, как изобразить double-click при помощи кинекта. Мелкие и быстрые движения должны сглаживаться и превращаться в одно. А слишком долгий интервал в double-click начинает превращать нормальные клики в двойные.

Ну и ряд выводов на будущее.

1. Можно пользоваться более продвинутыми проектами - была идея взять проект с жестами, обучить и передать их Dynamics AX. Нужно время.

2. Чтобы полноценно использовать Kinect в бизнес-приложениях, нужно адаптировать интерфейс. В текущем windows интерфейсе работать с Kinect предсказуемо неудобно:  – нужно замедление движений, нужно что-то делать с drag-n-drop (чрезвычайно легкое действие мышкой, но очень сложно выразимое движение телом), нужно что-то делать с double-click (которое легко выполнить кнопкой мыши и сложно выполнить руками). Кроме того, нужно отображать полупрозрачный силуэт человека на экране, чтобы можно было контролировать свои движения.

Как использовать Kinect с бизнес-приложениями? Наверное, возможен примерно следующий сценарий: склад, камера на стене, система распознает жесты кладовщиков и выполняет соответствующие операции. Что-то  подобное как раз и показывали наши корпоративные коллеги - разработчики. 

Общий вывод - реализуется все достаточно просто, что лишний раз наглядно демонстрирует мощные возможности технологий Microsoft.