stringtranslate.com

Обратная кинематика

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

В компьютерной анимации и робототехнике обратная кинематика — это математический процесс вычисления переменных параметров сочленений , необходимых для размещения конца кинематической цепи , например, робота- манипулятора или скелета персонажа анимации , в заданном положении и ориентации относительно начала цепи. При заданных параметрах сочленений положение и ориентация конца цепи, например, руки персонажа или робота, обычно могут быть вычислены напрямую с использованием множественных приложений тригонометрических формул , процесс, известный как прямая кинематика . Однако обратная операция, как правило, гораздо сложнее. [1] [2] [3]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Многие различные программы (например, программы FOSS IKFast и Inverse Kinematics Library) способны быстро и эффективно решать эти задачи, используя различные алгоритмы, такие как решатель FABRIK. Одна из проблем с этими решателями заключается в том, что они, как известно, не обязательно дают локально гладкие решения между двумя соседними конфигурациями, что может привести к нестабильности, если требуются итерационные решения обратной кинематики, например, если IK решается внутри высокоскоростного контура управления.

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

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

Метод обратной функции Якоби

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

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

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

,

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

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

,

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

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

,

где .

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

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

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

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

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

Ссылки

  1. ^ Дональд Л. Пипер, Кинематика манипуляторов под управлением компьютера. Кандидатская диссертация, Стэнфордский университет, кафедра машиностроения, 24 октября 1968 г.
  2. ^ abc Lynch, Kevin M.; Park, Frank C. (2017-05-25). Современная робототехника. Cambridge University Press. ISBN 978-1-107-15630-2.
  3. ^ Сицилиано, Бруно; Хатиб, Усама (2016-06-27). Springer Handbook of Robotics. Springer International Publishing. ISBN 978-3-319-32550-7.
  4. ^ Пол, Ричард (1981). Роботы-манипуляторы: математика, программирование и управление: компьютерное управление роботами-манипуляторами. MIT Press, Кембридж, Массачусетс. ISBN 978-0-262-16082-7.
  5. ^ Дж. М. Маккарти, 1990, Введение в теоретическую кинематику, MIT Press, Кембридж, Массачусетс.
  6. ^ JJ Uicker, GR Pennock и JE Shigley, 2003, Теория машин и механизмов, Oxford University Press, Нью-Йорк.
  7. ^ Дж. М. Маккарти и Г. С. Сох, 2010, Геометрическое проектирование связей, Springer, Нью-Йорк.
  8. ^ Паден, Брэдли Эван (1985-01-01). Кинематика и управление роботами-манипуляторами (диссертация). Bibcode :1985PhDT........94P.
  9. ^ Мюррей, Ричард М.; Ли, Цзэсян; Шастри, С. Шанкар; Шастри, С. Шанкара (1994-03-22). Математическое введение в роботизированную манипуляцию. CRC Press. ISBN 978-0-8493-7981-9.
  10. ^ A. Aristidou, J. Lasenby, Y. Chrysanthou, A. Shamir. Методы обратной кинематики в компьютерной графике: обзор. Computer Graphics Forum, 37(6): 35-58, 2018.
  11. ^ Д. Г. Люенбергер. 1989. Линейное и нелинейное программирование. Эддисон Уэсли.
  12. ^ A. Aristidou и J. Lasenby. 2011. FABRIK: Быстрый итеративный решатель обратной задачи кинематики. Граф. Модели 73, 5, 243–260.

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