Выполните траекторию преобразования Используя манипулятор и инверсную кинематику

Этот пример показывает, как сгенерировать траекторию преобразования с помощью блока Transform Trajectory и выполнить его для робота манипулятора с помощью инверсной кинематики.

Сгенерируйте два однородных преобразования для запуска и конечных точек траектории.

tform1 = trvec2tform([0.25 -0.25 1])
tform1 = 4×4

    1.0000         0         0    0.2500
         0    1.0000         0   -0.2500
         0         0    1.0000    1.0000
         0         0         0    1.0000

tform2 = trvec2tform([0.25 0.25 0.5])
tform2 = 4×4

    1.0000         0         0    0.2500
         0    1.0000         0    0.2500
         0         0    1.0000    0.5000
         0         0         0    1.0000

Импортируйте модель робота и задайте формат данных для Simulink®.

robot = importrobot('iiwa14.urdf');
robot.DataFormat = 'column';
show(robot);

Откройте модель. Блок Transform Trajectory интерполирует между начальным и итоговым преобразованием, заданным в маске блока. Эти преобразования питаются блок Inverse Kinematics, чтобы решить для настройки робота, которая заставляет исполнительный элемент конца достигнуть желаемого преобразования. Настройки выводятся к рабочей области как configurations.

open_system('transform_traj_ex1.slx')

Запустите симуляцию и получите настройки робота.

simOut = sim('transform_traj_ex1.slx');

Покажите настройки робота, чтобы анимировать робота, проходящего траекторию.

for i = 1:numel(simOut.configurations/7)
    currConfig = simOut.configurations(:,:,i);
    show(robot,currConfig);
    drawnow
end