Sie sind auf Seite 1von 27

UNIVERSIDAD NACIONAL DE INGENIERÍA

INFORME N°1: PROYECTO ROBOT DE 2 GRADOS DE LIBERTAD

PROFESOR: Ing. Iván Calle

CURSO: Análisis y Control de Robots

ALUMNOS:

- Agama Santana, Freddy Brian 20144010H


- Cerrón Ramos, Brian Jussef
- Rau Espinoza, Ulises Piero 20140080A
- Toribio Llanos, Juan Santos 20120092D

2017-II
OBJETIVO GENERAL: Diseñar e implementar un brazo robótico de 2 grados de libertad

OBJETIVO ESPECÍFICO: Diseñar un robot de 2 grados de libertad y aplicar algoritmos


de robótica para lograr determinar su cinemática directa y cinemática inversa

FUNDAMENTO TEÓRICO

CINEMÁTICA DE UN ROBOT

La cinemática del robot estudia el movimiento del mismo con respecto a un sistema de
referencia. Así, la cinemática se interesa por la descripción analítica del movimiento
espacial del robot como una función del tiempo, y en particular por las relaciones entre
la posición y la orientación del extremo final del robot con los valores que toman sus
coordenadas articulares.
Existen dos problemas fundamentales a resolver en la cinemática del robot; el primero
de ellos se conoce como el problema cinemático directo, y consiste en determinar cuál
es la posición y orientación del extremo final del robot, con respecto a un sistema de
coordenadas que se toma como referencia, conocidos los valores de las articulaciones y
los parámetros geométricos de los elementos del robot; el segundo, denominado
problema cinemático inverso, resuelve la configuración que debe adoptar el robot para
una posición y orientación del extremo conocidas.

Figura 1. Relación entre cinemática directa e inversa

REPRESENTACIÓN DENAVIT-HARTENBERG

Denavit y Hartenberg proponen un modelo matricial para establecer de forma


sistemática un sistema de coordenadas (soldado al cuerpo) para cada elemento de una
cadena articulada. D-H resulta en una matriz de transformación homogénea de 4x4 que
representa cada uno de los sistemas de coordenadas de los elementos de la articulación
con respecto al sistema de coordenadas del elemento previo. Mediante transformaciones
secuenciales, el efector final expresado en las coordenadas de la mano se puede
transformar y expresar en las coordenadas de la base.
Las reglas para determinar cada sistema son:
 El eje z (i−1) yace a lo largo del eje de la articulación
 El eje x(i) es normal al eje z(i−1) y apunta hacia afuera de él
 El eje y(i) completa el sistema de coordenadas dextrogiro según se requiera
La representación D-H de un elemento rígido depende de 4 parámetros geométricos
asociados con cada elemento.
θi: Ángulo de la articulación del eje x(i−1) al eje x(i) respecto del eje z(i−1)
di: Distancia desde el origen del sistema de coordenadas (i-1)-ésimo hasta la
intersección del eje z(i−1) con el eje x(i) a lo largo del eje z(i−1).
ai: Distancia de separación desde la intersección del eje z(i−1) con el eje x(i) hasta el
origen del sistema i-ésimo a lo largo del eje x(i) (o la distancia más corta entre los ejes
z(i−1) y z(i) cuando los ejes de articulación son paralelos)
αi: Ángulo de separación del eje z(i−1) al eje z(i) respecto del eje x(i)

Figura 2. Asignación de parámetros cinemáticos según Denavit-Hartenberg


1. ESQUEMA TOTAL DEL MANIPULADOR DE 2 GRADOS DE LIBERTAD.

Fig.3. Esquema total de manipulador

2. DESCRIPCIÓN DE COMPONENTES

- Base superior y base inferior.

Presenta un largo de longitud 150 mm y un ancho de 65mm.

Fig. 4 Base inferior Fig. 5 Base superior


- Ejes vertical y horizontal.

Eje horizontal de 100 mm con diámetro 8 mm.

Fig. 6 Eje horizontal

Eje vertical de 80 mm con 20 mm.

Fig. 7 Eje vertical

- Chumacera KP08

Diseño en Solidworks

Fig. 8 Chumacera KP08


Plano del KP08

Fig. 9 Plano de la chumacera

- Soporte de pared SHF20

Diseño en Solidworks

Fig. 10 Soporte de pared SHF20


Plano del SHF20

Fig. 11 Plano de SHF20

- Brazo robótico

Fig 12. Esquema del brazo robotico


- Acople NC

Diseño en Solidworks

Fig. 13 Acople NC
Plano del NC

Fig. 14 Plano técnico del NC

- Engranajes cónicos Helicoidales

Solidworks del engranaje de 49 dientes

Fig. 15 Engranaje de 49 dientes


Plano del Engranaje

Fig. 16 Plano de engranaje

Solidworks del piñon de 16 dientes

Fig. 17 Piñon de 16 dientes


Plano del piñón

Fig. 18 Plano de piñon

- Motor Nema 23 de 2.2 Nm.


- Motor Pololu DC

Motor 1 (alternativa 1)

 Potencia Máxima = 1HP


 Voltaje = 6 v
 Corriente = 6.5 A
 Reducción = 4.4:1
Motor 2 (alternativa 2)

 Potencia Máxima = 1HP


 Voltaje = 6 v
 Corriente = 6.5 A
 Reducción = 1:1
Para un buen análisis y un buen comportamiento de la estructura se debe tener en
cuenta que el centro de masa de la parte superior del sistema tiene que estar en el
centro del eje vertical.

Mediante solidworks se puede sacar el centro de masa como el volumen y el área


superficial del sistema superior.
A continuación, se muestra los datos obtenidos por el Solidworks.

Como se muestra la distancia de X, Y, Z son muy pequeños lo que garantiza que este
cerca del centro del eje vertical.
3. CINEMÁTICA DIRECTA
■ Matrices 𝐴𝑖−1
𝑖
𝐶1 0 −𝑆1 0 𝐶2 −𝑆2 0 𝐿3 𝐶2
𝑆 0 𝐶1 0 1 𝑆 𝐶2 0 𝐿3 𝑆2
𝐴10 = [ 1 ] 𝐴2 = [ 2 ]
0 −1 0 𝐿1 0 0 1 𝐿2
0 0 0 1 0 0 0 1

■ Matriz de transformación del efector


𝐶1 𝐶2 −𝐶1 𝑆2 −𝑆1 𝐿3 𝐶1 𝐶2 − 𝐿2 𝑆1
𝑆𝐶 −𝑆1 𝑆2 𝐶1 𝐿2 𝐶1 + 𝐿3 𝑆1 𝐶2
𝑇20 = 𝐴10 𝐴12 = [ 1 2 ]
−𝑆2 −𝐶2 0 𝐿1 − 𝐿3 𝑆2
0 0 0 1
4. CINEMÁTICA INVERSA

Esquema de Solidworks con punto final.


Para hallar los ángulos realizamos su esquema simplificado

Para hallar 𝜃1 , analizamos la proyección del brazo en el plano 𝑥0 , 𝑦0 .

𝜃1 = 𝛽 − 𝛼
Donde el valor de 𝛼 es:
𝑥𝑐
𝛼 = tan−1
𝑦𝑐
−1
𝐿3 ∗ cos 𝜃2 −1
√𝑟 2 − 𝐿2 2
𝛽 = tan = tan
𝐿2 𝐿2
Donde:
𝑟 2 = 𝑥𝑐 2 + 𝑦𝑐 2

Por lo tanto:
√𝑥𝑐 2 + 𝑦𝑐 2 − 𝐿2 2 𝑥𝑐
𝜃1 = tan−1 − tan−1
𝐿2 𝑦𝑐
𝐿3 ∗ cos 𝜃2

Para hallar 𝜃2 , analizamos la proyección en el eje 𝑧0 .


𝑧𝑐 = 𝐿1 − 𝐿3 ∗ sin 𝜃2
Por lo tanto:
𝐿1 − 𝑧𝑐
𝜃2 = sin−1
𝐿3
6. PROGRAMA EN MATLAB

6.1 Código cinemática directa simbólico (Cinematica_Directa_Simbolico.m)

% Tema: Dinamica de un manipulador de 2GDL


clc; clear all; close all;

%----------------------------------------------------------------------%
% 1. DEFINICION DE VARIABLES SIMBOLICAS
%----------------------------------------------------------------------%
syms theta1 d1 a1 alpha1
syms theta2 d2 a2 alpha2
syms q1 q2
syms L1 L2 L3

% 2. SISTEMAS COORDENADOS Y CINEMATICA


%----------------------------------------------------------------------%
% 2.1. SISTEMA COORDENADO 1
% -> Parametros D-H
theta1 = q1;
d1 = L1;
a1 = 0;
alpha1 = -pi/2;
% -> Matriz A
A1 = matriz_homogenea_DH(theta1, d1,a1,alpha1);
% -> MATRIZ T
T01 = A1;
disp('T01')
disp (T01)

% 2.2. SISTEMA COORDENADO 2


% -> Parametros D-H
theta2 = q2;
d2 = L2;
a2 = L3;
alpha2 = 0;
% -> Matriz A
A2 = matriz_homogenea_DH(theta2, d2,a2,alpha2);
% -> MATRIZ T
T02 = T01*A2;
T02 = simplify(T02);
disp('T02')
disp(T02)
6.2 Código cinemática directa numérico (Cinematica_Directa_Numerico.m)

% Tema: Dinamica de un manipulador de 2GDL


clc; clear all; close all;

%1. PARÁMETROS MECÁNICOS


%----------------------------------------------------------------------%
L1=1.0;
L2=1.1;
L3=1.1;

%2. ENTRADA DE ÁNGULOS


%----------------------------------------------------------------------%
q1=input('Ingrese el primer ángulo: ');
q2=input('Ingrese el segundo ángulo: ');
pause()

%3. DEFINICION DEL SISTEMA INERCIAL


%----------------------------------------------------------------------%
%3.1. MATRIZ HOMOGENEA
T0=eye(4);

%Ploteo del Sistema


plot_frame(T0,'color','k');
axis([-3 3 -3 3 -3 3])
hold on
grid on
xlabel('x(m)')
ylabel('y(m)')

%1. SISTEMA COORDENADO 1


%21.1 DEFINICION DE PARÁMETROS

d1=L1;
alpha1=-pi/2;
a1=0;
A1=matriz_homogenea_DH(q1,d1,a1,alpha1);
%2.4 PLOTEAMOS EL SISTEMA COORDENADO
T01=A1;
disp('T01')
disp(T01)
h1=plot_frame(T01,'frame',2,'color','b');
%2. SISTEMA COORDENADO 2
%2.1 DEFINICION DE PARAMETROS
%q2=0;
d2=L2;
a2=L3;
alpha2=0;
A2=matriz_homogenea_DH(q2,d2,a2,alpha2);
%2.4 PLOTEAMOS EL SISTEMA COORDENADO
T02=A1*A2;
disp('T02')
disp(T02)
h2=plot_frame(T02,'frame',2,'color','m');
6.3 Código cinemática inversa numérico (CINEMATICA_INVERSA_ANIMADA.m)
%SIMULACION DE CINEMATICA%
%------------------------%
% 1. Configuracion inicial
% 2. Parametros Mecanicos del Robot
clc; clear all; close all;
%LONGITUDES en decímetros
L1=1.0;
L2=1.1;
L3=1.1;
%Entrada posición final
xc=input('Ingrese la coordenada x de la posicion final: ');
yc=input('Ingrese la coordenada y de la posicion final: ');
zc=input('Ingrese la coordenada z de la posicion final: ');
pause()

%1.2. Ploteo del entorno


T0=eye(4);
figure('name','CINEMATICA INVERSA')
title('Cinematica Inversa')
plot_frame(T0,'color','k','view','auto')
axis([-2 2 -2 2 0 3])
hold on
grid on
xlabel('x(m)')
ylabel('y(m)')
%Ploteo del punto a alcanzar
plot3(xc, yc, zc, 'ro','MarkerFaceColor', 'k', 'MarkerSize', 10)
%Creamos un objeto robot
my_robot = robot2_Proyecto();
my_robot.set_dimensiones(L1, L2, L3)

% 3. Cinematica Inversa
%3.1. USAMOS EL METODO "Cinematica inversa"
q = my_robot.cinematica_inversa_ROBO2(xc, yc, zc);
q1d = q(1);
q2d = q(2);
%3.2. SALIDAs
disp('Ángulos en radianes: ')
disp(q)
disp('Ángulos en sexagesimales: ')
disp(q*180/pi)
%---------------------------------------------
%4. Configuracion Incial del Robot
%4.1. Eslabon 1
% -> Hallamos A1
theta1=0;
A1 = my_robot.compute_matrix_A1(theta1);
% -> Ploteamos T01
T01 = A1;
h1 = plot_frame(T01, 'frame', '1', 'color', 'b');
%disp('T01')
%disp(T01)

%4.2. Eslabon 2
theta2 = 0;
A2 = my_robot.compute_matrix_A2(theta2);
T02 = T01*A2;
%4.3 Ploteamso T02
h2 = plot_frame(T02, 'frame', '2', 'color', 'r');
%disp('T02')
%disp(T02)

%---------------------------------------------------------------
% 5. Lazo de simulacion
% 5.1. Mensaje
disp('Robot de 2 GDL')
disp('Presione una tecla para empezar simulacion')
pause

% 5.2. Definimos los angulos


STEPS = 400;
THETA1 = linspace(theta1, q1d, STEPS);
THETA2 = linspace(theta2, q2d, STEPS);
% 5.3. LAZO PRINCIPAL
for i=1:STEPS
%A. OBTENEMOS LOS ANGULOS
theta1 = THETA1(i);
theta2 = THETA2(i);
%B. Matrices de Transformacion Homoghenea
A1 = my_robot.compute_matrix_A1(theta1);
A2 = my_robot.compute_matrix_A2(theta2);
T01 = A1;
T02 = A1*A2;

%C. Ploteamos los sistemas coordenados


plot_frame(h1, T01);
plot_frame(h2, T02);

% D. Delta de Tiempo
pause(0.001)
end
%MATRICES HOMOGENEAS DE TRANSFORMACIÓN
disp('Matriz Homogénea T01')
disp(T01)
disp('Matriz Homogénea T02')
disp(T02)
6.4 Código clase robot2_Proyecto (robot2_Proyecto.m)

%----------------------------
% CLASE ROBOT ROBOTICA 2
%---------------------------
classdef robot2_Proyecto<handle

%ROBOT

properties
%parametros mecanicos
LL1
LL2
LL3
%Parametros DH
d1
a1
alpha1
d2
a2
alpha2
end
%METODOS DE LA CLASE
methods
%Constructor
function this = robot2_Proyecto()
%IniciamosParametros D-H valores fijos
this.a1 = 0;
this.alpha1 = -pi/2;
this.alpha2 = 0;

end
%--------------------------------------------------------------
function set_dimensiones(this, L1, L2, L3)
%Metodos para poner dimensiones
this.LL1 = L1;
this.LL2 = L2;
this.LL3 = L3;
% Poner los paremetros DH que faltan

this.d1 = L1 ;
this.d2= L2;
this.a2 = L3;
end
%-----------------------------------------------------------------
function q = cinematica_inversa_ROBO2(this, xc, yc, zc)
%Metodo para la cinematica inversa
L1=this.LL1;
L2=this.LL2;
L3=this.LL3;

D=(L1-zc)/L3;
E=sqrt(xc^2+yc^2);
if (D>1 || D<-1 || E>sqrt(L2^2+L3^2) )
error('POSICION IMPOSIBLE DE ALCANZAR')
else

%ANGULO "theta2"
q2_start = asin(D);
alfa=atan2(L3*cos(q2_start),L2);
%r=sqrt(L2^2+(L3*cos(q2_start))^2);
q1_start=alfa-atan2(xc,yc);
% num=(xc^2+yc^2-L1^2-L3^2);
% den=(2*L1*L3);
% D=num/den;
% if(D>1 || D<-1)
% error('POSICION IMPOSIBLE DE ALCANZAR')
% else
% %ANGULO "theta2"
% q2_star = atan2(+sqrt(1-D^2),D); %dos soluciones codo arriba +
; codo abajo -
% %ANGULO "theta1"
% num1=L3*sin(q2_star);
% den1=L1+L3*cos(q2_star);
% q1_star= atan2(yc,xc)- atan2(num1,den1);

%Vector de Angulos
q=[q1_start q2_start];
end
end
%-------------------------------------------------------------------
function A1=compute_matrix_A1(this,theta1)
% Metodo para hallar A1
A1 = matriz_homogenea_DH(theta1, this.d1, this.a1,this.alpha1);
end

function A2=compute_matrix_A2(this, theta2)


%metodo para hallar A2
A2 = matriz_homogenea_DH(theta2, this.d2, this.a2, this.alpha2);
end
end
end
7. PRECIOS

PARTE SUPERIOR:

PARTE INFERIOR:

Das könnte Ihnen auch gefallen