УДК 004.946
УПРОЩЕННАЯ МОДЕЛЬ РУКИ ДЛЯ РЕШЕНИЯ ОБРАТНОЙ ЗАДАЧИ МОДЕЛИРОВАНИЯ АВАТАРА
© 2010 г. Д.С. Ситалов
Южно-Российский государственный технический университет (Новочеркасский политехнический институт)
Донской филиал Центра тренажеростроения, г. Новочеркасск
South-Russian State Technical University (Novocherkassk Polytechnic Institute)
Donskoy centre simulator building, Novocherkassk
Рассмотрены проблемы моделирования действий оператора в современных тренажно-моделирующих комплексах. Предложен путь решения данной проблемы путем введения в моделирующий комплекс виртуальной реальности модели аватара. Рассмотрены основные концепции построения модели аватара, проблемы, возникающие при ее разработке и проектировании. Предложена упрощенная модель руки человека для уменьшения вычислительных затрат при решении обратной задачи.
Ключевые слова: тренажер; моделирование движений человека; геометрическое моделирование человека; скелетная анимация.
The author examines problems of modelling operator's actions in modern training modelling complexes. The author proposes the solution of the given problem by introduction in modelling complex of virtual reality the avatar model. The author of the article scrutinize main concepts of construction avatar model, the problems of development and designing the avatar model. The simplified model of a human hand for reduction of computing expenses at solution of the return task is offered.
Keywords: simulator; modelling of human actions; geometrical modelling of human; skeletal animation (skinning).
В настоящее время технологии виртуальной реальности находят все более широкое применение практически во всех областях науки и техники. Одной из таких областей является тренажеростроение. Современные тренажеры реализуют достаточно высокую степень реалистичности моделирования воспроизводимых объектов (пультов, оборудования, органов управления и т.д.). Однако виртуальный мир выглядит «неживым», поскольку в нем нет главных действующих лиц - операторов, выполняющих тренировку. Поэтому одним из направлений развития тренажера является дополнение его виртуального мира моделью человека или, другими словами, моделью аватара (моделью виртуального персонажа, представляющего собой модель человека в виртуальном мире).
Моделирование поведения человека в виртуальной среде является одной из проблем в тех системах, где человек выполняет определенные функции в зависимости от моделируемой ситуации. В игровых комплексах эта задача решается путем заблаговременно подготовленных вариантов анимации для ограниченного количества вариантов действий. В более сложных моделирующих комплексах такие типовые задачи нельзя предусмотреть, и возникает задача математического и геометрического моделирования человека. Основой такого моделирования является представление человека как многозвенной кинематической структуры, которая описывается в собственной системе координат путем последовательного перехода от одного звена к другому.
Модель скелета аватара представляет собой иерархически связанные элементы скелета в древовидную структуру. Здесь под элементом скелета понимается кость скелета с суставом, крепящим эту кость к кости более высокого уровня в иерархии. Моделирование всех костей скелета человека (их более 200) является нецелесообразным, так как это приведет к чрезмерной сложности создания модели аватара и значительным вычислительным затратам при визуализации, но даст лишь небольшое повышение реалистичности. Поэтому структура скелета аватара (рис. 1) должна содержать достаточное количество элементов, необходимое для моделирования требуемых действий оператора. Например, как видно из рис. 1, позвоночник аватара состоит всего из четырех элементов. Этого достаточно, чтобы моделировать вращательные движения спины и наклоны. В то же время такое упрощение позволяет существенно сократить вычислительные затраты на моделирование аватара. Аналогично уменьшено количество костей (позвонков) в шее аватара, а пальцы ног вообще не моделируются и стопа представлена всего лишь двумя элементами скелета, так как оператор не выполняет никаких действий, в которых непосредственно участвуют пальцы ног, а для моделирования реалистичной ходьбы достаточно и двух элементов скелета в стопе. В отличие от пальцев стопы, пальцы рук участвуют в хватательных движениях оператора. Именно поэтому в модели скелета аватара рука имеет элементы для ладони и по три фаланги для каждого пальца (рис. 2).
В качестве корневого элемента скелета удобно принять таз аватара, поскольку это упрощает генерацию движений, в частности перемещение аватара [1].
Правая ключица
Предплечье правой руки
Правая голень Стопа правой ноги
Таз Левое бедро Левая голень
Стопа левой ноги
Рис. 1. Структура скелета аватара
Предплечье
левой руки
Рис. 2. Структура скелета кисти аватара
Модель скелета аватара и его геометрическая модель связываются с применением так называемой техники скелетной анимации (Skeletal Animation). Этот подход предполагает, что для моделирования движения персонажа непосредственное изменение геометрической модели заменяется управлением скелетом, связанным с геометрической моделью. Данный подход не только упрощает моделирование движения (поскольку нет необходимости непосредственно задавать координаты всех вершин геометрической модели), но также позволяет создавать достаточно сложные движения с высокой степенью реалистичности при малых вычислительных затратах, что очень существенно в современных тренажно-моделирующих комплексах.
Укрупненно, при моделировании аватара возникают следующие две задачи:
1. Прямая задача моделирования аватара состоит в том, что по обобщенным координатам всех элемен-
тов скелета восстанавливается его пространственная конфигурация и применяется техника скелетной анимации для определения нового положения вершин геометрической модели соответственно изменившейся пространственной конфигурации скелета. Один из вариантов решения прямой задачи предложен в работе [1]. Следует заметить, что все движения модели аватара задаются посредством изменения обобщенных координат элементов его скелета. Поэтому прямая задача моделирования аватара решается на каждом такте моделирования тренажно-моделирующего комплекса.
2. Обратная задача моделирования аватара представляет собой определение обобщенных координат элементов скелета по известному их пространственному расположению. Одним из способов решения обратной задачи является применение подходов, разработанных в робототехнике (скелет аватара можно представить как кинематическую цепь многозвенного манипулятора). Подобная задача, называемая обратной задачей о положениях, или задача инверсной кинематики, решается в теории манипуляторов. Аналитическое решение этой задачи для кинематической цепи общего вида весьма затруднительно [2]. Данная задача успешно решается только для конкретных кинематических схем манипуляторов с небольшим числом степеней свободы. В общем случае для ее решения применяют численные методы [3]. Однако в робототехнике особое внимание уделяется точности позиционирования рабочего органа манипулятора, что приводит к значительной сложности методов решения обратной задачи о положениях. Решение обратной задачи моделирования аватара с помощью методов робототехники приведет к необоснованно высоким вычислительным затратам, поскольку при моделировании перемещения руки аватара к органу управления не требуется высочайшая точность позиционирования руки аватара (а у современных манипуляторов точность позиционирования составляет порядка 1 мкм и более). В связи с вышесказанным актуальной является разработка более простой кинематической модели руки человека.
Поскольку решение обратной задачи в общей постановке представляет собой сложный и ресурсоемкий с вычислительной точки зрения процесс ввиду большого количества элементов в кинематической цепи руки аватара (рис. 3) и, вследствие этого, сложности уравнений движения, то актуальной является разработка более простой кинематической модели руки аватара.
Для построения упрощенной модели руки аватара рассмотрим возможности уменьшения сложности ее структуры, не приводящие к значительному ограничению движений руки.
Проанализировав движения оператора во время выполнения им рабочих операций руками, можно заметить, что указательный палец, которым оператор нажимает кнопки и переключает тумблеры, практически не выполняет движений, а большая часть движений выполняется в суставе запястья. Остальные же
пальцы могут либо не совершать никаких движений при выполнении рабочих операций, либо совершают движения сжатия - разжатия кисти в кулак. Поскольку эти пальцы не участвуют в выполнении рабочих операций, то элементы скелета кисти с пальцами можно представить одним элементом, соединяющим сустав запястья с кончиком указательного пальца. Для решения обратной задачи моделирования аватара предлагается упрощенная модель руки человека, кинематическая цепь которой представлена на рис. 4.
Рис. 3. Элементы кинематической цепи руки аватара
и 2 остаются неизменными, а элементы 3 - 6 (кисть и три фаланги указательного пальца) заменяются одним элементом, обозначенным У. Поскольку мы считаем, что кисть с пальцами не изменяет свою конфигурацию при выполнении рабочих операций, то элементы 4 - 6 не будут изменять своего положения относительно элемента 3. Поэтому для вычисления параметров перехода от полной модели к упрощенной достаточно определить преобразование из системы координат звена 3 в систему координат звена У и длину элемента У.
У
Сп
Рис. 4. Упрощенная модель кинематической цепи руки аватара
Для возможности применения предлагаемой упрощенной модели с целью решения обратной задачи необходимо определить переход от полной модели к упрощенной и наоборот.
Выполним преобразование полной модели в упрощенную, т. е. определим преобразование параметров, описывающих руку аватара в полной модели скелета, к параметрам, описывающим руку аватара в упрощенной модели скелета. Рассмотрим рис. 5. На нем показаны следующие элементы скелета руки ава-тара: 1 - плечо, 2 - предплечье, 3 - кисть, 4 - основная фаланга указательного пальца, 5 - средняя фаланга указательного пальца, 6 - ногтевая фаланга указательного пальца. При упрощении модели элементы 1
\ 5
4
Рис. 5. Переход от полной модели скелета руки аватара к упрощенной
Целевая точка Сц имеет следующие координаты в системе координат О^бУ^а, связанной с элементом 6:
( Сц )б =(/бЛ0 ) ,
где 16 - длина элемента 6 скелета руки аватара.
Получим координаты точки Сц в системе координат О3х3у^3:
(Сц )з = (Сц )б M5^Л
где М4, М5, М6 - матрицы перехода элементов 4 - 6 скелета руки аватара [1].
Длина элемента У определяется как длина вектора 0^ :
У = \оуД\.
Зададим направление осей системы координат элемента У. Для этого определим орты системы координат элемента У в системе координат элемента 3. Как было принято в работе [1], направление оси Ох выбирается таким, чтобы элемент скелета лежал вдоль этой оси:
(«)з
)3 )з
Направление оси Оу элемента У в системе координат элемента 3 определим подобно тому, как это производится в процедуре ортогонализации Грамма -Шмидта [4]:
(°УуУ )з )з- )з, (У )3) (^ )3,
1
6
2
где (03у3 | = (0,1,0) - направление оси Оу в системе координат элемента 3.
Применив нормализацию вектора (с>уУу ) получим орт оси Оу элемента У в системе координат элемента 3
(« )з
(ОУ )3
(ОУУУ )3
Направление оси Oz определим с помощью векторного произведения векторов, учитывая, что применяется левосторонняя система координат:
(* )3 -[R)3- )3
После того как определили орты системы координат, связанной с элементом У, в системе координат элемента 3, можно построить матрицу преобразования из системы координат элемента 3 в систему координат элемента У:
M3,У -
Ух
Уу
Уг 0
где
сис-
(еУ ) =(ХХ, ху , хг) , (еУ ) =(Ух, Уу, Уг)
(еУу) =(zx, zy, zz) - ортонормированный базис
темы координат элемента У, заданный в системе координат элемента 3.
Матрица М3,У представляет собой матрицу вращения (без переноса), поскольку системы координат 03х3у3?з и ОУхУу^У начинаются в одной точке.
Матрица МУ,3, определяющая обратное преобразование (из системы координат элемента У в систему координат элемента 3), вычисляется как обратная матрица
МУ ,3 = мз"у.
Таким образом, мы определили переход от полной модели скелета руки аватара к упрощенной и обратный переход от упрощенной модели к полной. Поскольку упрощенная модель имеет всего лишь три элемента в кинематической цепи (полная модель содержит шесть элементов), то решение обратной задачи моделирования аватара существенно упрощается и требует меньше вычислительных ресурсов, что является значительным преимуществом при внедрении модели аватара в большие тренажно-моделирующие комплексы.
Литература
1. Ситалов Д.С. Моделирование скелета аватара // Теория, методы проектирования, программно-техническая платформа корпоративных информационных систем: Материалы VI Междунар. науч.-практ. конф., г. Новочеркасск, 26 мая 2008 г. / Юж.-Рос. гос. техн. ун-т (НПИ). Новочеркасск, 2008. С. 87 - 95.
2. Веселовский В.В. Кинематика манипуляторов: учеб. пособие / Моск. ин-т радиотехники, электроники и автоматики. М., 1991. 72 с.
3. Корендясев А.И., Саламандра Б.Л., Тывес Л.И. Теоретические основы робототехники: в 2 кн. / отв. ред. С.М. Каплунов; Ин-т машиноведения им. А.А. Благонра-вова РАН. М., 2006. Кн. 1. 383 с.
4. Спиридонова И.А. Топологические структуры и их применение : метод. указания к проведению практических занятий по курсу «Специальные главы высшей математики» / Новочер. гос. техн. ун-т. Новочеркасск, 1997. 23 с.
х
z
х
х
X
z
X
z
z
z
0
0
Поступила в редакцию 29 июля 2010 г.
Ситалов Дмитрий Сергеевич - аспирант кафедры ПОВТ, Южно-Российский государственный технический университет (Новочеркасский политехнический институт), инженер-программист, Донской филиал Центра тренажеростроения. Тел. 8-908-197-80-80. E-mail: [email protected]
Sitalov Dmitriy Sergeevich - post-graduate student, department «Software Engineering», South-Russia State Technical University (Novocherkassk Polytechnic Institute), engineer, Donskoy Centre Simulator Building Ph. 8-908-197-80-80. E-mail: [email protected]