Интеграция 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.