forwardDynamics

Ускорения соединений по данным моментов в соединениях и состояний

Описание

jointAccel = forwardDynamics(robot) вычисляет объединенные ускорения из-за силы тяжести в роботе домашняя настройка, с нулевыми объединенными скоростями и никакими внешними силами.

jointAccel = forwardDynamics(robot,configuration) также задает объединенные положения настройки робота.

Чтобы задать домашнюю настройку, нулевые объединенные скорости или нулевые крутящие моменты, используют [] для того входного параметра.

jointAccel = forwardDynamics(robot,configuration,jointVel) также задает объединенные скорости робота.

jointAccel = forwardDynamics(robot,configuration,jointVel,jointTorq) также указывает, что объединенные крутящие моменты применились к роботу.

пример

jointAccel = forwardDynamics(robot,configuration,jointVel,jointTorq,fext) также задает внешнюю матрицу силы, которая содержит силы, применился к каждому соединению.

Примеры

свернуть все

Вычислите результирующие объединенные ускорения для данной настройки робота с прикладывавшими внешними силами, и обеспечивает из-за силы тяжести. Ключ применяется к определенному телу с силой тяжести, задаваемой для целого робота.

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

load exampleRobots.mat lbr

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

lbr.DataFormat = 'row';

Установите силу тяжести. По умолчанию сила тяжести принята, чтобы быть нулем.

lbr.Gravity = [0 0 -9.81];

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

q = homeConfiguration(lbr);

Задайте вектор ключа, который представляет внешние силы, испытанные роботом. Используйте externalForce функция, чтобы сгенерировать внешнюю матрицу силы. Задайте модель робота, исполнительный элемент конца, который испытывает ключ, вектор ключа и текущую настройку робота. wrench дан относительно 'tool0' система координат тела, которая требует, чтобы вы задали настройку робота, q.

wrench = [0 0 0.5 0 0 0.3];
fext = externalForce(lbr,'tool0',wrench,q);

Вычислите результирующие объединенные ускорения из-за силы тяжести с внешней силой, к которой применяются исполнительный элемент конца 'tool0' когда lbr в его домашней настройке. Объединенные скорости и объединенные крутящие моменты приняты, чтобы быть нулем (вход как пустой вектор []).

qddot = forwardDynamics(lbr,q,[],[],fext);

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

свернуть все

Модель Robot в виде rigidBodyTree объект. Использовать forwardDynamics функция, набор DataFormat свойство к любому 'row' или 'column'.

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

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

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

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

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

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

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

свернуть все

Объединенные ускорения, возвращенные как вектор. Размерность объединенного ускоряющего вектора равна степеням свободы робота. Каждый элемент соответствует определенному соединению на robot.

Ссылки

[1] Featherstone, Рой. Алгоритмы Динамики Твердого тела. Спрингер УС, 2008. DOI.org (Crossref), doi:10.1007/978-1-4899-7560-7.

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

Введенный в R2017a