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

В компьютерной анимации робототехнике инверсная и кинематика — это математический процесс расчета переменных параметров сустава , необходимых для размещения конца кинематической цепи , например робота- манипулятора или скелета анимационного персонажа , в заданном положении и ориентации относительно начала цепь. Учитывая параметры соединения, положение и ориентацию конца цепи, например, руки персонажа или робота, обычно можно рассчитать напрямую с помощью многократного применения тригонометрических формул - процесс, известный как прямая кинематика . Однако обратная операция, как правило, гораздо сложнее. [ 1 ] [ 2 ] [ 3 ]
Обратная кинематика также используется для восстановления движений объекта в мире на основе некоторых других данных, таких как фильм этих движений или фильм мира, видимый камерой, которая сама совершает эти движения. Это происходит, например, когда снятые движения актера-человека должны быть продублированы анимационным персонажем .
Робототехника
[ редактировать ]В робототехнике обратная кинематика использует уравнения кинематики робота для определения параметров соединения, которые обеспечивают желаемую конфигурацию (положение и вращение) для каждого из конечных рабочих органов . [ 4 ] Это важно, поскольку задачи робота выполняются с помощью концевых исполнительных органов, а усилие управления прикладывается к суставам. Определение движения робота таким образом, чтобы его конечные рабочие органы перемещались из исходной конфигурации в желаемую, называется планированием движения . Обратная кинематика преобразует план движения в траектории движения робота. [ 2 ] Подобные формулы определяют положение скелета анимационного персонажа , который должен двигаться определенным образом в фильме, или транспортного средства, такого как автомобиль или лодка, с камерой, снимающей сцену фильма. Как только движения транспортного средства известны, их можно использовать для определения постоянно меняющейся точки зрения для компьютерных изображений объектов ландшафта, таких как здания, так что эти объекты изменяются в перспективе, но сами по себе не кажутся движущимися, как транспортное средство. камера проходит мимо них.
Движение кинематической цепи , будь то робот или анимированный персонаж, моделируется уравнениями кинематики цепи. Эти уравнения определяют конфигурацию цепи с точки зрения ее совместных параметров. Прямая кинематика использует параметры соединения для расчета конфигурации цепи, а обратная кинематика меняет этот расчет, чтобы определить параметры соединения, обеспечивающие желаемую конфигурацию. [ 5 ] [ 6 ] [ 7 ]
Кинематический анализ
[ редактировать ]
Кинематический анализ — один из первых шагов при проектировании большинства промышленных роботов. Кинематический анализ позволяет проектировщику получить информацию о положении каждого компонента в механической системе. Эта информация необходима для последующего динамического анализа наряду с путями управления.
Обратная кинематика является примером кинематического анализа связанной системы твердых тел или кинематической цепи . Кинематические уравнения робота можно использовать для определения уравнений контура сложной шарнирной системы. Эти уравнения цикла представляют собой нелинейные ограничения на параметры конфигурации системы. Независимые параметры в этих уравнениях известны как степени свободы системы.
Хотя аналитические решения обратной задачи кинематики существуют для широкого спектра кинематических цепей, инструменты компьютерного моделирования и анимации часто используют метод Ньютона для решения уравнений нелинейной кинематики. [ 2 ] При попытке найти аналитическое решение часто бывает удобно использовать геометрию системы и разложить ее, используя подзадачи с известными решениями . [ 8 ] [ 9 ]
Другие приложения обратных кинематических алгоритмов включают интерактивное манипулирование , управление анимацией и предотвращение столкновений .
Обратная кинематика и 3D-анимация
[ редактировать ]Обратная кинематика важна для программирования игр и 3D-анимации , где она используется для физического соединения игровых персонажей с миром, например, когда ноги твердо приземляются на поверхность местности (см. [ 10 ] за всесторонний обзор методов обратной кинематики в компьютерной графике ).
Анимированная фигура моделируется каркасом из жестких сегментов, соединенных шарнирами, называемыми кинематической цепью . Уравнения кинематики фигуры определяют связь между углами сочленения фигуры и ее позой или конфигурацией. Задача прямой кинематической анимации использует уравнения кинематики для определения позы с учетом углов суставов. Обратная задача кинематики вычисляет углы суставов для желаемой позы фигуры.
Компьютерным дизайнерам, художникам и аниматорам зачастую проще определить пространственную конфигурацию сборки или фигуры, перемещая части или руки и ноги, а не напрямую манипулируя углами суставов. Поэтому инверсная кинематика используется в системах автоматизированного проектирования для анимации сборок, а также компьютерными художниками и аниматорами для позиционирования фигур и персонажей.
Сборка моделируется как жесткие звенья, соединенные соединениями, которые определяются как сопряжения или геометрические ограничения. Перемещение одного элемента требует вычисления углов соединения других элементов для сохранения ограничений соединения . Например, инверсная кинематика позволяет художнику перемещать руку трехмерной модели человека в желаемое положение и ориентацию, а также использовать алгоритм, выбирающий правильные углы запястья, локтя и плечевых суставов. Успешная реализация компьютерной анимации обычно также требует, чтобы фигура двигалась в разумных антропоморфических пределах.
Метод сравнения прямой и обратной кинематики анимации персонажа можно определить по преимуществам, присущим каждой из них. Например, блокирующая анимация, в которой используются большие дуги движения, часто более выгодна в прямой кинематике. Однако более точную анимацию и позиционирование целевого конечного эффектора по отношению к другим моделям может быть проще с использованием инвертированной кинематики. Современные пакеты цифрового создания (DCC) предлагают методы применения к моделям как прямой, так и обратной кинематики.
Аналитические решения обратной кинематики
[ редактировать ]В некоторых, но не во всех случаях существуют аналитические решения обратных кинематических задач. Одним из таких примеров является робот с 6 степенями свободы (DoF) (например, 6 вращающихся соединений), движущийся в трехмерном пространстве (с 3 степенями свободы положения и 3 степенями свободы вращения). Если степени свободы робота превышают степени свободы рабочего органа, например, у робота с 7 степенями свободы и 7 поворотными соединениями, то существует бесконечно много решений задачи ИК, а аналитического решения не существует. При дальнейшем расширении этого примера можно зафиксировать одно соединение и аналитически найти решение для других соединений, но, возможно, лучшее решение предлагают численные методы (следующий раздел), которые вместо этого могут оптимизировать решение с учетом дополнительных предпочтений (затрат в задаче оптимизации). ).
Аналитическое решение обратной задачи кинематики представляет собой выражение в замкнутой форме, которое принимает положение конечного эффектора в качестве входных данных и выдает положения суставов в качестве выходных данных. . Аналитические решатели обратной кинематики могут быть значительно быстрее, чем численные решатели, и обеспечивать более одного решения, но только конечное число решений для заданного положения конечного эффектора.
Множество различных программ (таких как FOSS программы IKFast и Inverse Kinematics Library ) способны быстро и эффективно решать эти задачи, используя различные алгоритмы, такие как решатель FABRIK . Одна из проблем с этими решателями заключается в том, что они, как известно, не обязательно дают локально гладкие решения между двумя соседними конфигурациями, что может вызвать нестабильность, если требуются итеративные решения обратной кинематики, например, если IK решается внутри высокоскоростного контура управления. .
Численные решения задач ИК
[ редактировать ]Существует множество методов моделирования и решения обратных задач кинематики. Наиболее гибкие из этих методов обычно полагаются на итеративную оптимизацию для поиска приближенного решения из-за сложности обращения уравнения прямой кинематики и возможности пустого пространства решения . Основная идея некоторых из этих методов заключается в моделировании уравнения прямой кинематики с использованием разложения в ряд Тейлора , которое проще инвертировать и решить, чем исходную систему.
Метод обратного якобиана
[ редактировать ]Техника обратной кинематики Якобиана — это простой, но эффективный способ реализации обратной кинематики. Пусть будет переменные, которые управляют уравнением прямой кинематики, то есть функцией положения. Этими переменными могут быть углы соединения, длины или другие произвольные действительные значения. Если, например, система ИК живет в трехмерном пространстве, функцию положения можно рассматривать как отображение . Позволять дать начальное положение системы, а
быть целевой позицией системы. Техника обратной якобиана итеративно вычисляет оценку что минимизирует ошибку, определяемую .
Для маленьких -векторов, разложение функции положения в ряд дает
- ,
где (3 × m) - матрица Якоби функции положения в точке .
(i, k)-й элемент матрицы Якобиана можно аппроксимировать численно
- ,
где дает i-ю компоненту функции положения, это просто с небольшой дельтой, добавленной к его k-му компоненту, и представляет собой достаточно небольшую положительную величину.
Взятие Мура-Пенроуза псевдообратного якобиана (вычислимого с использованием разложения по сингулярным значениям ) и перестановка членов приводит к
- ,
где .
Однократное применение обратного метода Якобиана приведет к очень грубой оценке желаемого значения. -вектор. поиск по строке . Для масштабирования этого следует использовать до приемлемого значения. Смета на можно улучшить с помощью следующего алгоритма (известного как метод Ньютона – Рафсона ):
Однажды какой-то -vector привел к тому, что ошибка упала почти до нуля, алгоритм должен завершиться. существующие методы, основанные на матрице Гессе системы, сходятся к желаемому результату. Сообщается, что значения с использованием меньшего количества итераций, однако в некоторых случаях требуется больше вычислительных ресурсов.
Эвристические методы
[ редактировать ]Обратная задача кинематики также может быть аппроксимирована эвристическими методами. Эти методы выполняют простые итеративные операции, постепенно приводящие к аппроксимации решения. Эвристические алгоритмы имеют низкие вычислительные затраты (очень быстро возвращают конечную позу) и обычно поддерживают совместные ограничения. Наиболее популярными эвристическими алгоритмами являются циклический спуск по координатам (CCD). [ 11 ] а также инверсная кинематика вперед и назад (FABRIK). [ 12 ]
См. также
[ редактировать ]- 321 кинематическая структура
- Решение для рук
- Кинематическая анимация вперед
- Передняя кинематика
- Матрица Якобиана и определитель
- Совместные ограничения
- Кинематический синтез
- Кинемация
- Алгоритм Левенберга – Марквардта
- Захват движения
- Физический движок
- Псевдообратный
- Рэгдолл физика
- Кинематика робота
- Параметры Денавита–Хартенберга
Ссылки
[ редактировать ]- ^ Дональд Л. Пипер, Кинематика манипуляторов под компьютерным управлением . Докторская диссертация, Стэнфордский университет, факультет машиностроения, 24 октября 1968 г.
- ^ Перейти обратно: а б с Линч, Кевин М.; Парк, Фрэнк К. (25 мая 2017 г.). Современная робототехника . Издательство Кембриджского университета. ISBN 978-1-107-15630-2 .
- ^ Сицилиано, Бруно; Хатиб, Усама (27 июня 2016 г.). Справочник Спрингера по робототехнике . Международное издательство Спрингер. ISBN 978-3-319-32550-7 .
- ^ Пол, Ричард (1981). Роботы-манипуляторы: математика, программирование и управление: компьютерное управление роботами-манипуляторами . MIT Press, Кембридж, Массачусетс. ISBN 978-0-262-16082-7 .
- ^ Дж. М. Маккарти, 1990, Введение в теоретическую кинематику, MIT Press, Кембридж, Массачусетс.
- ^ Дж. Дж. Уикер, Г. Р. Пеннок и Дж. Э. Шигли, 2003, Теория машин и механизмов, Oxford University Press, Нью-Йорк.
- ^ Дж. М. Маккарти и Г. С. Со, 2010, Геометрический дизайн связей, Спрингер, Нью-Йорк.
- ^ Паден, Брэдли Эван (1 января 1985 г.). Кинематика и управление роботами-манипуляторами (Диссертация). Бибкод : 1985PhDT........94P .
- ^ Мюррей, Ричард М.; Ли, Цзэсян; Састри, С. Шанкар; Шастри, С. Шанкара (22 марта 1994 г.). Математическое введение в роботизированные манипуляции . ЦРК Пресс. ISBN 978-0-8493-7981-9 .
- ^ А. Аристиду, Дж. Ласенби, Ю. Хрисанту, А. Шамир. Методы обратной кинематики в компьютерной графике: обзор . Форум компьютерной графики, 37(6): 35-58, 2018.
- ^ Д. Г. Люенбергер. 1989. Линейное и нелинейное программирование. Эддисон Уэсли.
- ^ А. Аристиду и Дж. Ласенби. 2011. FABRIK: Быстрый итеративный решатель обратной задачи кинематики . График. Модели 73, 5, 243–260.
Внешние ссылки
[ редактировать ]- Обратная кинематика прямого и обратного движения (FABRIK)
- Робототехника и 3D-анимация в FreeBasic (на испанском языке)
- Аналитический решатель обратной кинематики — на основании описания кинематики робота OpenRAVE генерирует файл C++, который аналитически решает полный IK.
- Алгоритмы обратной кинематики
- Решение Robot Inverse для стандартной геометрии робота
- Статья HowStuffWorks.com Как персонажи в видеоиграх двигаются так плавно? с объяснением обратной кинематики
- 3D-анимации расчета геометрической обратной кинематики промышленного робота
- 3D-теория кинематики
- Обратная кинематика белка
- Простой пример обратной кинематики с исходным кодом, использующим якобиан
- Подробное описание якобиана и ПЗС-решений для обратной кинематики.
- Autodesk HumanIK
- 3D-визуализация аналитического решения промышленного робота