Назад в библиотеку

Кинематический анализ и моделирование робота ABB на основе MATLAB

Авторы: W. Shen, H. Cheng
Автор перевода: А.В. Лабеев
Источник:2019 International Conference on Intelligent Computing, Automation and Systems (ICICAS) — pp. 910–912

Аннотация

Wei Shen, Hongjia Cheng Кинематический анализ и моделирование робота ABB на основе MATLAB.
Для того чтобы улучшить точность управления манипулятором, в качестве примера был взят робот ABB IRB 1410, для анализа используются D-H представление, получены решения прямой и обратной задач кинематики с помощью MATLAB. Рабочее пространство робота вычисляется с помощью программного обеспечения MATLAB, а траектория планируется.



1. Введение

Робот IRB 1410, разработанный компанией ABB, представляет собой робота с шестью степенями свободы, все из которых являются поворотными шарнирами, как показано на рис. 1. грузоподъемность схвата составляет 5 кг; предплечье обеспечивает дополнительную грузоподъемность в 18 кг, которая может быть использована для закрепления различного технологического оборудования. IRB 1410 имеет большой рабочий диапазон, компактную конструкцию и очень компактный схват[1]. Даже в местах с неблагоприятными условиями и многими ограничениями все равно может добиться высокой производительности. Его внешний вид и рабочий диапазон показаны на рисунке 1.

Рис. 1. Габаритные размеры робота IRB 1410

Рис. 1. Габаритные размеры робота IRB 1410

2. Прямая задача кинематики

Разработка D–H модели робота

Чтобы изучить кинематику робота, начальное положение должно быть определено, а системы координат каждого сочленения робота IRB 1410 должны быть установлены так, как показано на рисунке 2. Принцип установки D–H системы следующий: за основу принимается пересечение n и n+1 осей. Zn совпадает с n+1 звеном в любом направлении; ось Xn направлена от оси n к перпендикуляру n+1 оси; ось Yn устанавливается в соответствие с правосторонней системе координат. В соответствие с установленными системами координат и параметры D–H представления высчитываются как это показано в таблице 1. Согласно этой таблице выводятся правила прямой задачи кинематики. Среди них угол поворота Θn звена — это угол, на который нужно повернуть Zn-1 ось, чтобы сделать ось Xn-1 параллельной оси Xn; смещение Dn звена — это такой сдвиг звена вдоль оси Zn-1, чтобы оси Xn-1 и Xn совпадали; длина An — это сдвиг оси Xn таким образом, чтобы начала координат двух систем совпадали; угол α — это угол, на который нужно повернуть звено вокруг оси Xn, чтобы системы координат Zn-1 и Zn стали сонаправленными[2].

Рис.2. Системы координат роботаIRB 1410

Рис.2. Системы координат роботаIRB 1410

Таблица 1 — Параметры D–H представления

Сочленение n Θ/° d/мм a/мм α/° Диапазон движения/°
1 90 475 170 -90 -170..170
2 90 0 600 0 -70..65
3 0 0 120 -90 -65..70
4 0 805 0 90 -150..150
5 -90 0 0 90 -115..115
6 90 0 0 0 -300..300

Анализ прямой кинематики

IRB 1410 — это промышленный робот с шестью степенями свободы. Его кинематика может быть решена с помощью преобразования координат между шестью звеньями и умножения полученных матриц. Матрица преобразования An может быть получена из параметров D–H представления (таблица 1). Эта матрица выглядит следующим образом:

Матрица преобразования

Умножая матрицы от A1 до A6 конечное положение манипулятора определяется выражением: T6=A1A2A3A4A5A6. Так как результат конечной матрицы слишком сложен, он не показан тут[3]. Программа в Matlab, позволяющая получить данную матрицу представлена ниже.


syms theta1 theta2 theta3 theta4 theta5 theta6;
syms d1 d2 d3 d4 d5 d6;syms a1 a2 a3 a4 a5 a6;
syms alpha1 alpha2 alpha3 alpha4 alpha5 alpha6;
d1=475;d2=0;d3=0;d4=805;d5=0;d6=0;a1=170;a2=600;
a3=120;a4=0;a5=0;a6=0;
alpha1=-pi/2;alpha2=0;alpha3=-pi/2;alpha4=pi/2;alpha5 =pi/2;alpha6=0;
T1=trotz(theta1+pi/2)*transl(a1,0,d1)*trotx(alpha1);
T2=trotz(theta2+pi/2)*transl(a2,0,d2)*trotx(alpha2);
T3=trotz(theta3+0)*transl(a3,0,d3)*trotx(alpha3);
T4=trotz(theta4+0)*transl(a4,0,d4)*trotx(alpha4);
T5=trotz(theta5-pi/2)*transl(a5,0,d5)*trotx(alpha5);
T6=trotz(theta6+pi/2)*transl(a6,0,d6)*trotx(alpha6);
T=T1*T2*T3*T4*T5*T6

Анализ обратной кинематики

Обратная задача кинематики состоит в том, чтобы зная положение рабочего органа манипулятора в пространстве, узнать значения углов поворота для каждого сочленения. Процесс расчета достаточно сложен [4]. Для решения был использован программный пакет Matlab. Программа, позволяющая находить решение обратной задачи кинематики представлена ниже.


l1=Link([pi/2 0.475 0.17 -pi/2]);l2=Link([pi/2 0 0.6
0]);l3=Link([0 0 0.12 -pi/2]);
l4=Link([0 0.805 0 pi/2]);l5=Link([-pi/2 0 0
pi/2]);l6=Link([pi/2 0 0 0]);
irb1410=SerialLink([l1 l2 l3 l4 l5 l6]); % building
robot mathematical model
q1=[0 0 0 0 0 0];
T1=irb1410.fkine(q1) % positive solution
q1=irb1410.ikine(T1)
t=0:0.2:2;T2=transl(0.89,0,-0.33);T=ctraj(T1,T2,length(t
));Q=irb1410.ikine(T)

Кинематический анализ робота IRB 1410

В процессе движения необходимо знать положение, скорость и ускорения каждого звена. Для построения конструкции манипулятора использовался Matlab. Программа для создания конструкции в расширении Robotics Toolbox представлена ниже.


L1=Link([pi/2 0.475 0.17 -pi/2 0],'modified');L2=Link([pi/2 0 0.6 0 0],'modified');
L3=Link([0 0 0.12 -pi/2 0],'modified');L4=Link([0 0.805
0 pi/2 0],'modified');
L5=Link([-pi/2 0 0 pi/2 0],'modified');L6=Link([pi/2 0 0
0 0],'modified');
r=SerialLink([L1,L2,L3,L4,L5,L6]);r.name='IRB1410';
theta=[0 0 0 0 0 0];
r.plot(theta);
qA=[0,0,0,0,0,0];
qB=[2,-1,-0.25,0,0,0];
t=[0:0.1:10];
[q,qd,qdd]=jtraj(qA,qB,t);
plot(r,q)

Благодаря написанной программе можно определить как начальное, так и конечное положение манипулятора. Это представлено на рисунках 3 и 4.

Рис.3. Начальное положение манипулятора

Рис.3. Начальное положение манипулятора

Рис.4. Конечное положение манипулятора

Рис.4. Конечное положение манипулятора


figure
subplot(1,3,1)
plot(t,q(:,3))
xlabel('t/s');ylabel('Angular displacement of
joint/rad');grid on
subplot(1,3,2)
plot(t,qd(:,3))
xlabel('t/s');ylabel(' Angular velocity of joint/rad');grid
subplot(1,3,3)
plot(t,qdd(:,3))
xlabel('t/s');ylabel(' Angular acceleration of
joint/rad');grid on

Программа выше иллюстрирует зависимость положения, скорости и ускорения третьего сочленения от времени. Графики показаны на рисунке 5.

Рис.5. Полученные графики

Рис.5. Полученные графики

3. Рабочая область манипулятора

Рабочая область манипулятора определяется набором точек, до которых может достать рабочий орган. В данной статье использовалось расширение Robotics Toolbox пакета Matlab, чтобы наглядно показать рабочую область манипулятора.


syms theta1 theta2 theta3 theta4 theta5 theta6;syms d1
d2 d3 d4 d5 d6;
syms a1 a2 a3 a4 a5 a6;syms alpha1 alpha2 alpha3
alpha4 alpha5 alpha6;
d1=475;d2=0;d3=0;d4=805;d5=0;d6=0;a1=170;a2=600;
a3=120;a4=0;a5=0;a6=0;
alpha1=-pi/2;alpha2=0;alpha3=-pi/2;alpha4=pi/2;alpha5
=pi/2;alpha6=0;
T1=trotz(theta1+pi/2)*transl(a1,0,d1)*trotx(alpha1);
T2=trotz(theta2+pi/2)*transl(a2,0,d2)*trotx(alpha2);
T3=trotz(theta3+0)*transl(a3,0,d3)*trotx(alpha3);
T4=trotz(theta4+0)*transl(a4,0,d4)*trotx(alpha4);
T5=trotz(theta5-pi/2)*transl(a5,0,d5)*trotx(alpha5);
T6=trotz(theta6+pi/2)*transl(a6,0,d6)*trotx(alpha6);
T=T1*T2*T3*T4*T5*T6
x=T(1,4);y=T(2,4);z=T(3,4);
step=50*pi/180;
for theta1=-170*pi/180:step:170*pi/180;for
theta2=-70*pi/180:step:65*pi/180;
for theta3=-65*pi/180:step:70*pi/180;for
theta4=-150*pi/180:step:150*pi/180;
for theta5=-115*pi/180:step:115*pi/180;for
theta6=-300*pi/180:step:300*pi/180;
x=T(1,4);y=T(2,4);z=T(3,4);
plot3(x,y,z,'*');
hold on;grid on;
end
end
end
end
end
end

Результат выполнения программы показан на рисунке 6.

Рис.6. Рабочая область манипулятора

Рис.6. Рабочая область манипулятора

4. Выводы

В данной статье были найдены параметры D–H представления для промышленного манипулятора IRB 1410 фирмы ABB. Были решены прямая и обратная задачи кинематики с помощью программного пакета Matlab. Проведен детальный анализ кинематики робота. Получены графики положения, скорости и перемещения для одного из звеньев.

Список литературы

1. Choset. Principles of Robot Motion: Theory, Algorithms, and Implementations[J]. Proceedings of the Society for Experimental Biology & Medicine Society for Experimental Biology & Medicine, 2005, 147(1):512–512.
2. P.P.L. Regtien. Sensor systems for robot control[J]. Sensors and Actuators, 17(1-2):91–101.
3. Sabatier, F, De Vivo, A, Vialle, S. [IEEE Comput. Soc Thirteenth IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises — Modena, Italy (14-16 June 2004)] 13th IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative[J]. :358–363.
4. Apoorva, Deepak, Kapadia, et al. A New Approach to Extensible Continuum Robot Control Using the Sliding-Mode[J]. Computer technology and application: English, 2011(4):293–300.
5. J. A. Becerra, F. Bellas, J. Santos, et al. Complex Behaviours Through Modulation in Autonomous Robot Control[J]. 2005, 3512:449–472.
6. Zhang, Haijie, Zhao, Jianguo. Bio-inspired vision based robot control using featureless estimations of time-to-contact[J]. Bioinspiration & Biomimetics, 12(2):025001.
7. Sampei, M, Furuta, K. Robot control in the neighborhood of singular points[J]. IEEE Journal of Robotics and Automation, 4(3):303–309.