Está en la página 1de 14

UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN

FACULTAD DE MEDICINA
BIOMECÁNICA DE PRÓTESIS

Ing. Juan Carlos Sernaque Julca

Aplicación de cinemática directa


La aplicación del proyecto de cinemática consiste en parametrizar el conjunto
necesario de ecuaciones para obtener las coordenadas cartesianas que definen
las trayectorias de “letras manuscritas” (tipo cursiva); por medio del
modelo cinemático directo del robot (ver archivo anexo sobre asignación de
configuración Robótica), programar el extremo final de tal forma que dibuje
sobre un plano horizontal las trayectorias de las letras que forman el nombre
completo del alumno (nombre y apellidos).

Cindy Jannet González Leal

172300

Ingeniero Biomédico

23 de marzo del 2023, Monterrey, Nuevo León


I. Objetivos

▪ Programación de un robot manipulador de dos grados de libertad (2GDL) en el plano xy.


▪ Obtener la trayectoria que se desea que siga el robot en el plano (los puntos [x,y]) que se
desean alcanzar en el espacio de trabajo.
▪ Calcular los ángulos [q1;q2] que debe tomar cada uno de los dos grados de libertad del
robot para alcanzar dicha trayectoria.
▪ Obtener la posición y orientación del efector final del robot a partir de los ángulos [q1;q2]
y los parámetros geométricos del robot (longitudes de los eslabones).
▪ Presentar una figura que muestra la trayectoria seguida por el robot y su posición final
en el espacio de trabajo.

II. Resumen

El procedimiento recomendado consiste en programar un robot manipulador de dos grados


de libertad (2GDL) para que siga una trayectoria en el plano xy. Se deben seguir los pasos de
obtener las trayectorias deseadas en coordenadas cartesianas [x,y], obtener los ángulos
[q1;q2] mediante cinemática inversa, obtener la cinemática directa, presentar figuras y
repetir los pasos para completar la trayectoria.
La cinemática inversa se utiliza para calcular los ángulos [q1;q2] necesarios para que el robot
pueda alcanzar la trayectoria deseada en coordenadas cartesianas [x,y]. Por otro lado, la
cinemática directa se utiliza para obtener la posición y orientación del efector final del robot
a partir de los ángulos [q1;q2]. Estos conceptos son fundamentales en la programación de
robots manipuladores, ya que permiten calcular los movimientos necesarios para que el
robot alcance una posición deseada en el espacio de trabajo.

III. Planteamiento y descripción del problema

El código de MATLAB dibuja varias letras para formar el nombre “Cindy Jannet González
Leal” en un plano 2D utilizando la función "plot". Al inicio del código, se agregan funciones
que contribuyen con la limpieza del entorno de trabajo "clc", "clear all" y "close all" y la
definición del formato de salida "format short".
Luego, se definen las coordenadas (xc, yc) del centro de un círculo y se genera un vector "t"
con valores e incrementos. Se define también el radio del círculo "r" y se calculan las
coordenadas de los puntos en el círculo utilizando las funciones "cos" y "sin". Estas
coordenadas se almacenan en los vectores "x" e "y". Finalmente, se dibuja el círculo con la
función "plot" y se retiene la gráfica con "hold on".
El código se repite de manera similar para dibujar todas las letras, utilizando círculos y
segmentos de línea para conectarlos. En resumen, el código genera una figura compuesta
de varias formas geométricas, cada una de las cuales se dibuja utilizando la función "plot".
Las letras se forman al conectar los círculos y los segmentos de línea apropiados.
La cinemática estudia el movimiento del robot con respecto a un sistema de referencia sin
considerar las fuerzas que intervienen. Estudia, además, las relaciones entre las velocidades
del movimiento de las articulaciones y las del extremo.
La cinemática directa consiste en determinar la posición y orientación del extremo final del
robot, con respecto a un sistema de referencia, conocidos los valores de las articulaciones
(ángulos) y los parámetros geométricos de los elementos del robot. Mientras que la
cinemática inversa determina las configuraciones de articulaciones necesarias para que un
modelo de robot logre la posición del efector final deseada. Las restricciones cinemáticas del
robot se especifican en el modelo de robot en función de la transformación entre
articulaciones. También puede especificar restricciones externas, como una restricción de
apuntamiento para un brazo de cámara o un cuadro delimitador cartesiano en el enlace de
un determinado cuerpo rígido.

IV. Solución del problema

A continuación, se presenta un ejemplo de la solución del problema, ilustrando como se


realizan los trazos para las letras “C” e “i”:

%C:parámetros del circulo


xc1=4; yc1=.5;
t=.7:0.001:5.5;
r=.5;
x=xc1+r.*cos(t);
y=yc1+r.*sin(t);
plot(x,y)
hold on

En esta sección se definen tres variables: xc1, yc1 y r. Estas variables se utilizan para definir
las coordenadas del centro y el radio de un círculo que se dibujará en el plano. Luego se
utiliza la función cos y sin de MATLAB para calcular las coordenadas (x,y) de los puntos que
conforman el círculo, a partir de un ángulo t, que representa un vector que va desde 0.7
hasta 5.5 con un intervalo de 0.001. Es decir, t es un vector que contiene una secuencia de
valores entre 0.7 y 5.5, donde cada valor está separado por una cantidad fija de 0.001. Este
vector se utiliza para generar una curva circular que representa una circunferencia en un
plano cartesiano.

%i
xc1=4.02; yc1=.45;
t=2.38:0.001:3;
x1=xc1+-.9*r.*cos(t);
y1=yc1+.9*r.*-sin(t);

xc2=4.91; yc2=.45;
t=2:0.001:3;
x2=xc2+.9*r.*cos(t);
y2=yc2+.9*r.*-sin(t);
xc1=4.48; yc1=.5;
t=0:0.001:7;
x3=xc1+.05*r.*cos(t);
y3=yc1+.05*r.*-sin(t);
plot(x1,y1,x2,y2,x3,y3)
hold on

xc4=4.8;yc4=.25;
t=2:0.001:4;
r4=0.225;
x4=xc4+r4.*sin(t);
y4=yc4+r4.*cos(t);
plot(x4,y4)
hold on

En este segundo código, se dibujan cuatro trazos en el gráfico utilizando coordenadas


polares y cartesianas para formar la letra “i”.
Nuevamente, se definen las coordenadas cartesianas del centro de un círculo en la variable
xc1 y yc1. Luego, se define el intervalo de valores de ángulo t para trazar la circunferencia
del círculo mediante la función cos() y sin(). La variable r es el radio del círculo.
Luego, se definen dos arcos con centros en xc1 y yc1 utilizando el mismo intervalo t para los
ángulos. Se usan las coordenadas polares para definir los puntos en el arco utilizando la
función cos() y sin(). Las coordenadas x y y se definen como la suma de la coordenada del
centro xc1 y yc1 respectivamente, más la multiplicación del radio del círculo r por cos(t) y -
sin(t) respectivamente.
Después se definen dos arcos más con centros en xc2 y yc2. De nuevo, se usan las
coordenadas polares para definir los puntos en el arco utilizando las mismas funciones
trigonométricas. Las coordenadas x y y se definen de manera similar a las del arco anterior.
A continuación, se define otro arco con centro en xc1 y yc1, pero en este caso el radio es
mucho menor. Esto se logra cambiando el valor de r a .05*r.
Finalmente, se dibuja un círculo más pequeño con centro en xc4 y yc4, utilizando las mismas
funciones trigonométricas para definir los puntos en el círculo, pero esta vez utilizando sin()
y cos() en lugar de cos() y -sin() para obtener un círculo más pequeño.
Las funciones plot() y hold on son utilizadas para dibujar cada una de las figuras en el mismo
gráfico, manteniendo las figuras previamente dibujadas en el gráfico.

Ahora bien, con respecto al análisis de cada una de nuestras letras, se presenta a
continuación un ejemplo de la primera letra “C” para obtener la cinemática directa e inversa:

%C
l1=2.3; l2=2.3; %longitud del brazo
beta1=0.1; beta2=0.1; %espesor del servomotor
q1=[]; q2=[]; %posición angular
xc1=4; yc1=.5; %parámetros del circulo

t=.7:0.001:5.5;
r=.5;
x=xc1+r.*cos(t); %ecuación del círculo
y=yc1+r.*sin(t); %ecuación del círculo
%cinemática inversa: calcular las coordenadas de las articulaciones del
robot de 2 gdl a partir de las coordenadas
[q1,q2]=cinv_r2gdl(l1,l2,x,y);
%coordenadas cartesianas del extremo final del robot de 2 gdl
[x0, y0, z0]=cinematica_r2gdl(beta1,l1,q1,beta2,l2,q2);

figure(1) %define a nuestra primera figura dentro del código


subplot(2,2,1); plot(x,y)%circulo
subplot(2,2,2); plot(t,q1,t,q2)% cinemática inversa articulaciones
subplot(2,2,3); plot(x0,y0) %cinemática directa (extremo final)
%(fila, columna, subíndice)

V. Discusión y análisis de resultados

Figura 1.1 Coordenadas [x y] de las trayectorias para el nombre completo


Figura 1.2 Cinemática directa e inversa de la letra “C”

Figura 1.3 Cinemática directa e inversa de la letra “i”

Figura 1.4 Cinemática directa e inversa de la letra “n”


Figura 1.5 Cinemática directa e inversa de la letra “d”

Figura 1.6 Cinemática directa e inversa de la letra “y”

Figura 1.7 Cinemática directa e inversa de la letra “J”


Figura 1.8 Cinemática directa e inversa de la letra “a”

Figura 1.9 Cinemática directa e inversa de la letra “n”

Figura 1.10 Cinemática directa e inversa de la letra “n”


Figura 1.11 Cinemática directa e inversa de la letra “e”

Figura 1.12 Cinemática directa e inversa de la letra “t”

Figura 1.13 Cinemática directa e inversa de la letra “G”


Figura 1.14 Cinemática directa e inversa de la letra “o”

Figura 1.15 Cinemática directa e inversa de la letra “n”

Figura 1.16 Cinemática directa e inversa de la letra “z”


Figura 1.17 Cinemática directa e inversa de la letra “a”

Figura 1.18 Cinemática directa e inversa de la letra “l”

Figura 1.19 Cinemática directa e inversa de la letra “e”


Figura 1.20 Cinemática directa e inversa de la letra “z”

Figura 1.21 Cinemática directa e inversa de la letra “L”

Figura 1.22 Cinemática directa e inversa de la letra “e”


Figura 1.23 Cinemática directa e inversa de la letra “a”

Figura 1.24 Cinemática directa e inversa de la letra “C”

Los resultados obtenidos en este problema incluyen tres tipos de gráficas que representan
diferentes aspectos del movimiento del robot de 2 grados de libertad (2gdl). Las gráficas del
lado izquierdo muestran las trayectorias en coordenadas (x, y) que forman cada letra, lo que
permite visualizar el movimiento general del robot mientras dibuja las letras. Las gráficas de
la derecha muestran los ángulos [q1, q2] de cada trayectoria de la letra obtenidos mediante
la cinemática inversa. Los ángulos exhibirán curvas que se asemejan a funciones
trigonométricas como el seno y el coseno. Las gráficas de la segunda fila muestran las
trayectorias de cada letra obtenidas mediante la cinemática directa, lo que permite
comparar y contrastar los movimientos reales del robot con los resultados esperados de la
cinemática inversa. En resumen, estas gráficas proporcionan una visión detallada del
movimiento del robot y la precisión de la cinemática inversa y directa.

VI. Conclusiones
En conclusión, la programación de robots manipuladores es un proceso que requiere seguir
un conjunto de pasos específicos para lograr que el robot pueda moverse en una trayectoria
deseada en el espacio de trabajo. En este caso, se programa un robot manipulador de dos
grados de libertad (2GDL) para seguir una trayectoria en el plano xy.
Es importante obtener las trayectorias deseadas en coordenadas cartesianas [x,y] y luego
utilizar la cinemática inversa para calcular los ángulos [q1;q2] necesarios para que el robot
pueda alcanzar la trayectoria deseada. La cinemática directa se utiliza para obtener la
posición y orientación del efector final del robot a partir de los ángulos [q1;q2].
Por medio de la actividad se fortalecieron los conceptos de cinemática directa, la cual se
refiere al proceso de obtener la posición y orientación del efector final de un robot a partir
de los valores de sus grados de libertad o ángulos articulares. Es decir, dada una
configuración de los ángulos de las articulaciones del robot, la cinemática directa calcula la
posición y orientación del extremo final del robot. Por otro lado, también se tiene la
cinemática inversa, que se refiere al proceso de obtener los ángulos articulares necesarios
para posicionar el efector final del robot en una posición y orientación determinadas. Por
medio de la aplicación real se extiende el panorama de implementación de estos conceptos
en la programación de robots manipuladores.

VII. Referencias bibliográficas

▪ Fernando Reyes Cortés. MATLAB Aplicado a Robótica Y Mecatrónica. Alfaomega, 2012.


▪ Fernando Reyes Cortés. Robótica: Control de Robots Manipuladores. Alfaomega, 2012.
▪ MathWorks. Inverse Kinematics. Recuperado el 23 de marzo de 2023, de
https://es.mathworks.com/help/robotics/inverse-kinematics.html

También podría gustarte