0% encontró este documento útil (0 votos)
3 vistas42 páginas

Diseño de Robot de 4 Grados de Libertad

El trabajo final presenta el diseño y construcción de un robot de 4 grados de libertad capaz de escribir, abordando la robótica desde su origen hasta su aplicación actual en diversas industrias. Se detallan los objetivos del proyecto, la cinemática directa e inversa, y se utilizan herramientas como CAD y MATLAB para modelar y simular el manipulador. Además, se analizan los componentes del robot, como servomotores y pinzas, y se evalúa su espacio de trabajo y comportamiento en función de los ángulos de las articulaciones.

Cargado por

Santiago alarcon
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas42 páginas

Diseño de Robot de 4 Grados de Libertad

El trabajo final presenta el diseño y construcción de un robot de 4 grados de libertad capaz de escribir, abordando la robótica desde su origen hasta su aplicación actual en diversas industrias. Se detallan los objetivos del proyecto, la cinemática directa e inversa, y se utilizan herramientas como CAD y MATLAB para modelar y simular el manipulador. Además, se analizan los componentes del robot, como servomotores y pinzas, y se evalúa su espacio de trabajo y comportamiento en función de los ángulos de las articulaciones.

Cargado por

Santiago alarcon
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 PDF, TXT o lee en línea desde Scribd

TRABAJO FINAL

ROBÓTICA
INTRODUCCIÓN

La robótica nace con el objetivo de llevar a cabo tareas de forma automatizada y de


reducir los costes y riesgos de la mano de obra. Si bien ya en la antigüedad se llegaron
a diseñar sofisticados ingenios mecánicos que parecían funcionar de forma autónoma y
que despertarián la imaginación de científicos en los siglos sucesivos, es a partir de los
años sesenta del siglo pasado cuanto la robótica verdaderamente encuentra su nicho en
la industria, ganándose el interés de grandes empresarios e investigadores y asegurando
definitivamente su papel en el futuro de la industria.
Los avances científicos en la mecánica, la electrónica y la ciencia de materiales, unido a
la irrupción de la inteligencia artificial, han permitido generar sinergias ahí donde antes
no las había, dando lugar a un vasto número de nuevas aplicaciones a la robótica, como
en la medicina, en el cuidado doméstico o en la exploración minera. Asimismo, nuevos
campos de investigación proponen proporcionan soluciones tecnológicas a la robótica
aplicada a nivel industrial, y los robots tienen un comportamiento cada vez más natural
que permite ampliar el horizonte de tareas a su alcance

OBJETIVOS

1.1 Objetivo general

• Modelar, diseñar y construir un robot de 4 grados de libertad que pueda escribir


una letra según la programación ejecutada.

1.2 Objetivos específicos.

• Modelar la cinemática directa e inversa del robot de 4 grados de libertad, para


poder determinar el espacio de trabajo.
• Diseñar en el CAD SOLIDWORKS el robot con todos sus componentes y
exportarlo a MATLAB para realizar un movimiento por medio de SIMULINK.
• Construir el robot con los diferentes componentes escogidos.
• Generar un movimiento fino para el posterior trazado con el bolígrafo.
• Evaluar el comportamiento del robot que cumpla con su objetivo general

MARCO TEÓRICO

Servomotor AX-12A: Un servomotor es un actuador rotativo o motor que permite un


control preciso en términos de posición angular, aceleración y velocidad, capacidades
que un motor normal no tiene. En definitiva, utiliza un motor normal y lo combina con un
sensor para la retroalimentación de posición. El servo AX-12A tiene la capacidad de
realizar un seguimiento de su velocidad, la temperatura, la posición del eje, tensión, y la
carga. Como si esto fuera poco, el algoritmo de control utilizado para mantener la posición
del eje del actuador AX-12 se puede ajustar de forma individual para cada servo, lo que
permite controlar la velocidad y la fuerza de la respuesta del motor. Todo el control de la
gestión y de la posición del sensor se maneja mediante una función de microcontrolador
del servo.

Pinza o gripper: Es un dispositivo electromecánico, cuya función es agarrar y sostener


objetos específicos. Son comúnmente usados como actuadores finales de brazos
robóticos o de prótesis de miembro superior.

Bolígrafo: Instrumento para escribir que tiene en su interior un tubo de tinta especial y,
en la punta, una bolita metálica que gira libremente.

Soporte: Un soporte es algo, ya sea físico o simbólico, que sirve como sustento o puntal.
Los soportes, por lo tanto, se utilizan para sostener o mantener una cosa.

Cinemática: Se encarga de estudiar el movimiento de este con respecto a un eje de


referencia. Así la cinemática se encarga de estudiar la descripción analítica del
movimiento espacial del robot con una función de tiempo.

Cinemática directa: Es el método para determinar la posición y orientación del extremo


del robot, con respecto a un sistema de coordenadas de referencia, conocidos los valores
de las articulaciones y los parámetros geométricos de los elementos del robot.

Cinemática inversa: Se basan en descomponer la cadena cinemática en distintos planos


geométricos y resolviendo por trigonometría cada plano Se trata de encontrar el número
suficiente de relaciones geométricas para Datos: Px, Py, Pz donde se quiere situar el
extremo del robot. trigonometría en cada plano. Se trata de encontrar el número suficiente
de relaciones geométricas para posicionar el extremo del robot. Se utiliza para las
primeras articulaciones.

Dinámica: El modelo dinámico establece relaciones matemáticas entre las coordenadas


articulares (o las coordenadas del extremo del robot), sus derivadas (velocidad y
aceleración), las fuerzas y pares aplicados en las articulaciones (o en el extremo) y los
parámetros del robot (masas de los eslabones, inercias, etc).

DESARROLLO DE LA ACTIVIDAD

A continuación, se presenta un modelo CAD del manipulador (y su entorno) que se va a


usar:
Figura 1. Modelo CAD del manipulador.

Es un manipulador de 3 grados de libertad con base fija con 4 servomotores. El lápiz se


acoplará en el último eslabón de la cadena, a 90 grados de la base, de forma que
pueda escribir correctamente.

ESPACIO DE TRABAJO

Se tiene la siguiente representación de la estructura del brazo:


Figura 2. Representación del espacio de trabajo en el modelo CAD del manipulador.

La longitud de los eslabones es la siguiente:

ESLABON LONGITUD [mm]


L0 41
L1 68.5
L2 68.5
L3 68.5
L4 68.5
L5 41
Tabla 1. Longitudes de los eslabones del manipulador.

El espacio de trabajo sería el siguiente:

● El alcance máximo en X sería cuando todos los ángulos se consideran 0, y


corresponde a la suma de L1+L2+L3+L4, y es de 274 mm.

● Siguiendo la misma lógica, el alcance máximo en Y corresponde una rotación en


teta 2 de 90° (mientras teta 0 es cero), y es de L2+L3+L4, que es de 179,5 mm.

● El alcance máximo en Z corresponde a la máxima distancia que puede alcanzar


el manipulador cuando todos los eslabones están paralelos apuntando hacia
arriba (Z positivos), esto corresponde a la suma de L0+L1+L2+L3
+L4(ocurre cuando teta 1 es 90°), y es de 315 mm de manera ideal.

El espacio de trabajo que se va a usar está dado por las siguientes representaciones:
Figura 3. Representación del espacio de trabajo en el modelo CAD del manipulador.

Desde una vista superior, considerando que la rotación se encuentra en el motor 2, 3 y


4, el espacio de trabajo sería el siguiente:
Figura 4. Representación del espacio de trabajo en el modelo CAD del manipulador.

Finalmente, la representación del espacio de trabajos en 3 dimensiones corresponde a:

Figura 5. Representación del espacio de trabajo en el modelo CAD del manipulador.

De esta manera queda el espacio de trabajo del manipulador, teniendo en cuenta las
limitaciones de giro que tienen los eslabones.
CINEMÁTICA DIRECTA

Se realizó la cinemático directa por el método de matrices de transformación


homogénea.

Figura 6. Representación del espacio de trabajo en el modelo CAD del manipulador.

Las operaciones entre matrices fueron:

M0/1= T(z,L0)

M1/2=R(y,θ1)×T(x,L1)

M2/3=R(z,θ2)×T(x,L2)

M3/4=R(z,θ3)× T(x,L3)

M4/5=R(z,θ4)× T(x,L4)

M5/6= T(z,-L5)

Las matrices usadas fueron:


Primera Traslación:

Primera rotación:

Segunda traslación:

Segunda rotación:

Tercera traslación:

Tercera rotación:
Cuarta traslación:

Cuarta rotación:

Quinta traslación:

Sexta Traslación:

Se programó en Matlab la operación entre matrices y la representación de cada una de


las juntas con el fin de visualizar los eslabones del manipulador, el resultado fue el
siguiente:
Figura 7. Visualización de los eslabones del manipulador en MATLAB.

CINEMÁTICA INVERSA

La coordenada del PCH cuando los motores están a cero grados es la siguiente
(suponiendo que nos trasladamos desde la punta del lápiz hacía arriba , ya que esto
sólo representa una traslación siempre perpendicular al ángulo de teta 1):
Figura 8. Visualización de los eslabones del manipulador en MATLAB.

Suponiendo la siguiente matriz final de coordenadas, encontrar los ángulos de los


motores que permiten que el manipulador se posicione en ese punto:

Suponiendo que vemos el manipulador desde una vista lateral, observamos que la
coordenada en Z está únicamente delimitada por el valor del ángulo de Teta1,
considerando que cuando este vale 90°, la altura es igual al eslabón L0, por lo que este
eslabón se encuentra a 0° (ya que esto es necesario para que el brazo esté en posición
de escritura). Hay que tener en cuenta que el ángulo de los otros eslabones contribuye
a la altura en Z.
Figura 9. Esquema de trabajo del manipulador.

El valor del ángulo será:

𝜃1 = 0°

Sin embargo, la ecuación general será siempre:

𝑃𝑧 = 41 + 68.5 ∗ 𝑠𝑒𝑛𝜃1 + 68.5 ∗ 𝑠𝑒𝑛𝜃1 (𝑐𝑜𝑠𝑑𝜃2 + 𝑐𝑜𝑠𝑑𝜃3 + 𝑐𝑜𝑠𝑑𝜃4 )

Para obtener las ecuaciones de los otros puntos restantes, se puede ubicar el punto de
vista desde la zona superior del manipulador (plano xy). La representación de los
eslabones es la siguiente.
Figura 10. Nueva representación del esquema de trabajo del manipulador.

Las ecuaciones que representan el punto final donde termina el manipulador son:

𝑃𝑥 = 𝐿2𝑐𝑜𝑠 𝜃2 ∗ 𝑐𝑜𝑠 𝜃1 + 𝐿3 𝑐𝑜𝑠 𝜃3 ∗ 𝑐𝑜𝑠 𝜃1 + 𝐿4 𝑐𝑜𝑠 𝜃4 ∗ 𝑐𝑜𝑠 𝜃1 + 𝐿1 ∗ 𝑐𝑜𝑠 𝜃1

𝑃𝑦 = 𝐿2 𝑠𝑖𝑛 𝜃2 + 𝐿3 𝑠𝑖𝑛 𝜃3 + 𝐿4 𝑠𝑖𝑛 𝜃4

Como se tienen tres ecuaciones y 4 incógnitas para el sistema completo, se tienen


muchas soluciones para el sistema, por lo que se va a asumir un ángulo para teta 2 con
el fin de poder resolver el sistema, sin embargo, teta 2 debe ser un valor que tenga
sentido físico y que permita que el manipulador llegue al punto.

Estas ecuaciones pueden programarse en Matlab para así encontrar de forma sencilla el
valor de estos ángulos. El código fue el siguiente:

%% PUNTO REQUERIDO

teta2=45; %%; ángulo que se asume para el primer eslabón con rotación en Z
Px= 160;
Py= 110;
Pz = 80; %% 41 para que quede el lápiz sobre el piso
F = @(x) [68.5 *cosd(teta2)*cosd(x(3))+68.5*cosd(x(1))*(cosd(x(3)))+68.5*cosd(x(2))*(cosd(x(3)))-
Px+68.5*cosd(x(3));
68.5 *sind(teta2)+68.5*sind(x(1))+68.5*sind(x(2))-Py;
41- Pz + 68.5*sind(x(3))+sind(x(3))*(68.5*cosd(x(1))+68.5*cosd(x(2))+68.5*cosd(teta2))];

x0=[0,0,0];

x= fsolve(F,x0)

Las soluciones fueron las siguientes:

● 𝜃1 = 13.6987, 𝜃2 = −3.1384 𝑦 𝜃3 = 107.5449


Al programar estos ángulos en Matlab, el manipulador queda de la siguiente
manera:

Figura 11. Representación del manipulador con los ángulos obtenidos.

De esta manera se confirma la programación de Matlab para hallar los ángulos de


estos motores cuando el brazo está en posición de escritura.

Además, se desarrolló un programa que posiciona al brazo en función de las posiciones


que se requieran:

%% PUNTO REQUERIDO

teta2=45; %% ;ángulo que se asume para el primer eslabón con rotación en Z


Px= 160;
Py= 110;
Pz = 80;%% 41 para que quede el lápiz sobre el piso
F = @(x) [68.5
*cosd(teta2)*cosd(x(3))+68.5*cosd(x(1))*(cosd(x(3)))+68.5*cosd(x(2))*(cosd(x(3)))-
Px+68.5*cosd(x(3));
68.5 *sind(teta2)+68.5*sind(x(1))+68.5*sind(x(2))-Py;
41- Pz +
68.5*sind(x(3))+sind(x(3))*(68.5*cosd(x(1))+68.5*cosd(x(2))+68.5*cosd(teta2))];

x0=[0,0,0];

x= fsolve(F,x0)

%% BRAZO

L0=41 %% Dsitancia desde la base hasta su union con el eslabón 1


L1= 68.5 %%Longitud del eslabón 1
L2= 68.5 %% Longitud del eslabón 2
L3= 68.5 %%Longitud del eslabón3
L4= 68.5 %% Longitud del eslabón 4
L5 = 41 %% Dsitancia del fin del eslabón a la punta del lápiz

teta1=-x(3); %% ÁNGULO DEL MOTOR 1


% teta2=teta2 ; %% ÁNGULO DEL MOTOR 2
teta3=x(1)-teta2; %%Posición alterna x(2)-x(1) ÁNGULO DEL MOTOR 3 , x(1) es el
valor del ángulo con respecto a X para la posición requerida
teta4 = x(2)-x(1) %%Posición alterna x(1)-teta2 ÁNGULO DEL MOTOR 4

%% REPRESENTACIÓN
view(30,50)
esc=1;
To=[200 0 0 0;0 200 0 0;0 0 200 0;0 0 0 200]
frame(To,'w',esc)
hold on

I=[0;0;0;1]

%% PRIMER OPERACIÓN (TRASLACIÓN)


T0_1= [1 0 0 0;
0 1 0 0;
0 0 1 L0;
0 0 0 1];

P1= T0_1*I;
Pold= [0,0,0]
Pact=P1
plot3([Pold(1) Pact(1)],[Pold(2) Pact(2)],[Pold(3) Pact(3)],'b','LineWidth',5)
Pold=Pact

%% SEGUNDA OPERACIÓN (ROTACIÓN + TRASLACIÓN)


Ry1=[cosd(teta1) 0 sind(teta1) 0;
0 1 0 0;
-sind(teta1) 0 cosd(teta1) 0;
0 0 0 1];

T1_2=[1 0 0 L1;
0 1 0 0;
0 0 1 0;
0 0 0 1];

OP2= T0_1*Ry1*T1_2
P2=OP2*I
Pact=P2
plot3([Pold(1) Pact(1)],[Pold(2) Pact(2)],[Pold(3) Pact(3)],'k','LineWidth',5)
Pold=Pact

%% TERCERA OPERACIÓN (ROTACIÓN + TRASLACIÓN)


RZ1=[cosd(teta2) -sind(teta2) 0 0 ;
sind(teta2) cosd(teta2) 0 0;
0 0 1 0;
0 0 0 1];

T2_3=[1 0 0 L2;
0 1 0 0;
0 0 1 0;
0 0 0 1];
OP3=OP2*RZ1*T2_3

P3=OP3*I
Pact=P3
plot3([Pold(1) Pact(1)],[Pold(2) Pact(2)],[Pold(3) Pact(3)],'b','LineWidth',5)
Pold=Pact

%% CUARTA OPERACIÓN (ROTACIÓN + TRASLACIÓN)


Rz2=[cosd(teta3) -sind(teta3) 0 0 ;
sind(teta3) cosd(teta3) 0 0;
0 0 1 0;
0 0 0 1];

T3_4=[1 0 0 L3;
0 1 0 0;
0 0 1 0;
0 0 0 1];

OP4=OP3*Rz2*T3_4

P4=OP4*I
Pact=P4
plot3([Pold(1) Pact(1)],[Pold(2) Pact(2)],[Pold(3) Pact(3)],'k','LineWidth',5)
Pold=Pact
%% QUINTA OPERACIÓN (ROTACIÓN + TRASLACIÓN)
Rz3=[cosd(teta4) -sind(teta4) 0 0 ;
sind(teta4) cosd(teta4) 0 0;
0 0 1 0;
0 0 0 1];

T4_5=[1 0 0 L4;
0 1 0 0;
0 0 1 0;
0 0 0 1];

OP5=OP4*Rz3*T4_5
P5=OP5*I
Pact=P5
plot3([Pold(1) Pact(1)],[Pold(2) Pact(2)],[Pold(3) Pact(3)],'b','LineWidth',5)
Pold=Pact

% %% SEXTA OPERACIÓN (LAPIZ)


%
% Tlapiz=[1 0 0 0;
% 0 1 0 0;
% 0 0 1 -L5;
% 0 0 0 1];
%
% OP6= OP5*Tlapiz;
% P6=OP6*I
% Pact=P6
% plot3([Pold(1) Pact(1)],[Pold(2) Pact(2)],[Pold(3) Pact(3)],'y','LineWidth',5)
% Pold=Pact

Por ejemplo, si se quiere posicionar al brazo en las coordenadas Px=215, Py = 157 y Pz=
65, el programa arroja que:

Figura 12. Representación del manipulador con los puntos posicionados.

Y los ángulos de los motores fueron:


TRAYECTORIA DEL MANIPULADOR

La figura que va a dibujar el manipulador es la siguiente:

Figura 13. Figura que dibujara el manipulador.

La idea es que el robot pueda realizar de forma adecuada las líneas rectas que conforman
el triángulo, y que sea capaz de posicionarse en los puntos que le permiten trazar las
líneas diagonales. Como se tienen las coordenadas de cada uno de los puntos de la ruta,
gracias a que se trazaron en SolidWorks teniendo en cuenta el sistema de referencia del
brazo, sólo se deben hallar todas las sucesiones de puntos que garantizan que se trace
la forma, y los ángulos que le permiten al robot esto.

Esto es posible gracias al programa que se creó anteriormente en Matlab.

Por ejemplo, tomando como punto de inicio la esquina superior derecha (x240 , y30), el
brazo tendría la siguiente configuración.
Figura 14. Representación del punto de inicio el manipulador.

A lo cual, se arrojarían los siguientes ángulos para los motores.

Pero hay que tener en cuenta que los ángulos en Simscape se ubican en radianes.
De igual manera, se hace lo mismo para el punto x230, y30 (el brazo baja por la línea),
teniendo en cuenta que mientras más cerca estén los puntos, mejor será el acabado de
la trayectoria.

Figura 15. Representación del punto de inicio el manipulador.

Y los ángulos de los actuadores que permiten esta configuración son:


La dinámica es la misma para el resto de los puntos (hay que tener en cuenta que el
brazo no debe quedar en posiciones imposibles, o que hagan que los motores choquen
entre ellos). Una vez se tengan todos los puntos, estos se ingresan en un editor de
señales, de modo que se puedan ingresar a los actuadores como la señal de posición.

Figura 16. Representación de un editor de simulink del manipulador.


Lac constantes se aplican para hacer que el manipulador quede en la posición inicial que
se describió anteriormente, ya que el simscape no toma estos valores de forma
predeterminada. Lo anterior se realiza para todos los actuadores.

El diagrama de Simscape queda de la siguiente manera:

Figura 17. Representación del esquema de simulink del manipulador.

Y las gráficas de posición ingresadas a cada uno de los actuadores fueron:

• Para Teta 1:
Figura 18. Grafica obtenida para teta1 del manipulador.

• Para Teta 2:

Figura 19. Grafica obtenida para teta2 del manipulador.

• Para Teta 3:

Figura 20. Grafica obtenida para teta3 del manipulador.

• Para Teta 4:
Figura 21. Grafica obtenida para teta4 del manipulador.

De esta manera se consigue que el manipulador describa la trayectoria requerida, sin


embargo, para que se observe el trazo que este deja, es necesario ubicar un sensor en
la punta del lápiz, y que el mismo tome cada uno de los datos de las coordenadas que se
recorren, y que un spline grafique la trayectoria.

Figura 22. Esquema de simulink de la punta del manipulador.

Aquí se toman todos los datos del sensor y se envían aun código llamado sensor.
Figura 23. Código programado para la lectura del sensor en la punta del manipulador.

De este código se envían todos los puntos obtenidos al spline en el programna Simscape
del robot.

Figura 24. Programa donde se evidencia la trayectoria del manipulador.

Con todo esto listo, se puede simular la trayectoria desde el programa SENSOR.
Figura 25. Simulación de la trayectoria del manipulador.

Toda la trayectoria dura 50 segundos.

El aspecto del manipulador se debe a los materiales que se aplicaron para que los pesos
de los motores y demás accesorios encajaran con la realidad.

DINÁMICA DEL MANIPULADOR EN SIMSCAPE

Para que simscape calculara la dinámica de cada uno de los motores del manipulador,
fue necesario adquirir datos del mismo de la vida real, como su peso, y se obtuvo que;

• Motor: Masa de 53.55 gr


• Unión: 12.75 gr
• Lápiz: 8.75 gr

Se agregaron materiales en el ensamblaje que hicieran que los componentes llegaran a


las masas indicadas. Y con esto se configuraron los bloques para que sensaran:
Velocidad, Aceleración y Torque en los actuadores.
Figura 26. Configuración de bloques para sensar velocidad, aceleración y torque.

De la posición ya se tiene la gráfica que se mostró anteriormente. Entonces, se obtuvieron


los siguientes datos:

• Para el motor 1:

Figura 27. Grafica de los datos obtenidos para el motor 1.


• Para el motor 2:

Figura 28. Grafica de los datos obtenidos para el motor 2.

• Para el motor 3:

Figura 29. Grafica de los datos obtenidos para el motor 3.

• Para el motor 4:
Figura 30. Grafica de los datos obtenidos para el motor 4.

Como era de esperarse, debido a que las gráficas de posición son sucesiones de rampas,
es esperable que la velocidad, su derivada, sean funciones de tipo escalón, y por
consiguiente, la derivada de la anterior, la aceleración, sean impulsos. Lo que siempre se
busca es minimizar o suavizar estas respuestas, sobre todo la de la aceleración. De igual
manera, los torques que desarrollan los motores son en su mayoría instantáneos, y sirven
para vencer la inercia del reposo, o del cambio de posición abrupto.

SUAVIZACIÓN DE ENTRADAS DE VELOCIDAD Y ACELERACIÓN

Debido a que la señal de posición se ha introducido como rampas, cambios de posición


constantes, es normal que las gráficas de velocidad y de aceleración no sean las adecuadas,
por ello, se suavizaron esas entradas, cambiando la gráfica de posición por una de un polinomio
de grado 3. Se usó un polinomio de grado 3, porque Matlab no podía sacar la inversa de la
matriz de polinomios de tiempo.

Se tiene entonces que:

𝑞(𝑡) = 𝛼0 + 𝛼1 𝑡0 + 𝛼2 𝑡02 + 𝛼3 𝑡03

𝑞̇ (𝑡) = 𝛼1 + 2𝛼2 𝑡0 + 3𝛼3 𝑡02

Estos coeficientes pueden ser hallados de la siguiente manera:


1 𝑡0 𝑡02 𝑡03 𝛼 𝑞0
0
2 𝑞0̇
0 1 2𝑡0 3𝑡0 𝛼1
3 [𝛼 ] = [𝑞𝑓 ]
1 𝑡𝑓 𝑡𝑓2 𝑡𝑓 2
2 𝛼3 𝑞𝑓̇
[0 1 2𝑡𝑓 3𝑡𝑓 ]

Entonces, si se conocen las condiciones de ángulo inicial, ángulo final, velocidad angular inicial
y velocidad angular final, es posible hallar los coeficientes del polinomio que describen la curva
que se necesita. Estos valores pueden ser tomados de las gráficas de posición ya generadas
anteriormente.

Para calcular estos coeficientes, se deben multiplicar estas condiciones por la inversa de la
matriz de polinomios en el tiempo, para ello se creó el siguiente programa.

%% CONDICIONES DE LOS ÁNGULOS


q_0 = 45; %% ángulo inicial
q_1 = 40; %% ángulo final
qp_0= 0; %% velocidad inicial
qp_1= 0; %% velocidad final
qpp_0= 0; %% aceleración inicial
qpp_1= 0;%% aceleración final
t0=48%% Tiempo inicial
tf=49 %% Tiempo final

MR=[q_0;
qp_0;
q_1;
qp_1];

M1=[1 t0 t0^2 t0^3;


0 1 2*t0 3*t0^2;
1 tf tf^2 tf^3;
0 1 2*tf 3*tf^2];
%%
POL= inv(M1)
RESULTADO= POL*MR
RESULTADO2=POL\MR
syms x
polinomio = RESULTADO(1)+RESULTADO(2)*x + RESULTADO(3)*x^2 +RESULTADO(4)*x^3

Y de esta manera, se puede hallar el polinomio característico para cada cambio de ángulo que
ocurra en la trayectoria, y esto se debe graficar para cada uno de los cambios ocurridos, por lo
que es un procedimiento largo, por lo que se realizó sólo para el motor 2.

La gráfica de posición del motor 2 era:


Figura 31. Grafica de la posición del motor 2.

Y la gráfica suavizada obtenida fue:

Figura 32. Grafica suavizada de la posición del motor 2.

Donde se puede observar que las líneas ya no acaban en punta, sino que están suavizadas ya
que corresponden a un polinomio de grado 3.
Figura 33. Grafica suavizada de la posición del motor 2.

Para la gráfica de velocidad se tenía:

Figura 34. Grafica de la velocidad.

Mientras que la que se obtuvo derivando los polinomios obtenidos fue:


Figura 35. Grafica derivando los polinomios.

Como se observa, la gráfica ya no corresponde a escalones, sino que corresponde a una


gráfica de orden cuadrático, que ya no tendrá como derivada los impulsos, sino la rampa.

Por otro lado, las gráficas de aceleración obtenidas fueron:

Figura 36. Grafica de la aceleración.

Se observa que son impulsos, algo que no se quiere cuando se busca mover los actuadores.

La gráfica suavizada fue:


Figura 37. Grafica suaviazada.

Como se observa, corresponde a rampas que indican los picos de aceleración.

De esta manera se suavizan las entradas de aceleración y velocidad para cada uno de los
manipuladores.

DINAMICA DEL ROBOT POR METODO DE LAGRANGE


La ecuación de movimiento de Euler-Lagrange está dada por
𝑑 𝜕𝐿 𝜕𝐿
𝜏𝑖 = ( ) − 𝑖 = 1 … 𝑁 𝑝𝑎𝑟𝑎 𝑁 𝑔𝑟𝑎𝑑𝑜𝑠 𝑑𝑒 𝑙𝑖𝑏𝑒𝑟𝑡𝑎𝑑
𝑑𝑡 𝜕𝜃𝑖̇ 𝜕𝜃𝑖
𝜕𝜃𝑖
𝑉𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑𝑒𝑠 = 𝜕𝜃𝑖̇ =
𝜕𝑡
𝜕𝜃̇𝑖
𝐴𝑐𝑒𝑙𝑒𝑟𝑎𝑐𝑖𝑜𝑛 = 𝜕𝜃̈𝑖 =
𝜕𝜃𝑡
Y la función de Lagrange L es: 𝐿 = 𝐾 − 𝑈 donde K=Energía Cinética y U= Energía Potencial
1 1
𝐸𝑛𝑒𝑟𝑔𝑖𝑎 𝐶𝑖𝑛𝑒𝑡𝑖𝑐𝑎 𝐾 = 𝑚1 𝑣 2 + 𝐼1 𝜃̇ 2
2 2
𝐿21 𝑚1
𝑦 𝐼1 =
2
𝐸𝑛𝑒𝑟𝑔𝑖𝑎 𝑃𝑜𝑡𝑒𝑛𝑐𝑖𝑎𝑙 𝑈 = 𝑚𝑔ℎ

La representación de las ecuaciones por método de Lagrange se programa en Matlab para


obtener el modelado del sistema y las matrices de rotación y traslación, teniendo en cuenta que
en el modelado se dan los dos primeros ángulos como 90° y 0°, mientras que los otros dos son
los que realizaran el movimiento y por tanto su rango es de 0° a 180°, a continuación, se tiene
el código programado:
%% matrices
clc
clear
syms a2 a3 m t
L1 = 0.066;
L2 = 0.066;
L3 = 0.066;
L4 = 0.066;

a1 = 45;

Tz = [1, 0, 0, 0;
0, 1, 0, 0;
0, 0, 1, L1;
0, 0, 0, 1]

Rz1 = [cosd(a1), -sind(a1), 0, 0;


sind(a1), cosd(a1), 0, 0;
0, 0, 1, 0;
0, 0, 0, 1]

Tx1 = [1, 0, 0, L2;


0, 1, 0, 0;
0, 0, 1, 0;
0, 0, 0, 1]

Rz2 = [cosd(a2), -sind(a2), 0, 0;


sind(a2), cosd(a2), 0, 0;
0, 0, 1, 0;
0, 0, 0, 1]

Tx2 = [1, 0, 0, L3;


0, 1, 0, 0;
0, 0, 1, 0;
0, 0, 0, 1]

Rz3 = [cosd(a3), -sind(a3), 0, 0;


sind(a3), cosd(a3), 0, 0;
0, 0, 1, 0;
0, 0, 0, 1]

Tx3 = [1, 0, 0, L4;


0, 1, 0, 0;
0, 0, 1, 0;
0, 0, 0, 1]

T = Tz*Rz1*Tx1*Rz2*Tx2*Rz3*Tx3

Tn = T(:,4)

%% Velocidad
T1 = Tz*Rz1*Tx1

T2 = T1*Rz2*Tx2

T2n = T2(1:3,4)

V2 = diff(T2n)
V21 = (V2(1,1))^2
V22 = (V2(2,1))^2
V23 = (V2(3,1))^2

V2F = [V21; V22; V23]


K2 = ((1/4)*m*(L2+L3)^2)*V2F

U2 = m*9.8*L1

L2 = K2 - U2

T3 = T2*Rz3*Tx3
T3n = T3(1:3,4)
V3 = diff(T3n,a3)
V31 = (V3(1,1))^2
V32 = (V3(2,1))^2
V33 = (V3(3,1))^2

V3F = [V31; V32; V33]


K3 = ((1/4)*m*(3*L3)^2)*V3F

U2 = m*9.8*L1

L3 = K3 - U2
t=0:0.1:1

a3=45*t*pi/180;
a1=30*pi/180;
a2=10*t*pi/180;

m=0.05355+0.01275;

T2V=eval(L2(1,1));
T3V=eval(L3(1,1));

t=0:0.1:1;

figure(7)
plot(t,-T2V)
title('Torque a1')
figure(8)
plot(t,-T3V)
title('Torque a2')
figure(9)
plot(t,-T2V,t,-T3V)
legend('Torque a1','Torque a2')

Lf = L2 + L3

Resultados del código:


Torques
Se probó realizar la velocidad del tercer eslabón de manera similar a la del archivo de ayuda
presentado por el profesor, igualando la energía cinética a su componente angular y hallar el
torque y Lagrange de este solo eslabón, pero se encontraron errores de código incomprensibles
a la hora de plotear y por esto se descartó la gráfica ya que no fue posible realizarla.

CONCLUSIONES:
- Se concluye que la obtención del torque mediante la fórmula de Lagrange no es fiable
del todo mediante el software Matlab ya que presenta inconvenientes a la hora de
realizar este procedimiento y no muestras las ayudas suficientes para detectar los
errores de programación o propiamente del software.
- Se concluye que los motores no pueden recibir coordenadas negativas, se usaron
arbitrariamente unos ángulos que en nuestro caso sería a 90° de la izquierda, de
manera que para encontrar los ángulos complementarios con Matlab debíamos restar
estos 90° a los dados por Matlab ya que se encontraba el ángulo a 90° del eje del motor.
- En conclusión, los motores no se pudieron usar los integrados el sistema que
normalmente se usan para su control de manera que no se puede cuadrar un cero
estable, de manera que las paletas quedan desfasadas y no cumpla estrictamente con
los valores pedidos si no con un margen de error al pedir un ángulo.
- Se concluye que las piezas impresas es mejor usar un promedio de relleno mayor al
20% ya que se presentaron fallas con estos porcentajes, siendo lo normalmente usado.

También podría gustarte