Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Прямая и обратная кинематика

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

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

Робототехника [ править ]

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

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

Кинематический анализ [ править ]

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

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

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

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

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

Обратная кинематика и 3D-анимация [ править ]

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

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

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

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

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

Аналитические решения обратной кинематики [ править ]

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

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

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

Численные решения задач ИК [ править ]

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

Обратный метод Якоби [ править ]

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

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

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

,

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

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

,

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

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

,

где .

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

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

Эвристические методы [ править ]

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

См. Также [ править ]

  • 321 кинематическая структура
  • Решение для рук
  • Прямая кинематическая анимация
  • Прямая кинематика
  • Матрица Якоби и определитель
  • Совместные ограничения
  • Кинематический синтез
  • Кинематика
  • Алгоритм Левенберга – Марквардта
  • Захвата движения
  • Физический движок
  • Псевдообратный
  • Физика рэгдолла
  • Кинематика робота
  • Параметры Денавита – Хартенберга

Ссылки [ править ]

  1. ^ Дональд Л. Пайпер, кинематика манипуляторов под управлением компьютера . Кандидатская диссертация, Стэнфордский университет, факультет машиностроения, 24 октября 1968 г.
  2. ^ Пол, Ричард (1981). Роботы-манипуляторы: математика, программирование и управление: компьютерное управление роботами-манипуляторами . MIT Press, Кембридж, Массачусетс. ISBN 978-0-262-16082-7.
  3. ^ JM McCarthy, 1990, Введение в теоретическую кинематику, MIT Press, Кембридж, Массачусетс.
  4. ^ JJ Uicker, GR Pennock и JE Shigley, 2003, Теория машин и механизмов, Oxford University Press, НьюЙорк.
  5. ^ JM McCarthy и GS Soh, 2010, Геометрический дизайн связей, Спрингер, Нью-Йорк.
  6. ^ А. Aristidou, Дж Lasenby, Ю. Chrysanthou, А. Шамир. Методы обратной кинематики в компьютерной графике: обзор . Форум компьютерной графики, 37 (6): 35-58, 2018.
  7. ^ DG Luenberger. 1989. Линейное и нелинейное программирование. Эддисон Уэсли.
  8. ^ А. Aristidou и Дж Lasenby. 2011. FABRIK: быстрое итерационное решение обратной кинематической задачи . График. Модели 73, 5, 243–260.

Внешние ссылки [ править ]

  • Прямая и обратная обратная кинематика (FABRIK)
  • Робототехника и 3D-анимация в FreeBasic (на испанском языке)
  • Аналитический решатель обратной кинематики - учитывая описание кинематики робота OpenRAVE, генерирует файл C ++, который аналитически решает для полной IK.
  • Алгоритмы обратной кинематики
  • Робот Обратное решение для общей геометрии робота
  • Статья HowStuffWorks.com Как персонажи в видеоиграх двигаются так плавно? с объяснением обратной кинематики
  • 3D-анимация расчета геометрической обратной кинематики промышленного робота
  • Кинематика 3D Теории
  • Белковая обратная кинематика
  • Пример простой обратной кинематики с исходным кодом с использованием якобиана
  • Подробное описание якобианов и решений ПЗС для обратной кинематики.
  • Autodesk HumanIK
  • 3D визуализация аналитического решения промышленного робота