Обратная кинематика - Inverse kinematics

Прямая и обратная кинематика

В компьютерной анимации и робототехнике , обратная кинематика является математическим процессом вычисления переменных совместных параметров , необходимых , чтобы разместить конец кинематической цепи , такие , как робот - манипулятор или скелет анимации персонажа , в заданном положении и ориентации по отношению к старту цепь. При заданных параметрах соединения положение и ориентация конца цепочки, например, руки персонажа или робота, обычно могут быть вычислены напрямую с использованием нескольких приложений тригонометрических формул, процесса, известного как прямая кинематика . Однако обратная операция, как правило, намного сложнее.

Обратная кинематика также используется для восстановления движений объекта в мире из некоторых других данных, таких как фильм об этих движениях или фильм о мире, видимом камерой, которая сама совершает эти движения. Это происходит, например, когда снятые на пленку движения актера-человека должны дублироваться анимированным персонажем .

Робототехника

В робототехнике, инверсная кинематика используют кинематические уравнения для определения совместных параметров , которые обеспечивают требуемую конфигурацию (положение и вращение) для каждого из робота конечных эффекторов . Определение движения робота таким образом, чтобы его рабочие органы переходили из начальной конфигурации в желаемую, называется планированием движения . Обратная кинематика преобразует план движения в совместные траектории привода для робота. Подобные формулы определяют положения скелета анимированного персонажа, который должен двигаться определенным образом в фильме, или транспортного средства, такого как автомобиль или лодка, содержащего камеру, которая снимает сцену фильма. Как только движения транспортного средства известны, их можно использовать для определения постоянно меняющейся точки обзора для компьютерных изображений объектов в ландшафте, таких как здания, так что эти объекты меняются в перспективе, при этом сами по себе не кажутся движущимися, как транспортное средство. камера проходит мимо них.

Движение кинематической цепи , будь то робот или анимированный персонаж, моделируется кинематическими уравнениями цепи. Эти уравнения определяют конфигурацию цепи с точки зрения ее совместных параметров. Прямая кинематика использует параметры соединения для вычисления конфигурации цепи, а обратная кинематика обращает это вычисление, чтобы определить параметры соединения, которые достигают желаемой конфигурации.

Кинематический анализ

Модель человеческого скелета в виде кинематической цепи позволяет позиционировать его с помощью обратной кинематики.

Кинематический анализ - один из первых шагов в проектировании большинства промышленных роботов. Кинематический анализ позволяет разработчику получить информацию о положении каждого компонента в механической системе. Эта информация необходима для последующего динамического анализа вместе с путями управления.

Обратная кинематика - это пример кинематического анализа системы твердых тел со связями или кинематической цепи . В кинематических уравнениях робота могут быть использованы для определения петлевых уравнений сложной шарнирной системы. Эти петлевые уравнения являются нелинейными ограничениями на параметры конфигурации системы. Независимые параметры в этих уравнениях известны как степени свободы системы.

Хотя аналитические решения проблемы обратной кинематики существуют для широкого диапазона кинематических цепей, инструменты компьютерного моделирования и анимации часто используют метод Ньютона для решения нелинейных кинематических уравнений.

Другие применения алгоритмов обратной кинематики включают интерактивные манипуляции , управление анимацией и предотвращение столкновений .

Обратная кинематика и 3D-анимация

Обратная кинематика важна для программирования игр и 3D-анимации , где она используется для физического соединения игровых персонажей с миром, например, для того, чтобы ноги твердо приземлялись на поверхность (см. Подробный обзор методов обратной кинематики, используемых в компьютерной графике ).

Анимированная фигура моделируется каркасом из жестких сегментов, соединенных суставами, который называется кинематической цепью . Уравнения кинематики фигуры определяют соотношение между углами сочленения фигуры и ее позой или конфигурацией. Задача прямой кинематической анимации использует кинематические уравнения для определения позы с учетом углов сочленения. В задаче обратной кинематики вычисляются углы суставов для желаемой позы фигуры.

Компьютерным дизайнерам, художникам и аниматорам часто проще определить пространственную конфигурацию сборки или фигуры с помощью движущихся частей или рук и ног, чем напрямую манипулировать углами суставов. Поэтому обратная кинематика используется в системах автоматизированного проектирования для анимации сборок, а компьютерные художники и аниматоры - для позиционирования фигур и персонажей.

Сборка моделируется как жесткие связи, соединенные соединениями, которые определены как сопряжения или геометрические зависимости. Перемещение одного элемента требует вычисления углов сочленения для других элементов, чтобы сохранить ограничения сочленения . Например, обратная кинематика позволяет художнику перемещать руку трехмерной модели человека в желаемое положение и ориентацию и иметь алгоритм, выбирающий правильные углы суставов запястья, локтя и плеча. Успешная реализация компьютерной анимации обычно также требует, чтобы фигура двигалась в разумных антропоморфных пределах.

Метод сравнения прямой и обратной кинематики для анимации персонажа можно определить по преимуществам, присущим каждому из них. Например, блокирующая анимация, в которой используются большие дуги движения, часто более выгодна в прямой кинематике. Однако более тонкая анимация и позиционирование целевого рабочего органа по отношению к другим моделям может быть проще при использовании инвертированной кинематики. Современные пакеты цифрового создания (DCC) предлагают методы для применения как прямой, так и обратной кинематики к моделям.

Аналитические решения обратной кинематики

В некоторых, но не во всех случаях существуют аналитические решения обратных кинематических задач. Одним из таких примеров является робот с 6 степенями свободы (например, 6 поворотных шарниров), движущийся в трехмерном пространстве (с 3 степенями свободы положения и 3 степенями свободы вращения). Если степени свободы робота превышают степени свободы рабочего органа, например, у робота с 7 степенями свободы и 7 поворотными шарнирами, то существует бесконечно много решений проблемы IK, и аналитического решения не существует. Далее, расширяя этот пример, можно исправить одно соединение и аналитически решить для других соединений, но, возможно, лучшее решение предлагают численные методы (следующий раздел), которые вместо этого могут оптимизировать решение с учетом дополнительных предпочтений (затраты в задаче оптимизации ).

Аналитическое решение обратной задачи кинематики является замкнутой формой выражения , которое принимает конец эффекторной позы в качестве входных данных и дает совместные позиции как выход, . Аналитические решатели обратной кинематики могут быть значительно быстрее, чем численные решатели, и предоставлять более одного решения, но только конечное число решений для данной позы рабочего органа.

Программа с открытым исходным кодом IKFast может находить полные аналитические решения для наиболее распространенных роботов-манипуляторов и генерировать для них код C ++. Сгенерированные решатели охватывают большинство вырожденных случаев и могут завершиться за микросекунды на современных компьютерах. Одна проблема с этими решателями заключается в том, что они, как известно, не обязательно дают локально гладкие решения между двумя соседними конфигурациями, что может вызвать нестабильность, если итерационные решения для обратной кинематики требуются, например, если IK решается внутри высокоскоростного контура управления.


Численные решения задач ИК

Существует множество методов моделирования и решения обратных задач кинематики. Наиболее гибкий из этих методов обычно полагается на итеративную оптимизацию для поиска приближенного решения из-за сложности обращения уравнения прямой кинематики и возможности пустого пространства решений . Основная идея, лежащая в основе некоторых из этих методов, заключается в моделировании уравнения прямой кинематики с использованием разложения в ряд Тейлора , которое может быть проще инвертировать и решить, чем исходную систему.

Обратный метод Якоби

Якобиан обратного метод является простым , но эффективным способом реализации инверсной кинематики. Пусть есть переменные, которые управляют уравнением прямой кинематики, то есть функцией положения. Эти переменные могут быть углами сочленений, длиной или другими произвольными действительными значениями. Если система IK живет в трехмерном пространстве, функцию положения можно рассматривать как отображение . Дадим начальное положение системы, а

быть целевой позицией системы. Обратный метод Якоби итеративно вычисляет оценку, которая минимизирует ошибку, задаваемую выражением .

Для малых -векторов разложение функции положения в ряд дает

,

где - (3 × m) матрица Якоби функции положения в точке .

Обратите внимание, что (i, k) -й элемент матрицы Якоби можно аппроксимировать численно

,

где дает i-й компонент функции положения, просто с небольшой дельтой, добавленной к его k-му компоненту, и является достаточно небольшим положительным значением.

Взяв псевдообратную формулу Мура-Пенроуза для якобиана (вычисляемую с использованием разложения по сингулярным значениям ) и переупорядочив члены, получим

,

где .

Применение метода обратного якобиана один раз приведет к очень грубой оценке желаемого -вектора. Для масштабирования до приемлемого значения следует использовать линейный поиск . Оценка может быть улучшена с помощью следующего алгоритма (известного как метод Ньютона – Рафсона ):

Как только некоторый -vector привел к тому, что ошибка упала почти до нуля, алгоритм должен завершиться. Сообщалось, что существующие методы, основанные на матрице Гессе системы, сходятся к желаемым значениям с использованием меньшего количества итераций, хотя в некоторых случаях и большего количества вычислительных ресурсов.

Эвристические методы

Проблема обратной кинематики также может быть аппроксимирована эвристическими методами. Эти методы выполняют простые итерационные операции, постепенно приводящие к приближению решения. Эвристические алгоритмы имеют низкие вычислительные затраты (очень быстро возвращают окончательную позу) и обычно поддерживают ограничения суставов. Наиболее популярными эвристическими алгоритмами являются: циклический координатный спуск (CCD) и обратная кинематика с прямым и обратным движением (FABRIK).

Смотрите также

использованная литература

внешние ссылки