Создайте решение обратной кинематики
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