Главная страница
Навигация по странице:

  • Параметры РО для каждого цикла манипулирования

  • Результаты решения обратной задачи: Рис. 8

  • Рис.

  • Рис. 1

  • Робототехника. Выполнение работы


    Скачать 0.71 Mb.
    НазваниеВыполнение работы
    АнкорРобототехника
    Дата03.03.2021
    Размер0.71 Mb.
    Формат файлаdocx
    Имя файлаLab_obratnaya_zadacha.docx
    ТипДокументы
    #181465

    Цель работы: изучить предложенную методику решения обратной задачи о положении манипулятора для конкретных кинематических схем. На основании проведенного машинного эксперимента определить программную траекторию робота.
    Выполнение работы

    Рассмотрим промышленный робот фирмы KUKA - KR 120 R3200 PA (Quantec)для укладки листового стекла с тележки на рольганг.



    рис. 1. Внешний вид KUKA KR 120 R3200 PA (Quantec)

    Спецификация робота:





    рис. 2. Геометрические размеры промышленного робота

    Таблица 1

    A

    B

    C

    D

    E

    F

    G

    H

    3509 mm

    2845 mm

    3195 mm

    350 mm

    675 mm

    1350 mm

    2215 mm

    1220 mm




    рис. 3. Кинематическая схема промышленного робота

    Кинематическая схема данного робота соответствует кинематической схеме №4.



    рис. 4. Кинематическая схема №4.

    l1 =675 мм, l2 = 1350 мм, l3=1220 мм, l4=280 мм.

    -185º ≤q1≤ 185º

    -140º ≤q2≤-5º

    0º ≤q3≤150º

    -135º ≤q4≤135º

    -350º ≤q5≤350º
    Таблица 2

    Характеристики объекта манипулирования

    Габаритные размеры стекла, мм

    Масса одного листа, кг

    Количество листов в пирамиде

    Длина, l

    Ширина, t

    Толщина, h

    753

    621

    5,5

    6,4

    60

    Таблица 3

    Установочные размеры

    Уровень тележки
    а, мм

    Расстояние от оси робота до пирамиды
    b, мм

    Уровень рольганга
    с, мм

    Расстояние от оси робота до рольганга
    d, мм

    Уровень опускания стекла
    е, мм

    Угол наклона стекла в пирамиде
    α

    500

    1100

    850

    1120

    2,5

    75



    α


    рис. 5.Схема расположения стекла на тележке



    Матрицы перехода между системами координат

    1)Переход от 5-й к4-ой системе:

    Rot Z q5 + Trans Y l4 + Rot X (-π/2)


    2)Переход от 4-й системы к 3-й:

    Rot Z q4 + Trans Y l3



    3)Переход от 3-й ко2-й:

    RotZq3 + TransYl2



    4)Переход от 2-й системы к 1-й:

    Rot Z q2+Rot Y (π/2) + Trans Y p1 + Trans Z l1+Rot Z q1



    Параметры РО для каждого цикла манипулирования:

    1. Захват стекла.



    1. Отрыв листа от стопы



    1. Подъем листа на высоту рольганга



    1. Ориентация



    1. Положение после поворота



    1. Опускание на рольганг



    Решение обратной задачи:














    Результаты решения обратной задачи:



    Рис. 8.Захват стекла



    Рис. 10.Отрыв стекла



    Рис. 12.Подъем стекла



    Рис. 9.Захват стекла



    Рис. 11.Отрыв стекла



    Рис. 13.Подъем стекла



    Рис. 14.Ориентация



    Рис. 16.Положение после поворота



    Рис. 18.Опускание на рольганг



    Рис. 15.Ориентация



    Рис. 17.Положение после поворота



    Рис. 19.Опускание на рольганг

    Таблица 4.

    Результаты решения обратной задачи

    q1

    q2

    q3

    q4

    q5

    0

    13.21562

    -136.3302

    -44.54592

    180

    0

    6.65271

    -145.4625

    -47.11525

    180

    0

    -4.46547

    -166.5588

    -72.0934

    -90

    0

    -14.2011

    -105.1058

    87.4801

    0

    90

    -14.2011

    -147.9575

    46.24355

    90

    90

    24.19833

    -105.1717

    50.6300

    90


    Таблица 5

    Приведенная погрешность, %

    Значение обобщенных координат, град

    Координаты схвата, мм

    погрешность позиционирования

    q1

    q2

    q3

    q4

    q5

    X

    Y

    Z

    0

    90

    24,19833

    -105,172

    50,62996

    90

    8,08E-14

    1496,5

    852,5

    0

    1

    90,9

    24,4403

    -106,0519

    50,0028

    89,9910

    -23,3087

    1483,7560

    831,8395

    33,653541

    2

    91,8

    24,6823

    -106,9331

    49,3523

    89,9643

    -46,2086

    1470,3825

    811,4646

    67,091444

    3

    92,7

    24,9243

    -107,8155

    48,6780

    89,9199

    -68,6817

    1456,3917

    791,3768

    100,30903

    4

    93,6

    25,1663

    -108,6993

    47,9798

    89,8579

    -90,7101

    1441,7957

    771,5777

    133,30153

    5

    94,5

    25,4083

    -109,5848

    47,2573

    89,7787

    -112,2764

    1426,6072

    752,0696

    166,06404

    6

    95,4

    25,6502

    -110,4722

    46,5103

    89,6821

    -133,3636

    1410,8393

    732,8547

    198,59155

    7

    96,3

    25,8922

    -111,3616

    45,7384

    89,5682

    -153,9548

    1394,5053

    713,9357

    230,87892

    8

    97,2

    26,1342

    -112,2535

    44,9413

    89,4372

    -174,0338

    1377,6191

    695,3156

    262,92085

    9

    98,1

    26,3762

    -113,1479

    44,1187

    89,2890

    -193,5844

    1360,1946

    676,9977

    294,71191

    10

    99

    26,6182

    -114,0452

    43,2703

    89,1235

    -212,5910

    1342,2466

    658,9858

    326,24648


    Код MatLab:
    proc = 1;%коэф для нахождения отклонений
    teta1 = [1 0 0];

    teta2 = [0 1 0];

    teta3 = [0 0 1];

    l1 = 675;

    l2 = 1350;

    l3 = 1220;

    l4 = 280;

    l5 = 0;

    l = 753; %длина стекла

    f = 621; %Ширина стекла

    h = 5.5; %высота стекла

    a = 500; %уровень тележки

    b = 1100; %от оси робота до пирамиды

    c = 850; %уровень рольганга

    d = 1120; %от оси робота до рольганга

    e = 2.5; %уровень опускания стекла

    k1 = 200; %подъём

    alpha = 75*(pi/180); %в радианах
    %Координаты векторов для каждого этапа

    %Захватстекла

    r51 = [b+(l/2)*cos(alpha);0;(l/2)*sin(alpha)+h*cos(alpha)+a];

    f51 = [sin(alpha);0;-cos(alpha)];

    g51 = [cos(alpha);0;sin(alpha)];

    %Отрыв

    r52 = [b+(l/2)*cos(alpha)-k1;0;(l/2)*sin(alpha)+h*cos(alpha)+a];

    f52 = [sin(alpha);0;-cos(alpha)];

    g52 = [cos(alpha);0;sin(alpha)];

    %Подъем

    r53 = [b/2;0;c+10];

    f53 = [1;0;0];

    g53 = [1;0;0];

    %Ориентация

    r54 = [b/2;0;c+10];

    f54 = [0;0;-1];

    g54 = [1;0;0];

    %Положение после поворота

    r55 = [0;b/2;c+10];

    f55 = [0;0;-1];

    g55 = [1;0;0];

    %Опускание на рольганг

    r56 = [0;d+(l/2);c+e];

    f56 = [0;0;-1];

    g56 = [1;0;0];
    r1 = [0;0;l1];

    r5 = r56;

    f5 = f56;

    g5 = g56;
    r3 = r5 - (l4+l5)*f5;

    q11 = sign(r3(2))*acos(r3(1)/(sqrt(r3(1)^2+r3(2)^2)))+pi*fix(0.5*(1-(r3(1)/(sqrt(r3(1)^2+r3(2)^2)))));

    q11 = proc * q11;

    q12 = mod((q11+pi),(2*pi));

    q12 = proc * q12;
    r31 = r3 - r1;
    %определяемматрицуА1=RotZ(q1)*TransZ(l1)*RotX(pi\2) и u1 = (A1)'

    A11 = [cos(q11) -sin(q11) 0 0; sin(q11) cos(q11) 0 0; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 1 0 0; 0 0 1 l1; 0 0 0 1]*[1 0 0 0; 0 cos(pi/2) -sin(pi/2) 0; 0 sin(pi/2) cos(pi/2) 0; 0 0 0 1];

    u11 = (A11(1:3,1:3)).';

    A12 = [1 0 0 0; 0 1 0 0; 0 0 1 l1; 0 0 0 1]*[cos(q12) -sin(q12) 0 0; sin(q12) cos(q12) 0 0; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 cos(pi/2) -sin(pi/2) 0; 0 sin(pi/2) cos(pi/2) 0; 0 0 0 1];

    u12 = (A12(1:3,1:3)).';
    modl31 = sqrt(r3(1)^2+r3(2)^2+(r3(3)-l1)^2);
    q21 = sign(teta1*u11*r31)*acos((teta2*u11*r31)/modl31)+acos((l2^2+modl31^2-l3^2)/(2*l2*modl31));

    q21 = proc * q21;

    q22 = sign(teta1*u11*r31)*acos((teta2*u11*r31)/(sqrt(r3(1)^2+r3(2)^2+(r3(3)-l1)^2)))-acos((l2^2+(sqrt(r3(1)^2+r3(2)^2+(r3(3)-l1)^2))^2-l3^2)/(2*l2*(sqrt(r3(1)^2+r3(2)^2+(r3(3)-l1)^2))));

    q22 = proc * q22;

    q23 = sign(teta1*u12*r31)*acos((teta2*u12*r31)/(sqrt(r3(1)^2+r3(2)^2+(r3(3)-l1)^2)))+acos((l2^2+(sqrt(r3(1)^2+r3(2)^2+(r3(3)-l1)^2))^2-l3^2)/(2*l2*(sqrt(r3(1)^2+r3(2)^2+(r3(3)-l1)^2))));

    q23 = proc * q23;

    q24 = sign(teta1*u12*r31)*acos((teta2*u12*r31)/(sqrt(r3(1)^2+r3(2)^2+(r3(3)-l1)^2)))-acos((l2^2+(sqrt(r3(1)^2+r3(2)^2+(r3(3)-l1)^2))^2-l3^2)/(2*l2*(sqrt(r3(1)^2+r3(2)^2+(r3(3)-l1)^2))));

    q24 = proc * q24;
    %определяем матрицу А2=RotZ(q2)*TransY(l2) и u2 = (A2)'

    A21 = A11*[cos(-q21) -sin(-q21) 0 0; sin(-q21) cos(-q21) 0 0; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 1 0 l2; 0 0 1 0; 0 0 0 1];

    u21 = (A21(1:3,1:3)).';

    A22 = A11*[cos(-q22) -sin(-q22) 0 0; sin(-q22) cos(-q22) 0 0; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 1 0 l2; 0 0 1 0; 0 0 0 1];

    u22 = (A22(1:3,1:3)).';

    A23 = A12*[cos(-q23) -sin(-q23) 0 0; sin(-q23) cos(-q23) 0 0; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 1 0 l2; 0 0 1 0; 0 0 0 1];

    u23 = (A23(1:3,1:3)).';

    A24 = A12*[cos(-q24) -sin(-q24) 0 0; sin(-q24) cos(-q24) 0 0; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 1 0 l2; 0 0 1 0; 0 0 0 1];

    u24 = (A24(1:3,1:3)).';
    %ветвление по графу допустимых решений

    if r3(2,1)==0

    rez = [sin(q21)*l2;0;cos(q21)*l2];

    else

    rez = [0;sin(q21)*l2;cos(q21)*l2];

    end;

    r2 = r1 + rez;

    r21 = r2 - r1;

    r312 = u21*r31;

    r212 = u21*r21;

    r322 = r312-r212;

    q31 = -sign(teta1*r322)*acos((teta2*r322)/(norm(r322)));

    q31 = proc * q31;
    q33 = q31;
    if r3(2,1)==0

    rez = [sin(q22)*l2;0;cos(q22)*l2];

    else

    rez = [0;sin(q22)*l2;cos(q22)*l2];

    end;

    r2 = r1 + rez;

    r21 = r2 - r1;

    r312 = u22*r31;

    r212 = u22*r21;

    r322 = r312-r212;

    q32 = -sign(teta1*r322)*acos((teta2*r322)/(norm(r322)));

    q32 = proc * q32;
    q34 = q32;
    %ОпределяемматрицуА=RotZ(q3)*TransY(l3) иu3 = (A3)'

    A31 = A21*[cos(q31) -sin(q31) 0 0; sin(q31) cos(q31) 0 0; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 1 0 l3; 0 0 1 0; 0 0 0 1];

    u31 = (A31(1:3,1:3)).';

    A32 = A22*[cos(q32) -sin(q32) 0 0; sin(q32) cos(q32) 0 0; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 1 0 l3; 0 0 1 0; 0 0 0 1];

    u32 = (A32(1:3,1:3)).';

    A33 = A23*[cos(q33) -sin(q33) 0 0; sin(q33) cos(q33) 0 0; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 1 0 l3; 0 0 1 0; 0 0 0 1];

    u33 = (A33(1:3,1:3)).';

    A34 = A24*[cos(q34) -sin(q34) 0 0; sin(q34) cos(q34) 0 0; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 1 0 l3; 0 0 1 0; 0 0 0 1];

    u34 = (A34(1:3,1:3)).';
    q41 = sign(teta1*u31*f5)*acos(teta2*u31*f5);

    q41 = proc * q41;

    q42 = sign(teta1*u32*f5)*acos(teta2*u32*f5);

    q42 = proc * q42;

    q43 = sign(teta1*u33*f5)*acos(teta2*u33*f5);

    q43 = proc * q43;

    q44 = sign(teta1*u34*f5)*acos(teta2*u34*f5);

    q44 = proc * q44;
    %ОпределяемматрицуА4=RotZ(q4)*TransY(l4)*RotX(-pi\2) и u4 = (A4)'

    A41 = A31*[cos(-q41) -sin(-q41) 0 0; sin(-q41) cos(-q41) 0 0; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 1 0 l4; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 cos(-pi/2) -sin(-pi/2) 0; 0 sin(-pi/2) cos(-pi/2) 0; 0 0 0 1];

    u41 = (A41(1:3,1:3)).';

    A42 = A32*[cos(-q42) -sin(-q42) 0 0; sin(-q42) cos(-q42) 0 0; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 1 0 l4; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 cos(-pi/2) -sin(-pi/2) 0; 0 sin(-pi/2) cos(-pi/2) 0; 0 0 0 1];

    u42 = (A42(1:3,1:3)).';

    A43 = A33*[cos(-q43) -sin(-q43) 0 0; sin(-q43) cos(-q43) 0 0; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 1 0 l4; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 cos(-pi/2) -sin(-pi/2) 0; 0 sin(-pi/2) cos(-pi/2) 0; 0 0 0 1];

    u43 = (A43(1:3,1:3)).';

    A44 = A34*[cos(-q44) -sin(-q44) 0 0; sin(-q44) cos(-q44) 0 0; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 1 0 l4; 0 0 1 0; 0 0 0 1]*[1 0 0 0; 0 cos(-pi/2) -sin(-pi/2) 0; 0 sin(-pi/2) cos(-pi/2) 0; 0 0 0 1];

    u44 = (A44(1:3,1:3)).';
    q51 = -sign(teta2*u41*g5)*acos(teta1*u41*g5);

    q51 = proc * q51;

    q52 = -sign(teta2*u42*g5)*acos(teta1*u42*g5);

    q52 = proc * q52;

    q53 = -sign(teta2*u43*g5)*acos(teta1*u43*g5);

    q53 = proc * q53;

    q54 = -sign(teta2*u44*g5)*acos(teta1*u44*g5);

    q54 = proc * q54;
    %Определяем матрицу А5 - матрица положения рабочего органа

    A51 = A41*[cos(q51) -sin(q51) 0 0; sin(q51) cos(q51) 0 0; 0 0 1 0; 0 0 0 1];

    A52 = A42*[cos(q52) -sin(q52) 0 0; sin(q52) cos(q52) 0 0; 0 0 1 0; 0 0 0 1];

    A53 = A43*[cos(q53) -sin(q53) 0 0; sin(q53) cos(q53) 0 0; 0 0 1 0; 0 0 0 1];

    A54 = A44*[cos(q54) -sin(q54) 0 0; sin(q54) cos(q54) 0 0; 0 0 1 0; 0 0 0 1];
    %Векторы обобщенныx координат

    Q1 = [q11 q21 q31 q41 q51];

    Q2 = [q11 q22 q32 q42 q52];%

    Q3 = [q12 q23 q33 q43 q53];

    Q4 = [q12 q24 q34 q44 q54];
    q1 = q11*(180/pi)

    q2 = q22*(180/pi)

    q3 = q32*(180/pi)

    q4 = q42*(180/pi)

    q5 = q52*(180/pi)
    %Построениеробота

    X1 = [0 A11(1,4) A22(1,4) A32(1,4) A42(1,4) A52(1,4)];

    Y1 = [0 A11(2,4) A22(2,4) A32(2,4) A42(2,4) A52(2,4)];

    Z1 = [0 A11(3,4) A22(3,4) A32(3,4) A42(3,4) A52(3,4)];

    figure;

    holdon;

    plot3(X1,Y1,Z1,'-ok');

    xlim([-2000 2000]);

    ylim([-2000 2000]);

    zlim([0 2500]);

    xlabel('x');

    ylabel('y');

    zlabel('z');

    plot3(r5(1),r5(2),r5(3),'*k');%схват

    gridon;

    holdoff;
    %длятаблицы

    Q222 = [q11*(180/pi) q22*(180/pi) q32*(180/pi) q42*(180/pi) q52*(180/pi) X1(6) Y1(6) Z1(6)];


    Вывод:В ходе выполнения данной лабораторной работы была изучена предложенная методика решения обратной задачи о положении манипулятора для конкретной кинематической схемы. На основании проведенного машинного эксперимента определена программная траектория робота.


    написать администратору сайта