Как стать автором
Поиск
Написать публикацию
Обновить

Делаем свой Gmail Motion

Время на прочтение3 мин
Количество просмотров1.5K
Несколько дней назад, не помню точной даты, компания Google представила свой новый инструмент для работы с электронной почтой — Gmail Motion. Об этом даже писали на Хабре. Решив воспользоваться этой прекрасной фичей, я, к своему огромному сожалению, не нашел возможности включить её в своей учетной записи Gmail. Наверное, я не вошел в группу бета-тестеров. Это, конечно, расстраивает. Но не нас! Ниже я расскажу, как за бутылку один час я сделал свой Gmail Motion. Сразу видео с результатом, под катом — технические детали.



Инструкция по сборке



1. Берем Microsoft Kinect.


Ставим на ровную поверхность, включаем в розетку и USB-порт.

2. Берем какую-нибудь библиотеку распознавания жестов для Kinect.

Я воспользовался FAAST, как неплохо работающей и умеющей отсылать другим приложениям разные сообщения, что даёт нам отсутствие необходимости что-либо программировать. (Но вообще таких библиотек уже десятки и я не берусь сказать, какая из них лучшая). Как устанавливать FAAST (и нужные для неё библиотеки), детально расписано тут.

3. Находим список горячих клавиш для Gmail.

Вот он. Включаем в настройках Gmail поддержку горячих клавиш.

4. Делаем конфиг-файл для FAAST.

Я ограничился показанными в демонстрационном ролике командами «Открыть письмо», «Ответить», «Ответить всем» и «Отослать». Кроме того, мне пришлось реализовать команду «Открыть папку „Входящие“, поскольку я не понимаю, как без этой команды можно полноценно продемонстрировать работу остальных без необходимости использования клавиатуры или мышки. В видеоролике не был показан жест для этой команды, но полная спецификация стандарта его включает — это наклон тела влево. Кроме того, я заменил команду „Ответить всем“ с указанного в ролике взмаха назад обеими руками на взмах назад левой рукой. Причин на то две:
  • Я считаю, что специалисты Google недостаточно поработали над эргономикой стандарта. „Ответить всем“ — достаточно частая задача и нечего на неё вешать действие двумя руками, если его вполне можно сделать одной левой (в обоих смыслах этой фразы). И это не говоря уже об ущемлении прав одноруких.
  • В штатном варианте библиотека FAAST не позволяет поймать комплексное действие несколькими руками. Можно, конечно, взять другую библиотеку или дописать промежуточный слой интерпретирования жестов для FAAST, но хотелось поскорее получить хоть что-то работающее.


Конфиг-файл:

#открытие папки входящие - наклон влево
lean_left 20 key_press u

#открытие письма
right_arm_out 7 key_press o

#ответить
right_arm_up 8 key_press r

#ответить всем
left_arm_up 7 key_press a

#отослать
right_foot_up 9 key_press tab
right_foot_up 10 key_press enter


5. Запускаем FAAST, открываем конфиг, запускаем эмулятор.

Вуаля! Все работает. Слева на видео открыт Gmail, справа вверху распознанный FAAST-ом скелет, ниже картинка с камеры и еще ниже нажимаемые клавиши, которые передаются в окно браузера. Можно при желании дописать поддержку и других действий.

Выводы



С использованием Kinect возможно реализовать многие (если не все) предложенные Google реакции интерфейса Gmail на жесты человека. Конечно, если подойти к делу серьёзно, то придется таки влезть в программирование, решить проблему ложных срабатываний, возможно, сменить библиотеку распознавания жестов и дописать понимание комплексных действий несколькими частями тела синхронно. Но теперь я уверен — это возможно. Конечно, нельзя умалять достижений Google — ведь их функционал работает на обычных камерах, а не на Kinect. А эксперимент был поставлен исключительно в ненаучных целях.

P.S. Несмотря на то, что Gmail Motion — дикий стёб Гугла, всё описанное в этой статье реально существует и работает, как описано. Ролик тоже настоящий.
Теги:
Хабы:
Всего голосов 98: ↑87 и ↓11+76
Комментарии35

Публикации

Ближайшие события