Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Brazo Robotico de 3 Grados de Libertad C PDF
Brazo Robotico de 3 Grados de Libertad C PDF
Bueno Ledezma Gabriel, Conejo Benitez Cesar Eduardo, Juan Barbosa Gerardo,
Pérez Bailón Waldemar, Ramírez Rebollo Daniel Rodrigo
Resumen
Este artículo describe el funcionamiento de un brazo robótico de 3 grados de libertad llamado
“ROBO-WRITER” al cuál se le aplica inteligencia artificial; describe las características mecánicas
que se utilizaron para la implementación, así como el tipo de programación que se utilizó. También
está presente la teoría de las redes neuronales, sin descartar que se explicara cada una de las
funciones que se utilizaron, incluyendo el programa que contiene la red neuronal y la entrenadora.
La finalidad de este prototipo es detectar dígitos del 0 al 9, los números son dibujados en una interfaz
del mismo programa, el número que es dibujado será reconocido mediante la red neuronal y se
desplegara una imagen del número que se dibujó, al mismo tiempo mandara una instrucción al brazo
robótico para que plasme el número detectado. La problemática a resolver será que, mediante la
implementación de los cálculos de la cinemática directa e inversa combinado con redes neuronales,
se demostrará que el brazo robótico puede moverse a una cierta posición para posteriormente
escribir el número deseado por el operador de la PC, además de que, al ser un proyecto educativo,
podría implementarse en la industria para un uso especial.
1. Introducción
Actualmente la mayoría de las investigaciones hacia el estudio de la robótica se ha ido
desarrollando de forma avanzada en países de primer nivel, principalmente en Japón, pero
desafortunadamente en México no se ha desarrollado a grandes aspectos. Existen empresas e
industrias comerciales mexicanas que utilizan manipuladores robóticos para la manufactura de sus
productos, pero el costo para la obtención de estos prototipos robóticos es elevado debido a que son
exportados del extranjero, esto provoca que la mano de obra sea más cara en México y por
consiguiente que los productos se vendan a un precio elevado.
297
Brazo Robótico de 3 Grados de Libertad con Inteligencia Artificial
En la actualidad los métodos de la inteligencia artificial (IA) tienen un gran auge y muchos
investigadores se encuentran estudiando nuevas alternativas en el área. Hoy en día es común el
empleo de sistemas que utilizan la IA para su funcionamiento cotidiano, entre ellos los equipos
electrodomésticos como lavadoras, hornos de microondas, cámaras de video, e inclusive sistemas
de transporte. Lo que se pretende con estos métodos en ingeniería es resolver los problemas, no
sólo de una manera novedosa, sino sobre todo tener mejores soluciones, más eficientes y mejor
planeadas [1].
d) Los androides o también conocidos como humanoides son robots que se parecen y
actúan como seres humanos, en la actualidad existen diversos humanoides y cada uno cuenta con
funciones diferentes, existen humanoides que se emplean en el área de la medicina y otros como un
juguete el cual el usuario pueda interactuar y aprender.
298
Brazo Robótico de 3 Grados de Libertad con Inteligencia Artificial
En una cadena serial, la solución siempre es única, dado un conjunto de vectores estos
siempre corresponderán a una única posición del actuador. Los métodos para el análisis de la
cinemática directa son:
a) Transformación de matrices
b) Geometría
c) Transformación de Coordenadas
El ROBO-WRITER es un robot manipulador que usa tres servomotores, por lo tanto, cuenta
con tres grados de libertad. El ultimo grado de libertad consiste en subir o bajar la herramienta de
escritura (lápiz), es por eso que para la obtención de la cinemática directa de este manipulador va a
tomarse en cuenta los dos primeros grados de libertad ya que son los encargados para el movimiento
del brazo robótico en la escritura.
a = L1 Cos θ1 (1)
b = L1 Sen θ1 (2)
a′ = L2 Cos(θ1 + θ2 ) (3)
b′ = L2 Sen(θ1 + θ2 ) (4)
Donde:
299
Brazo Robótico de 3 Grados de Libertad con Inteligencia Artificial
L2 b’
Ɵ2
Ɵ1
a’
L1
b
Ɵ1
a
a
La solución de la cinemática directa para la figura 1 es la suma de las ecuaciones (1) y (3)
para determinar X y la suma de las ecuaciones (2) y (4) para determinar Y.
Existe otro método utilizado para la obtención de la cinemática directa del manipulador el cual
está basado en la utilización de matrices de transformación homogénea.
De estos cuatro parámetros, dos describen al propio eslabón y dos describen la conexión entre
eslabones vecinos.
300
Brazo Robótico de 3 Grados de Libertad con Inteligencia Artificial
Donde 𝑅𝑅3𝑋𝑋3 = 𝑖𝑖−1𝑖𝑖𝑅𝑅 es una matriz de rotación (3 x 3) que determina la orientación del sistema
de coordenadas (i) con respecto al sistema de coordenadas (i-1). 𝑃𝑃3𝑥𝑥1 = 𝑃𝑃𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂 𝑖𝑖−1 , es un vector de
traslación de (3 x 1) que representa la posición del origen del sistema (i) con respecto al sistema (i-
1), 𝑓𝑓1𝑥𝑥3 una submatriz que representa una transformación de perspectiva y 𝑤𝑤1𝑥𝑥1 una submatriz que
representa un escalado global. Las transformaciones para representar {i} con respecto a {i-1} se han
de realizar en el orden indicado por la siguiente ecuación [2]:
i−1 � � � �
iT = Rot(X i−1 , αi−1 )Trans(X i−1 , a i−1 )Rot(Zi , θi )Trans(Zi , di ) (8)
En la ecuación (9) se sustituyen los parámetros de Denavit y Hartenberg para obtener la matriz
de transformación homogénea 𝑖𝑖−1𝑖𝑖𝑇𝑇 que representa al sistema {i} con respecto al sistema {i-1}.
Tomando como guía la figura 3, los parámetros de Denavit y Hartenberg para el ROBO-
WRITER son:
Y3 X3
Z3
Y2
X2
X
Z2
X0
X1
Z0
Z1 Y
Sustituyendo en la ecuación (9) los parámetros de la tabla 1 de cada uno de los sistemas de
referencia de coordenadas, se obtendrán las matrices homogéneas que relacionan los eslabones
vecinos: 01𝑇𝑇, 12𝑇𝑇, 23𝑇𝑇. Al multiplicar las matrices homogéneas, se obtendrá 03T = 01T 12T 23T la cual es
representada por la siguiente matriz:
301
Brazo Robótico de 3 Grados de Libertad con Inteligencia Artificial
c1 c2 − s1 s2 −c1 s2 − c2 s1 0 L2 (c1 c2 − s1 s2 ) + C1 L1
0 c2 s1 + c1 s2 −s1 s2 + c1 c2 0 L2 (c2 s1 + c1 s2 ) + s1 L1
3T = � � (10)
0 0 1 0
0 0 0 1
Sabiendo que
nx ox ax Px
0
n y oy ay Py
3T = � � (11)
nz oz az Pz
0 0 0 1
Entonces igualado los términos de la matriz (10) con la matriz (11) tenemos:
nx = c1 c2 − s1 s2
ny = c2 s1 + c1 s2
nz = 0
ox = −c1 s2 − c2 s1
oy = −s1 s2 + c1 c2
oz = 0 (12)
ax = 0
ay = 0
az = 1
Px = L2 (c1 c2 − s1 s2 ) + C1 L1
Py = L2 (c2 s1 + c1 s2 ) + s1 L1
Pz = 0
Las ecuaciones (12) son las ecuaciones de la cinemática directa del manipulador de dos
grados de libertad. Especifican como calcular la posición y orientación del sistema de referencia {3}
con respecto al sistema de referencia {0} dado a los ángulos de las articulaciones del robot.
Partiendo de 03T = 01T 12T 23T, se invierte la matriz homogénea 01𝑇𝑇 y se premultiplica con la misma
ecuación, esto da como resultado una nueva ecuación:
Las matrices homogéneas se invierten cada vez que sea necesario hasta haber encontrado
los ángulos θ1 y θ2 .
302
Brazo Robótico de 3 Grados de Libertad con Inteligencia Artificial
c1 s1 0 0 nx ox ax px c2 −s2 0 L1 1 0 0 L2
−s1 c1 0 0� � ny oy ay py s2 C2 0 0 � �0 1 0 0�
� pz � = � 0 (14)
0 0 1 0 nz oz az 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
Al multiplicar renglón por columna en cada matriz e igualando términos, se obtienen las
siguientes ecuaciones:
C1 PX + S1 PY = C2 L2 + L1
−S1 PX + C1 PY = S2 L2 (15)
Pz = 0
En seguida se elevan al cuadrado en ambos lados las ecuaciones (15), después las
ecuaciones en términos de Px y Py se pasan al lado derecho del signo igual y las ecuaciones en
términos de L 1 y L 2 se pasan al lado izquierdo del signo igual para posteriormente factorizar la
ecuación y finalmente eliminar términos iguales, quedando la ecuación como:
Se despeja C 2
S2 = �1 − C22 (18)
Ahora se invierte la matriz homogénea 12𝑇𝑇 y se premultiplica con la ecuación (13), esto da
como resultado la siguiente ecuación:
C2 S2 0 L1 C1 S1 0 0 nx ox ax Px 1 0 0 L2
�−S2 C2 0 0 � �−S1 C1 0 0� � ny oy ay Py
� = �0 1 0 0� (21)
0 0 1 0 0 0 1 0 nz oz az Pz 0 0 1 0
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
303
Brazo Robótico de 3 Grados de Libertad con Inteligencia Artificial
𝑃𝑃𝑃𝑃
𝜃𝜃12 = 𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 � � (22)
𝑃𝑃𝑃𝑃
Existe otro método aplicable para la obtención de la cinemática inversa el cual es el método
gráfico y es utilizado para manipuladores de pocos grados de libertad. El procedimiento consiste en
descomponer la estructura del brazo robótico en varios triángulos los cuales ayudaran en encontrar
los ángulos de cada articulación.
r = �x 2 + y 2 (25)
∅ = tg −1 (y/x) (26)
En el triángulo número dos, se aplica la ley de cosenos y a partir de ahí se obtienen las
siguientes ecuaciones:
l22 − l12 − r 2
Cos α = −
2l1 r
l2 2 2
2 −l1 −r
α = Cos −1 �− � (30)
2l1 r
r 2 − l12 − l22
Cos B = −
2l1 l2
r2 −l2 2
1 −l2
B = Cos −1 �− � (31)
2l1 l2
Haciendo uso de las herramientas de la geometría plana se obtienen las ecuaciones de los
ángulos de cada articulación
𝛉𝛉𝟏𝟏 = ∅ − α (32)
𝛉𝛉𝟐𝟐 = 𝟏𝟏𝟏𝟏𝟏𝟏 − 𝛃𝛃 (33)
Se ha comprobado que la obtención de la cinemática directa e inversa han sido de gran utilidad
para encontrar la posición y orientación del brazo robótico y los ángulos de cada articulación.
304
Brazo Robótico de 3 Grados de Libertad con Inteligencia Artificial
Nuestra red neuronal artificial es mostrada en la figura 5. Está constituida por tres capas, una
capa de entrada, una capa oculta y una capa de salida.
La red neuronal artificial utilizada fue feed-forward la cual se compone de unidades llamadas
neuronas y cada una recibe una gran cantidad de entradas mediante interconexiones. Cada
interconexión está compuesta por pesos loa cuales determinan el conocimiento de dicha red
(información) y tienen la propiedad de resolver el problema para el cual la red neuronal fue entrenada.
Los pesos son ajustados durante la fase de aprendizaje.
Las entradas son los valores de pixel de las imágenes. El tamaño que manejamos para las
imágenes es de 20x20, la cual nos da 400 unidades (neuronas) en la capa de entrada. Se le ha
dotado de un conjunto de parámetros de red 𝜃𝜃 1 𝑦𝑦 𝜃𝜃 2 (Theta1 y Theta2) los cuales son los pesos que
contienen la información y ya han sido entrenados. Los parámetros tienen dimensiones que están
dimensionados para nuestra red neuronal con 25 unidades (neuronas) en la segunda capa y 10
unidades (neuronas) de salida en la última capa (correspondientes a las 10 clases de dígitos).
305
Brazo Robótico de 3 Grados de Libertad con Inteligencia Artificial
Para lograr emitir una salida se necesitan tres funciones. La salida de una neurona está dada
por una función de propagación la cual consiste en el sumatorio de cada entrada multiplicada por el
peso de su interconexión, en el caso que el peso sea positivo, entonces la conexión se denomina
excitatoria. Otra función es la de activación que en la mayoría de los casos está acompañada con la
función de propagación. Por último, se encuentra la función de transferencia la cual es utilizada para
limitar la salida de la neurona (reducir el error), una de las más utilizadas es la función sigmoidea
debido a que puede ser derivable.
Una de las prioridades principales de las redes neuronales es que son capaces de operar en
tiempo real. Las redes neuronales trabajan mediante conexiones en paralelo, lo que permite
grandes velocidades de transmisión y respuesta casi al instante.
Diversos programas o funciones son los que conforman el programa principal, el programa
recognize es el que identifica y selecciona el número que se dibujó en la interfaz, en este programa
se encuentran 15 funciones más, cada una con diferente tarea. Además, dentro de este programa
se encuentra una función distinta para cada digito las cuales son nombradas del cero al nueve y
cada una contienen una instrucción especifica que le mandara una orden al brazo robótico para que
plasme el numero según la función que haya sido seleccionada. En la figura 6 se muestra un
diagrama de flujo el cual explica el funcionamiento del programa en general.
ImageProcessor(RGB): Esta función solo procesa la imagen para que pueda ser guardada en
un vector y así tener una mejor manipulación de sus valores (matrices).
306
Brazo Robótico de 3 Grados de Libertad con Inteligencia Artificial
CreatFeatureVector: Se crea un vector de la imagen para así saber sus dimensiones y para
poder transferir esa información de una forma más rápida y ser guardada.
Inicio
Dibujar dígito
(DigitRecognizationInput)
Procesar imagen
(ImageProcessor) y
Crear vector del dígito
dibujado
(CreatFeatureVector)
Reconocer el dígito
(DigitRecognizer)
NO Entrenar red
Reconocio el dígito?
(TrainSystem)
SI
FIN
307
Brazo Robótico de 3 Grados de Libertad con Inteligencia Artificial
3. Resultados
El usuario ingresa (dibuja) un número del 0 al 9 en una interfaz gráfica, así como es mostrada
en la figura 7.
Una vez que se ingresa el numero en la interfaz gráfica, el programa detecta el tipo de número
que se ingresó, compara en su base de datos al que se le sea más semejante y arroja un resultado,
el cual debe ser el número que se ingresó y debe ser desplegado en un mensaje y en una imagen
como es mostrado en la figura 8.
Al ser detectado el tipo de número que fue escrito por el usuario en la interfaz gráfica, este
ejecuta una función la cual funciona como subrutinas en MATLAB, las cuales contienen los códigos
predeterminados para cada tipo de número y comienza la escritura como se muestra en la figura 9.
308
Brazo Robótico de 3 Grados de Libertad con Inteligencia Artificial
3.1 Tablas
En la tabla 3 se muestran 5 figuras para cada número las cuales indican las formas en que
fueron escritos en diferentes intentos. Fueron las mismas formas que se utilizaron para completar la
tabla 2.
309
Brazo Robótico de 3 Grados de Libertad con Inteligencia Artificial
4. Conclusiones
Como conclusión de este proyecto se obtuvo como resultado la comprobación del uso de la
cinemática directa e inversa en la función de un brazo manipulador en conjunto con la aplicación de
la inteligencia artificial para la toma de decisiones de determinados casos, en el cuál es posible
aplicar para hacer una secuencia de movimientos que en conjunto se puede complementar para
realizar el número que el usuario haya escrito, donde las articulaciones tengan que girar de tal grado
que el extremo final del brazo se posicione en un punto donde pueda hacer posible la escritura de
dicho numero en el área de trabajo con la que se cuenta.
Se logró trabajar con un código mucho más reducido utilizando las librerías propias de los
servomotores, ya que se estaba trabajando con un código más complejo. El uso de estas librerías
310
Brazo Robótico de 3 Grados de Libertad con Inteligencia Artificial
también mejoro la movilidad de los servomotores, la precisión mejoro en un cincuenta por ciento y
se tuvo una mejor lectura de los sensores internos del servomotor, por lo que mejoro mucho el control
de estos servomotores.
Se ha observado que el desarrollar este tipo de proyectos en las diversas instituciones atrae
a más personas a adentrarse a este tipo de especialidades, al igual que al poner el practica estos
proyectos, inconscientemente las personas que llevan a cabo el proyecto tienen una
retroalimentación, adquieren información nueva, nuevas experiencias, las cuales se difunden a
través de los medios, de tal manera que el conocimiento no se estanca y surgen nuevas ideas para
un nuevo prototipo que puede llegar a ser complejo que el que se tomó como base, o puede tener
un funcionamiento totalmente diferente.
Referencias
[1] Ponce Pedro. “Inteligencia Artificial con Aplicaciones a la Ingeniería”, Alfaomega Grupo Editor,
México, Primera edición, 2010.
[2] Pérez Waldemar. “Planeación de trayectorias óptimas para robots manipuladores utilizando
polinomios de octavo grado, algoritmos genéticos y técnicas de procesamiento en paralelo”,
Tesis de doctorado en ciencias en ingeniería eléctrica, UMSNH, Michoacán, 2011.
[3] Fu K., González R. “Robotics: Control, Sensing, Vision and Intelligence”, McGraw-Hill Book
Company, Estados Unidos de América, Tercera edición, 1987.
[4] Craig John. “Robótica”, Pearson Educación, México, Tercera edición, 2006.
311