Pull to refresh

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

Reading time3 min
Views1.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 — дикий стёб Гугла, всё описанное в этой статье реально существует и работает, как описано. Ролик тоже настоящий.
Tags:
Hubs:
Total votes 99: ↑88 and ↓11+77
Comments35

Articles