Введение

Вычисление значений параметров звеньев кинематической цепи по известному положению конечной точки

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

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

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

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

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

Инверсная кинематика и 3D-анимация

Инверсная кинематика важна для игрового программирования и 3D-анимации, где она используется для физического соединения игровых персонажей с миром, например, для обеспечения устойчивой постановки ног на поверхность (см. всеобъемлющий обзор методов инверсной кинематики в компьютерной графике). Анимированная фигура моделируется в виде скелета из жестких сегментов, соединенных суставами, образующими кинематическую цепь. Уравнения кинематики фигуры определяют взаимосвязь между углами суставов и ее позой или конфигурацией. Задача прямой кинематической анимации использует уравнения кинематики для определения позы по заданным углам суставов. Задача обратной кинематики вычисляет углы суставов для достижения желаемой позы фигуры. Компьютерным дизайнерам, художникам и аниматорам часто проще задавать пространственную конфигурацию сборки или фигуры, перемещая ее части, например, руки и ноги, чем напрямую манипулировать углами суставов. Поэтому обратная кинематика используется в системах автоматизированного проектирования для анимации сборок, а также художниками и аниматорами для позиционирования фигур и персонажей. Сборка моделируется как жесткие звенья, соединенные суставами, которые определяются как связи или геометрические ограничения. Перемещение одного элемента требует вычисления углов суставов для остальных элементов, чтобы сохранить заданные ограничения. Например, обратная кинематика позволяет художнику переместить руку 3D-модели человека в желаемое положение и ориентацию, а алгоритм подбирает соответствующие углы запястья, локтя и плечевого сустава. Успешная реализация компьютерной анимации обычно также требует, чтобы движения фигуры оставались в пределах разумных антропоморфных ограничений. Метод, сравнивающий прямую и обратную кинематику для анимации персонажа, может быть основан на преимуществах, присущих каждому из подходов. Например, для анимации с большими амплитудами движений, так называемой блокировочной анимации, часто более эффективна прямая кинематика. Однако более тонкая анимация и точное позиционирование конечного эффектора относительно других моделей может быть проще реализовано с использованием обратной кинематики. Современные пакеты цифрового контента (DCC) предлагают методы применения как прямой, так и обратной кинематики к моделям.

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

В некоторых, но не во всех случаях, существуют аналитические решения задач обратной кинематики. Одним из таких примеров является робот с 6 степенями свободы (DoF), например, с 6 вращательными сочленениями, движущийся в 3D пространстве (с 3 степенями свободы для положения и 3 степенями свободы для ориентации). Если число степеней свободы робота превышает число степеней свободы исполнительного элемента, например, для робота с 7 DoF и 7 вращательными сочленениями, то существует бесконечно много решений задачи обратной кинематики, и аналитическое решение отсутствует. Развивая этот пример, можно зафиксировать одно сочленение и аналитически решить задачу для остальных, однако, возможно, более эффективным решением будут численные методы (следующий раздел), которые могут оптимизировать решение с учетом дополнительных критериев (стоимости в задаче оптимизации). Аналитическое решение задачи обратной кинематики – это выражение в замкнутой форме, принимающее положение и ориентацию исполнительного элемента на входе и выдающее положения сочленений на выходе. Аналитические решатели обратной кинематики могут быть значительно быстрее численных и предоставлять несколько решений, но лишь конечное их число, для заданного положения и ориентации исполнительного элемента. Многие программы (такие как FOSS IKFast и Inverse Kinematics Library) способны быстро и эффективно решать эти задачи, используя различные алгоритмы, например, решатель FABRIK. Одной из проблем этих решателей является то, что они не всегда обеспечивают локально гладкие решения между двумя соседними конфигурациями, что может привести к нестабильности, если требуются итеративные решения обратной кинематики, например, при решении задачи обратной кинематики внутри высокочастотного контура управления.

Числовые решения проблем ИК

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

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

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