taskSpaceMotionModel

Модель движения древовидного твердого тела для заданных входных параметров в лабораторной системе координат

Описание

taskSpaceMotionModel объектные модели движение пробела задачи с обратной связью манипулятора в виде объекта дерева твердого тела. Поведение модели движения задано свойством MotionType.

Создание

Описание

motionModel = taskSpaceMotionModel создает модель движения для 2D объединенного манипулятора по умолчанию.

motionModel = taskSpaceMotionModel("RigidBodyTree",tree) создает модель движения для заданного rigidBodyTree объект.

пример

motionModel = taskSpaceMotionControlModel(Name,Value) дополнительные свойства наборов, заданные как пары "имя-значение". Можно задать несколько свойств в любом порядке.

Свойства

развернуть все

Модель робота дерева твердого тела в виде rigidBodyTree объект, который задает инерционные и кинематические свойства манипулятора.

Это свойство задает тело, которое будет использоваться в качестве исполнительного элемента конца, и для которого задано движение пробела задачи. Свойство должно соответствовать имени тела в rigidBodyTree объект свойства RigidBodyTree. Если дерево твердого тела обновляется, также не обновляя исполнительный элемент конца, тело с самым высоким индексом становится корпусом исполнительного элемента конца по умолчанию.

Пропорциональная составляющая для PD управляет в виде 6 6 матрица.

Производное усиление для пропорциональной производной (PD) управляет в виде 6 6 матрица.

Соединение, ослабляющее постоянный в виде n - вектор элемента, где n является количеством нефиксированных соединений в модели робота, заданной свойством RigidBodyTree. Модули затухания соединения являются N / (m/s) или N / (rad/s) для призматических и шарнирных соединений, соответственно.

Тип движения в виде "PDControl", который использует управление пропорциональной производной (PD), сопоставленное с соединениями через якобиан - Транспонируют контроллер. Управление основано на заданных свойствах Kp и Kd.

Функции объекта

derivativeПроизводная времени состояний модели манипулятора
updateErrorDynamicsFromStepОбновите значения NaturalFrequency и DampingRatio свойства, данные желаемый переходной процесс

Примеры

свернуть все

В этом примере показано, как создать и использовать taskSpaceMotionModel объект для манипулятора манипулятора на пробеле задачи.

Создайте робота

robot = loadrobot("kinovaGen3","DataFormat","column","Gravity",[0 0 -9.81]);

Настройте симуляцию

Установите отрезок времени составлять 1 секунду с размером такта 0,02 секунд. Установите начальное состояние на домашнюю настройку робота со скоростью нуля.

tspan = 0:0.02:1;
initialState = [homeConfiguration(robot);zeros(7,1)];

Задайте ссылочное состояние с целевым положением и обнулите скорость.

refPose = trvec2tform([0.6 -.1 0.5]);
refVel = zeros(6,1);

Создайте модель движения

Смоделируйте поведение как систему под управлением пропорциональной производной (PD).

motionModel = taskSpaceMotionModel("RigidBodyTree",robot,"EndEffectorName","EndEffector_Link");

Симулируйте робота

Симулируйте поведение более чем 1 второе использование жесткого решателя, чтобы более эффективно получить робота dynamics. Используя ode15s включает более высокую точность вокруг областей с высоким показателем изменения.

[t,robotState] = ode15s(@(t,state)derivative(motionModel,state,refPose,refVel),tspan,initialState);

Постройте ответ

Постройте исходное положение робота и отметьте цель X.

figure
show(robot,initialState(1:7));
hold all
plot3(refPose(1,4),refPose(2,4),refPose(3,4),"x","MarkerSize",20)

Наблюдайте ответ путем графического вывода робота в цикле на 5 Гц.

r = rateControl(5);
for i = 1:size(robotState,1)
    show(robot,robotState(i,1:7)',"PreservePlot",false);
    waitfor(r);
end

Figure contains an axes. The axes contains 26 objects of type line, patch. These objects represent base_link, Shoulder_Link, HalfArm1_Link, HalfArm2_Link, ForeArm_Link, Wrist1_Link, Wrist2_Link, Bracelet_Link, EndEffector_Link, Shoulder_Link_mesh, HalfArm1_Link_mesh, HalfArm2_Link_mesh, ForeArm_Link_mesh, Wrist1_Link_mesh, Wrist2_Link_mesh, Bracelet_Link_mesh, base_link_mesh.

Ссылки

[1] Крэйг, Джон Дж. Введение в робототехнику: механика и управление. Верхний Сэддл-Ривер, NJ: образование Пирсона, 2005.

[2] Spong, Марк В., Сет Хатчинсон и Матукумалли Видйязагар. Моделирование робота и управление. Хобокен, NJ: Вайли, 2006.

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

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