inverseDynamics

Необходимые усилия в соединениях для данного движения

Описание

jointTorq = inverseDynamics(robot) вычисляет моменты в соединениях, необходимые для статического удержания роботом своего исходного строения без приложенных внешних сил.

пример

jointTorq = inverseDynamics(robot,configuration) вычисляет моменты в соединениях, чтобы удержать указанное строение робота.

jointTorq = inverseDynamics(robot,configuration,jointVel) вычисляет моменты в соединениях для заданного строения соединений и скорости с нулевым ускорением и без внешних сил.

jointTorq = inverseDynamics(robot,configuration,jointVel,jointAccel) вычисляет моменты в соединениях для заданного строения соединений, скоростей и ускорений без внешних сил. Чтобы задать домашнее строение, нулевые скорости соединений или нулевые ускорения, используйте [] для этого входного параметра.

jointTorq = inverseDynamics(robot,configuration,jointVel,jointAccel,fext) вычисляет моменты в соединениях для заданного строения соединений, скоростей, ускорений и внешних сил. Используйте externalForce функция для генерации fext.

Примеры

свернуть все

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

Загрузите предопределенную модель робота KUKA LBR, которая задается как RigidBodyTree объект.

load exampleRobots.mat lbr

Установите формат данных равным 'row'. Для всех динамических вычислений формат данных должен быть либо 'row' или 'column'.

lbr.DataFormat = 'row';

Установите Gravity свойство задать удельное ускорение свободного падения.

lbr.Gravity = [0 0 -9.81];

Сгенерируйте случайное строение для lbr.

q = randomConfiguration(lbr);

Вычислите необходимые моменты в соединениях для lbr для статического удержания этого строения.

tau = inverseDynamics(lbr,q);

Используйте externalForce функция для генерации матриц сил для применения к модели древовидного твердого тела. Матрица сил является вектором m на 6, который имеет строку для каждого соединения на роботе, чтобы применить шестиэлементный ключ. Используйте externalForce и задайте конечный эффектор, чтобы правильно назначить ключ правильной строке матрицы. Можно добавить несколько матриц сил вместе, чтобы применить несколько сил к одному роботу.

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

Загрузите предопределенную модель робота KUKA LBR, которая задается как RigidBodyTree объект.

load exampleRobots.mat lbr

Установите формат данных равным 'row'. Для всех динамических вычислений формат данных должен быть либо 'row' или 'column'.

lbr.DataFormat = 'row';

Установите Gravity свойство задать удельное ускорение свободного падения.

lbr.Gravity = [0 0 -9.81];

Получите домашнее строение для lbr.

q = homeConfiguration(lbr);

Установите внешнюю силу на link1. Вход ключа выражен в базовой системе координат.

fext1 = externalForce(lbr,'link_1',[0 0 0.0 0.1 0 0]);

Установите внешнюю силу на концевой эффектор, tool0. Входной вектор ключа выражен в tool0 система координат.

fext2 = externalForce(lbr,'tool0',[0 0 0.0 0.1 0 0],q);

Вычислите моменты в соединениях, необходимые для балансировки внешних сил. Чтобы объединить силы, добавьте матрицы сил вместе. Скорости и ускорения соединений приняты равными нулю (вход как []).

tau = inverseDynamics(lbr,q,[],[],fext1+fext2);

Входные параметры

свернуть все

Модель робота, заданная как rigidBodyTree объект. Как использовать inverseDynamics function, установите DataFormat свойство любому из 'row' или 'column'.

Строение робота, заданная как вектор с положениями для всех нефиксованных соединений в модели робота. Вы можете сгенерировать строение, используя homeConfiguration(robot), randomConfiguration(robot)или путем определения собственных положений соединений. Как использовать вектор форму configuration, установите DataFormat свойство для robot к любому из 'row' или 'column' .

Скорости соединений, заданные как вектор. Количество скоростей соединений равно степеням свободы скорости робота. Как использовать вектор форму jointVel, установите DataFormat свойство для robot к любому из 'row' или 'column' .

Ускорения соединений, возвращенные как вектор. Размерность вектора ускорений соединений равна скорости степеням свободы робота. Каждый элемент соответствует определенному соединению на robot. Как использовать вектор форму jointAccel, установите DataFormat свойство для robot к любому из 'row' или 'column' .

Матрица внешних сил, заданная как n -by-6 или 6-by- n матрица, где n - степени свободы скорости робота. Форма зависит от DataFormat свойство robot. The 'row' формат данных использует матрицу n -by-6. The 'column' формат данных использует 6-бай- n.

Матрица приводит только значения, отличные от нуля, в местоположениях, относящихся к заданному телу. Можно добавить матрицы сил вместе, чтобы задать несколько сил на нескольких телах.

Чтобы создать матрицу для заданной силы или крутящего момента, смотрите externalForce.

Выходные аргументы

свернуть все

Моменты в соединениях, возвращенные как вектор. Каждый элемент соответствует крутящему моменту, приложенному к конкретному соединению.

Расширенные возможности

.
Введенный в R2017a
Для просмотра документации необходимо авторизоваться на сайте