exponenta event banner

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) также задает внешнюю матрицу сил, которая содержит силы, приложенные к каждому соединению.

Примеры

свернуть все

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

Загрузите предварительно определенную модель робота KUKA LBR, которая указана как 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);

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

свернуть все

Модель робота, заданная как 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-by-n, где n - число тел робота. Форма зависит от DataFormat имущество robot. 'row' формат данных использует матрицу n-by-6. 'column' формат данных использует 6 на n.

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

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

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

свернуть все

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

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

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