Proyecto de Grado
Dise˜
no e Implementaci´
on del Mando de
Control de un Brazo Rob´
otico
Autor:
Diego Camelo Martinez
Asesor: Dr. Carlos Francisco Rodriguez
Proyecto de grado presentado para obtener el t´ıtulo de Ingeniero Mec´anico
del
Departamento de Ingenier´ıa Mec´anica
Universidad de Los Andes
Yo, Diego Camelo Martinez, declaro que este proyecto de grado titulado, ’Dise˜no e
Implementaci´on del Mando de Control de un Brazo Rob´otico’ y el trabajo presentado
en este son m´ıos.
Adem´as confirmo que:
En caso de haber consultado el trabajo de otras personas, este ser´a referenciado
adecuadamente.
Se har´a una menci´on agradeciendo a todas las personas que colaboraron en este
proyecto.
Las im´agenes presentadas pertenecientes a otros trabajos, libros, revistas y art´ıculos
ser´an referenciadas adecuadamente; todas las im´agenes fueron tomadas con fines
netamente acad´emicos y se utilizan ´unicamente para ilustrar conceptos.
Firma:
Fecha:
Resumen
Facultad de Ingenier´ıa
Departamento de Ingenier´ıa Mec´anica
Dise˜no e Implementaci´on del Mando de Control de un Brazo Rob´otico
Estudiante: Diego Camelo Martinez, 201022946, dm.camelo417@uniandes.edu.co
Asesor: Dr. Carlos Francisco Rodriguez Herrera
En este proyecto de grado se trabaj´o sobre el brazo rob´otico del rover Deimos del grupo
estudiantil Robocol. Este brazo fue dise˜nado y manufacturado en el marco de un
prob-lema especial en el primer semestre de 2014, por Diego Camelo con la colaboraci´on de
Hayden Liu Weng y Juan Sebastian Ruiz Medina bajo la asesor´ıa de Juan Pablo Barreto
Melgarejo.
El brazo rob´otico cuenta con seis grados de libertad actuado por un motorreductor en
la rotaci´on de la base; dos actuadores lineales para el movimiento del brazo principal
y el antebrazo; y tres servomotores para la rotaci´on e inclinaci´on de la mu˜neca y la
abertura y cierre de las pinzas. Dependiendo de las tareas a realizar por parte del brazo
se requiere tener un mando de control que sea intuitivo y c´omodo para el cumplimiento
eficaz y eficiente de las mismas.
Las tareas a realizar por parte del brazo rob´otico se presentan bajo el marco del European
Rover Challenge 2014, se deben realizar tareas de carga, manipulaci´on de objetos y
recolecci´on de muestras. En cada una de las pruebas el brazo cuenta con diferentes
accesorios para la realizaci´on de las tareas, el mando de control debe tener en cuenta
esto y debe ser dise˜nado para realizar las diferentes instrucciones de medio nivel, que
permiten cumplir con las tareas de la competencia. Las instrucciones de medio nivel
definen el algoritmo de soluci´on para realizar cada una de las pruebas.
Como mandos de control en rob´otica existen distintas alternativas: interfaces gr´aficas,
prototipos a escala, interfaces naturales de usuario (e.g. Kinect), controles de mando
comerciales (Xbox, PS, etc.), entre otros. Para evaluar las alternativas se tuvo en cuenta
el costo, la simplicidad, la intuitividad y la robustez. En este proyecto de grado se le dar´a
importancia ´unicamente a la simplicidad y la intuitividad en el desarrollo del mando. A
A partir de la definici´on de las instrucciones de medio nivel que debe realizar el brazo
para cada una de las pruebas, se observ´o que es de gran importancia generar trayectorias
en linea recta y contar con una serie de comandos r´apidos para llegar a posiciones
preestablecidas. Teniendo en cuenta lo anterior, el mando de control a dise˜nar debe
contar con una instrucci´on de cinem´atica inversa y la manipulaci´on individual de los
dem´as grados de libertad, como lo son: la rotaci´on de la base, la rotaci´on de la mu˜neca
y la apertura y cierre de las pinzas.
El brazo rob´otico del rover Deimos en el momento de desarrollo de este proyecto no
se encontraba en condiciones de ser sujeto de pruebas del mando de control a dise˜nar.
Por esta raz´on, se decidi´o enfocar el proyecto de grado en la implementaci´on simulada
del mando de control. Fue necesario adquirir conocimientos de adquisici´on de datos
por medio de una tarjeta Arduino Uno y un manejo del entorno de Simmechanics de
Simulink; en estos, se realiz´o la simulaci´on e implementaci´on los algoritmos de manejo
de cada uno de los grados de libertad, por medio de funciones de Matlab y diagramas
de bloques en Simulink.
Luego de haber implementado la adquisici´on de datos y la simulaci´on en SimMechanics,
se procedi´o a dise˜nar la distribuci´on de componentes en el chasis del mando de control,
as´ı como la funci´on de cada uno de los elementos. Teniendo en cuenta las restricciones
planteadas a nivel del prototipo y de los comandos establecidos, se dise˜naron tres
pro-totipos en MDF para evaluar la configuraci´on del mando de control. En cada una de las
alternativas se cuenta con la presencia de palancas tipo arcade y potenci´ometros lineales
distribuidos de manera diferente en el mando de control, el objetivo de crear
alterna-tivas de configuraci´on para el mando de control, es evaluar por medio de un protocolo
de pruebas, una matriz de calificaci´on y sujetos de prueba, cual es la configuraci´on mas
adecuada para cumplir con las tareas planteadas.
Para el protocolo de pruebas se le solicit´o a los usuarios seguir una trayectoria ilustrada
en un video ejemplo y repetirla cinco veces. Como criterios de comparaci´on principales,
se tomaron el tiempo inicial y la tasa de aprendizaje; por otro lado, la intuitividad,
co-modidad, velocidad y precisi´on fueron criterios secundarios y se evaluaron en una escala
de 1 a 10. De los seis criterios tomados, se observ´o que la velocidad y precisi´on no eran
buenos referentes pues estas variables dependen de la programaci´on y los componentes
electr´onicos. De los criterios restantes se observaron buenos resultados y todos
indi-caron que la mejor alternativa consist´ıa en el uso de una palanca tipo arcade para los
para el movimiento de los seis grados de libertad del brazo: una palanca que controla el
movimiento en el plano XZ del brazo; tres potenci´ometros para la rotaci´on de la base, la
orientaci´on y la rotaci´on de la mu˜neca; y un potenci´ometro de corredera para la apertura
y cierre de las pinzas. Adem´as de esto, cuenta con dos botones de comando r´apido para
ubicar el brazo en posiciones de trabajo o movimiento y un interruptor que cambia los
comandos de la palanca: de coordenadas de la base a coordenadas de la herramienta.
Por ´ultimo, se realizaron experimentos para caracterizar el mando de control: se recre´o
una trayectoria y se repiti´o el proceso cinco veces. Los resultados obtenidos son poco
dicientes pues es necesario implementar el mando en el brazo real y poder observar su
desempe˜no en contraste con el control comercial antes utilizado.
Como trabajo futuro se propone la implementaci´on del mando en el brazo del rover de
Robocol o en general en cualquier brazo rob´otico similar. El prototipo puede ser
mejo-rado significativamente desde el enfoque del dise˜no industrial mejorando su robustez, su
ergonom´ıa y la intuitividad. A nivel electr´onico los algoritmos aqu´ı ejecutados en Matlab
y Simulink deben ser programados en una tarjeta de desarrollo embebida distinta a la
utilizada en este proyecto de grado para poder implementar el mando en un brazo real.
En este proyecto de grado se logr´o dise˜nar e implementar en simulaci´on un control
de mando que facilita la ejecuci´on de las tareas exigidas para el brazo rob´otico del
rover Deimos en el marco del European Rover Challenge 2014. Este mando puede ser
mejorado significativamente y debe ser implementado en un brazo real para verificar su
Le agradezco a Dios por darme un camino para seguir, a mis pap´as por las oportunidades
que me han dado y a mi asesor Carlos Francisco Rodr´ıguez por su gu´ıa en el desarrollo
de este proyecto.
Declaraci´on de Propiedad i
Resumen iii
Agradecimientos vi
Contenidos vii
Lista de Figuras x
Lista de Tablas xii
S´ımbolos xiii
1 Introducci´on 1
1.1 Motivaci´on . . . 1
1.2 Marco Te´orico. . . 3
1.2.1 Manipulador Serial de 6GDL . . . 4
1.2.2 Cinem´atica Directa y Par´ametros D-H . . . 5
1.2.3 Cinem´atica Inversa . . . 6
1.2.4 Cinem´atica Diferencial . . . 9
1.2.5 Control Teleoperado . . . 10
1.3 Trabajo Previo . . . 11
1.3.1 Telerob´otica. . . 11
1.3.2 Robocol . . . 13
1.4 Definici´on del Proyecto. . . 14
1.4.1 Objetivos . . . 14
1.4.1.1 Objetivo General. . . 14
1.4.1.2 Objetivos Espec´ıficos . . . 15
1.4.2 Restricciones . . . 15
1.4.3 Requerimientos . . . 15
1.4.4 Alcance . . . 15
2 Alternativas de Soluci´on 16 2.1 Criterios de Decisi´on . . . 16
2.2 Alternativas de Soluci´on . . . 17
2.2.1 Imitaci´on de Prototipo . . . 17
2.2.2 Interfaz Gr´afica . . . 17
2.2.3 Interfaz Natural de Usuario . . . 19
2.2.4 Control de Mando Comercial . . . 19
2.2.5 Control de Mando Simplificado . . . 20
2.3 Toma de Decisi´on. . . 21
3 Procesamiento y Simulaci´on 23 3.1 Conexiones . . . 23
3.1.1 Entrada Digital . . . 23
3.1.2 Entrada An´aloga . . . 24
3.2 Adquisici´on de los Datos y Comunicaci´on Serial . . . 24
3.3 Lectura Serial . . . 26
3.4 Decodificaci´on. . . 26
3.5 SimMechanics . . . 27
4 Dise˜no de la Configuraci´on 29 4.1 Alternativas de Configuraci´on . . . 30
4.2 Protocolo de Pruebas. . . 31
4.3 Resultados de las Pruebas . . . 32
4.4 Mismo Sujeto de Pruebas . . . 32
5 Construcci´on e Implementaci´on 34 5.1 Componentes a Utilizar . . . 34
5.2 Diagrama de Bloques Hardware . . . 34
5.3 Dise˜no CAD y Construcci´on . . . 35
5.3.1 Dise˜no CAD . . . 35
5.3.2 Construcci´on . . . 35
5.4 Diagrama de Bloques Software . . . 37
5.4.1 Adquisici´on de Datos. . . 38
5.4.2 Decodificaci´on . . . 38
5.4.3 Procesamiento . . . 39
5.4.4 Simulaci´on . . . 39
6 Conclusiones y Trabajo Futuro 42 6.1 Conclusiones . . . 42
6.2 Trabajo Futuro . . . 42
A Resultados de las Pruebas 46 B Codigo Arduino Uno 48 C Simulaci´on en SimMechanics 51 C.1 Decodificaci´on. . . 51
C.1.1 Diagrama de Bloques . . . 51
C.1.2 C´odigo . . . 52
1.1 Mercado Mundial de la Rob´otica [1]. . . 2
1.2 Rover Deimos del grupo Robocol. . . 3
1.3 CAD del brazo rob´otico con 5 GDL. . . 3
1.4 Esquema de los Grados de Libertad del Brazo [2].. . . 4
1.5 Par´ametros D-H [3]. . . 6
1.6 Brazo de 3GDL [4]. . . 7
1.7 Dos posibles soluciones a la cinem´atica inversa [4]. . . 9
1.8 Esquema de un Sistema Teleoperado [5]. . . 10
1.9 Mano Rob´otica y Guante de Control [6]. . . 12
1.10 Control natural y control preciso [7]. . . 12
1.11 Esquema del Brazo Rob´otico del Rover Deimos.. . . 14
2.1 Alternativa 1: Brazo operacional que maneja el brazo del rover. . . 17
2.2 Simulaci´on del Brazo de Robocol, posici´on inicial.. . . 18
2.3 Simulaci´on del Brazo de Robocol, posici´on final. . . 18
2.4 Interfaz Natural de Usuario (NUI) [8]. . . 19
2.5 Control de Xbox cl´asico con un costo de 75 USD [9]. . . 20
2.6 Control tipo arcade [10]. . . 20
3.1 Conexi´on de una entrada digital [11]. . . 24
3.2 Potenci´ometro y Salida An´aloga [12]. . . 24
3.3 Tarjeta Arduino Uno[13]. . . 25
3.4 Ambiente de Programaci´on de Arduino. . . 25
3.5 Bloque Query para Lectura Serial. . . 26
3.6 Decodificaci´on de los Datos. . . 27
3.7 CAD del Brazo Rob´otico con 4 GDL.. . . 27
3.8 Diagrama de Bloques con SimMechanics de 1GDL . . . 28
4.1 Alternativa de componentes [14]. . . 29
4.2 Alternativa de componentes.. . . 30
4.3 Conexiones Provisionales. . . 31
4.4 Trayectoria del protocolo de pruebas. . . 31
5.1 Diagrama de Bloques Hardware. . . 35
5.2 Dise˜no en Autodesk Inventor del mando de Control. . . 35
5.3 Vista desde la diagonal izquierda. . . 36
5.4 Vista desde la diagonal derecha.. . . 36
5.5 Vista Superior. . . 37
5.6 Diagrama de Bloques en Simulink. . . 37
5.7 Las dos palabras enviadas por el Arduino. . . 38
5.8 Movimiento de q1. . . 39
5.9 Movimiento de la orientaci´on. . . 40
5.10 Rotaci´on de la Mu˜neca. . . 40
5.11 Apertura y Cierre de las Pinzas. . . 40
5.12 Movimiento rectil´ıneo en el X global. . . 41
5.13 Movimiento rectil´ıneo en el Z global. . . 41
5.14 Movimiento rectil´ıneo en el X de la herramienta. . . 41
C.1 Decodificaci´on de los datos. . . 51
1.1 Peso, Dimensiones y Rangos de los GDL del Brazo Rob´otico. . . 14
2.1 Par´ametros D-H del brazo rob´otico de Robocol. . . 18
2.2 Matriz de alternativas y criterios. . . 21
2.3 Maximas diferencias en los criterios. . . 21
2.4 Matriz de concordancias.. . . 21
2.5 Matriz de concordancias.. . . 22
2.6 Matriz de decisi´on. . . 22
4.1 Resultados de las Pruebas.. . . 32
4.2 Comparaci´on entre Alternativas. . . 33
A.1 Resultados de la Alternativa 1. . . 46
A.2 Resultados de la Alternativa 2. . . 46
A.3 Resultados de la Alternativa 3. . . 47
a Par´ametro D-H m
c Coseno
d Par´ametro D-H m
J Matriz Jacobiana
s Seno
T Matriz de transformaci´on homog´enea
α Par´ametro D-H rad
θ Par´ametro D-H rad
φ Orientaci´on de la herramienta rad
Introducci´
on
1.1
Motivaci´
on
La palabra robot proviene del checo robota que significa trabajo [15], este concepto se desarroll´o con la ciencia ficci´on donde se estereotipaba a los robots como humanoides,
estos conceptos adem´as de ser poco dicientes distan mucho de las definiciones actuales de
robot: hoy en d´ıa se puede definir un robot como una m´aquina que cuenta con sistemas
de noci´on, control y acci´on [16].
En el marco global, el mercado de la rob´otica tiene un valor de $24.9B USD en el 2010,
los pa´ıses l´ıderes en el mercado son: Estados Unidos, Jap´on, Alemania, China y Corea
del Sur [17]. En la figura 1.1 se puede observar la evoluci´on del mercado adem´as de la clasificaci´on por sectores: la industria manufacturera desarroll´o la rob´otica, sin embargo,
con el transcurso del tiempo, los robots de servicio empiezan a cobrar importancia
representando alrededor del 68 % del mercado ($17.1B USD) en el 2010. Los robots
de servicio pueden ser de uso profesional o personal, de los $17.1B USD de ventas de
robots de servicio, el 77% ($13.2 USD) es de uso profesional; de este valor, alrededor
del 30% corresponde a aplicaciones de defensa (23 mil unidades) y 4% en aplicaciones
de seguridad y rescate (3 mil unidades)[18], sectores que son de inter´es para observar el campo de aplicaci´on del robot a manejar en este proyecto de grado.
Como se mencion´o antes, la industria manufacturera impuls´o el mercado de los robots.
Los robots industriales son m´aquinas programables multifuncionales que usualmente son
utilizadas para realizar tareas peligrosas y/o repetitivas como la manipulaci´on de
ma-terial, el ensamble, la soldadura, el maquinado, entre otras[19]. Adem´as de estos, los robots m´oviles permiten una mayor flexibilidad al poder desplazarse en el espacio,
per-mitiendo realizar diversas tareas operadas a distancia en el sector de defensa y seguridad
que es de inter´es para este proyecto.
Figura 1.1: Mercado Mundial de la Rob´otica [1].
El grupo estudiantil Robocol es un grupo interdisciplinario de la Universidad de los
Andes que tiene como misi´on fomentar el inter´es por la tecnolog´ıa y la rob´otica en
Colombia. Este grupo se cre´o en el 2010 bajo la iniciativa de unos estudiantes de
ingenier´ıa mec´anica y ha participado desde entonces en el concurso de Lunabotics Mining
Competition de la NASA en tres ocasiones, logrando un cuarto puesto en el 2013. En
el a˜no 2014 el grupo Robocol particip´o en el European Rover Challenge cambiando
totalmente el dise˜no del robot de excavaci´on que usaron en la NASA. En este caso se
present´o un rover de exploraci´on capaz de realizar tareas de asistencia, excavaci´on y
mantenimiento en tiempo reducido en un terreno similar al de la superficie de Marte,
bajo condiciones clim´aticas de temperatura ambiente y posible lluvia ligera, el rover se
puede observar en la figura1.2. El concurso se llev´o a cabo a principios de Septiembre en
Polonia y se propone como proyecto de grado mejorar el mando de control para futuros
concursos o para usar el rover en otro tipo de tareas en el sector de defensa y seguridad
(e.g. desactivaci´on de minas antipersonas).
Teniendo en cuenta la destreza requerida de las operaciones a realizar, se presenta la
necesidad de tener una manipulaci´on que sea intuitiva para realizar las tareas de manera
adecuada. Se propone el dise˜no e implementaci´on de un mando de control teleoperado
para el brazo rob´otico de seis grados de libertad del rover del grupo estudiantil Robocol
que se observa en la figura 1.3.
En el desarrollo de este documento se presentar´a todo el proceso de dise˜no del mando
de control: la evaluaci´on de alternativas, una explicaci´on de la adquisici´on de datos,
manejo y simulaci´on, el dise˜no en detalle del prototipo, las pruebas para verificar su
Figura 1.2: Rover Deimos del grupo Robocol.
Figura 1.3: CAD del brazo rob´otico con 5 GDL.
1.2
Marco Te´
orico
Para comprender la mec´anica y el control de un brazo rob´otico hay que definir ciertos
conceptos que permiten observar la importancia del estado del arte para el desarrollo de
este trabajo de grado. El brazo rob´otico sobre el que se va a trabajar es un manipulador
1.2.1 Manipulador Serial de 6GDL
Un manipulador cuenta con eslabones y uniones y lo que hace que sea serial es el hecho
de que sus eslabones y uniones se presentan en forma de cadena sin mostrar ning´un
bucle en su estructura. El manipulador se considera articulado debido a que las uniones
de su brazo,antebrazo y mu˜neca son de revoluta [4]. Los grados de libertad representan
el n´umero de par´ametros independientes que se necesitan para describir la configuraci´on
del mecanismo completamente. Usualmente el n´umero de uniones actuadas es igual a
los grados de libertad por lo que se necesitan seis actuadores en el brazo rob´otico.
Un manipulador serial presenta ventajas en el volumen de trabajo y la destreza de sus
operaciones [4]. El volumen de trabajo es aquel en el que todos los puntos pueden ser
cubiertos por el efector final en al menos una orientaci´on y el volumen de trabajo de
destreza requiere alcanzar todos los puntos en cualquier orientaci´on.
Figura 1.4: Esquema de los Grados de Libertad del Brazo [2].
En la figura 1.4 se pueden observar los grados de libertad que presenta el robot, dado que tiene seis grados de libertad se necesitan seis actuadores para mover el brazo, estos
ser´an explicados en detalle cuando se explique el trabajo previo realizado por parte del
grupo Robocol.
Para la selecci´on de alternativas de soluci´on, desarrollo del prototipo y trabajo futuro es
necesario comprender los conceptos de cinem´atica directa, par´ametros D-H, cinem´atica
1.2.2 Cinem´atica Directa y Par´ametros D-H
La cinem´atica directa tiene como objetivo determinar la ubicaci´on y orientaci´on de la
herramienta a partir de la informaci´on de las uniones del manipulador. La cinem´atica
contempla la posici´on, velocidad y aceleraci´on como entradas mientras que la din´amica
toma las fuerzas y torques de las uniones.
Uno de los m´etodos mas comunes utilizados en rob´otica hace uso de los par´ametros de
Denavit-Hartenberg. Para determinar la cinem´atica directa de un brazo con 6 GDL
es necesario contar con 6n par´ametros conocidos, sin embargo los par´ametros de D-H
permiten realizar una transformaci´on entre uniones con solo cuatro par´ametros, siempre
y cuando se cumplan ciertas reglas al momento de ubicar los marcos de referencia [3].
La matriz de transformaci´on que hace uso de estos par´ametros se construye a partir de
la multiplicaci´on de cuatro matrices homog´eneas1: una traslaci´on en el ejezseguido de
una rotaci´on en el ejez, una traslaci´on en el eje x y una rotaci´on en el eje x como se
observa en la ecuaci´on (1.1), donde d y a son distancias y θ y α son ´angulos. En la ecuaci´on (1.2) se observa la matriz de tranformaci´on resultante al multiplicar las cuatro
matrices mencionadas.
i−1A
i =T(z, d)T(z, θ)T(x, a)T(x, α) (1.1)
i−1A
i=
cθi −cαisθi sαi aicθi
sθi cαicθi −sαi aisθi
0 sαi cαi di
0 0 0 1
(1.2)
En las ecuaciones (1.1) y (1.1) d,θ,a yα son los par´ametros de Denavit-Hartenmberg y se pueden observar graficamente en la figura1.5 .
• d: distancia entre el cruce de los vectores xi yzi al origen del eslab´oni.
• θ: angulo de rotaci´on de la uni´on.
• a: distancia entre entre los ejes de rotaci´on de dos eslabones consecutivos.
• α: ´angulo entrezi−1 yzi medido con respecto axi−1.
Figura 1.5: Par´ametros D-H [3].
Haciendo uso de los par´ametros de Denavit-Hartenberg se puede realizar la cinem´atica
directa al hacer uso de la matriz homog´enea de transformaci´on desde las coordenadas
de base hasta las coordenadas de la herramienta.
En la ecuaci´on (1.3) podemos observar la matriz de transformaci´on mencionada. Los
vectoresu, vywdeterminan la orientaci´on de la herramienta yqla posici´on de un punto
de referencia Q [3]. Esta matriz se puede multiplicar por un vector0pˆen coordenadas
de la base para obtener un vector 6pˆen coordenadas de la herramienta.
0A
n=
"
u v w q
0 0 0 1
#
=T01(θ1)...Tn−1,n(θn) (1.3)
Los par´ametros de Denavit-Hartenberg ser´an necesarios en la evaluaci´on de una de las
alternativas de soluci´on que se presentan mas adelante en el documento.
1.2.3 Cinem´atica Inversa
El problema de la cinem´atica inversa consiste en determinar los ´angulos necesarios para
obtener una orientaci´on y posici´on de la herramienta dadas, la din´amica inversa
pre-tende calcular las fuerzas y torques requeridos en las uniones para causar movimientos
deseados. En el caso de los manipuladores seriales la cinem´atica inversa puede tener
m´ultiples soluciones, en este proyecto de grado se requiere calcular la cinem´atica inversa
´
unicamente de los grados de libertad 2 al 4 (brazo, antebrazo y mu˜neca), debido a que
las trayectorias a realizar no lo demandan, el problema se reduce a un manipulador serial
Figura 1.6: Brazo de 3GDL [4].
En el caso de un robot serial de 3GDL la matriz de transformaci´on de la base a la
herramienta se puede obtener f´acilmente al hacer uso de los par´ametros D-H, la matriz
resultante se observa en la matriz izquierda de la ecuaci´on (1.4), esta se debe igualar a la matriz de la derecha donde φ=θ1+θ2+θ3 representa la orientaci´on de la herramienta
yqx yqy las componentes del puntoQ [4].
0A 3 =
cθ123 −sθ123 0 a1cθ1+a2cθ12+a3cθ123
sθ123 cθ123 0 a1sθ1+a2sθ12+a3sθ123
0 0 1 0
0 0 0 1
=
cφ −sφ 0 qx
sφ cφ 0 qy
0 0 1 qz
0 0 0 1
(1.4)
El igualar las dos matrices y despejar paraθ1, θ2yθ3en funci´on deφ,qx yqy, obtenemos
el siguiente set de ecuaciones [4]:
θ2 = cos−1k (1.6)
θ3=φ−θ2−θ1 (1.7)
Donde,
sθ1 =
−pxa2s θ2+py(a1+a2cθ2)
∆ (1.8)
cθ1 =
px(a1+a2cθ2) +pya2sθ2
∆ (1.9)
∆ =a12+a22+ 2a1a2cθ2 (1.10)
px=qx−a3cφ (1.11)
py =qy−a3sφ (1.12)
k= p 2
x+p2y−a21−a22 2a1a2
(1.13)
La ecuaci´on (1.13) tiene gran importancia al entregar informaci´on valiosa de la soluci´on del problema: cuando |k| > 1 la posici´on no es alcanzable y si |k| = 1 el brazo se encuentra completamente estirado [4]. En el caso donde|k|<1 se obtienen dos posibles soluciones, conocidas como codo arriba o codo abajo, en el caso de este proyecto es de
inter´es ´unicamente la primera soluci´on debido a la construcci´on f´ısica del brazo del grupo
Figura 1.7: Dos posibles soluciones a la cinem´atica inversa [4].
1.2.4 Cinem´atica Diferencial
El objetivo de la cinem´atica diferencial consiste en encontrar la relaci´on entre las
veloci-dades de la herramienta y las de las uniones. En la cinem´atica directa se desean
encon-trar las velocidades de la herramienta a partir de las de las uniones y en la cinem´atica
inversa se desean encontrar las velocidades de las uniones a partir de las de la
her-ramienta. A diferencia del an´alisis de posici´on, en el an´alisis de velocidad se puede
obtener la cinem´atica inversa de manera ´unica y sencilla.
Si se define la variablexi=fi(q1, q2, q3, q4, q5, q6), la matriz Jacobiana para un brazo de
6GDL se puede definir como se observa en la ecuaci´on (1.14) y (1.15). Como se puede observar, una de las funciones de la matriz Jacobiana es la relaci´on de las velocidades
de las uniones con las velocidades en la herramienta.
˙ x1 ˙ x2 ˙ x3 ˙ x4 ˙ x5 ˙ x6 = ∂f1 ∂q1 ∂f1 ∂q2 ∂f1 ∂q3 ∂f1 ∂q4 ∂f1 ∂q5 ∂f1 ∂q6 ∂f2 ∂q1 ∂f2 ∂q2 ∂f2 ∂q3 ∂f2 ∂q4 ∂f2 ∂q5 ∂f2 ∂q6 ∂f3 ∂q1 ∂f3 ∂q2 ∂f3 ∂q3 ∂f3 ∂q4 ∂f3 ∂q5 ∂f3 ∂q6 ∂f4 ∂q1 ∂f4 ∂q2 ∂f4 ∂q3 ∂f4 ∂q4 ∂f4 ∂q5 ∂f4 ∂q6 ∂f5 ∂q1 ∂f5 ∂q2 ∂f5 ∂q3 ∂f5 ∂q4 ∂f5 ∂q5 ∂f5 ∂q6 ∂f6 ∂q1 ∂f6 ∂q2 ∂f6 ∂q3 ∂f6 ∂q4 ∂f6 ∂q5 ∂f6 ∂q6 ˙ q1 ˙ q2 ˙ q3 ˙ q4 ˙ q5 ˙ q6 (1.14) ˙
x=Jq˙ (1.15)
• Definir el espacio de trabajo del robot.
• Identificar singularidades 2.
• M´etodos num´ericos para calcular la cinem´atica inversa.
• Manipulabilidad del robot 3.
De la lista anterior, el hecho de que la cinem´atica diferencial puede resolver la cinem´atica
inversa por m´etodos num´ericos resulta de gran inter´es para este proyecto. En este
proyecto de grado se va a trabajar con la cinem´atica inversa por medio de un an´alisis de
posici´on cl´asico pero una soluci´on num´erica puede ser un trabajo futuro a considerar.
1.2.5 Control Teleoperado
La telerob´otica es un campo reciente de la rob´otica y significa literalmente rob´otica a
distancia [5]. El control del robot lo hace un operador humano y el objetivo es alejar el cerebro del cuerpo, esto resulta de gran utilidad en aplicaciones de alto riesgo para el
usuario [6]. Como se puede observar en la figura 1.8 el operador se encuentra alejado del robot, cuenta con retroalimentaci´on y el robot cuenta con sensores para obtener la
informaci´on necesaria por el operador.
Figura 1.8: Esquema de un Sistema Teleoperado [5].
2
Configuraciones donde la movilidad del mecanismo se reduce, la cinematica inversa tiene infinitas soluciones [20].
3
La manipulabilidad se puede entender como la capacidad de cambio de posici´on y orientaci´on para una configuraci´on espec´ıfica. [20].
1.3
Trabajo Previo
El trabajo previo necesario para este proyecto se va a dividir en dos partes: la primera
se centra en explicar los antecedentes de la rob´otica, trabajos internos y externos; y la
segunda en los antecedentes del grupo estudiantil Robocol para llegar a ver en detalle
las caracter´ısticas del brazo rob´otico a manipular.
1.3.1 Telerob´otica
La telerob´otica tiene sus inicios en la decada de los 50s cuando Raymond C.Goertz
cre´o sistemas mec´anicos para manejar material radioactivo desde atr´as de muros
blinda-dos. Posterior a esto, Goertz le incluy´o a el sistema mec´anico manipuladores el´ectricos,
iniciando lo que se conoce hoy en d´ıa como telerob´otica. En la decada de los 60s se
observaron los efectos del delay en los sistemas teleoperados por lo que se introdujo el
control supervisorio y a partir de esto la telerob´otica se desarroll´o significativamente en
aplicaciones con ambientes hostiles para el humano y cirug´ıa no invasiva [5].
A nivel interno, se ha trabajado principalmente desde los departamentos de Electr´onica
y Sistemas y Computaci´on. En el primero, en el curso de rob´otica IELE-3338 del primer
semestre del 2014 se trabaj´o en el control teleoperado de un brazo rob´otico comercial
marca Stern por reconocimiento de imagen. En el segundo, se desarroll´o el sistema
rob´otico teleoperado de una plataforma m´ovil por captura de movimiento por parte de
los estudiantes Juan Sebasti´an M´endez y Luis Eduardo Salazar en el a˜no 2010.
A nivel externo se encuentran muchos articulos de robots teleoperados, en su gran
mayor´ıa con aplicaciones medicas o industriales, aqu´ı se explicaran dos art´ıculos que
permiten comprender conceptos importantes para el desarroll´o de la soluci´on.
El primer art´ıculo [6], escrito por investigadores del Harbin Institute of Technology (China), ilustra el control teleoperado de un brazo y mano rob´otica. El usuario cuenta
con un guante que sensa los movimientos de su mano y un visor que permite incluir
telepresencia al sistema, de igual forma el robot cuenta con sensores de fuerza que
permiten al usuario sentir una reacci´on debido al uso del guante, los dispotisivos se
Figura 1.9: Mano Rob´otica y Guante de Control [6].
El segundo art´ıculo [7], escrito por investigadores de la Universidad de Saga (Jap´on) implementa dos tipos de control teleoperados para el control de un brazo rob´otico:
control por medio de un brazo operacional y control preciso por posici´on. La diferencia
de estas dos t´ecnicas se centra en que el movimiento generado por la primera depende
de la destreza del operador, en la segunda estrategia se presentan movimientos mas
precisos. La arquitectura de las dos t´ecnicas se puede observar en la figura1.10.
1.3.2 Robocol
Robocol es una iniciativa estudiantil que naci´o en el a˜no 2010 con el objetivo de
fo-mentar el desarrollo de la rob´otica en Colombia. Ha participado en tres ocasiones en
el Lunabotics Mining Competition de la NASA, desde el a˜no 2011 hasta el 2013. Los
siguientes estudiantes presentaron proyectos de grado relacionados a esta competencia:
Juan Sebasti´an Mac´ıas trabaj´o en la suspensi´on para el robot de la edici´on del 2012, el
estudiante Carlos Roso trabaj´o en la autonom´ıa del robot del 2013 y el estudiante David
Ricardo Arevalo estudio el mecanismo de elevaci´on de carga del robot del 2013 para un
posible mejoramiento.
Desde el a˜no 2013 el equipo de Robocol trabaj´o en un nuevo proyecto: el European
Rover Challenge 2014, que se llev´o a cabo en el mes de septiembre, en Checiny, Polonia.
En este proyecto de grado se trabaj´o sobre el brazo rob´otico del rover Deimos que
particip´o en el concurso antes mencionado. Este brazo fue dise˜nado y manufacturado en
un problema especial del estudiante Diego Camelo con la Colaboraci´on de Hayden Liu
Weng y Juan Sebastian Ruiz Medina bajo la asesor´ıa de Juan Pablo Barreto Melgarejo.
De acuerdo con las reglas del concurso el brazo rob´otico deb´ıa ser capaz de cumplir con
las siguientes tareas:
• Recolecci´on de muestras
Muestra de suelo superficial de al menos 200 gramos.
Roca de al menos 150 gramos.
• Mantenimiento
Accionar interruptores. 4
Conexi´on de un enchufe. 5
• Asistencia al astronauta: Transporte de objetos. 6
El brazo construido tiene seis grados de libertad como se ilustr´o en el marco te´orico.
Para actuar la rotaci´on de la base se utiliza un motoreductor, para la inclinaci´on del
brazo y el antebrazo se utilizan actuadores lineales, para la rotaci´on e inclinaci´on de la
mu˜neca se utilizan servomotores al igual que en la herramienta. A continuaci´on, en la
figura1.11 se ilustra un esquema del brazo rob´otico y posterior a esto en la tabla1.1se observan las caracter´ısticas relevantes del mismo.
4
Se deb´ıan accionar en un orden espec´ıfico.
5
Conector tipo europeo.
6
Figura 1.11: Esquema del Brazo Rob´otico del Rover Deimos.
Par´ametro Valor
Peso 7 kg
L1 30 cm
L2 50 cm
L3 30 cm
L4 12 cm
L5 18 cm
Q1 (base) Rotaci´on Continua
Q2 (brazo) -60◦ a 60◦
Q3 (antebrazo) 0◦ a 90◦
Q4 (mu˜neca) -90◦ a 90◦ Q5 (rotaci´on mu˜neca) -180◦ a 180◦
Q6 (herramienta) 32 mm a 82 mm
Tabla 1.1: Peso, Dimensiones y Rangos de los GDL del Brazo Rob´otico.
1.4
Definici´
on del Proyecto
1.4.1 Objetivos
1.4.1.1 Objetivo General
• Dise˜nar e Implementar en simulaci´on el mando de control de un brazo rob´otico de 6 GDL garantizando una manipulaci´on intuitiva y diestra.
1.4.1.2 Objetivos Espec´ıficos
• Proponer alternativas de soluci´on al problema.
• Evaluar y seleccionar la mejor alternativa de acuerdo con los requerimientos y criterios de evaluaci´on establecidos.
• Dise˜nar y construir el control de mando escogido.
• Implementar el control de mando en simulaci´on para verificar su funcionamiento.
1.4.2 Restricciones
• El costo del control de mando no puede superar un salario minimo vigente.
• Se debe realizar el proyecto en un tiempo no mayor a 18 semanas.
• No se puede implementar el control de mando en el brazo real en el momento.
1.4.3 Requerimientos
• Manejo intuitivo.
• Trayectorias en linea recta en coordenadas de la base o de la herramienta.
• Se desea seleccionar una alternativa de bajo costo.
• Se busca una alternativa de f´acil elaboraci´on.
1.4.4 Alcance
Al final de este proyecto de grado se pretende entregar el prototipo del mando de
con-trol de un brazo rob´otico que cumpla con los requerimientos establecidos as´ı como la
Alternativas de Soluci´
on
2.1
Criterios de Decisi´
on
Como criterios de decisi´on se tomaron en cuenta los requerimientos planteados en el
cap´ıtulo 1.4.2, estos se explicaran en detalle a continuaci´on.
• Costo: dependiendo de la alternativa el costo se representa por el precio actual en el mercado o el estimado para la elaboraci´on de la alternativa.
• Intuitividad: de acuerdo con lo investigado para cada alternativa resulta f´acil de observar cual alternativa resulta mas intuitiva de manejar para el usuario, este
criterio se eval´ua en una escala de 1 a 5 siendo 1 el menos intuitivo y 5 el mas
intuitivo.
• Cinem´atica Inversa: como uno de los requerimientos es la posibilidad de generar trayectorias rectas es preferible que la alternativa sea capaz de implementar cinem´atica
inversa, de lo contrario las trayectorias van a depender de la destreza del operador.
Este criterio se eval´ua ´unicamente con ”Si” o ”No” implementa.
• Simplicidad: de acuerdo con los conocimientos adquiridos a lo largo de la carrera, se puede evaluar cual alternativa resulta mas sencilla de elaborar. Este criterio se
eval´ua de 1 a 5 siendo 1 la alternativa mas complicada y 5 la mas sencilla.
De estas alternativas las mas importantes son la intuitividad y la cinem´atica inversa
pues son parte del objetivo general. De acuerdo con esto se les asigna un peso de 10%
a costo y simplificad y de 40% a intuitividad y cinem´atica inversa.
2.2
Alternativas de Soluci´
on
Para las alternativas de soluci´on se plantearon aquellas conocidas para el manejo de
brazos rob´oticos. Estas fueron escogidas a partir del conocimiento y la experiencia del
estudiante y dem´as miembros del grupo Robocol. De estas alternativas, la cuarta y la
quinta resultan muy similares siendo la ultima una modificaci´on de la cuarta.
2.2.1 Imitaci´on de Prototipo
Esta alternativa se bas´o en el segundo articulo explicado en la secci´on 1.3. Este control se basa en la imitaci´on de un brazo operacional: el brazo real imita el movimiento
comandado por el brazo operacional. Esta alternativa resulta muy intuitiva pues el
brazo operacional es manejado por el operador de forma manual, resulta medianamente
sencillo de elaborar pues se requiere la fabricaci´on del brazo operacional y esta alternativa
no esta pensada para un control preciso. El costo estimado de acuerdo con un proyecto
previo realizado por el estudiante es de 180 000 COP. A continuaci´on se muestra en la
figura2.1el prototipo elaborado por el estudiante para el grupo Robocol en la etapa de dise˜no previo del ERC en Noviembre del 2013.
Figura 2.1: Alternativa 1: Brazo operacional que maneja el brazo del rover.
2.2.2 Interfaz Gr´afica
La interfaz gr´afica es una alternativa muy com´un en la industria, para el manejo del
brazo se puede interactuar por medio del rat´on o del teclado. Resulta en una alternativa
de esta alternativa se encuentra en su bajo costo, dependiendo del software utilizado la
interfaz puede llegar a no presentar costos. Es una alternativa medianamente sencilla
de implementar y se puede incluir cinem´atica inversa en sus comandos.
En el dise˜no del brazo rob´otico de robocol se trabaj´o con una interfaz gr´afica desarrollada
en Matlab con ayuda del toolbox de rob´otica de Peter Corke.
Figura 2.2: Simulaci´on del Brazo de Robocol, posici´on inicial.
Figura 2.3: Simulaci´on del Brazo de Robocol, posici´on final.
Para la s´ıntesis del brazo rob´otico fue necesario definir los par´ametros D-H que se
mues-tran en la tabla2.1.
j Θ(rad) d(m) a(m) α(rad)
1 Q1 0 0 0
2 Q2 0.3 0.5 π/2
3 Q3 0 0.3 0
4 Q4 0 0 0
5 Q5 0.12 0 −π/2
2.2.3 Interfaz Natural de Usuario
La interfaz natural de usuario es aquella en la que se interact´ua con un sistema,
apli-caci´on, etc. Sin utilizar sistemas de mando o dispositivos de entrada de las GUI como
ser´ıa un rat´on, teclado alfanum´erico, l´apiz ´optico, touchpad, joystick, etc [21]. En este caso el mando de control es el propio cuerpo, un ejemplo claro de este tipo de control es
el Kinect de la consola de video juegos X-BOX. Esta alternativa depende de la destreza
del operador y tiene un costo de alrededor de 100 USD [22]. Es muy intuitiva en ciertos escenarios sin embargo, debido al tipo de uniones del robot, el brazo humano no es un
buen mando de control. Debido al numero de grados de libertad, es una alternativa
compleja de implementar. A continuaci´on en la figura 2.4 se ilustra el funcionamiento
de esta alternativa.
Figura 2.4: Interfaz Natural de Usuario (NUI) [8].
2.2.4 Control de Mando Comercial
Esta alternativa fue la que se us´o previamente en Septiembre del 2014 en el ERC. Esta
alternativa presenta la ventaja de ser muy ergon´omica. Un control de Xbox cl´asico puede
tener un costo de alrededor de 75 USD nuevo. No resulta tan intuitivo de manejar
pues no esta dise˜nado para manejar brazos rob´oticos por lo que la disposici´on de los
botones no es la mas adecuada. Debido a la presencia de joysticks el mando puede ser
implementado con cinem´atica inversa. La implementaci´on resulta muy sencilla pues no
se requiere construir nada a nivel de prototipo, ´unicamente a nivel de software. En la
Figura 2.5: Control de Xbox cl´asico con un costo de 75 USD [9].
2.2.5 Control de Mando Simplificado
El control de mando simplificado consiste en dise˜nar y construir un mando similar al
mostrado en la figura 2.5. La idea del control simplificado consiste en implementar componentes que resulten mas intuitivos para el movimiento de un brazo rob´otico. Este
control adem´as tiene el potencial de ser mejorado en robustez y ergonom´ıa. El costo
estimado es de 180 000 COP a partir de los componentes que contiene y resulta una
alternativa medianamente sencilla de elaborar. Puede incluir cinem´atica inversa. Un
ejemplo de un control tipo arcade mas adecuado para este tipo de tareas se muestra en
la figura 2.6.
Alternativa Costo(COP) Intuitividad Simplicidad Cinem´atica Inversa
Imitaci´on 180 000 5 5 No
Interfaz Gr´afica 0 1 1 Si
Interfaz Natural 170 000 2 4 No
Mando Comercial 165 900 3 2 Si
Mando Simplificado 175 000 4 3 Si
Peso 0.1 0.4 0.1 0.4
Tabla 2.2: Matriz de alternativas y criterios.
2.3
Toma de Decisi´
on
Para la toma de decisi´on de utiliz´o el metodoElectre (”Elimination et choix traduisant
la realit´e”) que se va a mostrar a continuaci´on. Para mas informaci´on del desarrollo
del metodo consultar [23]. Este m´etodo resulta de gran utilidad al evaluar alternativas con multiples criterios en diferentes escalas. Para iniciar el proceso de decisi´on es
nece-sario definir una matriz con las alternativas, los criterios, los valores y los pesos de cada
criterio. Esta matriz se muestra a continuaci´on, el dolar se tom´o a la tasa del 29 de
Noviembre de 2014.
Para el metodo electre primero hay que calcular las mayores diferencias en los criterios
(δ). En el caso de si y no vamos a remplazar los datos por 1 y 0 respectivamente.
Costo(COP) Intuitividad Simplicidad Cinem´atica Inversa
δ 34 000 4 4 1
Tabla 2.3: Maximas diferencias en los criterios.
Posterior a esto debemos calcular la matriz de concordancia que se observa en la 2.4.
Para calcular los elementos de la matriz hay que hacer lo siguiente: se deben sumar los
pesos de los aspectos en los que la alternativa de la filai es superior a la alternativa j.
Por ejemplo: la alternativa 1 es superior a la alternativa 2 en Intuitividad y Simplicidad
por lo que la suma de los pesos da 0.5, valor que se observa en la casilla de la fila 1
columna 2.
1 2 3 4 5
1 - 0.5 0.5 0.5 0.5
2 0.5 - 0.5 0.5 0.5
3 0.4 0.9 - 0.1 0.5
4 0.5 0.8 0.9 - 0.5
5 0.4 0.8 0.8
Despu´es de tener la matriz de concordancias es necesario calcular la matriz de
discor-dancias, esta matriz se observa en la tabla 2.5. Para construir esta matriz es necesario
hacer lo siguiente: se debe tomar la m´aximo la diferencia de valores donde la alternativa
de la fila i es superior a la alternativa de la columna j, la diferencia debe ser dividida
en el valor δ para normalizar los datos. Por ejemplo: la alternativa 1 es superior a la
alternativa 2 en intuitividad por 4 unidades pero se divide entreδ y da 1, por otro lado
es superior en simplicidad tambi´en por una diferencia normalizada de 1 por lo que el
valor m´aximo es de 1, este dato se observa en la fila 1 columna 2.
1 2 3 4 5
1 - 1 0.75 0.75 0.5
2 5.3 - 5 4.88 5.88
3 0 0.75 - 0.5 0.25
4 1 0.5 1 - 0
5 1 0.75 1 0.25
-Tabla 2.5: Matriz de concordancias.
Despu´es de esto hay que calcular los umbrales de decisi´on. El umbral de decisi´onpde la
matriz de concordancia se calcula como el promedio de los datos al igual que el umbral
de decisi´on q de la matriz de discordancia. El valor de p debe ser aproximado al valor
de la matriz inmediatamente superior y q al inmediatamente inferior. Los valores se
observan en la ecuaci´on (2.1).
p= 0.5 y q= 0.75 (2.1)
Por ´ultimo, para tomar la decisi´on final es necesario formar la matriz de decisi´on2.6. La matriz de decisi´on consiste en dos columnas: una columna de dominancia por filas y una
columna de dominancia por columnas. Para que una alternativa domine a la otra tanto
en filas como en columnas es necesario que el valor de la matriz de concordancia sea
supe-rior al umbral y el valor de la matriz de discordancia sea infesupe-rior al umbral. Finalmente,
se restan el numero de alternativas dominadas en filas menos el numero de alternativas
dominadas en columna, la alternativa con el mayor numero ser´a la alternativa que se
escoge.
Dominancia por Filas Dominancia por Columnas Diferencia
1 0 0 0
2 0 A4 -1
3 0 0 0
4 A2 A5 0
5 A4 0 1
Procesamiento y Simulaci´
on
Para continuar con el capitulo4, es necesario describir brevemente como fue el sistema de procesamiento de los datos: desde la lectura an´aloga o digital de los diferentes
com-ponentes hasta la simulaci´on del brazo rob´otico. En el capitulo5se explicar´a con mayor detalle para la configuraci´on final escogida.
3.1
Conexiones
Como sensores del sistema tenemos dos tipos de componentes: botones (o interruptores)
y potenci´ometros. Estos dos componentes representan entradas digitales y an´alogas
respectivamente.
3.1.1 Entrada Digital
Una entrada digital es una entrada que puede tomar unicamente dos valores: un 0
l´ogico o un 1 l´ogico. Un 1 l´ogico representa un valor de 5V, de esta forma si la entrada
es cercana a 5V, digamos 4.7 V, se reconocer´a el valor como un 1. Como se puede
observar en la figura3.1cuando el interruptor se activa la salida es de 5V y cuando esta abierto la salida es de 0V.
Figura 3.1: Conexi´on de una entrada digital [11].
3.1.2 Entrada An´aloga
Una entrada an´aloga es un se˜nal que puede tomar un valor entre 0 y 5V, esta se˜nal
se digitaliza y se tiene una aproximaci´on digital dependiendo del numero de bits. En
este caso la resoluci´on es de 8 bits, con 8 bits se pueden construir 1024 n´umeros por lo
que la resoluci´on ser´a de 5 V /1024 = 0.0048 V. De esta forma 0V se representa por
el numero en binario 00000000 y 5V por 11111111. Para obtener la entrada an´aloga lo
´
unico que hay que hacer es formar un divisor de voltaje con una resistencia variable,
para eso utilizaremos un potenci´ometro y se realiza la conexi´on como se muestra en la
figura3.2, el Vin vale la pena aclarar es un voltaje de 5V.
Figura 3.2: Potenci´ometro y Salida An´aloga [12].
3.2
Adquisici´
on de los Datos y Comunicaci´
on Serial
Para la adquisici´on de los datos se utiliz´o una tarjeta Arduino Uno como la que se
muestra en la figura 3.3. Esta tarjeta resulta muy f´acil de programar y tiene el numero de entradas an´alogsa y digitales requeridas para la soluci´on del proyecto. Esta tarjeta
adquiere los datos y se comunica con el computador por protocolo serial, esto se hace
Figura 3.3: Tarjeta Arduino Uno[13].
La programaci´on de la tarjeta se realiza en el software libre Arduino que se observa en
la figura 3.4.Tambi´en se observa la comunicaci´on serial, la lectura an´aloga, la lectura
digital y la impresi´on de los datos.
Figura 3.4: Ambiente de Programaci´on de Arduino.
La impresi´on que realiza el Arduino se ve limitada a palabras de 32 bits que en decimal
los 9 d´ıgitos. En el ejemplo que se muestra la variable ”uno” presenta valores entre 0
y 1024 y la variable ”dos” de 0 o 1. Al imprimir estos dos datos concatenados se va a
imprimir una palabra de cuatro d´ıgitos. En el capitulo 5 se va a explicar que sucede cuanto se tienen que leer muchas entradas y no caben en una sola palabra.
3.3
Lectura Serial
Los datos adquiridos por el Arduino entran al computador por medio de un puerto
COM. Este puerto COM debe ser abierto desde simulink para procesar los datos desde
el mismo. Para esto se hace uso del bloque Query que se muestra en la figura 3.5. Es
necesario configurar el puerto y la tasa seg´un el programa del Arduino.
Figura 3.5: Bloque Query para Lectura Serial.
3.4
Decodificaci´
on
Como el mensaje enviado por el Arduino es una palabra de maximo 9 d´ıgitos, esta debe
ser procesada y decodificada para obtener la informaci´on relevante. Para este proceso se
para la soluci´on del problema. En la figura3.6se pueden observar los bloques de lectura y decodificaci´on. La decodificaci´on de los datos se vuelve mas compleja cuando se env´ıan
dos palabras diferentes, en el capitulo 5 se va a explicar que sucede en este caso.
Figura 3.6: Decodificaci´on de los Datos.
3.5
SimMechanics
Para la simulaci´on del brazo rob´otico se hace uso de dos programas: Autodesk Inventor
y SimMechanics. El primer programa se utiliza para crear el CAD y el segundo para la
simulaci´on. En la figura 3.7se puede observar una simulaci´on del brazo rob´otico con 4
GDL ´unicamente.
Figura 3.7: CAD del Brazo Rob´otico con 4 GDL.
Autodesk Inventor exporta el CAD como archivos de bloques que pueden ser
utiliza-dos por SimMechanics. El archivo termina como .xml y debe ser abierto por MatLab
utilizando el comando mech import(’nombredelensamble.xml’). Para poder hacer este
proceso es necesario instalar los paquetes adecuados para Inventor y MatLab por lo que
se recomienda consultar la referencia [24].
En la figura3.8se puede observar un diagrama de bloques para mover un ensamble con 1 GDL: entre la pieza Base y Eslab´on se encuentra un bloque que representa la union
de revoluta y debe ser actuada ingresandole la posici´on, velocidad y aceleraci´on; para
esto se ingresa la posici´on y se incluyen bloques de derivaci´on y un multiplexor.
Dise˜
no de la Configuraci´
on
Como se observ´o en el capitulo3 la alternativa escogida fue el dise˜no y construcci´on de
un mando propio simplificado. En el capitulo 3 se mostr´o que el mando pod´ıa incluir ´
unicamente entradas an´alogas y digitales. Para la construcci´on del mando se tuvieron en
cuenta los componentes t´ıpicos de una consola Arcade y que se consiguen en el mercado
local, estos se observan en la figura 4.1.
Figura 4.1: Alternativa de componentes [14].
Los componentes son palancas, botones, potenci´ometros, interruptores y potenci´ometros
de corredera. De los componentes antes mencionados se ponen las siguientes
restric-ciones, estas restricciones se fijaron por gusto del autor del proyecto y se desea evaluar
el uso de palancas o potenci´ometros para los siguientes grados de libertad: rotaci´on de
la base, plano XZ y orientaci´on de la herramienta.
• El interruptor debe ser usado para el cambio de modo en la cinem´atica inversa.
• El potenci´ometro de corredera debe ser usado para la apertura y cierre de las pinzas ya que tambi´en es un movimiento rectil´ıneo.
• Para la rotaci´on de la mu˜neca se har´a uso de un potenci´ometro.
• Los botones son utilizados ´unicamente como comandos r´apidos de posici´on. 29
4.1
Alternativas de Configuraci´
on
A partir de lo anterior se desea observar cual es una configuraci´on adecuada para los
potenci´ometros y las palancas por lo que se prueban tres alternativas. Estas se muestran
en la figura 4.2. En esta secci´on se desea encontrar la distribuci´on y los componentes
que manejan los grados de libertad que se observan en la figura 3.7 ya que los dem´as grados de libertad ya est´an restringidos en componentes.
Figura 4.2: Alternativa de componentes.
Alternativa 1Busca evaluar el uso de una palanca para el movimiento en el plano XZ
del brazo y el uso de potenci´ometros para la orientaci´on y rotaci´on de la base.
Alternativa 2 Busca evaluar el uso de 4 potenci´ometros para el movimiento de los 4
GDL antes mencionados.
Alternativa 3 Busca evaluar el uso de 2 palancas para el movimiento de los 4 GDL
antes mencionados.
Para el desarrollo de las pruebas se realizaron conexiones provisionales en protoboard,
Figura 4.3: Conexiones Provisionales.
4.2
Protocolo de Pruebas
Para evaluar las alternativas se tomaron sujetos de pruebas y se les solicit´o utilizar
los distintos controles de mando provisionales para seguir la trayectoria mostrada en la
figura4.4.
Figura 4.4: Trayectoria del protocolo de pruebas.
Descripci´on de la trayectoria: La posici´on inicial del brazo se encuentra ubicada
hacia atr´as, el sujeto debe rotar el brazo en sentido lev´ogiro hasta que se encuentre
adelante y finalmente se debe tocar la esquina superior derecha con la herramienta
apuntando a un ´angulo de -135◦ con respecto al piso.
Datos a Tomar: Cada uno de los sujetos de prueba debe repetir la trayectoria 5 veces.
Se toman los siguientes datos:
• Datos Personales: Nombre
Edad
Carrera
• Calificaci´on de caracter´ısticas de los mandos. Comodidad
Intuitividad
Velocidad
Precisi´on
4.3
Resultados de las Pruebas
De los resultados obtenidos se observ´o que el evaluar la comodidad, intuitividad,
veloci-dad y precisi´on no es de mucha utilidad. En primer lugar la velocidad y precisi´on son
conceptos que dependen de la programaci´on y/o los componentes mas no de la
config-uraci´on, por ejemplo: los potenci´ometros al ser de 10 vueltas aparentan ser precisos y
poco veloces; en segundo lugar, la intuitivdad y la comodidad no dieron muy buenos
resultados al variar mucho los conceptos entre personas y no poder comparar entre
al-ternativas. Los resultados completos se pueden observar en el anexo A. De lo anterior
se llega a la decisi´on de mirar ´unicamente los resultados de los tiempos y la tasa de
aprendizaje que resulta de la pendiente de los cinco tiempos tomados.
Tabla 4.1: Resultados de las Pruebas.
Alternativa 1er Tiempo (s) Tasa de Aprendizaje Mejor Tiempo (s)
Palanca + Perillas 54,1 -8,5 s/intento 15,4
Solo Perillas 69,2 -9,8 s/intento 21
Dos Palancas 74,7 -11,4 s/intento 19,9
Como se puede observar en la tabla 4.1 la primera alternativa resulta la mas intuitiva
presentando un primer tiempo promedio de 54,1 segundos y un tiempo maximo promedio
de 15.4 segundos. La tasa de aprendizaje result´o no ser muy diciente, esto debido a que
en la alternativa con mayor tasa de aprendizaje los tiempos del primer intento fueron
muy grandes, dando una impresi´on inequ´ıvoca de intuitividad.
4.4
Mismo Sujeto de Pruebas
Para observar la utilidad de incluir un algoritmo de cinem´atica inversa se utiliz´o un
sujeto de pruebas que participara con cada una de las alternativas. Este sujeto prob´o
una cuarta alternativa con la misma configuraci´on de la alternativa 2 manejando los
inversa. El sujeto de pruebas se llama Daniel Esteban Ochoa Tamayo, 19 a˜nos de edad
y es estudiante de ingenier´ıa electr´onica y f´ısica.
Tabla 4.2: Comparaci´on entre Alternativas.
Alternativa 1er Tiempo (s) Mejor Tiempo (s) Tasa de Aprendizaje
Palanca + Perillas 42,58 11,63 -9,5 s/intento
Solo Perillas 31,9 11,41 -4,5 s/intento
Dos Palancas 20,41 14,45 -1,4 s/intento
Grados Independientes 30,38 18,71 -3,3 s/intento
De lo que se observa en la tabla 4.2 el sujeto va mejorando entre alternativas, esto se debe a que el sujeto al evaluar la segunda alternativa ya tiene practica por haber
probado previamente la primera alternativa. De igual forma al probar la alternativa
tres, el sujeto tiene la experiencia de haber manejado las dos primeras. Sin embargo, en
la ultima alternativa (manejando los GDL independientemente como se hizo en el ERC
2014) el primer tiempo decae, el mejor tiempo es el peor entre alternativas y la tasa de
aprendizaje decae. Dicho todo esto queda claro que el mando de control a implementar
Construcci´
on e Implementaci´
on
5.1
Componentes a Utilizar
De los resultados obtenidos en el capitulo4se distribuyen los componentes de la siguiente manera:
• Palanca tipo arcade: Maneja el plano XZ del brazo.
• Tres Potenciometros lineales: Manejan la rotaci´on de la base, la mu˜neca y la orientaci´on de la herramienta.
• Potenciometro de corredera: Maneja la apertura y cierre de la herramienta.
• Dos botones: Comandos rapidos, para ubicar el brazo al frente y recogido en la parte trasera.
• Un interruptor: Este es utilizado para cambiar el modo de la cinem´atica inversa.
5.2
Diagrama de Bloques Hardware
Luego de haber seleccionado los componentes es necesario ilustrar el diagrama de bloques
donde se muestra la relaci´on entre los componentes, el Arduino Uno y el computador.
Esta relaci´on se observa en la figura5.1.
Figura 5.1: Diagrama de Bloques Hardware.
5.3
Dise˜
no CAD y Construcci´
on
5.3.1 Dise˜no CAD
Una vez seleccionado los componentes y conociendo la interconexi´on de los mismos, se
procede a dise˜nar el mando de control en Autodesk Inventor. El dise˜no del mando debe
procurar un uso adecuado del espacio y una f´acil conexi´on de los componentes. El CAD
del mando de control se puede observar en la figura 5.2.
Figura 5.2: Dise˜no en Autodesk Inventor del mando de Control.
5.3.2 Construcci´on
El mando de control se construy´o en acr´ılico color humo de 3mm de calibre. La selecci´on
del corte l´aser en la Universidad. A continuaci´on se muestran una serie de im´agenes del
mando de control finalizado.
Figura 5.3: Vista desde la diagonal izquierda.
Figura 5.4: Vista desde la diagonal derecha.
En las figuras5.3y5.4se puede observar que el mando ´unicamente deber conectado por
el cable USB A/B y se muestran los componentes antes mencionados. Se ubica sobre
una base de mayor tama˜no y esta tiene unas chupas que impiden el movimiento del
Figura 5.5: Vista Superior.
En la figura5.5 se puede observar que sobre el acr´ılico se encuentra un grabado que le
permite al usuario comprender de manera mas sencilla el funcionamiento del mando.
5.4
Diagrama de Bloques Software
Como se mencion´o en el capitulo 4, el sistema a nivel de sofware se divide en cua-tro modulos: adquisici´on de los datos, decodificaci´on, procesamiento y simulaci´on. La
adquisici´on de los datos la realiza el arduino uno. La lectura, decodificaci´on,
proce-samiento y simulaci´on se realizan en Simulink. En la figura 5.6 se observa el diagrama
de bloques en Simulink.
5.4.1 Adquisici´on de Datos
Para la adquisici´on de los datos se utiliz´o un Arduino Uno, el c´odigo de este se presenta
en el anexo B. Este codigo se encarga de hacer cuatro cosas en la siguiente secuencia:
1. Inicializaci´on de variables: se realiza para que las coordenadas x yzal iniciar
el algoritmo se encuentren en una configuraci´on con soluci´on, 50 cm para cada
variable.
2. Comunicaci´on: Se inicia el env´ıo de informaci´on por serial y se fija la tasa.
3. Lectura de datos: Se leen los datos an´alogos con valores entre 0 y 1020 y digitales
con valores de 0 o 1.
4. Preprocesamiento de los datos an´alogos: Se deben convertir a valores entre
10 y 99 para que se mantenga un numero de 2 d´ıgitos.
5. Preprocesamiento de los datos digitales de la palanca: Los datos de los
cuatro interruptores de la palanca deben ser procesados para que la palanca sume
o reste una unidad enx y/o enz cuando se accionan los interruptores.
6. Impresi´on de los datos: Se organiza la informaci´on en dos palabras de 8 y
7 d´ıgitos. A la palabra de 7 d´ıgitos se le incluye un 0 que ser´a utilizado en la
decodificaci´on. Los datos digitales por defecto se encuentran en 0. La primera
palabra contiene la informaci´on de los cuatro potenciometros, la segunda palabra
contiene la informaci´on de las coordenadas x y z y las tres entradas digitales
restantes. El env´ıo de la informaci´on se puede observar en la figura 5.7.
Figura 5.7: Las dos palabras enviadas por el Arduino.
5.4.2 Decodificaci´on
Para la decodificaci´on se realiza un c´odigo en Matlab. El bloque de codificaci´on en la
figura5.6es el bloque naranja. El prop´osito de este bloque es separar las dos palabras que env´ıa el Arduino, para esto necesita usar bloques de memoria para poder almacenar las
variables de una palabra mientras se lee la otra palabra. Se lee la longitud de la palabra
y se leen los datos los datos que corresponden seg´un sea la longitud. Este proceso se
observa en mayor detalle en el ap´endice C, en este se puede encontrar el c´odigo de la funci´on comentado y un detalle del bloque de decodificaci´on.
5.4.3 Procesamiento
El procesamiento se lleva a cabo con una funci´on de Matlab y un bloque de memoria
como se observa en la figura5.6, en el apendiceCse presenta el c´odigo de esta funci´on. La funci´on se encarga de las siguientes tareas:
• Realizar la cinem´atica inversa.
• Declarar las longitudes de los eslabones.
• Ubicar el brazo a 0◦ y permitir los dem´as grados de libertad.
• Ubicar el brazo en una posici´on de reposo y restringir todos sus grados de libertad.
• Ubicar el brazo en la posici´on de reposo en caso de encontrarse cercano a una singularidad.
• Cambiar la cinem´atica inversa de coordenadas de la base a coordenadas de la herramienta.
5.4.4 Simulaci´on
Para la simulaci´on del brazo rob´otico como se mencion´o en el capitulo3 se hace uso de dos programas: Autodesk Inventor y SimMechanics. En la siguiente serie de figuras se
va a tratar de ilustrar el funcionamiento del mando. En el ap´endice C se presenta el diagrama de bloques para los 6 grados de libertad.
En la figura 5.8 se observa como rota la base del brazo, este movimiento se logra al mover un potenci´ometro.
Figura 5.9: Movimiento de la orientaci´on.
En la figura 5.9 se observa como rota la orientaci´on de la herramienta sin afectar su
ubicaci´on, esto se logra con un potenci´ometro.
Figura 5.10: Rotaci´on de la Mu˜neca.
En la figura 5.10 se observa la rotaci´on de la mu˜neca, este movimiento se logra con un potenci´ometro.
Figura 5.11: Apertura y Cierre de las Pinzas.
En la figura 5.11 se observa la apertura y cierre de las pinzas, esto se logra con un potenci´ometro de corredera.
Figura 5.12: Movimiento rectil´ıneo en el X global.
En la figura5.12se puede observar el movimiento rectil´ıneo x en coordenadas de la base,
este movimiento se logra moviendo la palanca a la izquierda o derecha.
Figura 5.13: Movimiento rectil´ıneo en el Z global.
En la figura5.13se puede observar el movimiento rectil´ıneo z en coordenadas de la base,
este movimiento se logra moviendo la palanca hacia arriba o hacia abajo.
Figura 5.14: Movimiento rectil´ıneo en el X de la herramienta.
En la figura 5.12 se puede observar el movimiento rectil´ıneo x en coordenadas de la
Conclusiones y Trabajo Futuro
6.1
Conclusiones
• Se logr´o construir el prototipo de un mando de control para un brazo rob´otico de seis grados de libertad garantizando un manejo intuitivo y diestro.
• Se observ´o que la implementaci´on de la cinem´atica inversa muestra buenos resul-tados frente a la manipulaci´on individual de los GDL.
• Se simul´o el funcionamiento del mando de control en SimMechanics de MatLab logrando cumplir los objetivos.
• Se concluye que para observar el correcto funcionamiento del mando es necesario implementarlo en un brazo real.
6.2
Trabajo Futuro
• Proyecto:
Implementaci´on del mando en un brazo real.
• Producto:
Mejora del prototipo en robustez y ergonom´ıa.
Inclusi´on de una palanca con mas grados de libertad.
Reducir el numero de vueltas de los potenci´ometros
Limitar el rango de los grados de libertad.
• Simulaci´on:
Mantener la posici´on en caso de estar cerca a una posici´on singular.
Arreglar el modo de coordenadas de la base1.
1
[1] Japan Robotics Association. Outlook for robotics and automation for 2011, 2011.
[Tomado de www.tommytoy.typepad.com el 3-Noviembre-2014].
[2] Lysandrou. Tomado de http://lysandrou.blogspot.com el 20 de abril de 2014.
[3] Frank C.Park. Robot mechanics and control. 2014. [Seoul National University,
Online Course].
[4] Lung-Wen Tsai. Robot analysis, themechanicsof serialandparallelmanipulators.
1999. [Nueva York:John Wiley and Sons].
[5] Carsten Preusche Gunter Niemeyer and Gerd Hirzinger. Telerobotics from robotics
handbook by siciliano and khatib, 2008.
[6] Jiawei Li Haiying Hu and Bin Wang. A robot arm/nad teleoperation system with
telepresence and shared control. 2005. [International Conference on Advanced
Intelligent Mechatronics].
[7] Takeo Matsumoto Kenta Tsukamoto Naruto Egashira Achala Pallegedara,
Yoshi-taka Matsuda and Satoru Goto. Teleoperation of robot arms using force-free control
and template matchingl. 2012. [International Journal of Innovative Computing,
In-formation and Control].
[8] Institute for Biocomputation and Physics of Complex Systems. Realidad virtual,
2012. [Zaragoza].
[9] Microsoft. Controller s-black, 2014.
http://www.amazon.com/Xbox-Controller-S-Black.
[10] Rob Beschizza. Decent cheap usb arcade joystick finally exist, 2007.
http://www.wired.com/.
[11] Enrique Arce. Digital input to the arduino, 20/Oct/2007. Tomado de
https://ctheds.wordpress.com/2007/10/30/digital-input-to-the-arduino/ el 2 de
Di-ciembre de 2014.
[12] Electronics 2000. Tomado de http://www.electronics2000.co.uk/images/data/potcons.png
el 2 de Diciembre de 2014.
[13] Arduino. Tomado de http://arduino.cc/ el 2 de Diciembre de 2014.
[14] Componentes tomados de www.oceancontrols.com.au, www.amazon.com,
www.freepik.es, www.welectronics.com.mx y www.sparkfun.com respectivamente
el 4 de Diciembre de 2014.
[15] Real Academia Espa˜nola, 2014. [Consultado de www.rae.es el 25-Marzo-2014.].
[16] Carlos Francisco Rodriguez, 2014. [Tomado de la clase Rob´otica-IELE3338, del
Departamento de Ingenier´ıa El´ectrica y Electr´onica de la Universidad de los Andes].
[17] Freedonia Group. World robots to 2016, 2012.
[18] Robotic Industries Association Brian Huse. Economic conditions and opportunities
bode well for robotics.
[19] Occupational Safety United States Department of Labor and Health
Adminis-tration. Robotics, safety and health. 11 de Marzo de 2008. [Tomado de
www.osha.gov/SLTC/robotics/ el 26 de Marzo de 2014].
[20] Cinem´atica diferencial. [Universidad Polit´ecnica de Madrid, Rob´otica].
[21] Fundaci´on Centro Colombiano de Estudios Profesionales. Interfaz natural de
usuario, 2008. http://www.cecep.edu.co/.
[22] Microsoft. Kinect sensor with kinect adventures!, 2014.
http://www.amazon.com/Kinect-Sensor-Adventures-Xbox-360.
[23] Enrique Arce. leccion 7 seleccion de alternativas, 15/Sept/2009.
https://www.youtube.com/watch?v=wrios4vbAnc.
[24] MathWorks. Tomado de