0% encontró este documento útil (0 votos)
238 vistas8 páginas

Lab6 1

El documento presenta la sesión 6 sobre el algoritmo de Denavit-Hartenberg para resolver el problema cinemático directo de un robot. Se detalla el procedimiento para aplicar el algoritmo al robot KUKA KR6, determinando primero sus parámetros de Denavit-Hartenberg y luego usando MATLAB para calcular la posición y orientación del efector final para diferentes valores de las articulaciones. Finalmente, se pide comparar los resultados numéricos con mediciones en el robot físico.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
238 vistas8 páginas

Lab6 1

El documento presenta la sesión 6 sobre el algoritmo de Denavit-Hartenberg para resolver el problema cinemático directo de un robot. Se detalla el procedimiento para aplicar el algoritmo al robot KUKA KR6, determinando primero sus parámetros de Denavit-Hartenberg y luego usando MATLAB para calcular la posición y orientación del efector final para diferentes valores de las articulaciones. Finalmente, se pide comparar los resultados numéricos con mediciones en el robot físico.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

SESIÓN 6: “CINEMÁTICA DIRECTA – ALGORITMO DE DENAVIT - HARTENBERG”

I. OBJETIVO
 Sistematizar la solución del problema cinemático directo mediante el
algoritmo de Denavit-Hartenberg.
 Desarrollar programas en MATLAB que permitan determinar la cinemática
del manipulador con el método de Denavit- Hartenberg.

II. MATERIAL Y EQUIPO


 Una PC con SO Windows y MATLAB
 Robot KUKA KR6

III. PROCEDIMIENTO
1. Sea el robot KUKA de la siguiente figura, donde aparecen todos los elementos
mecánicos que lo conforman.

2. Dibujar el esquema del robot KUKA KR6 (según la simbología del libro de
Barrientos)

3. Aplicar el Algoritmo de Denavit-Hartenberg y resolver el modelo cinemático


directo del robot.
4. Consignar en los recuadros siguientes su esquema y los sistemas asignados
según el algoritmo D-H.
5.
6. Consignar en una Tabla los parámetros de Denavit-Hartenberg del robot KUKA
KR6
Articulación Ɵ𝑖 𝑑𝑖 𝑎𝑖 𝛼𝑖

1 𝑞1 675 260 90⁰

2 𝑞2 0 680 0⁰

3 𝑞3 0 0 -90⁰

4 𝑞4 670 0 -90⁰

5 𝑞5 0 0 90⁰

6 𝑞6 158 0 0⁰
7. Con ayuda del docente y/o asistente del laboratorio, colocar al robot en su
“posición cero”, es decir, todos los parámetros articulares con un valor angular
que satisfagan esa posición.
Dar un primer valor diferente de cero a cada uno de los ejes del robot. Remplazar este valor en las
ecuaciones obtenidas por medio del algoritmo de D-H y obtener los valores numéricos para la
posición y orientación del efector final del robot. Dibujar esta localización espacial indicando la
posición y la orientación del EF. Dibujar el sistema solidario al EF.
Cuando:
𝑞1 = −90 , 𝑞2 = −90 , 𝑞3 = 45 , 𝑞4 = −40 , 𝑞5 = 90 , 𝑞6 = 0
Las matrices son:
0 0 1 0
0
1 𝐴1 = [ 1 0 0 260 ]
0 1 0 675
0 0 0 1
0 −1 0 0
1
1 𝐴2 = [ 1 0 0 680 ]
0 0 1 0
0 0 0 1
−0.7071 0 0.7071 0
2
1 𝐴3 = [ −0.7071 0 −0.7071 680 ]
0 −1 0 0
0 0 0 1
0.7660 0 0.6428 0
3
1 𝐴4 = [ −0.6428 0 0.7660 0 ]
0 −1 0 670
0 0 0 1
0 0 1 0
14 𝐴5 = [1 0 0 0]
0 1 0 0
0 0 0 1
1 0 0 0
1 𝐴6 = [ 0 1 0 0 ]
5
0 0 1 158
0 0 0 1

0 −0.8 0.6 101.6


𝑇=[ −0.7 0.5 0.5 844.1]
−0.7 −0.5 −0.5 1718.4
0 0 0 1
8. Con ayuda del docente y/o asistente de laboratorio mueva las articulaciones del
robot a los valores dados en el paso anterior y con una cinta métrica medir los
valores de la posición del EF (O BRIDA) del robot referidos a la base del robot y
contrastar con los obtenidos según su análisis de D-H. También contrastar con
los valores mostrados por la unidad de control del robot. Haga sus
observaciones. NOTA IMPORTANTE: NO MUEVA EL ROBOT A VALORES
ARTICULARES QUE ESTEN FUERA DEL RANGO ESTABLECIDO POR LA TABLA.
PREFERENTEMENTE NO EMPLEE VALORES QUE ESTEN CERCANOS A LOS LIMITES
ESTABLECIDOS POR LA TABLA.
clc, clear all,close all
%definimos las longitudes de los brazos

q1=input('ingrese el angulo de la primera articulacion: ');


q1=q1*pi/180;
q2=input('ingrese el angulo de la segunda articulacion: ');
q2=q2*pi/180;
q3=input('ingrese el angulo de la tercera articulacion: ');
q3=q3*pi/180;
q4=input('ingrese el angulo de la cuarta articulacion: ');
q4=q4*pi/180;
q5=input('ingrese el angulo de la quinta articulacion: ');
q5=q5*pi/180;
q6=input('ingrese el angulo de la sexta articulacion: ');
q6=q6*pi/180;

A1=[cos(-q1) 0 sin(-q1) 260*cos(-q1);


sin(-q1) 0 -cos(-q1) 260*sin(-q1);
0 1 0 705;
0 0 0 1];
A2=[cos(-q2) -sin(-q2) 0 680*cos(-q2);
sin(-q2) cos(-q2) 0 680*sin(-q2);
0 0 1 0;
0 0 0 1];
A3=[cos(-q3-pi/2) 0 -sin(-q3-pi/2) 35*cos(-q3-pi/2);
sin(-q3-pi/2) 0 cos(-q3-pi/2) 35*sin(-q3-pi/2);
0 -1 0 0;
0 0 0 1];
A4=[cos(-q4) 0 -sin(-q4) 0;
sin(-q4) 0 cos(-q4) 0;
0 -1 0 670;
0 0 0 1];
A5=[cos(q5) 0 sin(q5) 0;
sin(q5) 0 -cos(q5) 0;
0 1 0 0;
0 0 0 1];
A6=[cos(q6) -sin(q6) 0 0;
sin(q6) cos(q6) 0 0;
0 0 1 158;
0 0 0 1];
T=A1*A2*A3*A4*A5*A6
%posicion 1
A=A1;
%posicion 2
B=A*A2;
%posicion 3
C=B*A3;
%posicion 4
D=C*A4;
%posicion5
E=D*A5;
%posicion 6
F=E*A6;
x=[0 A(1,4) B(1,4) C(1,4) D(1,4) E(1,4) F(1,4)];
y=[0 A(2,4) B(2,4) C(2,4) D(2,4) E(2,4) F(2,4)];
z=[0 A(3,4) B(3,4) C(3,4) D(3,4) E(3,4) F(3,4)];
%GRAFICA
plot3(x,y,z,'k','linewidth',3);grid on
axis([-2500 2500 -2500 2500 0 2500])
%EJES DE ORIENTACION DE LA PRIMERA ARTICULACION
hold on
x0=[0 A(1,1)*100];
x1=[0 A(2,1)*100];
x2=[0 A(3,1)*100];
plot3(x0,x1,x2,'r','LineWidth', 2)
hold on
y0=[0 A(1,2)*100];
y1=[0 A(2,2)*100];
y2=[0 A(3,2)*100];
plot3(y0,y1,y2,'b','LineWidth', 2)
hold on
z0=[0 A(1,3)*100];
z1=[0 A(2,3)*100];
z2=[0 A(3,3)*100];
plot3(z0,z1,z2,'g','LineWidth', 2)
%EJES DE ORIENTACION DE LA SEGUNDA ARTICULACION
hold on
x01=[A(1,4) A(1,4)+B(1,1)*100];
x11=[A(2,4) A(2,4)+B(2,1)*100];
x21=[A(3,4) A(3,4)+B(3,1)*100];
plot3(x01,x11,x21,'r','LineWidth', 2)
hold on
y01=[A(1,4) A(1,4)+B(1,2)*100];
y11=[A(2,4) A(2,4)+B(2,2)*100];
y21=[A(3,4) A(3,4)+B(3,2)*100];
plot3(y01,y11,y21,'b','LineWidth', 2)
hold on
z01=[A(1,4) A(1,4)+B(1,3)*100];
z11=[A(2,4) A(2,4)+B(2,3)*100];
z21=[A(3,4) A(3,4)+B(3,3)*100];
plot3(z01,z11,z21,'g','LineWidth', 2)
%EJES DE ORIENTACION DE LA TERCERA ARTICULACION
hold on
x01=[B(1,4) B(1,4)+C(1,1)*100];
x11=[B(2,4) B(2,4)+C(2,1)*100];
x21=[B(3,4) B(3,4)+C(3,1)*100];
plot3(x01,x11,x21,'r','LineWidth', 2)
hold on
y01=[B(1,4) B(1,4)+C(1,2)*100];
y11=[B(2,4) B(2,4)+C(2,2)*100];
y21=[B(3,4) B(3,4)+C(3,2)*100];
plot3(y01,y11,y21,'b','LineWidth', 2)
hold on
z01=[B(1,4) B(1,4)+C(1,3)*100];
z11=[B(2,4) B(2,4)+C(2,3)*100];
z21=[B(3,4) B(3,4)+C(3,3)*100];
plot3(z01,z11,z21,'g','LineWidth', 2)
%EJES DE ORIENTACION DE LA CUARTA ARTICULACION
hold on
x01=[C(1,4) C(1,4)+D(1,1)*100];
x11=[C(2,4) C(2,4)+D(2,1)*100];
x21=[C(3,4) C(3,4)+D(3,1)*100];
plot3(x01,x11,x21,'r','LineWidth', 2)
hold on
y01=[C(1,4) C(1,4)+D(1,2)*100];
y11=[C(2,4) C(2,4)+D(2,2)*100];
y21=[C(3,4) C(3,4)+D(3,2)*100];
plot3(y01,y11,y21,'b','LineWidth', 2)
hold on
z01=[C(1,4) C(1,4)+D(1,3)*100];
z11=[C(2,4) C(2,4)+D(2,3)*100];
z21=[C(3,4) C(3,4)+D(3,3)*100];
plot3(z01,z11,z21,'g','LineWidth', 2)
%EJES DE ORIENTACION DE LA QUINTA ARTICULACION
hold on
x01=[D(1,4) D(1,4)+E(1,1)*100];
x11=[D(2,4) D(2,4)+E(2,1)*100];
x21=[D(3,4) D(3,4)+E(3,1)*100];
plot3(x01,x11,x21,'r','LineWidth', 2)
hold on
y01=[D(1,4) D(1,4)+E(1,2)*100];
y11=[D(2,4) D(2,4)+E(2,2)*100];
y21=[D(3,4) D(3,4)+E(3,2)*100];
plot3(y01,y11,y21,'b','LineWidth', 2)
hold on
z01=[D(1,4) D(1,4)+E(1,3)*100];
z11=[D(2,4) D(2,4)+E(2,3)*100];
z21=[D(3,4) D(3,4)+E(3,3)*100];
plot3(z01,z11,z21,'g','LineWidth', 2)
%EJES DE ORIENTACION DE LA SEXTA ARTICULACION
hold on
x01=[E(1,4) E(1,4)+F(1,1)*100];
x11=[E(2,4) E(2,4)+F(2,1)*100];
x21=[E(3,4) E(3,4)+F(3,1)*100];
plot3(x01,x11,x21,'r','LineWidth', 2)
hold on
y01=[E(1,4) E(1,4)+F(1,2)*100];
y11=[E(2,4) E(2,4)+F(2,2)*100];
y21=[E(3,4) E(3,4)+F(3,2)*100];
plot3(y01,y11,y21,'b','LineWidth', 2)
hold on
z01=[E(1,4) E(1,4)+F(1,3)*100];
z11=[E(2,4) E(2,4)+F(2,3)*100];
z21=[E(3,4) E(3,4)+F(3,3)*100];
plot3(z01,z11,z21,'g','LineWidth', 2)

También podría gustarte