В данной работе изучается реализация двух алгоритмов инверсной кинематики, использующиеся в системах захвата движения. На примере верхней конечности описывается решение прямой и инверсной задач кинематики в 2D пространстве, приводится пример из лабораторной практики преобразования трехмерных координат в костный каркас с помощью программного обеспечения, использующего инверсную кинематику.
Ключевые слова: инверсная кинематика, прямая задача кинематики, система захвата движения, Qualisys, Visual 3D, алгоритм циклического покоординатного спуска, CCD-алгоритм.
Захват движения, также известный как mocap — это метод, используемый в компьютерной графике, анимации и видеоиграх для захвата движения объектов или людей и преобразования его в цифровые данные, которые можно использовать для анимации виртуальных персонажей или объектов. За последнее десятилетие системы захвата движения активно используются и в клинической диагностике, например такой как оценка функционального состояния опорно-двигательного аппарата (ОДА) пациента. Данные системы позволяют спрогнозировать результат лечения или реабилитации пациента, получить наиболее подробную информацию о физическом состоянии мышц и суставов, используя, в том числе, инверсную кинематику.
Системы захвата движения в клинической практике
Рассмотрим процесс захвата движения в клинической практике. Необходимые действия включают в себя размещение датчиков, называемых маркерами, на человеке. Это может быть как пациент с патологиями, так и спортсмен. Маркеры могут быть светоотражающими или неотражающими и обычно крепятся к телу с помощью двустороннего скотча, эластичного бинта или специального клея для крепления к коже. Маркеры отражают инфракрасный свет, который регистрируется камерами, расположенными вокруг зоны съемки.
По мере перемещения человека камеры фиксируют положение и ориентацию маркеров в трехмерном пространстве (рисунок 1). Затем эта информация обрабатывается специализированным программным обеспечением, которое анализирует данные маркера и вычисляет перемещение объекта или человека, включая положение, ориентацию и скорость каждого маркера.
Рис. 1. Пример создания цифровой модели пациента в системе для получения и обработки трехмерных координат Qualisys
Прямая и инверсная кинематика
Прямая кинематика — это вычисление положения рабочего органа (в нашем случае — верхней конечности) с помощью схемы, отражающей очередность передачи движения от одной точки к другой, взаимосвязь их движения и ориентации (под каким углами f 1 , f 2 ,…f n расположен сегмент верхней конечности). Инверсная кинематика — вычисление углов по заданному положению и кинематической схеме. [1]
Несмотря на то, что для углов f 1 , f 2 ,…f n всегда существует единственное местоположение, нельзя отрицать, что для данного местоположения не найдется и другая комбинация углов f 1 ’ , f 2 ’ ,…f n ’ .
Рассмотрим пример верхней конечности с точки зрения прямой и инверсной задач кинематики в 2D (рисунок 2 а).
а) б)
Рис. 2. Кинематическая схема верхней конечности для прямой (а) и инверсной (б) задачи
Сустав D1 закреплен в точке О и расположен под углом Ѳ1 , сустав D2 закреплен на конце сустава D1 и повернут под углом Ѳ2 . Ограничительная точка тела находится в конце сустава D2. Прямая задача кинематики состоит в нахождении местоположения ограничительной точки тела (x, y) по заданным D1, D2, Ѳ1, Ѳ2.
Первая система отсчета — в точке крепления плеча О, вторая — в начале координат в точке крепления локтя K . Отыщем смещение второй системы координат относительно первой, координаты точки K относительно точки крепления плеча О.
В системе отсчета локтя координаты (x, y) будут:
;
Локоть D2 повернут относительно плеча на Ѳ1+ Ѳ2 в системе О:
; ;
Итого:
;
;
Инверсная задача. Необходимо найти углы , с помощью которых рука с плечом D1 и локтем D2 переместиться в заданную точку (x, y). Обратим внимание на рисунок 2б).
Прямая G соединяет начало отсчета O и заданную точку (x, y), — угол между осью ОХ и прямой G , — угол между прямой G и плечом D1 .
Таким образом,
Угол находится из теоремы косинусов:
;
По такой же системе найдем угол , он равен — угол ОКх:
При возможном положении точки локтя K в противоположном от прямой G месте (рисунок 3), формулы для не изменятся, но знаки углов поменяются, а будет с противоположным знаком:
Рис. 3. Другая кинематическая схема верхней конечности для инверсной задачи
И тот, и другой способ используются на практике, однако наибольший интерес представляет инверсная кинематика.
Инверсная кинематика в системах захвата движения
ИК может использоваться на самых разных этапах и в самых разных областях при адаптации данных захвата движения к каркасной модели. В работе L. Unzeuta и коллег [2], ИК используется в системах захвата для полной реконструкции тела с использованием только таза и ограничительных точек тела: голова, лодыжки и запястья.
В докторской диссертации J. Anderson и J. Bornold [3], исследуя различные методы ИК и их производительность, наилучшим алгоритмом, который можно использовать для устранения недостающих положений суставов в его текущем состоянии, считает циклический покоординатный спуск (ЦПС) или ССD (Cyclic Coordinate Descent). Суть метода заключается в сведении к минимуму ошибки положения и ориентации путем преобразования одной совместной переменной за раз. Представим данный алгоритм в виде графического изображения на рисунке 4:
Рис. 4. Визуальное решение задачи алгоритмом ЦПС
Как работает алгоритм: а) исходное положение тела и цели, б) находим угол θ между ограничительной точкой тела, суставом т3 и целью и поворачиваем сустав т4 на этот угол, в) находим угол θ между ограничительной точкой тела, суставом т2 и целью и поворачиваем суставы т4 и т3 под этим углом, г), д) и е) повторяем весь процесс столько итераций, сколько необходимо. Останавливаемся, когда ограничительная точка тела достигнет цели или подойдет достаточно близко.
Хотя алгоритм ЦПС иногда создает нереалистичные позы, поскольку он часто совершает «цикл в себя», придавая чрезмерное значение движениям суставов ближе к ограничительной точке тела, этот метод хорошо справляется с отслеживанием движущейся цели, избегая колебаний и прерывистостей движения.
На базе известных ИК-алгоритмов компания Qualisys создала собственный QIK (Qualisys Inverse Kinematics), который используется для определения углов сочленений и положений сегментов конечностей на основании положений маркеров, фиксируемых системой. QIK оптимизирован для работы в режиме реального времени и способен обрабатывать объемные по вычислительным мощностям приложения для систем захвата, такие как Visual 3D и Any Body.
Алгоритм QIK вычисляет положение каждого сегмента тела испытуемого, принимая во внимание углы сочленения, длину сегментов и ориентацию сегментов. Рассмотрим основные из них:
Оценка суставных углов: QIK сначала оценивает суставные углы тела испытуемого на основе положения маркеров и предопределенной модели скелета. Алгоритм учитывает ограничения на «слияние», такие как пределы сочленений, чтобы гарантировать физическую реалистичность углов сочленения.
Ориентация сегментов: Ориентация каждого сегмента определяется ориентацией его проксимального сустава относительно дистального.
Расчет положения сегмента: Алгоритм начинается с положения дистального сочленения сегмента и применяет поворот, чтобы выровнять ориентацию сегмента с углом сочленения. Затем он перемещает сегмент на длину сегмента в направлении его ориентации, чтобы определить положение проксимального сустава. Этот процесс повторяется для каждого сегмента скелета.
На рисунке 5 изображены маркеры, расположенные на тазе человека. В данном случае — IOR marker set full body [4, 5], где R_IAS/ L_IAS — передний верхний подвздошный отдел таза справа/слева, R_IPS/ L_IPS — задний верхний подвздошный отдел таза справa/слева. С помощью алгоритмов ИК, построенная таким образом модель переносится на костный каркас, например через программное обеспечение Visual 3D (рисунок 6).
Рис. 5. Визуализация местоположения маркеров таза в пространстве
Рис. 6. Результат моделирования таза человека
Выводы
В данной работе был представлен обзор и реализация на практике наиболее часто встречающихся алгоритмов, связанных с задачей инверсной кинематики в моей лабораторной практике, а именно — с анализом походки пациентов. Автоматизация данного процесса позволяет делать вывод о состоянии опорно-двигательного аппарата человека, анализируя углы поворота голеностопа, колена, моменты суставов и множество других параметров.
Литература:
- Фу К., Гонсалес Р., Ли К., Робототехника: Пер. с англ. — М.: Мир, 1989. — 624 с.
- L. Unzueta, M. Peinado, R. Boulic, A. Suescun, Full-body performance animation with sequential inverse kinematics, Graphical models, 2008, 87–104.
- J. Anderson, J. Bornold, A Real-time Adaptation of Inverse Kinematics for Motion Capture, 2015, 56–57.
- Leardini, A., Biagi, F., Merlo, A., Belvedere, C., & Benedetti, M.G. (2011). Multi-segment trunk kinematics during locomotion and elementary exercises. Clinical Biomechanics, 26, 562–571.
- Sint Jan, S. Van (2007). Color Atlas of Skeletal Landmark Definitions. Guidelines for Reproducible Manual and Virtual Palpations. Edinburgh: Churchill Livingstone