УДК 004.5, 004.946
МЕТОДЫ ЖЕСТОВОГО УПРАВЛЕНИЯ ТРЕХМЕРНЫМИ ОБЪЕКТАМИ И ПАРАМЕТРАМИ ВИРТУАЛЬНОЙ СРЕДЫ С ПОМОЩЬЮ KINECT1
А. В. Мальцев, М. В. Михайлюк, П. Ю. Тимохин
GESTURE CONTROL METHODS FOR THREE-DIMENSIONAL OBJECTS AND VIRTUAL ENVIRONMENT SETTINGS USING KINECT
A. V. Maltsev, M. V. Mikhaylyuk, P. Yu. Timokhin
Аннотация. Актуальность и цели. В настоящее время большое внимание уделяется разработкам новых типов интерфейсов управления роботехническими средствами. Привычные интерфейсы (джойстики, пульты управления, экзоскелеты и т.д.) имеют ряд недостатков, которые хотелось бы устранить в новых эргономичных интерфейсах. Цель данного исследования - разработка методов жестового управления трехмерными объектами и параметрами окружающей обстановки в системах виртуального окружения. В качестве примера объекта управления выбран мобильный робот, а в качестве параметров окружающей среды - интенсивность дождя и снега. Материалы и методы. Реализация задач была достигнута за счет использования устройства Kinect, которое позволяет в масштабе реального времени получать координаты суставов оператора, находящегося в рабочей зоне. На основе этих данных определяются позы и жесты оператора, которые затем используются для управления движением мобильного робота, его манипулятора и изменения параметров внешней среды в виртуальной сцене. Результаты. В работе подробно описаны методы кодирования и определения управляющих поз и жестов оператора, а также предлагается конкретный набор поз и жестов рук оператора для управления движением виртуальной моделью гусеничного мобильного робота и его манипулятора, а также интенсивностью дождя и снега в виртуальной сцене. Выводы. Предлагаемые методы реализации жестового интерфейса могут быть использованы для разработки новых типов эргономичного интерфейса управления объектами в условиях, когда привычные средства управления применять затруднительно.
Ключевые слова: виртуальная среда, распознавание жестов, поза, интерфейс управления, мобильный робот.
Abstract. Background. Today much attention is paid to the development of new types of robotic control interfaces. Regular interfaces (joysticks, control panels, exoskele-tons, etc.) have a number of drawbacks, which we would like to overcome in new ergonom-ic interfaces. The goal of this research - the development of methods of gesture control of 3D objects and environment setting in virtual environment systems. As the example, a mobile robot was selected as control object, and rain and snow intensities - as environment settings. Materials and methods. The solution was implemented by means of Kinect device which allows obtaining joints' coordinates in real time for the operator being in work area. On the basis of these data operator's poses and gestures are defined and then used for movement control of mobile robot, its manipulator and environment settings in the virtual scene. Results. The paper described in detail encoding methods and definitions for control
1 Исследования выполнены при поддержке РФФИ, грант № 15-07-04544.
147
poses and gestures of the operator, as well as offers a specific set of poses and gestures for operator's hands to control the movement of a virtual model of tracked mobile robot and its manipulator, as well as rain and snow intensities in the virtual scene. Conclusions. Proposed methods of gesture interface implementation can be used to develop new types of er-gonomic object control interfaces, when regular control tools are hardly to use.
Key words: virtual environment, gesture recognition, pose, control interface, mobile
robot.
Введение
В настоящее время проблема эргономичного (удобного и естественного) интерфейса между оператором и управляемым им роботом является достаточно актуальной. Использование стандартных устройств (клавиатуры, мыши, джойстика) не является подходящим для таких задач. Пульты управления могут быть использованы для роботов с небольшим числом степеней свободы, тогда оператор двумя руками может одновременно воздействовать на два элемента управления. Однако при росте степеней свободы такое управление приводит к необходимости попеременно управлять отдельными шарнирами, что крайне неэргономично. Удобным интерфейсом можно считать так называемый копирующий режим, при котором управление осуществляется оператором с помощью экзоскелета, однако это применимо только для антропоморфных роботов. Управление с помощью голоса [1] реализует командный режим и освобождает руки оператора, что очень удобно во многих случаях, однако имеет и свои ограничения, заключающиеся в слабой контролируемости оператором процесса выполнения запущенной команды.
В данной работе для управления мобильным колесным или гусеничным роботом предлагается использовать жестовый интерфейс. В реальности люди манипулируют объектами с помощью пальцев и рук, поэтому целесообразно поставить задачу разработать интуитивный и естественный интерфейс путем имитации того, что делает человек в реальном пространстве.
Работы в этом направлении ведутся многими исследователями. Так, в работе [2] рассматривается управление манипулятором с помощью движения кисти руки и пальцев. Координаты ладони и кончиков пальцев вычисляются на основе изображений, полученных с помощью камеры. Позиция руки используется для перемещения манипулятора, позиции кончиков пальцев - для управления пальцами манипулятора. Апробация технологии проводилась на виртуальной модели. В работе [3] с использованием Kinect также отслеживается положение кисти и пальцев руки. Полученные данные ассоциируются с различными командами работы с приложениями (открыть, закрыть и т.д.). В некоторых исследованиях основой жеста предлагается рассматривать траекторию ладони оператора. Так, в [4] изображение руки выделяется из карты глубины по некоторому порогу (так как считается, что рука всегда вытянута перед телом). Затем вычисляется 2Б-траектория проекций положения руки, которая интерпретируется как скрытая Марковская модель.
В настоящей работе для распознавания жеста базовым также является использование устройства Microsoft Kinect, которое позволяет в масштабе реального времени на основе карты глубины вычислить трехмерные координаты суставов (плеч, локтей, запястий и т.д.) оператора. По ним определяются углы между соответствующими костями оператора [5]. Вектор этих углов об-
разует позу, а вектор поз - жест оператора. Далее подробно рассмотрим реализацию предлагаемого жестового интерфейса управления.
Кодирование управляющих жестов рук оператора
Рассматривая жестовое управление трехмерными объектами и параметрами виртуальной среды, мы будем предполагать, что это управление производится оператором только с помощью рук. Однако предлагаемые методы и алгоритмы применимы также к случаям управления с использованием нижних конечностей или всего тела в целом.
Любой жест руки оператора можно представить в виде некоторой конечной последовательности ее поз - положений в заданные моменты времени. Поэтому, прежде чем описывать жесты, рассмотрим подход к цифровому кодированию позы руки. Определим позу как совокупность значений углов в суставах руки и состояния ее ладони. В данной работе используются углы ф и ^ в плечевом суставе, а также 0 , у - в локтевом (рис. 1). Пусть в представленном на рисунке положении (плечо и предплечье перпендикулярны друг другу, плечо прижато к туловищу и параллельно ему, предплечье направлено вперед) все указанные углы равны 0. Положительным поворотом (угол > 0) будем считать поворот звена (плеча или предплечья) руки против часовой стрелки, если смотреть с конца направляющего вектора 2 оси, вокруг которой осуществляется этот поворот (см. рис. 1). Состояние 5 примем равным 1, если ладонь сжата в кулак, и 0 - в противном случае.
Текущие значения углов ф, ^, 0, у руки оператора, а также состояние ее ладони S можно определить с помощью устройства Microsoft Kinect. Представим, как показано на рис. 2, плечевой и локтевой суставы в виде системы иерархически связанных осевых шарниров. Используя Kinect API [6], получим координаты опорных точек скелета оператора, находящегося в рабочей области устройства. Для нахождения искомых углов на основе этих координат можно воспользоваться методами и алгоритмами, подробно изложенными в работе [2].
Плечевой сустав
Локтевой сустав
Рис. 1. Задание позы руки с помощью углов в ее сочленениях
мк
У
е
Рис. 2. Представление суставов в виде иерархии шарниров
Хранение позы руки в виде набора углов и состояния ладони является затратным с точки зрения занимаемого объема памяти и неудобным при сравнении нескольких поз. Для более эффективного решения этих задач мы предлагаем кодировать каждую позу в виде одного 32-битного беззнакового целого числа 1р - идентификатора позы, содержащего данные об углах ф, у,
0 , у и состоянии 5. При этом непрерывный диапазон [-180°, 180°], охватывающий значения данных углов, делится на открытые справа полуинтервалы одинаковой длины с1а (выбирается в зависимости от решаемой задачи, в среднем составляет порядка 20°), последовательно нумеруемые от 0 до п = (360/а?а) - 1. Все углы, входящие в один полуинтервал, будем считать идентичными значению его середины. Тогда для любого угла х е [-180°, 180°) можно вычислить идентификатор 1(х) - номер полуинтервала, в котором расположен данный угол:
где квадратные скобки обозначают целую часть числа. В связи с анатомией человеческой руки значение 180° не достигается ни одним из углов ф, у, 0 , у, поэтому его можно не рассматривать. Записанные в фиксированной последовательности состояние ладони (один бит: 1 - сжата в кулак, 0 - разжата) и идентификаторы 1( ф), 1( у), 1( 0), 1( у) углов руки, представленные каждый 7 битами, составляют идентификатор 1р позы руки. Вычисление значения такого идентификатора будем производить по формуле
где << обозначает операцию побитового сдвига влево.
Заметим, что при решении некоторых задач можно определить такие позы, для которых значения одного или нескольких углов будут неважны. Тогда во все разряды 1р, хранящие идентификаторы этих углов, будем записывать 1. Это можно сделать, выполнив операцию «побитовое ИЛИ» между 1р и целочисленной беззнаковой маской Мр, имеющей структуру, эквивалентную 1р, причем каждый ее значащий разряд будет содержать 0, а незначащий - 1.
(1)
1р (, ф, у, 0, у) = (5 << 28) + (I(ф) << 21) + + (1(у) << 14) + (1 (0) << 7) +1(у),
(2)
Для проведения корректного сравнения поз маску Мр необходимо хранить вместе с соответствующим ей идентификатором позы.
Само сравнение текущей позы 1р, сиг руки оператора, определяемой с помощью Юпес(, с одной из заранее заданных поз 1р, имеющей маску Мр, будем производить путем проверки равенства
1р = 1р,сиг\Мр , (3)
где знак «\» обозначает операцию «побитовое ИЛИ». При соблюдении данного равенства позы 1Р сиг и 1р являются идентичными.
Жест руки можно задать в виде N последовательно пройденных рукой поз, где N > 1. Для простоты в данной работе ограничимся тремя позами N = 3). Идентификаторы 1Р поз, входящих во все выбранные управляющие жесты, вместе с соответствующими им масками Мр занесем в таблицу Т поз, исключая повторение (рис. 3). Тогда любой из этих пар (1Р, Мр) будет соответствовать уникальный номер Тр е [0, mN - 1] строки в таблице Т, где т -общее количество заданных управляющих жестов.
Каждый управляющий жест представим в виде беззнакового целочисленного идентификатора I содержащего в заданном порядке номера Тр1 строк из таблицы Т, которые соответствуют входящим в этот жест позам, где 1 е [0, 2] - очередность позы в жесте. В рассматриваемом случае представляет собой 32-битное целое число, в котором под значение каждого Тр1 отводится 10 бит (рис. 3). Рассчитать его можно по формуле
!8 = Е(Тр,1 << 101). (4)
Таблица поз (Т)
Тр I» МР
1) 0х1ЕЕ13Е8В ОхОЕЕОЗЕВО
1 0х1ЕЕЕЕЕЕЕ ОхОЕЕЕЕЕЕЕ
... ...
23 0хЮ827Е8О ОхООООЗРбО
00 0000000001 0000010111 0000000000
Рис. 3. Кодирование жеста с помощью целочисленного идентификатора
При решении задачи управления какими-либо объектами или параметрами виртуальной среды необходимо заранее определить набор управляющих жестов и соответствующих им операций, а также вычислить для каждого
жеста его идентификатор описанным выше способом. Совокупность всех пар (!я, операция) образует базу управляющих жестов для данной задачи.
Определение жестов пользователя
Рассмотрим алгоритм идентификации жеста пользователя, находящегося в рабочей области устройства Ктесг. Пусть максимальное время, отведенное на совершение одного жеста, равно гтах. Опрашивая устройство с помощью Юпес( АР1 с частотой / = 30 Гц, будем получать координаты опорных точек скелета оператора. Используя подход, детально описанный в работе [2], вычислим на основе полученных данных значения углов ф, у, 0 , у интересующей нас руки (или обеих рук). Далее по формуле (2) определим идентификатор 1рЛ позы руки в текущий момент времени г. Если 1р, г не совпадает с идентификатором 1р, г _ Д1 позы той же руки в момент г - Дг (где Дг = 1//) предыдущего опроса устройства, значит, рука движется и необходимо начать отслеживание производимого ею жеста. Время начала жеста при этом равно 1, первая поза жеста определяется как 1р 0 = 1р, г _ Дг, вторая - 1рЛ = 1р,. Далее, продолжая опрашивать устройство Ктесг, каждый раз проверяем равенство текущей позы 1Р г и предыдущей позы 1Р При условии 1 - г^,0 > гтах считаем, что жест не состоялся. Тогда начинаем процесс сначала.
Если 1 - < гтах и 1Р { Ф1Р {_ Дь то мы достигли финальной третьей позы жеста и 1р,2 = 1р1. В данном случае, имея три идентификатора 1р 0, !р,ь 1р,2, проводим поиск соответствующих им поз в таблице Т. Для этого, пробегая таблицу сверху вниз, выполняем сравнение идентификаторов с использованием формулы (3). При нахождении в Т всех поз выявленного жеста формируем на основе соответствующих им номеров Тр,, 32-битный идентификатор жеста, используя формулу (4). Если какой-либо из поз нет в таблице Т, то устанавливаем все биты ее Тр, ^ в 1. Если сформированный идентификатор присутствует в подготовленной заранее базе В управляющих жестов, выполним приписанное к данному жесту действие. Таким образом, имеем следующий алгоритм определения управляющего жеста руки пользователя:
1) опрос устройства Ктесг и получение опорных точек скелета пользователя;
2) вычисление углов ф, у, 0 , у в суставах руки;
3) расчет идентификатора 1р,г позы руки в текущий момент времени г по формуле (2);
4) если 1Р { = 1Р {_ Дь возврат к шагу 1; иначе сохраняем время начала жеста = 1 и две первые позы этого жеста 1р, 0 = 1р, г _ Дг и !р,1 = 1р, г;
5) выполнение пунктов 1-3 до тех пор, пока 1Р,г=!р,1 или г - < 1тах;
6) если 1р, г Ф !р,ь то сохраняем третью позу жеста 1Р,2 = 1р1 ; иначе переходим к шагу 1;
7) поиск Тр,I для каждого сохраненного 1р,i (/ е [0, 2]) по таблице Т с применением формулы (3); при отсутствии 1р,I в Т записываем 1 во все разряды Тр, i ;
8) формирование идентификатора жеста по формуле (4);
9) если входит в базу управляющих жестов, то происходит выполнение приписанной к жесту операции.
Управление мобильным роботом и параметрами виртуальной среды
В качестве примера в данной работе рассматривается жестовое управление виртуальной моделью мобильного робота МБ-4 с манипулятором на борту (рис. 4), а также изменение параметров моделируемых в виртуальной среде атмосферных осадков (снег и дождь).
Рис. 4. Виртуальная модель робота МБ-4 с манипулятором
Для решения этих задач с применением Ктес1 предлагается использовать сочетания жестов и поз обеих рук оператора. При этом левая рука отвечает:
- за включение или выключение реакции интерфейса на жесты и позы оператора;
- переключение между режимами управления роботом, манипулятором и параметрами погодных условий;
- выбор шарнира манипулятора, в котором будет осуществляться поворот, или вида атмосферных осадков, которым предполагается управлять.
Правая рука задает направление движений и поворотов модели робота и манипулятора, а также регулирует интенсивность осадков.
Чтобы реализовать указанные выше режимы управления, введем четыре универсальных жеста руки, начинающихся от позы 1р (0, 0°, 0°, 0°, 0°):
- ир - сгибание руки в локте до у = -50°;
- сЬкП - разгибание руки в локте до у = 50°;
- 1%, ¡Ф - поворот руки в локте налево до 0 = 50°;
- п8ы - поворот руки в локте направо до 0 = -50°.
Все позы, входящие в эти жесты, отражены в табл. 1. Идентификаторы поз вычисляются по формулам (1), (2) с учетом da = 20°.
Таблица 1
Позы управляющих жестов
T Поза Ip Маска Mp
0 Ip(0, 0°, 0°, 0°, 0°) 0x00000000
1 Ip(0, 0°, 0°, 0°, -25°) 0x00000000
2 ¡„(0, 0°, 0°, 0°, -50°) 0x00000000
3 Ip(0, 0°, 0°, 0°, 25°) 0x00000000
4 Ip(0, 0°, 0°, 0°, 50°) 0x00000000
5 I„(0, 0°, 0°, -25°, 0°) 0x00000000
6 I„(0, 0°, 0°, -50°, 0°) 0x00000000
7 I„(0, 0°, 0°, 25°, 0°) 0x00000000
8 I„(0, 0°, 0°, 50°, 0°) 0x00000000
Значения идентификаторов ир, ¡¡0„п, 1ф, „^ получим, подставляя номера Тр строк таблицы, соответствующие одному жесту, в формулу (4).
В табл. 2 сведены набор управляемых операций, выполняемых роботом ЫБ-4 и его манипулятором, параметры моделируемых в виртуальной среде осадков и соответствующие им управляющие позы и жесты рук оператора.
Таблица 2
Операции и соответствующие им управляющие жесты и позы
Операция Поза/жест левой руки Поза/жест правой руки
1 2 3
Режимы интерфейса
Включение/выключение интерфейса I„(1, 0°, -90°, 0°, 0°) -
Управление роботом ЫБ-4 Ig, up -
Управление манипулятором Ig, down -
Управление параметрами осадков Ig, left -
Управление роботом МЕ-4
Движение вперед - Ie, up
Движение назад - Ig, down
Поворот налево - Ig, left
Поворот направо - Ig, right
Остановка - I„(1, 0°, 0°, 0°, 0°)
Управление манипулятором
Поворот в базовом шарнире налево I„(1, 0°, 0°, 0°, 30°) Ig, left
Поворот в базовом шарнире направо I„(1, 0°, 0°, 0°, 30°) Ig, right
Наклон в базовом шарнире вперед I„(1, 0°, 0°, 0°, 30°) Ie, up
Наклон в базовом шарнире назад I„(1, 0°, 0°, 0°, 30°) Ig, down
Поворот в центральном шарнире вверх I„(1, 0°, 0°, 0°, 0°) Ig, up
Поворот в центральном шарнире вниз I„(1, 0°, 0°, 0°, 0°) Ig, down
Поворот в концевом шарнире вверх I„(1, 0°, 0°, 0°, -30°) Ig, up
Поворот в концевом шарнире вниз I„(1, 0°, 0°, 0°, -30°) Ig, down
Вращение в концевом шарнире влево I„(1, 0°, 0°, 0°, -30°) 4, left
Вращение в концевом шарнире вправо I„(1, 0°, 0°, 0°, -30°) Ig, right
Сжатие схвата I„(1, 0°, 0°, 0°, -60°) ^ up
Окончание табл. 2
1 2 3
Разжатие схвата Ip(1, 0°, 0°, 0°, -60°) Ig, down
Остановка - Ip(1, 0°, 0°, 0°, 0°)
Управление параметрами осадков
Усиление дождя Ip(0, 0°, 0°, 0°, 0°) Ig, up
Ослабление дождя Ip(0, 0°, 0°, 0°, 0°) Ig, down
Прекращение дождя Ip(0, 0°, 0°, 0°, 0°) Ip(1, 0°, 0°, 0°, 0°)
Усиление снега Ip(1, 0°, 0°, 0°, 0°) Ig, up
Ослабление снега Ip(1, 0°, 0°, 0°, 0°) Ig, down
Прекращение снега Ip(1, 0°, 0°, 0°, 0°) Ip(1, 0°, 0°, 0°, 0°)
Заключение
Предложенные в работе новые методы жестового интерфейса с помощью устройства Kinect позволят расширить доступные средства эргономичного управления объектами (в частности робототехническими средствами) как в системах виртуального окружения, так и в реальном пространстве.
Список литературы
1. Михайлюк, М. В. Эргономичный голосовой интерфейс управления антропоморфным роботом / М. В. Михайлюк, М. А. Торгашев, Д. В. Омельченко // Программные продукты и системы. - 2015. - № 4. - С. 75-78.
2. Нагапетян, В. Э. Бесконтактное управление роботизированной рукой посредством жестов человека / В. Э. Нагапетян, И. Л. Толмачев // Вестник Российского университета дружбы народов. Серия: Математика. Информатика. Физика. - 2014. -№ 2. - С. 157-163.
3. Котюжанский, Л. А. Интерфейс бесконтактного управления / Л. А. Котюжанский // Фундаментальные исследования. - 2013. - № 4. - С. 44-48.
4. Qian, K. Developing a Gesture Based Remote Human-Robot Interaction System Using Kinect / K. Qian, J. Niu, H. Yang // International Journal of Smart Home. - 2013. -Vol. 7, № 4. - P. 203-208.
5. Мальцев, А. В. Реализация эргономичного интерфейса управления виртуальной моделью антропоморфного робота с использованием Kinect / А. В. Мальцев, М. В. Михайлюк // Программная инженерия. - 2015. - № 10. - С. 12-18.
6. Kinect API Overview. - URL: https://msdn.microsoft.com/ru-ru/library/dn782033.aspx (дата обращения: 25.04.2016).
Мальцев Андрей Валерьевич
кандидат физико-математических наук, старший научный сотрудник, Научно-исследовательский институт системных исследований РАН E-mail: avmaltcev@mail.ru
Михайлюк Михаил Васильевич
доктор физико-математических наук, заведующий отделом, Научно-исследовательский институт системных исследований РАН E-mail: mix@niisi.ras.ru
Maltsev Andrey Valerievich candidate of physical and mathematical sciences, senior researcher, Scientific Research Institute for System Analysis RAS
Mikhaylyuk Mikhail Vasilievich doctor of physical and mathematical sciences, head of department, Scientific Research Institute for System Analysis RAS
Тимохин Петр Юрьевич Timokhin Petr Yurievich
научный сотрудник, researcher,
Научно-исследовательский институт Scientific Research Institute
системных исследований РАН for System Analysis RAS E-mail: webpismo@yahoo.de
УДК 004.5, 004.946 Мальцев, А. В.
Методы жестового управления трехмерными объектами и параметрами виртуальной среды с помощью Кшей / А. В. Мальцев, М. В. Михайлюк, П. Ю. Тимохин // Модели, системы, сети в экономике, технике, природе и обществе. -2016. - № 3 (19). - С. 147-156.