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