Está en la página 1de 12

Benemérita Universidad Autónoma de Puebla

Facultad Ciencias de la Electrónica

Ingeniera en Mecatrónica

Robótica
Proyecto: aplicación de cinemática directa

Alumno:
Eduardo Arriaga Fernández

Profesor:
Dr. Fernando Reyes Cortes

3 de octubre de 2019

24 de mayo de 2019
Resumen:
El análisis y diseño de la trayectoria que realiza un robot se logra gracias al estudio
de la cinemática directa, así mismo la cinemática inversa obtiene la orientación de
la herramienta del extremo final del robot dadas unas coordenadas cartesianas.
En la presente practica se llevará a cabo una aplicación de cinemática directa de un
robot antropomórfico de dos grados de libertad donde se parametrizará en
coordenadas cartesianas el conjunto de ecuaciones para generar un rombo en un
plano horizontal por medio del modelo cinemático directo y la cinemática inversa.
Como herramienta se ocupará el software Matlab donde se hará uso del método de
Denavit-Hartenberg para obtener la cinemática directa y donde será diseñada la
función de cinemática inversa, de esta manera se conseguirá que la trayectoria del
robot trace un rombo.
Propósitos
Propósito General
 Parametrizar en coordenadas cartesianas el conjunto de ecuaciones
necesarias para generar una figura geométrica tipo rombo en un plano
horizontal por medio del modelo cinemático directo del robot antropomórfico
de 2 gdl.

Propósitos Particulares
 Obtener y comprender la cinemática directa de un robot de 2gdl por el método
de Denavit-Hartenberg.
 Hacer uso de las matrices homogéneas para poder obtener la transformación
homogénea del robot de 2 gdl.
 Obtener la cinemática inversa del robot de 2 gdl.
 Diseñar un programa en MATLAB ocupando los programas vistos en clase
de función de cinemática directa y función de cinemática inversa del robot de
2 gdl y programar una aplicación donde el extremo final del robot dibuje un
rombo.

1) Introducción
Un robot industrial está compuesto por una serie consecutiva de eslabones y
articulaciones para formar una cadena en cinemática abierta la cual es la estructura
mecánica básica de un robot industrial.

El espacio de trabajo (workspace) de un robot manipulador es el espacio o lugar


donde el robot puede realizar todos sus posibles movimientos y está determinado
por la geometría del robot y la naturaleza de sus articulaciones (lineales y
rotacionales).

La estructura mecánica del robot manipulador se caracteriza por tener un número


de grados de libertad, los cuales determinan en forma única su configuración.
Típicamente, cada grado de libertad está asociado a una articulación.

Es necesario el estudio de la cinemática directa de un robot para analizar y diseñar


el desplazamiento de trayectorias, así como la orientación de las herramientas de
trabajo. El papel fundamental de la cinemática directa, es computar la posición y
orientación del extremo final del robot manipulador como una función de las
variables articulares. (Reyes 2012)

Para el desarrollo de la cinemática directa se ocupa el método de Denavit-


Hartenberg. El método de Denavit-Hartenberg es una herramienta ampliamente
conocida en el área de ingeniería, ya que ofrece un procedimiento sencillo para
obtener el modelo cinemático directo cuya estructura queda en términos de las
transformaciones homogéneas.
La cinemática inversa es un problema no lineal que relaciona las coordenadas
articulares en función de las coordenadas cartesianas y la orientación de la
herramienta del extremo final del robot manipulador. (Reyes 2012)
Con el uso de Matlab se agiliza la obtención de la cinemática directa, así como
también de la cinemática inversa de un robot ya que facilita los cálculos matemáticos
con el uso del método de Denavit-Hartenberg. además de esto permite hacer una
simulación de la trayectoria que trazara el robot.

2) Planteamiento y Descripción del Problema


La aplicación del proyecto de cinemática consiste en parametrizar en coordenadas
cartesianas el conjunto de ecuaciones necesarias para generar una figura
geométrica tipo rombo en un plano horizontal por medio del modelo cinemático
directo del robot antropomórfico de 2 gdl.

El centro geométrico de la figura deberá estar en las coordenadas 𝑥𝑐 = 0.3 𝑚, 𝑦𝑐 =


0.3 𝑚, 𝑧𝑐 = 0.2𝑚; 𝑙 = 0.25 𝑚 es la longitud de los lados del rombo.

3) Solución del Problema


3.1 Denavit-Hartenberg y cinemática directa
Primero se debe obtener la tabla de Denavit-Hartenberg (DH) del robot de 2 gdl.

El sistema de referencia fijo ∑0(𝑋0 𝑌0 𝑍0 ) se coloca en el respaldo del servomotor del


hombro, de tal forma que el eje 𝑍0 coincida con el eje de rotación (perpendicular al
plano de la hoja). El ancho de cada servomotor y espesor de la barra metálica está
determinado por 𝐵1 y 𝐵2, el sistema de referencia ∑1(𝑋1 𝑌1 𝑍1 ) es paralelo en el eje
z respecto a 𝑍0 por lo tanto 𝛼1 es 0 como los dos articulaciones son rotacionales se
coloca 𝑞1 𝑦 𝑞2 .

Figura 1. Robot planar vertical de 2 gdl.


Eslabón 𝑙𝑖 𝑎𝑖 𝑑𝑖 𝜃𝑖
1 𝑙1 0 𝐵1 𝑞1
2 𝑙2 0 𝐵2 𝑞2

Tabla 1. Parámetros DH para robot de 2 gdl.


Una vez obtenida la tabla se pasa al programa diseñado en Matlab y visto en clase
de función transformación homogénea del robot 2 gdl donde se obtiene 𝐻02 y por
consiguiente la cinemática directa del robot.
𝐻02 =

𝑐𝑜𝑠(𝑞1 + 𝑞2 ) −𝑠𝑒𝑛(𝑞1 + 𝑞2 ) 0 𝑙2 ∗ 𝑐𝑜𝑠(𝑞1 + 𝑞2 ) + 𝑙1 ∗ 𝑐𝑜𝑠(𝑞1 )


𝑠𝑒𝑛(𝑞1 + 𝑞2 ) 𝑐𝑜𝑠(𝑞1 + 𝑞2 ) 0 𝑙2 ∗ 𝑠𝑒𝑛(𝑞1 + 𝑞2 ) + 𝑙1 ∗ 𝑠𝑒𝑛(𝑞1 )
0 0 1 𝛽1 + 𝛽2

0 0 0 1

Cinemática directa =
𝑥0 𝑙2 ∗ 𝑐𝑜𝑠(𝑞1 + 𝑞2 ) + 𝑙1 ∗ 𝑐𝑜𝑠(𝑞1 )
[𝑦0 ] = 𝑓(𝑅) 𝑞 = [𝑙2 ∗ 𝑐𝑜𝑠(𝑞1 + 𝑞2 ) + 𝑙1 ∗ 𝑐𝑜𝑠(𝑞1)]
𝑧0 𝛽1 + 𝛽2

Teniendo el vector de cinemática directa del robot se desarrolla el programa en


Matlab de función cinemática directa del robot de 2 gdl.
3.2 Cinemática inversa
La cinemática inversa se obtiene por el procedimiento geométrico teniendo en
cuenta la siguiente imagen

Figura 2: cinemática inversa de un robot planar de 2 gdl.

𝒙𝟐𝟎 +𝒚𝟐𝟎 −𝒍𝟐𝟏 −𝒍𝟐𝟐


𝑥02 + 𝑦02 = [𝑙1 + 𝑙2 cos(𝑞2 )]2 + [𝑙2 sen(𝑞2 )]2 Despejando 𝑞2 𝒒𝟐 = 𝒂𝒄𝒐𝒔 𝟐𝒍𝟏 𝒍𝟐

Se observe que el ángulo 𝜗 satisface:


𝑙2 sen(𝑞2 ) 𝑦
𝜗 = 𝑎𝑡𝑎𝑛 𝑙 𝜗 + 𝑞1 = 𝑎𝑡𝑎𝑛 (𝑥0 )
1 +𝑙2 cos(𝑞2 ) 0

𝒚 𝒍𝟐 𝐬𝐞𝐧(𝒒𝟐 )
Despejando q1 𝒒𝟏 = 𝒂𝒕𝒂𝒏 (𝒙𝟎 ) − 𝒂𝒕𝒂𝒏 𝒍
𝟎 𝟏 +𝒍𝟐 𝐜𝐨𝐬(𝒒𝟐 )

Ya que se obtuvo la cinemática inversa del robot se debe diseñar el código en


Matlab de función cinemática inversa del robot de 2 gdl.
3.3 Aplicación figura rombo
Después de conseguir estas funciones se debe realizar la aplicación del robot la
cual como se menciono debe realizar una figura rombo.
Primero se debe comenzar con las partes que componen al rombo que son su
diagonal menor (𝑑1 ) la diagonal mayor (𝑑2 ) y sus lados (l) que para la aplicación
deben ser de 0.25m.
Figura 3: Elementos del rombo.
Tomando en cuenta que la diagonal menor y la diagonal mayor pueden ser del
mismo tamaño para que estas sean consideradas en nuestro programa a diseñar
como el radio (r) de la figura se puede obtener el siguiente valor del radio.
𝑑1 = 𝑑2 = r
Ocupando el teorema de Pitágoras para hallar el lado.

𝑙 2 = 𝑑1 2 + 𝑑2 2
𝑙 2 = 2𝑟 2
Despejando r

𝑙2
𝑟=√
2

Sustituyendo el valor de l
√2
𝑟= m
8

Con esto se cumple que el lado del rombo debe medir 0.25 metros.
Ahora se debe diseñar en Matlab el conjunto de ecuación para obtener un rombo,
primero se debe considerar que el centro geométrico de la figura deberá estar en
las coordenadas 𝑥𝑐 = 0.3 𝑚, 𝑦𝑐 = 0.3 𝑚, 𝑧𝑐 = 02 𝑚, además se debe de considerar
un tamaño para los brazos del robot así como el ancho de sus estatores los cuales
serán considerados de 0.45 m y 0.1m respectivamente.

%Centro geometrico figura


xc=0.3; %Posicion x centro de la figura
yc=0.3; %Posicion y centro de la figura
zc=0.2; %Posicion z centro de la figura

%Parámetros del rombo


n=4; % lados de la figura rombo (4)
R = ((2)^(1/2)/8); % "Radio" del rombo calculado para lados de 0.25
t = 0:(2*pi/n): 2*pi; % Tiempo simulación

l1=0.45; l2=0.45; %Largo brazos del robots


beta1=0.1; beta2=0.1; %Ancho estator del robot
q1=[]; q2=[]; %Angulos que forma el robot

Figura 4: Sección código Matlab


2𝜋
En el tiempo de simulación es importante que su crecimiento sea de considerando
𝑛
n=4 ya que el rombo tiene 4 lados, esto para que pueda ser trazada la figura además
se considera un tiempo de simulación de 2𝜋 .
Las ecuaciones que se ocupan son las mismas que son necesarias para trazar un
circulo.
𝑥 = 𝑥𝑐 + 𝑟 ∗ cos(𝑡ℎ𝑒𝑡𝑎)
𝑦 = 𝑦𝑐 + 𝑟 ∗ sen(𝑡ℎ𝑒𝑡𝑎)

Donde:
x e y: Son las posiciones necesarias para generar el rombo.
xc e yc: Son los valores para obtener el centro geométrico del rombo.
r: Es el valor del radio del rombo
theta: Es el periodo de movimiento que va de 0 a 2𝜋
% ecuación del rombo
[n,m]=size(t) % se obtiene tamaño de t
x = xc+R*cos(t); % valores de x para obtener rombo con centro en x= 0.3
y = yc+R*sin(t); % valores de y para obtener rombo con centro en y= 0.3
z(1:m) =zc; % valor constante de z= 0.2

Figura 5: Sección código Matlab


Para terminar el programa es necesario pasar los valores de x e y a la función
cinemática inversa para obtener los valores de q1 y q2 y posteriormente estos
valores llevarlos a la función cinemática directa para obtener la trayectoria, por
ultimo solo se grafican los resultados.

[q1,q2]=cinv_r2gdl(l1,l2,x,y); % cinemática inversa

%coordenas cartesianas del extremo final del robot de 2 gdl


[x0, y0, z0]=cinematica_r2gdl(beta1,l1,q1,beta2,l2,q2);

subplot(2,2,1); plot(x,y) %Rombo


subplot(2,2,2); plot(t,q1,t,q2) %Articulaciones
subplot(2,2,3); plot(x0,y0) %Extremo final

Figura 6: Sección código Matlab

4) Discusión y Análisis de Resultados

En la siguiente figura se puede visualizar las gráficas que muestran los resultados
obtenidos del programa; la primera describe el rombo trazado mediante las
ecuaciones, la segunda muestra la trayectoria trazada por el robot y la tercera
describe el movimiento de la articulación.
En adición se observa que los dos rombos son iguales y su centro geométrico está
en las coordenadas 𝑥 = 0.3 𝑚, 𝑦 = 0.3 𝑚, 𝑦 𝑐𝑜𝑛 𝑙𝑎𝑑𝑜𝑠 𝑑𝑒 𝑙 = 0.25 𝑚
Figura 7: Grafica plano horizontal XY de rombo, trayectoria y articulaciones.
La siguiente figura sirve para mostrar que en el eje z la altura es 𝑧 = 0.2 𝑚 por lo
tanto se comprueba que el centro geométrico del rombo está colocado
correctamente.

Figura 8: Grafica XYZ de rombo, trayectoria y articulaciones


5) Conclusiones
Gracias al proyecto de aplicación de cinemática de un robot de 2 gdl se puede ver
la importancia de la cinemática directa con el uso del método de Denavit-Hartenberg
ya que este método es una herramienta muy útil para poder obtener la cinemática
directa de una manera sencilla, debido a que solo se hace uso de 4 parámetros para
describir la cinemática del robot lo que permite ahorrar tiempo en los cálculos, en el
caso de la cinemática inversa su importancia radica en la obtención de la orientación
de la herramienta dadas unas coordenadas cartesianas sin esto no sería posible
obtener una trayectoria deseada que trace un robot, asimismo es notable mencionar
el uso de Matlab para la obtención y diseño de la cinemática directa así como el uso
de funciones para poder describir la cinemática inversa y así conjuntamente crear
un programa que logre simular una trayectoria deseada.

6) Referencias Bibliográficas
1. Reyes Cortés Fernando, MATLAB: Aplicado a robótica y mecatrónica, Alfaomega,
México, 2012.
2. Dr. Fernando Reyes Cortés, “Capítulo 2: Cinemática” 2019
Apéndice
Código de Matlab aplicación cinemática directa:
%Centro geométrico figura
xc=0.3; %Posición x centro de la figura
yc=0.3; %Posición y centro de la figura
zc=0.2; %Posición z centro de la figura

%Parámetros del rombo


n=4; % lados de la figura rombo (4)
R = ((2)^(1/2)/8); % "Radio" del rombo calculado para lados de 0.25
t = 0:(2*pi/n): 2*pi; % Tiempo simulación

l1=0.45; l2=0.45; %Largo brazos del robots


beta1=0.1; beta2=0.1; %Ancho estator del robot
q1=[]; q2=[]; %Ángulos que forma el robot

% Ecuación del rombo


[n,m]=size(t) % Se obtiene tamaño de t
x = xc+R*cos(t); % Valores de x para obtener rombo con centro en x= 0.3
y = yc+R*sin(t); % Valores de y para obtener rombo con centro en y= 0.3
z(1:m)=zc; % Valor constante de z= 0.2

% Cinemática inversa
[q1,q2]=cinv_r2gdl(l1,l2,x,y);
%Coordenas cartesianas del extremo final del robot de 2 gdl
[x0, y0, z0]=cinematica_r2gdl(beta1,l1,q1,beta2,l2,q2);

subplot(2,2,1); plot(x,y) %Rombo


subplot(2,2,2); plot(t,q1,t,q2) %Articulaciones
subplot(2,2,3); plot(x0,y0) %Extremo final

También podría gustarte