exponenta event banner

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 , установите 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. 'row' формат данных использует матрицу n-by-6. 'column' формат данных использует 6 на n.

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

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

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

свернуть все

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

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

.
Представлен в R2017a