Создайте решение обратной кинематики
inverseKinematics Система object™ создает решатель кинематической инверсии (IK), чтобы вычислить объединенные настройки для желаемого положения исполнительного элемента конца на основе заданной модели дерева твердого тела. Создайте модель дерева твердого тела для своего робота с помощью rigidBodyTree класс. Эта модель задает все объединенные ограничения, которые осуществляет решатель. Если решение возможно, объединенным пределам, заданным в модели робота, выполняют.
Чтобы задать больше ограничений помимо положения исполнительного элемента конца, включая стремление ограничений, границы положения или цели ориентации, рассматривают использование generalizedInverseKinematics. Этот класс позволяет вам вычислять мультиограничение решения IK.
Вычислить объединенные настройки для желаемого положения исполнительного элемента конца:
Создайте inverseKinematics объект и набор его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
создает обратный кинематический решатель. Чтобы использовать решатель, задайте модель дерева твердого тела в ik = inverseKinematicsRigidBodyTree свойство.
создает обратный кинематический решатель с дополнительными опциями, заданными одним или несколькими ik = inverseKinematics(Name,Value)Name,Value парные аргументы. Name имя свойства и Value соответствующее значение. Name должен появиться в одинарных кавычках (''). Можно задать несколько аргументов пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN.
[ находит объединенную настройку, которая достигает заданного положения исполнительного элемента конца. Задайте исходное предположение для настройки и ваших желаемых весов на допусках к шести компонентам configSol,solInfo]
= ik(endeffector,pose,weights,initialguess)pose. Информация о решении, связанная с осуществлением алгоритма, solInfo, возвращен с объединенным решением для настройки, configSol.
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:
release(obj)
[1] Badreddine, Хасан, Стефан Вэндьюалл и Йохан Мейерс. "Последовательное квадратичное программирование (SQP) для Оптимального управления в Прямой Числовой Симуляции Турбулентного течения". Журнал Вычислительной Физики. 256 (2014): 1–16. doi:10.1016/j.jcp.2013.08.044.
[2] Bertsekas, нелинейное программирование Димитри П. Белмонт, MA: научная Афина, 1999.
[3] Goldfarb, Дональд. "Расширение Переменного Метрического Метода Дэвидона к Максимизации Под Линейным Неравенством и Ограничениями равенства". SIAM Journal на Прикладной математике. Издание 17, № 4 (1969): 739–64. doi:10.1137/0117067.
[4] Nocedal, Хорхе и Стивен Райт. Числовая оптимизация. Нью-Йорк, Нью-Йорк: Спрингер, 2006.
[5] Sugihara, Tomomichi. "Беззаботная к разрешимости Инверсная кинематика Методом Levenberg–Marquardt". Транзакции IEEE на Издании 27 Робототехники, № 5 (2011): 984–91. doi:10.1109/tro.2011.2148230.
[6] Чжао, Jianmin и Норман Ай. Бэдлер. "Расположение Инверсной кинематики Используя Нелинейное программирование для Высоко Ясно сформулированных фигур". Транзакции ACM на Графическом Издании 13, № 4 (1994): 313–36. doi:10.1145/195826.195827.
generalizedInverseKinematics | rigidBody | rigidBodyJoint | rigidBodyTree