Этот пример показывает, как сгенерировать траекторию преобразования с помощью блока 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