Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tesis PDF
Tesis PDF
MÉXICO
FACULTAD DE INGENIERÍA
T E S I S
Que para obtener el título de
I N G E N I E R O M E C A T R Ó N I C O
P R E S E N T A
PEDRO MARIANO ESCOBEDO CASTILLO
DIRECTOR DE TESIS:
DR. VÍCTOR JAVIER GONZÁLEZ VILLELA
Agosto 2012
DEDICATORIAS
I. INTRODUCCIÓN ................................................................... 1
i
IV. 1. 1. Cinemática directa. ........................................................................... 42
IV. 1. 1. 1. Notacion de Denavit – Hartenberg. .............................................. 42
IV. 1. 1. 2. Interpretación geometrica de manipulador .................................... 45
IV. 1. 2. Cinemática inversa. .......................................................................... 46
IV. 1. 2. 1. Problema de posición. ................................................................ 47
IV. 1. 2. 2. Problema de orientación. ............................................................ 51
V. 5. Reactivision. .......................................................................................... 87
ii
VI. 3. Adquisición de datos. ......................................................................... 104
VI. 3. 1. Espacio articular. ............................................................................ 106
VI. 3. 2. Espacio cartesiano. ......................................................................... 112
VI. 3. 2. 1. Plano x-y. ............................................................................... 113
VI. 3. 2. 2. Posturas de brazo manipulador y plataforma móvil. ..................... 114
VI. 3. 2. 3. Planeación de trayectoria y lugar geométrico. ............................. 115
iii
L I ST A D E T A B L A S Y F I G U R A S
Figura I – 1. Principales tipos de juntas usadas en manipuladores ................................ 1
Figura I – 2 Los cuatro tipos básicos de ruedas: (a) Rueda Fija. (b) Rueda de Castor. (c)
Rueda Sueca. (d) Rueda esférica .................................................................................... 3
Figura II - 1 Cognitive ServiceRobot ................................................................................ 8
Figura II – 2 ARMARIII ..................................................................................................... 8
Figura II – 3 Meka M1....................................................................................................... 9
Figura II – 4 PR2 de Willow Garage................................................................................. 9
Figura II – 5 Home Exploring Robotic Butler (HERB) ...................................................... 10
Figura II – 6 Little Helper .................................................................................................. 10
Figura II – 7 Manipulador Móvil MM – 500....................................................................... 11
Figura II – 8 Manipulador Móvil KUKA youBot ................................................................ 11
Figura II – 9 Diagrama de flujo de información para enfoque de redes neuronales ....... 12
Figura II – 10 La plataforma (B) y el brazo (A) con sus trayectorias y puntos de referencia
.......................................................................................................................................... 15
Figura II – 11 Manipulador Móvil Seleccionado ............................................................... 17
Figura II – 12 Esquema de la Tarea a realizar por el Manipulador Móvil ....................... 18
Figura III – 1. Motores, soportes, llantas y tarjeta controladora utilizada para la plataforma
móvil .................................................................................................................................. 20
Figura III – 2. Servomotores de Aeromodelismo a utilizar .............................................. 20
Figura III – 3. Forma y dimensiones de la placa de transporte ....................................... 22
Figura III – 4. Medidas de la pila utilizada........................................................................ 23
Figura III – 5. Modelo en Nx7 de la placa base y sus componentes............................... 23
Figura III – 6. Placa de apoyo (a) y modelo de la rueda loca utilizada (b) ...................... 24
Figura III – 7. Dos diferentes versiones de la plataforma móvil: a) Con dos placas de
transporte, b) Con una placa de transporte .................................................................... 25
Figura III – 8. Modelo de arquitectura tipo PUMA............................................................ 26
Figura III – 9. Diagrama de momentos para las juntas del manipulador ........................ 27
Figura III – 10. Consideraciones previas: a) Ensamble espiga y caja, b) Sujeción de
servomotores .................................................................................................................... 28
Figura III – 11. Piezas que forman la base del manipulador: a) pza. de movimiento, b) pza.
de sujeción, c) pza. base.................................................................................................. 29
Figura III – 12. Piezas ensambladas que forman junta del hombro y el segundo eslabón
.......................................................................................................................................... 30
Figura III – 13. Conexión entre eslabón dos y eslabón tres ............................................ 31
Figura III – 14. Piezas que forman al eslabón tres y los componentes que contiene .... 32
Figura III – 15. Modelo en NX7 del brazo manipulador utilizado .................................... 32
Figura III – 16. Piezas que forman la estructura principal del gripper ............................. 34
Tabla III – 1. Tabla de correspondencia para abrir y cerrar gripper ................................ 34
Figura III – 17. Mecanismo biela manivela y corredera encargado de abrir y cerrar gripper
.......................................................................................................................................... 35
Figura III – 18. Modelo en NX7 del efector final utilizado ................................................ 35
iv
Figura III – 19. Interfaces entre módulos: a) plataforma móvil, b) brazo manipulador y c)
efector final ....................................................................................................................... 37
Figura III – 20. Manipulador Móvil diseñado en NX7....................................................... 38
Tabla III – 2. Lista de componentes, materiales y piezas que conforman al Manipulador
Móvil diseñando ................................................................................................................ 38
Figura III – 21. Prototipo físico del Manipulador Móvil diseñado ..................................... 40
Figura IV – 1. Notación de Denavit – Hartenberg para manipulador diseñado .............. 44
Tabla IV – 1. Parámetros de Denavit –Hartenberg para manipulador diseñado ............ 44
Figura IV – 2. Solución para la primera junta .................................................................. 48
Figura IV – 3. Solución para la segunda junta ................................................................. 49
Figura IV – 4. Solución para la tercera junta ................................................................... 51
Figura IV – 5. Cálculo de la coordenada z del punto C del manipulador ........................ 52
Figura IV – 6. Solución para la cuarta junta ..................................................................... 53
Figura IV – 7. Postura de la Plataforma móvil ................................................................. 55
Figura IV – 8. Vectores de velocidad de los eslabones colindantes [19] ........................ 56
Figura IV – 9. Punto de referencia que determina el acoplamiento entre ambas partes
.......................................................................................................................................... 60
Figura V – 1. Llegando a la meta ..................................................................................... 62
Figura V – 2. Planeación de trayectoria ........................................................................... 64
Figura V – 3. Polinomio de interpolación 3-4-5................................................................ 67
Figura V – 4. Transformación de coordenadas globales a coordenadas del manipulador
.......................................................................................................................................... 71
Figura V – 5. Determinación del ángulo de la última junta del brazo manipulador......... 72
Figura V – 6. Índice de Manipulabilidad ........................................................................... 75
Figura V – 7. Configuración preferida .............................................................................. 76
Figura V – 8. Flujo de información ................................................................................... 81
Figura V – 9. Etapa de decisión o selección.................................................................... 83
Figura V – 10. Etapa de procesamiento. Bloques de brazo manipulador....................... 84
Figura V – 11. Etapa de procesamiento. Bloque de acoplamiento ................................. 85
Figura V – 12. Etapa de procesamiento. Bloques de la plataforma móvil ...................... 86
Figura V – 13. Representación gráfica ............................................................................ 87
Figura V – 14. Ejemplos de identificadores Fiducials ...................................................... 88
Figura V – 15. Detección de Fiducials ............................................................................. 88
Figura V – 16. Etapa de adquisición ................................................................................ 89
Figura V – 17. Traslado de puntos de detección: a) para objetos y destinos b) para
manipulador móvil ............................................................................................................ 90
Figura V – 18. Arduino BT ................................................................................................ 92
Figura V – 19. Esquema de comunicación computadora – manipulador móvil .............. 92
Figura V – 20. Etapa de ejecución ................................................................................... 94
Figura V – 21. Tarjeta MD25 ............................................................................................ 95
Figura V – 22. Correspondencia de velocidad angular de llantas y velocidad de MD25
.......................................................................................................................................... 96
Figura VI – 1. Ambiente de experimentación................................................................... 99
Figura VI – 2. Interfaz de reacTIVision ............................................................................ 99
v
Figura VI – 3. Interfaz de usuario ..................................................................................... 100
Figura VI – 4. Proyección del punto del MM al piso ........................................................ 101
Figura VI – 5. Espacio de juntas para: Recogiendo objeto uno, a) Junta Base de
manipulador, b) Junta Hombro de manipulador, c) Junta Codo de manipulador, d) Junta
Inclinación de Muñeca, e) Junta Giro de Muñeca, f) Abrir y cerrar del gripper, g) Velocidad
en rpm de llanta derecha de la plataforma móvil, h) Velocidad en rpm de llanta izquierda
de la plataforma móvil ...................................................................................................... 106
Figura VI – 6. Espacio de juntas para: Colocando objeto uno, a) Junta Base de
manipulador, b) Junta Hombro de manipulador, c) Junta Codo de manipulador, d) Junta
Inclinación de Muñeca, e) Junta Giro de Muñeca, f) Abrir y cerrar del gripper, g) Velocidad
en rpm de llanta derecha de la plataforma móvil, h) Velocidad en rpm de llanta izquierda
de la plataforma móvil ...................................................................................................... 108
Figura VI – 7. Espacio de juntas para: Recogiendo objeto dos, a) Junta Base de
manipulador, b) Junta Hombro de manipulador, c) Junta Codo de manipulador, d) Junta
Inclinación de Muñeca, e) Junta Giro de Muñeca, f) Abrir y cerrar del gripper, g) Velocidad
en rpm de llanta derecha de la plataforma móvil, h) Velocidad en rpm de llanta izquierda
de la plataforma móvil ...................................................................................................... 109
Figura VI – 8. Espacio de juntas para: Colocando objeto dos, a) Junta Base de
manipulador, b) Junta Hombro de manipulador, c) Junta Codo de manipulador, d) Junta
Inclinación de Muñeca, e) Junta Giro de Muñeca, f) Abrir y cerrar del gripper, g) Velocidad
en rpm de llanta derecha de la plataforma móvil, h) Velocidad en rpm de llanta izquierda
de la plataforma móvil ...................................................................................................... 111
Figura VI – 9. Posición del punto P de la plataforma móvil en el plano x-y .................... 113
Figura VI – 10. Posición del punto p del brazo manipulador en el plano x-y .................. 113
Figura VI – 11. Postura de la plataforma móvil................................................................ 114
Figura VI – 12. Posición del efector final en el espacio cartesiano ................................. 114
Figura VI – 13. Velocidades lineales y angulares resultado la planeación de la trayectoria
para la plataforma móvil: a) Recogiendo al objeto uno, b) Colocando al objeto uno, c)
Recogiendo al objeto dos, d) Colocando al objeto dos ................................................... 115
Figura VI – 14. Lugar geométrico descrito por la trayectoria del brazo manipulador: a)
Recogiendo objeto uno, b) Colocando objeto uno, c) Recogiendo objeto dos, d) Colocando
objeto dos ......................................................................................................................... 116
vi
vii
I.INTRODUCCIÓN
Dentro de la amplia variedad de sistemas robóticos existente hoy en día, para
fines de este trabajo, se distinguen dos de gran importancia: la Robótica Serial y la
Robótica Móvil. La Robótica Serial o también conocida como Manipulación Serial
es aquella donde el robot está formado de una cadena de eslabones conectados
en serie a través de juntas de revolución o prismáticas, entre otras (Figura I – 1).
Estas cadenas se dicen abiertas debido a que el primer eslabón se encuentra fijo
a una referencia y el último está abierto al exterior, es decir, sólo está unido por el
eslabón anterior y la posición de este último se define por la de los elementos
anteriores, al final de la cadena se encuentra un efector final, que puede ser una
herramienta para realizar alguna tarea. Sus principales aplicaciones son de
carácter industrial y la mayoría de los manipuladores industriales tienen al menos
seis grados de libertad (juntas prismáticas, de revolución, entre otras), de los
cuales los primeros sirven para posicionar al Efector Final (EE) y los últimos para
darle orientación.
d) Plana
e) Esférica
1
de las juntas empleando la posición del Efector Final en coordenadas globales (del
espacio cartesiano al espacio articular).
La dinámica se ocupa de la relación entre las fuerzas que actúan sobre un
cuerpo y el movimiento que en él se originan. Por lo tanto, el modelo dinámico de
un robot tiene por objetivo conocer la relación entre el movimiento del robot y las
fuerzas aplicadas en el mismo. Si se requiere que el manipulador sea más preciso,
que llegue a la posición de cierta manera, realizar movimientos rápidos
involucrando aceleraciones y masas importantes, entonces es necesario obtener
el modelo dinámico del mismo.
Por otra parte, se encuentra la robótica móvil, que se encarga de estudiar
aquellos dispositivos capaces de moverse a través de un ambiente o terreno dado,
que bien puede ser estructurado o no estructurado. Estos dispositivos pueden
ejecutar varias operaciones de acuerdo a su técnica de navegación programada,
considerando el ambiente en el que se encuentren. De ahí que, haya robots
móviles del tipo aéreo, submarino, locomoción por patas, locomoción por ruedas.
Estos últimos siendo los más estudiados por ser la forma más utilizada por el
hombre para conseguir movilidad en el medio terrestre, así como por las
velocidades que pueden alcanzar. En estos sistemas es muy importante otorgarles
la mayor autonomía posible, entendiendo por autonomía como la capacidad de
actuar completamente independiente de cualquier entrada humana. El hecho de
decir que un robot es autónomo, significa que es capaz de autocontrolarse y
autoalimentarse. El estudio de los robots móviles está principalmente concentrado
en: cómo moverse de un lado a otro en un ambiente conocido o desconocido. Lo
anterior involucra principalmente tres problemas a resolver:
a) La planificación: dentro de ésta se incluye la planificación del camino y
de la trayectoria. En este mismo punto se considera: la evasión de
obstáculos y la planeación de la velocidad, entre otras.
b) La percepción: localizar obstáculos, estimar la posición del robot móvil,
construir su entorno.
c) El control.
Para poder resolver lo anterior mencionado es necesario obtener el modelo
cinemático del robot móvil, al igual que con los manipuladores, sólo que para estos
no es tan simple, quedando sujeto al tipo de móvil que se desee utilizar. Cada
robot móvil cuenta con diferentes tipos de movimiento y esto principalmente al tipo
de ruedas que utilizan, como las que se muestran en la Figura I-2. De acuerdo a la
configuración de las llantas se obtiene el tipo de robot móvil, estos robots en
algunos casos cae en que las restricciones cinemáticas que se obtienen son no-
holonómicas, es decir, los grados de libertad controlables son menos que el
número total de grados de libertad del sistema. Por ejemplo, un automóvil sólo
puede navegar atrás, adelante y cambiando dirección pero no puede avanzar
lateralmente, haciéndolo más difícil que un manipulador, ya que no posee este tipo
2
de restricciones. La forma de resolver esta problemática es estudiando las
restricciones cinemáticas del robot móvil, modelos de planeación, de percepción,
entre otros.
a) b) c) d)
Figura I – 2 Los cuatro tipos básicos de ruedas: (a) Rueda Fija. (b) Rueda de Castor. (c) Rueda
Sueca. (d) Rueda esférica.
3
3) Cómo coordinar ambas partes, esto es, decidir qué parte se va a mover
y en qué momento, incluyendo cómo acoplarlas: la regla que los
mantendrá unidas. Esta problemática ha atraído la atención de
investigadores en la actualidad.
James Tsay et ál. [3], en el manipulador tienen una cámara montada en el
efector final que guía al robot, la plataforma móvil tiene dos cámaras que le hacen
posible deformar su trayectoria, en este momento, se enfocan más en llegar a la
posición que recoger el objeto. La forma en que coordinan no es su tema principal,
sin embargo, Yingshu Chen et ál. [1] modelan el brazo mediante transformaciones
homogéneas, mientras que en la plataforma móvil toman la posición inicial como
referencia y calculan el movimiento siguiente de acuerdo a una posición posterior.
Este movimiento, depende de la dirección a donde la plataforma vaya, consideran
ambos casos (horario y anti-horario); para acoplar ambas partes las unen
mediante la transformación de coordenadas de la base del manipulador a la
orientación del móvil. El control lo hacen mediante una red neuronal en tres
niveles: decisión, procesamiento, ejecución. La coordinación la hacen mediante
dos sub-controladores (no indicados) uno para cada parte del Manipulador Móvil,
donde la red neuronal toma la decisión. Chungyan Gao et ál. [5] consideran al
manipulador móvil unido, es decir, como un solo sistema, trasladan el origen del
manipulador al marco de referencia de la plataforma móvil y trabajan en
coordenadas globales. Al igual que en [1] utilizan redes neuronales para la toma
de decisiones basadas en un algoritmo difuso, Gilles Foulon et ál. [2], al igual,
tratan ambas partes como una sola. El marco de referencia del manipulador es el
mismo de la plataforma móvil. Utilizan el espacio general de coordenadas
(posición en x, posición en y, orientación de la plataforma, juntas del manipulador)
donde la salida de su control son las coordenadas globales del efector final y su
orientación. Logran unir al sistema mediante el jacobiano de ambas partes y de
esta forma coordinan sus movimiento. M. Egerstedt y X. Hu [4] a diferencia de los
anteriores, consideran a las partes separadas y dan la trayectoria que debe seguir
el efector final, respecto a esto planean la trayectoria de la base, de manera que el
efector final siempre se mantenga en el espacio de trabajo, esta trayectoria la
trazan mediante el enfoque de vehículo virtual con una distancia “look ahead”,
realizan su control de manera que se pueda aplicar a cualquier robot. Y.
Yamamoto y X. Yun [6] trabajan muy similar, solo que ellos no consideran al
manipulador en la dinámica. El manipulador se debe de mantener en la posición
óptima, el operador arrastra el efector final y la plataforma móvil responde de
forma que se mantenga en esta posición en todo momento, al igual consideran
ambas partes separadas y las unen utilizando el punto final del manipulador como
punto de referencia para el movimiento de la plataforma, este punto estaría siendo
el “look ahead” de la plataforma móvil y deberá de mantener al manipulador en la
posición óptima.
4
Como se acaba de mencionar, trabajan al manipulador móvil como un solo
sistema haciendo su análisis más complejo. También queda claro que el método
de las redes neuronales es lo más utilizado para su planeación de movimientos,
además de utilizar el modelo dinámico del sistema para poder controlarlo. Todo lo
anterior indica que la utilización de un manipulador móvil es muy compleja además
de impráctica, pues resulta ser un tema relativamente nuevo y todavía queda
mucho por explorar sobre él. De ahí que se apliquen teorías complejas para
justificar el movimiento, lo que hace que se pierda el enfoque práctico. Puede ser
más sencillo, sino se consideran teorías complejas, ni metiéndose a la dinámica
del sistema; y funcional, es decir, que pueda realizar una tarea, que sea útil. Cabe
aclarar, que no se trata de desacreditar o menospreciar el trabajo de los autores
mencionados, no obstante se propone trabajarlo con un enfoque más práctico, que
potencie la funcionalidad.
El propósito de la presente tesis es estudiar la forma de coordinar los
movimientos de un manipulador móvil que se compone de un manipulador serial
acoplado a un robot móvil con ruedas, con la finalidad de que ambas partes
trabajen en conjunto para cumplir una tarea, de manera sencilla, sin teorías
complejas, con un algoritmo de coordinación heurístico, que permita que ambas
partes se muevan sin involucrar la dinámica de estas. Con lo anterior, se puede
demostrar que es posible abordar este tipo de problemas con más facilidad y así
dar pie a más investigadores a realizar tareas prácticas con el fin de que el
beneficio a la humanidad sea mayor.
El presente trabajo se desarrolla en siete capítulos. El primer apartado es la
introducción, en donde se le dice al lector los temas que abordará esta tesis.
En el capítulo dos, se hablará sobre la manipulación móvil y se expondrá
una recopilación del trabajo realizado en esta área, así mismo se presenta el
manipulador móvil con el que se trabajó y el diseño de la tarea a realizar.
En el capítulo tres, una vez que se seleccione el manipulador con el que se
va a trabajar, se mostrará el diseño, el modelo y la construcción del manipulador
móvil. También, se mostratán todos los elementos que forman al robot.
En el capítulo cuatro, se explicará cómo se obtiene el modelo cinemático
del manipulador serial, su cinemática directa e inversa; en lo que se refiere a la
plataforma móvil, se plantearán sus restricciones cinemáticas y se indicará la
forma de obtenerlas, finalmente se mostrarán las ecuaciones que se utilizaron
para acoplar ambas partes y tratarlas como una sola.
El cuerpo del trabajo se desarrolla en el capítulo cinco, aquí se mostrará la
planificación de movimientos de la plataforma móvil por medio de campos
potenciales, se explicará la operación pick and place para el manipulador serial,
también se presentará el algoritmo heurístico que se utilizó para coordinar los
movimientos del robot además de la forma en la que se realiza el experimento, es
decir, todos los elementos que forman la prueba.
5
Las pruebas realizadas y su descripción, el ambiente en el que se llevan a
cabo y el análisis de los resultados obtenidos del algoritmo heurístico de
coordinación, propuesto e implementado en el manipulador móvil elaborado, se
presentarán en el capítulo seis.
Para finalizar en el capítulo siete, se presentan las conclusiones de las
pruebas realizadas y la propuesta del trabajo futuro a realizar.
Al final del documento, el lector encontrará las referencias y los apéndices
que sirvieron a la justificación de esta tesis.
6
II. MANIPULACIÓN MÓVIL
En el presente trabajo se refiere a Manipulador Móvil como una plataforma móvil
(con ruedas) con un manipulador serial montado. En [7] y [8] se investiga sobre
otro tipo de manipuladores móviles.
Un Manipulador Móvil, es un sistema mecánicamente unido comprende de
una plataforma moviéndose, sujeta a sus restricciones cinemáticas, y a los grados
de libertad del brazo manipulador montado en ella. Estos sistemas combinan las
ventajas de las plataformas móviles y los brazos robóticos, además, reducen sus
desventajas. Por ejemplo, un manipulador móvil tiene más amplio espacio de
trabajo cuando posee una plataforma móvil, pues ofrece mayor funcionalidad
durante la operación.
Hoy en día la planeación de movimientos y el control de estos sistemas han
llamado mucho la atención por su utilidad. El control de los manipuladores móviles
principalmente contempla dos aspectos: la planeación de movimiento, tanto para
la plataforma móvil como para el manipulador, y la otra, el control coordinado de
ambos. Una vez que se tienen estos dos, lo siguiente es asignar la tarea. En
muchas ocasiones movilizar al manipulador resulta en redundancia cinemática,
esto se puede solucionar coordinando la plataforma y al manipulador. El tipo de
coordinación a utilizar dependerá de las especificaciones de la tarea.
Algunas de las aplicaciones más importantes de los manipuladores móviles
son: desempeñar tareas que involucren explosivos, ambientes peligrosos como
exploración de exteriores, operaciones espaciales, construcción, tareas con fines
militares y servicio personal.
7
II. 1. 1. MANIPULADOR MÓVIL DE MANIPULADOR HUMANOIDE.
Cognitive Service Robot (Cosero) [9]: Desarrollado por grupo de Sistemas
Autónomos Inteligentes en la Universidad de Bonn, Figura
II – 1. Realizado para tareas de manipulación móvil en
ambientes domésticos. La locomoción está dada por una
plataforma móvil omnidireccional, que cuenta con cuatro
pares de llantas actuadas. La parte del manipulador es
humanoide, que consiste de dos brazos de siete grados
de libertad (GDL), equipado con un gripper de dos dedos y
una cabeza con movimiento en el eje horizontal y en el eje
vertical (pan & tilt). El cuerpo superior puede moverse
verticalmente, ampliando el espacio de trabajo de los
brazos.
ARMAR –III [9]: Cuenta con 43 GDL, siete en la
cabeza, siete en cada brazo, ocho en cada mano, tres en
Figura II - 1 Cognitive
Service Robot el torso y tres en la plataforma móvil, Figura II – 2. La
cabeza cuenta con dos ojos, cada ojo se puede mover
independientemente. A su vez cada ojo cuenta con dos
cámaras a color, una para la visión periférica y la otra
para la foveal. El sistema de visión se encuentra montado
en mecanismo de cuatro GDL. Para la localización
acústica cuenta con un arreglo de seis micrófonos y
además un sensor inercial instalado en la cabeza para
estabilizar las imágenes de la cámara. La locomoción del
robot es realizada por una plataforma móvil
Figura II – 2 ARMAR III
omnidireccional, esta cuenta con una combinación de tres
láseres y encoders ópticos.
Meka M1 [10]: Cuenta con dos brazos manipuladores ligeros de siete GDL,
con control por fuerza. Diseñados para coincidir con el tamaño y forma del brazo
de un adulto joven, Figura II – 3. Un par de manos con cinco GDL,
aproximadamente del tamaño de un humano. La cabeza cuenta con siete GDL
para visión activa y una cámara de alta definición en cada ojo. Para lograr la
locomoción tiene una plataforma móvil omnidireccional, al momento de adquirirlo
se incluye el software para utilizarlo.
PR2 de Willow Garage [11]: Este manipulador móvil (Figura II – 4), por la
parte de la manipulación cuenta con dos brazos controlados por corriente, de
forma que pueden ser utilizados en ambientes estructurados. Cuenta con un
resorte pasivo que hace contra balance permitiendo, incluso, cuando no se
encuentre energizado, que los brazos se encuentren suspendidos; cada brazo
cuenta con cuatro GDL. Cada muñeca tiene dos GDL de alto torque, que le
permite manipular cualquier tipo de objetos, y su gripper de un GDL. Para la
8
movilidad del robot tiene una espina telescópica. La locomoción la realiza
mediante una plataforma móvil omnidireccional, lo que permite que PR2 pueda
trabajar en cualquier espacio. De igual forma que en los anteriores mencionados,
la cabeza tiene movimiento en el eje horizontal y el vertical, además de una
infinidad de sensores: cámaras en la cabeza, escáner láser en los hombros,
cámara en los antebrazos, sensores de presión en el gripper. Finalmente la
plataforma cuenta con un escáner láser, entre otras cosas que ofrece.
9
El sistema de robótica móvil, consiste de una
plataforma móvil no-holonómica. El sistema de
manipulación, consiste de un brazo robótico de seis GDL
que corre a 230 VAC. A su vez, la herramienta o el efector
final es un sistema neumático, por ende, contiene su
compresor y su tanque de aire dentro de la plataforma. En
la plataforma se encuentra un banco de baterías para su
uso, así como su computadora interna de 2.0 GHZ dual
core y 2 GB de RAM corriendo en Windows XP. La
plataforma móvil, para la seguridad y navegación, tiene un
escáner laser y sensores ultrasónicos. La visión consiste
de una cámara monocromática FireWire y lente ajustable
Figura II – 5 Home de forma digital además de propio su sistema de
Exploring Robotic Butler iluminación. Entre el software utilizado se encuentran
(HERB)
MATLAB, LabVIEW, y los programas para controlar el
robot manipulador y la plataforma móvil.
Manipulador Móvil MM – 500 [14]: Desarrollado por
Neobotix (Figura II – 7), una empresa que manufactura
robots móviles y sistemas robóticos. Poseen una variada
cantidad de plataformas y manipuladores, como un solo
sistema se encuentra este modelo. La plataforma MP –
500 es no–holonómica. El manipulador Schunk LWA 3,
consiste de siete GDL, y su gripper cuenta con dos dedos
paralelos actuados eléctricamente. Dentro de la
plataforma se encuentra la batería que lo alimenta y su
computadora; se comunica de forma inalámbrica. Cuenta
con un escáner laser para la navegación y cinco sensores
ultrasónicos, a diferencia de los anteriores manipuladores
móviles, éste no cuenta con cámara, solo incluye su
Figura II – 6 Little Helper software basado en Linux para controlar ambas partes.
Manipulador Movil KUKA youBot [15], [16]: Una
empresa que se concentra en soluciones avanzadas para
la automatización y procesos industriales. Este manipulador móvil (Figura II – 8),
de reciente desarrollo, consiste de una plataforma móvil omnidireccional con
cuatro ruedas patentadas por la misma empresa. El manipulador formado por una
cadena serial de cinco GDL y un gripper de 2 dedos paralelos. Ambas partes
alimentadas eléctricamente. Integrado a la plataforma se encuentra su
computadora y la alimentación, además, la comunicación se hace vía inalámbrica.
Como se trata de un robot para investigación y educación no cuenta con sensores.
La paquetería de software con la que cuenta se basa en Linux y librerías de
código abierto.
10
Figura II – 7 Manipulador Móvil
Figura II – 8 Manipulador Móvil KUKA youBot
MM – 500
11
tiene que hacerse en línea, ya que el Manipulador Móvil debe responder de
manera pronta a los cambios de su entorno. Por lo que, el nivel de decisión, debe
razonar un plan para el Manipulador Móvil, usando ciertos mecanismos de
razonamiento y planificación de caminos. Las decisiones son tomadas mediante el
conocimiento previo y adquisición de datos de los sensores, como visión, fuerza,
contacto, entre otros, que son usados para reconocer el desconocido y cambiante
entorno.
Nivel de Procesamiento. En este nivel una red neuronal de función de base
radial (RBF), está construida para identificar la dinámica desconocida de ambas
partes, así como las interacciones inciertas con el entorno. La entrada de la red
neuronal contiene trayectorias de referencia, error de seguimiento de posición y
velocidad de ambas partes. La salida de la red neuronal son los términos
dinámicos desconocidos, ya identificados de la plataforma y el manipulador.
Al mismo tiempo, almacena las nuevas reglas para actualizar los pesos de
la red, en tiempo real, usando ciertas reglas ponderadas de actualización. Las
entradas iniciales de la red son números aleatorios y cambian de manera que va
aprendiendo. Dentro de la red neuronal RBF, dos servocontroladores están
dispuestos para compensar la dinámica de cada parte, los subcontroladores
entregan datos de torque para las juntas y las ruedas.
Nivel de ejecución. En este nivel, los pares que son calculados por el nivel
de procesamiento, se aplican a los motores de cada junta en el Manipulador Móvil
para generar el movimiento de éste. Está compuesto por la parte física,
principalmente.
12
II. 2. 2 ENFOQUE CINEMÁTICO DEL JACOBIANO [2].
En este apartado se describe un enfoque cinemático, para coordinar
movimientos, mediante el Jacobiano. Para lograr esto primero se introducen
algunos conceptos con el fin dejar más claro este enfoque.
La configuración mecánica de un sistema, es conocida cuando la posición
de todos los puntos son conocidos en una marco fijo. Las coordenadas que
permiten que se defina la configuración, son llamadas coordenadas generalizadas
del sistema mecánico. Este número da la dimensión del espacio generalizado,
según el caso del manipulador móvil, son el número de coordenadas
generalizadas de la plataforma móvil y las del brazo. Se le llama al vector de las
coordenadas generalizadas. Para describir la localización del EE se tienen las
coordenadas operacionales de éste y se denota por el vector .
Se definen dos tipos de tareas: las generalizadas y las operacionales. Una
tarea generalizada a realizar por un sistema mecánico, consiste en llegar a las
coordenadas generalizadas y la tarea operacional, consiste en llegar a las
coordenadas operacionales. En esta forma de coordinar no se consideran los
efectos dinámicos y todas las aportaciones se hacen en un marco cinemático. Se
consideran tres tipos de tarea para realizar:
1) Tarea generalizada punto a punto (GPTPT): en esta se impone una
configuración inicial y una final , se encuentra el camino en
coordenadas generalizadas, uniendo la configuración inicial a la final.
2) Tarea operacional punto a punto (OPTPT): dada y la localización final ,
se encuentra el camino operacional , uniendo la configuración inicial con la
localización final. En este tipo de tarea, mediante el modelo de cinemática
inversa, se obtienen las coordenadas generalizadas y así se vuelve una
tarea GPTPT. Sin embargo, la cinemática inversa presenta múltiples
soluciones, por lo que se recomienda obtener la mejor solución. La mejor
solución la encuentran con la maximización del índice de manipulablidad,
haciendo que se encuentre lo más alejado de singularidades.
3) Tarea operacional de camino continuo (OCPT): para la localización inicial y
final, se encuentran las coordenadas generalizadas para el camino.
Para realizar estos movimientos, es necesario modelar ambas partes del
Manipulador Móvil como un solo sistema, referenciados a un marco fijo (global). Al
modelo se le aplica el Jacobiano, con el fin de encontrar las singularidades y así
evitarlas. De forma que, se obtiene por donde debe moverse la plataforma y los
valores que pueden adquirir las juntas. De esta forma, el sistema se mueve a las
coordenadas indicadas, de acuerdo al tipo tarea de las antes mencionadas.
Se realiza el análisis del camino a seguir mediante el Jacobiano. Una vez
que se obtienen las zonas por las que puede moverse, se procede a realizar los
13
movimientos que cada parte del sistema realizará. Se podría decir que la forma en
que coordinan los movimientos, es fuera de línea.
14
un valor máximo de la distancia “look ahead”. Este control se encarga de guiar a la
plataforma al punto de referencia deseado, con una velocidad proporcional al
error, lo que hace que se pueda aplicar a cualquier plataforma móvil.
De forma similar a la plataforma, el efector final debe de seguir a otro
vehículo virtual, moviéndose en un camino de referencia en sus tres ejes (x, y, z).
- De igual forma que en el anterior, se requiere que la distancia entre el punto
de referencia y el punto del EE, sea menor a la distancia “look ahead” para
el EE.
Como en el caso anterior, se obtiene la velocidad del camino a seguir, que
es el control para el brazo manipulador. En esta parte se encuentra un término de
coordinación. Este término, asegura que la velocidad de cambio entre los puntos
deseados sea mayor a cero, siempre y cuando, la distancia es menor al valor
mínimo de la distancia “look ahead”. En la Figura II – 10, se muestra un esquema
del sistema con sus trayectorias de referencia y los puntos de referencia que se
usan.
Figura II – 10 La plataforma (B) y el brazo (A) con sus trayectorias y puntos de referencia.
15
manipulador no es conocido previamente, la planeación debe realizarse de forma
local y en tiempo real.
Lo primero a establecer es, la ecuación de salida que permita realizar la
tarea, para esto es conveniente definir un marco coordenado para la plataforma
móvil en el centro de masa de la misma. Se escoge un punto respecto al marco
coordenado de la plataforma como punto de referencia. La plataforma móvil, se
controla de forma, que el punto de referencia siga una trayectoria deseada. La
selección de este punto de referencia, tiene como propósito, coordinar la
locomoción y la manipulación. El punto final del manipulador, cuando se encuentra
en su configuración preferida, se establece como el punto de referencia. Este
punto sigue el movimiento que resulta del “arrastre” del operador humano.
Mientras el operador humano arrastra el punto del manipulador, la
plataforma móvil deberá llevar al manipulador a la configuración preferida. Se
escoge como configuración preferida, la que maximice el índice de manipulabilidad
del manipulador. Por lo tanto, la plataforma móvil se desplaza, de tal forma que, el
manipulador se mantiene en la configuración preferida.
El índice de manipulabilidad se puede considerar como, la distancia entre la
configuración del manipulador y las configuraciones singulares, donde estas
últimas vuelven al índice de manipulabilidad cero. En, ó, cerca de las
configuraciones singulares, el EE del manipulador, tendrá dificultades en su
movimiento, para ciertas direcciones. El objetivo de maximizar el índice de
manipulabilidad, es mantener al manipulador lejos de las singularidades. El índice
de manipulabilidad se obtiene mediante el determinante del Jacobiano del
manipulador, con este se encuentran los valores que lo maximizan.
16
En el siguiente capítulo, se desarrolla el diseño del prototipo que se utilizó a
lo largo de este trabajo. En la Figura II – 11, se muestra el resultado del desarrollo
del prototipo.
17
2
1
3
4
18
III. DISEÑO DEL MANIPULADOR
MÓVIL
En este capítulo, se describe el proceso por el cual se diseña el prototipo
funcional, en el que se implementa el algoritmo de coordinación, analizado en
capítulos posteriores. Es muy importante señalar que, no se trata de un producto
final, pues el propósito de este trabajo no es el diseño del manipulador móvil, sino
un prototipo funcional que permita llegar al objetivo indicado. El modelo que a
continuación se desarrolla, es el medio y no el objetivo.
19
CD, para lograr la locomoción de la plataforma; soportes, llantas y una tarjeta
controladora. Este material se muestra en la Figura III – 1, más adelante se detalla
la información sobre este material.
20
Figura III – 2. Servomotores de Aeromodelismo a utilizar.
Otra razón muy importante para las decisiones que se tomaron, fue el factor
económico, ya que, desarrollar un Manipulador Móvil de escala industrial es de
costo muy elevado, debido a los sistemas que utiliza. Utilizando motores CD para
las juntas del manipulador, aumentaría las dimensiones del mismo, sin contar la
etapa de potencia y el control para obtener los pares. Otro punto importante, es
que el material con el que están hechos, es mucho más resistente y los procesos
de manufactura para su formado son más caros y más complejos. Por lo que se
incrementaría el precio final del producto.
I I I . 1 . 2. 1. P L AT A F O R M A M Ó V IL
21
soportes, llantas), con la finalidad de tener una idea de cómo va a quedar el
modelo antes de mandar a maquinar.
Una vez que las medidas de este material se obtuvieron, lo siguiente fue
proponer una medida y forma de la plataforma, la geometría se realizó similar a la
de la plataforma de Neobotix (Figura III – 3). Con el propósito de tener un espacio
donde transportar material o algún objeto. La pieza que aparece en la figura es,
para futuras referencias, la placa de transporte. El espacio tiene la finalidad de
que, la plataforma no solo realice una tarea específica, sino que pueda utilizarse
para desarrollar otras tareas. Las dimensiones se propusieron, tomando en cuenta
el largo de los motores de CD (locomoción de la plataforma), y las dimensiones de
la batería (encargada de proporcionar el voltaje de alimentación del robot), para el
ancho de la plataforma. La medida del largo de la plataforma, fue propuesta por el
autor de este trabajo. Finalmente, con la forma y dimensiones propuestas, se
ubican perforaciones en puntos cercanos a los vértices de la placa de transporte,
para realizar el ensamble entre las demás piezas que forman la plataforma, así
como darle rigidez a la estructura. Las dimensiones se muestran en la Figura III –
3, el grosor de esta placa es de 6 mm, también se muestra la dimensión de las
perforaciones. El diámetro de las perforaciones, es el mismo que en las demás
placas, debido a que es donde se van a unir todas las piezas. Por lo cual, no se
vuelven a indicar en el resto de la sección.
22
menciona más adelante. Las medidas de la pila se muestran en la Figura III – 4.
La pila se apoya sobre su cara de 70 mm, en la placa base. Los soportes de los
motores, se encuentran unidos a la placa base, siendo los motores los que
impiden el desplazamiento de la pila a lo largo del eje de transmisión, como se
aprecia en la Figura III – 5. Para impedir el desplazamiento a lo largo del eje de
movimiento de la plataforma, existe una perforación por el cual se unirá una pieza,
que sirve como poste para detener la pila, de tal manera que ésta no se salga del
compartimiento. Además este elemento funge como elemento de ensamble.
23
desplazamiento de la pila. Para que ésta, no se salga del compartimiento, se
coloca otra placa, que se encuentra entre la placa de transporte y la placa base.
Esta placa es: la placa de apoyo (Figura III – 6a), entre sus funciones se
encuentra: impedir el desplazamiento de la pila, espacio para colocar sistemas
auxiliares, y la más importante, soporte para la colocación de la rueda de apoyo.
Debido a que la configuración de la plataforma es diferencial (se trata con mayor
detalle, en el capítulo 4), se tienen dos ruedas motrices y se necesitan ruedas
pasivas que den soporte a esta configuración, es decir, se necesita una rueda no
actuada que dé soporte a la plataforma. De lo contrario, ésta no estaría
balanceada y se encontraría oscilando sobre el eje de tracción de los motores. Por
esto, se necesita incluir la rueda en la parte delantera de la plataforma. A la rueda
mencionada se le conoce como: rueda loca. Si se requiere mayor estabilidad, otra
rueda en la parte trasera sería necesaria, sin embargo, mientras el cambio de
velocidad no sea repentino, es suficiente una sola rueda. En la Figura III – 6b, se
muestra el modelo de la rueda loca que se utilizó y algunas de sus dimensiones.
Al igual que en las otras placas, se encuentra cierto número de perforaciones,
para su ensamble.
a) b)
Figura III – 6. Placa de apoyo (a) y modelo de la rueda loca utilizada (b).
24
problemas de espacio, dejándole un claro de no más de 5 cm con la placa de
transporte. Las perforaciones de las placas, están hechas para permitir el paso del
vástago roscado, que forman los postes. Mediante arandelas y tuercas se unen las
placas, a modo que se impida el desensamble. El resultado del proceso anterior,
se muestra en la Figura III – 7a, en la que se muestran las cuatro placas
ensambladas, así como los elementos de locomoción y la rueda loca. Sin
embargo, esta plataforma tiene que ser utilizada para formar un manipulador
móvil, por lo que, un brazo manipulador debe ir montado en la plataforma. Así que
es necesario quitarle una placa de transporte para disminuir la distancia al piso.
Mientras mayor sea esta distancia, mayor trabajo le costará al manipulador llegar
al nivel del piso, donde está ubicado el objeto a recoger. Otro factor es que, el
área disponible de la placa de apoyo, es suficiente para los componentes que se
encargarán de los movimientos de la plataforma móvil y del brazo manipulador,
para la aplicación aquí presentada. Por lo anterior, el modelo de la plataforma
móvil a maquinar, es el que se muestra en la Figura III – 7b.
a)
b)
Figura III – 7. Dos diferentes versiones de la plataforma móvil: a) Con dos placas de transporte,
b) Con una placa de transporte.
25
I I I . 1 . 2. 2. B R A Z O MA N IP U L A D O R
26
El segundo concepto, fue una arquitectura similar a KUKA youBot de cinco
GDL. En esta arquitectura se cuenta que, el eje de la primera junta coincide con el
eje de la segunda, es decir, no hay hombro derecho ni izquierdo, sino, se
encuentra en medio. Esta configuración se vuelve la definitiva, con la excepción de
un detalle; los servomotores de tamaño estándar, entregan un par relativamente
alto, para esta aplicación; a pesar de eso, suele no ser suficiente. En primera
instancia, se propusieron las dimensiones para los eslabones y se desarrollaron
los modelos en CAD. Tomando en cuenta las dimensiones propuestas, se realiza
un diagrama de momentos (Figura III – 9), en donde, al modelo se le asignan las
propiedades del material (acrílico) y, con ayuda del software, se calcula la masa
de cada eslabón. Aprovechando su geometría simétrica, se considera que el
centro de masa de cada eslabón, se encuentra en el punto medio. Por las hojas de
especificaciones de los servomotores, se ubica la masa de estos y su par máximo.
Todas estas medidas se muestran en la Figura III – 9.
27
hombro se encuentra siempre soportado sobre la junta base independientemente
de la posición angular que tome la base. Sin embargo, el hombro y codo se
encuentran desplazados por la distancia entre sus juntas. El hombro, en todo
momento, transporta a los eslabones posteriores. Agregar otro servomotor,
aumentaría la masa de los eslabones y habría que calcular de nuevo los pares
máximos de las juntas. Por lo que desde un principio, se debe considerar un
servomotor estándar, de un par muy alto o un servomotor estándar, de par no tan
alto y que se encuentre al máximo de su capacidad. Por esta razón, se modificó el
modelo original dando lugar al definitivo, que se describe en los siguientes
párrafos.
Para empezar a desarrollar el modelo en CAD del brazo manipulador
definitivo, primero hay que definir dos conceptos que se aplican, para el ensamble
de las juntas y para la sujeción de los servomotores al manipulador.
El método que se selecciona, para ensamblar las piezas que formarán al
manipulador es, por caja y espiga (Figura III – 10a). Este es un método de
ensamble muy utilizado en la carpintería, para la fabricación de marcos de
muebles, marcos de puertas, ventanas, entre otros. El ensamble es simple: la
espiga se inserta en la caja y se mantiene unidas, dando la apariencia de ser una
sola pieza. Si se realiza un ajuste entre estos elementos, la espiga entraría a
presión y el ensamble se consideraría permanente, entonces el manipulador no
tendría por qué desarmarse. Esta manera de ensamblar las piezas, se realiza por
su facilidad de ensamble; no necesita otro elemento (tornillos, clavos, etc.) para
unirlos y distribuye los esfuerzos, en toda la estructura, sin necesidad de
elementos de unión. Finalmente, para agregar más resistencia al ensamble,
colocar un adhesivo entre las piezas involucradas, ayuda a lograrlo.
Espigas
Cajas b)
a)
Figura III – 10. Consideraciones previas: a) Ensamble espiga y caja, b) Sujeción de
servomotores.
28
En la Figura III – 10b, se muestra la forma de unir los servomotores a los
eslabones. Los servomotores vienen con perforaciones de fábrica, que sirven para
colocar tornillos y tuercas y así, unirlos a la estructura que los contiene. Esta
característica se aprovecha: haciendo una ranura en los eslabones donde se
monta. Los orificios mencionados, que coinciden con los del servomotor, lo sujetan
a la pieza que se necesite, mediante el uso de tornillos, arandelas de presión y
tuercas. El manipulador cuenta con dos tamaños diferentes de servomotor, para
cada uno, se realiza el mismo sistema de sujeción, pero, con diferentes medidas.
La primera junta que se va a formar es la base, la más sencilla, pues es la
que menos piezas tiene y la que menos interfiere con las demás juntas. Ésta
cuenta con tres piezas principales: pieza de movimiento, pieza de sujeción de
servomotor y pieza base (Figura III – 11). La pieza de sujeción, es en la que el
servomotor se encuentra sujeto, exponiendo el vástago (eje de salida del
movimiento) del servomotor. El vástago, se acopla a su aditamento para transmitir
movimiento. El aditamento se une a la pieza de movimiento, por lo tanto, ésta es la
pieza que conecta: la junta base con la junta del hombro. Entre estas piezas, hay
movimiento relativo. En la pieza de movimiento, se encuentran las cajas donde
entran las espigas que forman la siguiente junta (recordando que la junta del
hombro está compuesta de dos servomotores). En la pieza de sujeción hay seis
orificios, en los cuales se colocan ruedas locas, éstas funcionan como cojinete
para la pieza de movimiento, reduciendo fricción y aportando más estabilidad al
movimiento entre las piezas. Finalmente, la pieza base, como el nombre lo indica,
es la pieza que forma la base del manipulador, es decir, el origen del sistema del
manipulador. Hay una distancia entre las últimas dos piezas, principalmente
definida, por la altura del servomotor.
b)
c)
a)
Figura III – 11. Piezas que forman la base del manipulador: a) pza. de movimiento, b) pza. de sujeción, c) pza. base.
29
La siguiente junta, es la del hombro. Está formado por dos servomotores,
que transmiten el movimiento al eslabón dos. Los dos servomotores se conectan
al eslabón uno, uniendo las espigas (encontradas en la parte inferior del marco
que contiene a los servomotores), con las cajas encontradas en la pieza de
movimiento del eslabón uno. En la Figura III – 12a, se muestran las piezas que
forman la conexión del eslabón uno con el dos. Al igual que con la junta base, los
servomotores se unen mediante su aditamento al eslabón dos. Estas piezas son,
las que se mueven respecto a la junta del hombro, y se muestran en la Figura III –
12b. El primer servomotor, se encuentra dentro de las piezas que forman al
segundo eslabón. El segundo está fuera del eslabón, de tal modo que, ambos
realizan el mismo movimiento ya que sus ejes son colineales.
b)
a)
Figura III – 12. Piezas ensambladas que forman junta del hombro y el segundo eslabón.
La distancia entre las juntas del hombro y codo, es decir, la longitud del
eslabón dos, es propuesta del autor y se muestra en la Figura III – 9. Es de
particular cuidado esta junta, pues consiste de dos servomotores. Por lo tanto,
estos, deben moverse a una misma posición, así que deben estar alineados en
todo momento.
El eslabón dos está formado: por dos piezas planas paralelas, las cuales se
conectan a la junta del hombro. Debido a que los servomotores sólo cuentan con
un vástago para el eje de salida. Una de las dos piezas del eslabón dos, está
unida al aditamento del servomotor y la otra, se encuentra sin apoyo para el
movimiento del eslabón tres. Por este motivo, es necesario realizar un apoyo, en
la pieza que no sujeta al servomotor. La solución propuesta se muestra en la
Figura III – 13, ésta consiste de un marco, que se une a la pieza de apoyo del
eslabón tres. El marco contiene un orificio colineal al eje de salida de movimiento
30
del servo, para la junta del codo. En este orificio pasará el eje, que permite el
movimiento relativo entre ambas piezas. En la pieza del eslabón dos, se colocan
dos discos, uno en cada lado de la pieza y se unen entre sí. Para reducir el área
de fricción entre las piezas de movimiento.
31
Junta de Codo
Junta
inclinacion
de muñeca
n3
bóa
Esl
Figura III – 14. Piezas que forman al eslabón tres y los componentes que contiene.
Finalmente, el eslabón cuatro consta de dos piezas paralelas: las cajas para
el ensamble, y dos piezas perpendiculares a éstas: las espigas para su unión. En
una de las piezas perpendiculares, está sujeta la última junta de orientación de
muñeca, la que conecta con el siguiente modulo: efector final. La distancia entre
las juntas de orientación, se muestra en la Figura III – 9. En la misma figura, se
muestra la distancia de la última junta, al punto donde el objeto es manipulado.
Como resultado de todo el proceso descrito en esta sección, se muestra en
la Figura III – 15, el modelo en CAD del manipulador a utilizar.
15 cm
7.1 cm
32
15 cm
9.3 cm
I I I . 1 . 2. 3. E F E C T O R F IN A L .
El efector final, para el presente trabajo, consiste de un gripper con dos dedos
paralelos. El objeto a manipular, no es de geometría compleja, por lo tanto, el
gripper utilizado cumple con el objetivo. El método para ensamblar las piezas es el
mismo que se utiliza en la sección anterior: espiga y caja. Es importante señalar,
que el modelo está inspirado en uno ya existente.
En este modelo, el primer punto a abordar es la ubicación del servomotor,
éste debe estar sujeto al mismo gripper, pues no tiene contacto con otro eslabón.
Entonces, las piezas que sujetan al servomotor, cumplen con otras funciones que
se detallan más adelante. El servomotor, se encuentra confinado al cuerpo del
gripper, éste está formado por dos piezas que sujetan al servo de manera
transversal. En estas dos piezas, se ubican las espigas, para ensamblar las
paredes del cuerpo que forma el gripper, que a su vez, se hicieron para darle
rigidez al cuerpo, así como la pared trasera, sirve para unirse a la última junta del
manipulador. La pared delantera de la estructura, junto a las dos piezas unidas a
las piezas de sujeción, funcionan como paredes para la corredera. La corredera,
está encargada de desplazar los dedos del gripper, como se aprecia en la Figura
III – 16, las piezas que conforman esta primera parte del gripper. En este modelo,
se aprecia de mejor forma, lo útil que es el método de ensamble por caja y espiga.
33
Figura III – 16. Piezas que forman la estructura principal del gripper.
El resultado de este proceso se muestra en la Figura III – 18, con todas las
piezas ensambladas. Un componente que no se muestra en la figura, es el perno
34
que fue realizado con una varilla de acrílico y que sirve para unir las bielas y los
dedos.
a) b)
Figura III – 17. Mecanismo biela manivela y corredera encargado de abrir y cerrar gripper.
III. 2. ARQUITECTURA.
La arquitectura, es el acomodo adecuado de elementos físicos de un producto,
para llevar a cabo sus funciones requeridas. Está constituida por la relación entre
los componentes del producto y las funciones a realizar.
Existen principalmente dos estilos de arquitecturas la integral y la modular.
En la arquitectura modular, cada módulo implementa una o pocas funciones y la
interacción modular está bien definida. Una arquitectura integral, reúne las
funciones en uno o pocos módulos.
35
El manipulador móvil que se presenta en esta tesis, consta de una
arquitectura modular. Una ventaja de que la arquitectura del robot sea modular, es
que puede estar actualizándose con mayor facilidad en el transcurso del tiempo.
Otra ventaja es que, acorde a las necesidades del trabajo que esté llevando a
cabo, los módulos pueden ser intercambiables, como consecuencia el prototipo
tendrá mayor tiempo de vida y los módulos pueden ser utilizados en diferentes
actividades.
Cada módulo del Manipulador Móvil, posee una interfaz para la conexión
entre módulos. A través de las interfaces, los módulos se pueden conectar entre sí
para que cumplan con la característica correspondiente. Por ejemplo, si se realiza
otro brazo manipulador, se puede acoplar a la plataforma móvil, siempre y cuando
exista la interfaz correspondiente entre ellos. A continuación, se mostrarán las
diferentes interfaces para cada módulo.
Para la plataforma móvil, la interfaz está en la placa de transporte. En esta
placa se encuentran tres perforaciones, a través de ellas se conecta al siguiente
módulo. En la Figura III – 19a, se muestran las dimensiones de las perforaciones,
que forman un arreglo de tres orificios, que describen un triángulo equilátero. En el
inciso b) de la figura, se muestra la pieza base del eslabón uno, en la que se
aprecia la misma disposición de orificios; estos conectan la plataforma móvil, con
el brazo manipulador. En el brazo se encuentra la interfaz para conectar al
siguiente modulo, ésta se ubica en el aditamento del servomotor de la última junta.
En la interfaz del manipulador, también, cabe la posibilidad de cambiar el
aditamento y así cambiar las dimensiones de la interfaz. Finalmente, en el inciso c)
se muestra la interfaz correspondiente a la última junta del manipulador, aquí se
aprecian las dimensiones la interfaz. Los tres módulos se unen mediante tornillos y
tuercas.
36
b)
a)
c)
Figura III – 19. Interfaces entre módulos: a) plataforma móvil, b) brazo manipulador y c)
efector final.
Con los tres módulos terminados y habiendo identificado las interfaces que
los unen entre sí, se arman todas las piezas, dando lugar al completo ensamble
del sistema. En la Figura III – 20, se muestra el resultado del diseño del
Manipulador Móvil.
37
Figura III – 20. Manipulador Móvil diseñado en NX7.
38
1/8’’
8 Tuercas para tornillos de 1/8’’
Arandelas de presión para tornillos de Para unir los espaciadores a las placas
20
1/8’’ correspondientes, tres de estos juegos
corresponden a la interfaz entre plataforma y
20 Tuercas para tornillos de 1/8’’
manipulador.
Brazo manipulador
3 Piezas de acrílico rojo de 3mm. Primer eslabón del brazo manipulador.
15 Piezas de acrílico rojo de 3mm. Segundo eslabón del brazo manipulador.
12 Piezas de acrílico rojo de 3mm. Tercer eslabón del brazo manipulador.
6 Piezas de acrílico rojo de 3mm. Cuarto eslabón del brazo manipulador.
Marca Vigor, modelo VS – 2A, que forman las
primeras cuatro juntas del manipulador,
5 Servomotores tamaño estándar.
recordando que la junta del hombro consiste de
dos servomotores.
Marca Vigor, modelo VS – 5, última junta del
1 Servomotor tamaño mini.
manipulador.
20 Tornillos de 1/8’’ x ½’’
Para fijar los servomotores a cada eslabón,
Arandelas de presión para tornillos de
20 cuatro para cada servomotor de tamaño
1/8’’
estándar.
20 Tuercas para tornillos de 1/8’’
2 Tornillos de 2mm x 8mm Para fijar el servomotor de tamaño mini al cuarto
2 Tuercas para tornillo de 2mm eslabón.
Para fijar los aditamentos de cada servomotor
encargados de transmitir movimiento a los
32 Tornillos de 2mm x 8mm eslabones correspondiente. Ocho de estos
tornillos se utilizan para unir los eslabones que
con cuentan con aditamento al marco de apoyo.
Funcionan como ejes de movimiento entre los
2 Postes de 12mm
eslabones 2 – 3, y los eslabones 3 – 4.
Ruedas tipo roll-on que funcionan como cojinete
6 Ruedas locas de plástico. para el movimiento relativo entre el eslabón uno y
dos.
Encargados de separar y unir las piezas base y
3 Espaciadores de 4cm
de sujeción del eslabón uno.
Encontrados entre la pieza de sujeción y la pieza
de movimiento, en el extremo que tiene contacto
3 Espaciadores de 1.2cm con la pieza de movimiento se encuentra un balín
que reduce fricción entre las piezas, se encarga
de separar y unir a las piezas mencionadas.
Efector final
8 Piezas de acrílico azul de 3mm. Piezas que forman el cuerpo del gripper.
3 Piezas de acrílico azul de 3mm. Piezas que forman a la manivela y dos bielas.
Piezas que forman a los dedos del gripper, siete
14 Piezas de acrílico azul de 3mm.
piezas por cada dedo.
Marca Vigor, modelo VS – 5, proporciona el
1 Servomotor tamaño mini.
movimiento para abrir y cerrar gripper.
39
Pernos realizados con varilla de acrílico
4 Pernos de 1/8’’ encargados de unir a la manivela con sus bielas,
dos pernos por cada biela.
Dos de ellos utilizados para unir el aditamento del
4 Tornillos de 2mm x 10mm servomotor a la manivela y dos que forman el
interfaz manipulador-efector final.
Tabla III – 2. Lista de componentes, materiales y piezas que conforman al Manipulador Móvil
diseñado.
40
Finalmente, cabe aclarar que ésta, es la primera iteración en un proceso de
diseño mucho más largo. El prototipo requirió de ciertos ajustes que no se
consideraron al momento de diseñarlo, detalles que no interfirieron con su
funcionalidad. De cualquier modo, se corrigieron manualmente, para realizar el
presente trabajo.
41
IV. MODELADO CINEMÁTICO.
En el capítulo presente se desarrolla la cinemática del Manipulador Móvil, ésta se
tratará por separad: brazo manipulador, plataforma móvil. Además, en la última
sección del capítulo, se menciona el acoplamiento encargado de coordinar ambas
partes. Como se lee en el título del capítulo, sólo se aborda el tema de la
cinemática, si se tiene interés sobre la dinámica de cada sistema se recomienda
acudir a las referencias [18], [19] y [20].
I V . 1 . 1. 1. N O T A C IO N D E D E N A V I T – H A R T E N B E R G .
42
conjunto de cuerpos rígidos (también llamados eslabones), acoplados por pares
cinemáticos (también denominados juntas), entonces se tiene, un par cinemático
es el acoplamiento de dos cuerpos rígidos con la finalidad de restringir su
movimiento relativo. Existen dos tipos básicos de pares cinemáticos: de alto orden
y de bajo orden. Un par de bajo orden cinemático, ocurre cuando el lugar de
contacto es a lo largo de una superficie común de dos cuerpos. Hay seis
diferentes de pares, pero todos pueden ser producidos desde dos tipos básicos,
esto es, el par rotacional, denotado por R (llamado de revolución), y el par
deslizante, representado por P (llamado prismático).
Con el propósito de describir la arquitectura de una cadena cinemática, es
decir, describir la posición y orientación de los ejes de sus juntas, es que se
introduce la notación de Denavit – Hartenberg.
Para lograr la notación de Denavit – Hartenberg primero se realiza lo siguiente:
los eslabones se numeran , el par es definido como el que
acopla el eslabón con es eslabón. Por lo tanto, se asume
que el manipulador está compuesto de eslabones y pares. El eslabón 0,
es la base fija, mientras que el eslabón es el efector final. Luego un marco
coordinado , se define con el origen y los ejes . Este marco se adjunta
al eslabón (no al eslabón), para . Ésta
es la clásica notación de Denavit – Hartenberg. Para los primeros marcos, esto
se hace siguiendo las siguientes reglas:
1. es el eje del par. Se advierte que, hay dos posibilidades de
definir la dirección positiva de este eje. Ya que cada eje par es solo una
línea, no un segmento dirigido. Por otra parte, el eje de un par prismático
puede ser colocado arbitrariamente, pues sólo se define su dirección.
2. se define como la perpendicular común a y , dirigida de la primera
a la segunda. Notando que si estos dos ejes se intersectan, la dirección
positiva de este indefinida y, por lo tanto, puede ser libremente asignado.
3. La distancia entre and se define como , que es, por lo tanto, no-
negativa.
4. La coordenada en de la intersección de con se denota por .
Debido a que esta cantidad es una coordenada, puede ser positiva o
negativa. Su valor absoluto es la distancia entre y , también llamado,
desplazamiento entre las perpendiculares sucesivas comunes, a los
correspondientes ejes de las juntas.
43
5. El ángulo entre y se define como y es medida respecto a la
dirección positiva de . Este parámetro es conocido como, el ángulo de
giro entre los ejes pares sucesivos.
6. El ángulo entre y se define como y es medido respecto a la
dirección positiva de .
4 ℱ5 X5 Z6
Z2 ℱ6
2 Z1
5
X2 X6
𝒶𝒶2
Y1
ℱ2
1
b1
X1
ℱ1
1 0 9.3 cm 90°
2 15 cm 0 0
3 15 cm 0 0
4 0 0 90°
5 0 11.7 cm 0
Tabla IV – 1. Parámetros de Denavit –Hartenberg para manipulador diseñado.
44
El último marco, está definido de manera arbitraria, pero su origen es
colocado en un punto en específico del EE, este punto se le conoce como punto
de operación , el cual, define la tarea de la mano. Además, los dos últimos ejes
se intersectan en el punto , por lo tanto, los puntos, de los últimos dos eslabones,
se mueven en una esfera concéntrica. La subcadena que se forma se conoce
como una muñeca esférica, con como centro. De la misma manera, la
subcadena compuesta de los primeros cuatro eslabones, es llamada brazo. En
consecuencia, se tiene que la muñeca está desacoplada del brazo, y es usada
para propósitos de orientación. El brazo se usa para posicionar al punto . A este
manipulador se le conoce como, del tipo desacoplado.
I V . 1 . 1. 2. IN T E R P R E T A C I Ó N G E O ME T R IC A D E MA N IP U L A D O R
(4.1)
(4.4)
45
(4.5)
Y por consiguiente:
(4.6)
46
con los que trabaja poseen un rango de movimiento limitado, es decir, no alcanzar
a describir una vuelta completa, solo la mitad de ella.
Antes de desarrollar el proceso, es importante destacar un detalle.
Regularmente, este proceso lleva a encontrar los ángulos de cada junta, mediante
la ley de cosenos y la ley de senos, lo que lleva a que las expresiones a las que se
llega, implican encontrar el arco coseno de alguna expresión. Esta solución es
inconsistente y mal acondicionada, porque de la función arco coseno no se
obtiene una buena precisión en la determinación del ángulo, se debe a que
(4.9)
I V . 1 . 2. 1. P R O B L E M A D E P O S IC IÓ N .
47
𝑦𝑦0
𝑥𝑥𝑝𝑝 , 𝑦𝑦𝑝𝑝
𝑟𝑟
𝜃𝜃1
𝑥𝑥0
Solución a la segunda junta: para resolver las siguientes dos juntas, se proyecta
el manipulador en el plano , como se muestra en la Figura IV – 3. Con la
proyección del manipulador en este plano, se puede ver que la solución de la
segunda junta está dada por:
(4.11)
Como se muestra en la ecuación 4.9, se tienen que encontrar las
expresiones para los ángulos, en función del ángulo cuyo tangente, con esto se
tiene que:
(4.12)
Por consiguiente:
(4.13)
Con la ecuación 4.13, se aprecia que hay que encontrar las soluciones
respecto al seno del ángulo de la junta y al coseno del ángulo de la junta. Por lo
que, para encontrar estas relaciones se utilizan identidades trigonométricas y ley
de cosenos. Teniendo en consideración lo anterior, se tiene entonces que:
(4.14)
Utilizando la identidad trigonométrica del seno de la suma y resta de dos
ángulos, se obtiene lo siguiente:
(4.15)
Aplicando nuevamente la identidad de suma de dos ángulos se tiene:
(4.16)
Para obtener el coseno del ángulo de la junta dos, se realiza lo mismo que
para el caso del seno, la única diferencia es que se utilizan las correspondientes
identidades para el coseno, obteniendo la siguiente expresión:
48
(4.17)
Las expresiones 4.16 y 4.17, muestran productos de senos y cosenos de
los ángulos que conforman a , por lo que para encontrar este ángulo, se
obtienen estas expresiones para y . De la Figura IV – 3 se obtiene:
(4.18)
Para encontrar las expresiones de , se utiliza la ley de cosenos, y para
obtener el seno, se utiliza la identidad pitagórica, consiguiendo lo siguiente:
(4.19)
Donde para 4.18 y 4.19, R se obtiene de la Figura IV – 3 y está dada por la
expresión:
(4.20)
Por lo tanto, de acuerdo a la expresión 4.13, teniendo en cuenta 4.16 y 4.17
y además considerando la expresión 4.9 la solución de la junta dos está dada por:
(4.21)
Finalmente sustituyendo en 4.21 las expresiones 4.18 y 4.19 se tiene:
(4.22)
𝑧𝑧0
𝑙𝑙3
𝑥𝑥𝐶𝐶 , 𝑧𝑧𝐶𝐶
𝑅𝑅
𝛽𝛽
𝑙𝑙2 𝜃𝜃2 𝛼𝛼
𝑙𝑙1
𝑥𝑥0
49
Solución para la tercera junta: de forma similar a la junta anterior, se proyecta el
manipulador en el plano como se muestra en la Figura IV – 4. En esta
figura se encuentra, que el ángulo de la junta tres está dado por la relación:
(4.23)
De igual forma que con la junta dos, se tiene que encontrar el ángulo de la
junta tres, mediante la expresión ángulo cuya tangente, como se muestra en la
expresión 4.24. Por lo tanto, se tiene que encontrar las expresiones de seno y
coseno del ángulo que esta expresión determina.
(4.24)
Aplicando el seno y el coseno a la ecuación 4.23 y nuevamente aplicando
las identidades de suma y resta de ángulos de senos y cosenos, se obtienen las
siguientes expresiones:
(4.25)
(4.26)
Lo que muestran las expresiones 4.25 y 4.26 es que se deben de encontrar
las relaciones de seno y coseno para el ángulo gamma. Por consiguiente, se
utiliza la ley de cosenos para encontrar el coseno del ángulo y la identidad
pitagórica para encontrar el seno del mismo. El resultado se muestra en las
siguientes expresiones como se ve en la Figura IV – 4:
(4.27)
Los parámetros de las anteriores expresiones, se muestran en la Figura IV
– 4 y la relación de R se describe en 4.20. Por lo tanto, teniendo en consideración
la expresión 4.24, las expresiones 4.25 y 4.26, y además, expresando el resultado
como se muestra en la expresión 4.9, se tiene que la solución de la junta tres está
dada por:
(4.28)
Finalmente, sustituyendo las expresiones 4.27 en la ecuación 4.28, se tiene
la solución para la tercera junta:
(4.29)
50
𝑧𝑧0
𝛾𝛾
𝑅𝑅
𝑙𝑙2
𝑙𝑙1
𝑥𝑥0
I V . 1 . 2. 2. P R O B L E MA D E O R IE N T A C IÓ N .
51
Figura IV – 5. Cálculo de la coordenada z del punto C del manipulador.
De la figura de arriba, se encuentra la coordenada y del punto
mediante las siguientes expresiones:
(4.30)
(4.31)
La coordenada , no es necesario obtenerla, debido a que sólo se necesita
para obtener el ángulo de la primera junta, esto por encontrarse en el mismo
plano. En el caso de encontrarse la última junta de orientación, ya no se requiere
calcular esta coordenda.
La ecuación 4.31, funciona correctamente cuando se encuentra el
manipulador en este plano, es decir, el ángulo de la junta uno es cero, como no
siempre es cero, la forma de corregir esta ecuación se muestra en seguida. Se
soluciona mediante la magnitud de un vector, que va del origen al punto . Este
vector se ve en la Figura IV – 2, que corresponde a la dimensión, en el plano en el
cual el desplazamiento angular de la junta uno se desprecia, teniendo lo siguiente:
(4.32)
En la figura de arriba y las dos ecuaciones de arriba se encuentra un
parámetro , este parámetro corresponde a la orientación del objeto a manipular,
y es el ángulo respecto a la horizontal con el eslabón cuatro, de longitud . Este
ángulo dependerá de cómo se quiera manipular el objeto, es decir, en qué ángulo
respecto a la horizontal será tomado.
Solución para la cuarta junta: al igual que las juntas anteriores se proyecta el
manipulador en el plano como se muestra en la Figura IV – 6. En esta
52
figura se aprecia que la relación para determinar el ángulo de la cuarta junta, está
dada por:
(4.33)
El ángulo de la junta cuatro, tiene que ser encontrado mediante la función
trigonométrica de ángulo cuya tangente. Como muestra la expresión 4.9, esto
quiere decir, que hay que aplicar el seno y el coseno a la expresión 4.33,
obteniendo lo siguiente:
(4.34)
Aplicando a las expresiones 4.34, sus correspondientes identidades
trigonométricas de suma y resta de ángulos, se tiene, las siguientes expresiones:
(4.35)
(4.36)
Siendo estas dos últimas ecuaciones, las necesarias para encontrar la
solución de la junta cuatro, los factores seno y coseno para y se encuentran
en la expresion 4.27 para . Como el ángulo para la junta dos ( ) ya se encontró
previamente sólo se aplican las correspondientes identidades trigonométricas para
el valor numérico. Tomando las expresiones 4.9 así como las 4.35 y 4.36 se
encuentra la solución para la cuarta junta:
(4.37)
Considerando, que se tienen que sustituir los términos en función de y ,
por las expresiones en 4.27 y 4.34. Por cuestiones de espacio no se sustituyen
aquí, pero la idea queda aclarada.
53
Solución para la quinta junta: así como la junta anterior es para orientar el
efector final respecto al objeto a manipular, se tiene el mismo caso para esta junta.
Para encontrar el ángulo de la quinta junta, es necesario primero aclarar algunas
cuestiones sobre la ubicación del objeto a manipular, debido a que estas
cuestiones tienen que ser primeramente descritas, no se podrá incluir en este
capítulo. Por lo que, para el momento solo se tendrá que:
(4.38)
Lo anterior, para no confundir al lector con detalles que no se han explicado
aún y que no es oportuno mencionar en el presente capítulo. Se adelanta, que
estos detalles tienen que ver con la ubicación del manipulador móvil en el espacio,
la ubicación del objeto a manipular y otras cuestiones sobre orientación. Todo lo
anterior se trata en el siguiente capítulo.
Con todo lo anterior mencionado, en esta sección se logran obtener las
expresiones para cada junta, estos son de suma importancia, ya que solo serán
necesarias introducir las coordenadas del punto , para calcular el ángulo de todas
las juntas del manipulador, a través de las ecuaciones 4.10, 4.22, 4.29, 4.37 y
4.38.
54
Figura IV – 7. Postura de la Plataforma móvil.
(4.40)
55
Figura IV – 8. Vectores de velocidad de los eslabones colindantes [19].
(4.42)
56
Las ecuaciones 4.43 y 4.45 son válidas, cuando la junta es rotacional. Si se
aplican las anteriores ecuaciones de eslabón a eslabón se pueden obtener las
velocidades angulares y lineales del eslabón, en su mismo marco de referencia.
Esto, es de suma importancia para obtener las restricciones cinemáticas de la
plataforma móvil, como se ve en la siguiente sección.
(4.48)
(4.49)
(4.50)
(4.51)
57
vector de posición del punto al centro de la llanta derecha y; la ecuación 4.51
representa el mismo vector para la llanta izquierda. Por lo tanto, hay que aplicar la
técnica para ambas llantas. A continuación se representa la de la llanta derecha.
(4.52)
(4.53)
(4.54)
(4.55)
58
(4.57)
(4.60)
59
IV. 3. ACOPLAMIENTO.
La forma en que se acoplan ambas partes descritas (manipulador y plataforma
móvil) es la que utiliza Yamamoto en [6], la forma de acoplar se inspira en la forma
de conducir un vehículo. Cuando se conduce un automóvil, el conductor “mira” a
un punto o un área delante del automóvil.
Tomando en cuenta el marco coordenado que se encuentra en el centroide
de la plataforma, donde está dirigido hacia delante de la plataforma, se escoge
un punto referenciado al marco coordenado como punto de referencia.
Por lo que para plataforma móvil, sus movimientos se tienen que realizar de
manera que este punto de referencia siga una trayectoria deseada. El punto de
referencia se denota como ( ), que está referenciado al marco . Por
lo tanto, las coordenadas globales ( ) del punto de referencia se encuentra
mediante:
(4.61)
(4.62)
Donde y , son las coordenadas globales del punto mencionado en la
sección anterior. La selección del punto de referencia, es el acoplamiento de
ambas partes. Esto lleva a que el punto de referencia mencionado, es el punto de
operación del efector final del brazo manipulador. De manera general se expresa
este acoplamiento en la Figura IV – 9. El cálculo del punto de referencia se detalla
en el siguiente capítulo, que habla sobre la estrategia de coordinación.
60
V. COORDINACIÓN DE
MOVIMIENTOS.
Cuando un manipulador móvil realiza una tarea, es deseable que el manipulador
se encuentre en una configuración preferida, que se encuentre alejada de
singularidades para que su movimiento no se vea limitado y así poder planificar el
movimiento de la plataforma sin consecuencias. Por lo anterior se tiene que la
estrategia utilizada es la que presenta Yamamoto en [6], donde el enfoque
utilizado es por la configuración preferida. Siendo ésta la base para varios
enfoques diferentes. Sin embargo no sólo se considera el enfoque de Yamamoto
sino se realiza un algoritmo de decisión sin utilizar redes neuronales o inteligencia
artificial, debido a su complejidad. Pero donde se implementan niveles de decisión,
procesamiento y ejecución, para saber qué parte se mueve y en qué momento,
similar al utilizado por Yingshu en [1]. En el presente capítulo se describe las
distintas formas que se utilizaron para realizar los movimientos de ambas partes:
brazo manipulador y plataforma móvil, todas las consideraciones que se realizan
para lograrlo y el algoritmo propuesto para cumplir con la tarea. En la segunda
parte de este capítulo se describen los sistemas computacionales utilizados así
como la comunicación entre sistemas.
V. 1. PLANIFICACIÓN DE LA TRAYECTORIA.
Una técnica que es usada para llevar a la plataforma móvil a un punto requerido,
al mismo tiempo que este evade obstáculos, es la técnica de campos potenciales.
Este método realiza sumas vectoriales de fuerzas repulsivas virtuales, provocadas
por los obstáculos y fuerzas atractivas virtuales, éstas, provocadas por los puntos
de meta. La utilización de fuerzas, quiere decir que se requiere del modelo
dinámico del robot, por lo que el modelo cinemático del mismo no es útil. Una
forma de resolver este problema lo presenta V. J. G. Villela en [21], dónde los
campos potenciales son tomados como vectores de distancia y estos se encargan
de producir rangos de velocidades, lo que permite que el robot se mueva en su
entorno utilizando el modelo cinemático únicamente.
V. 1. 1. CAMPOS POTENCIALES
El enfoque de campos potenciales es útil para que la plataforma móvil, se mueva
de una posición a otra. Por medio de la técnica de planeación de trayectoria
seleccionada, uno puede llevar al robot móvil de una postura inicial a una final. Lo
61
anterior mediante una serie de puntos sub meta, que permita llegar a una meta
final como es deseado, principalmente se debe a, la restringida movilidad de un
robot móvil, esto por el tipo de llantas utilizadas. Dentro de la técnica se ubica el
problema de llegar a la meta, como se muestra en la Figura V – 1, ésta se
describe a continuación.
(5.1)
(5.3)
62
(5.4)
Donde es la máxima velocidad angular que la plataforma móvil puede
llegar a alcanzar.
63
Figura V – 2. Planeación de trayectoria.
Entonces, para calcular el punto teniendo como único dato la postura del
objeto a manipular, hay que desplazar el punto una distancia , mediante la
siguiente ecuación:
(5.5)
(5.6)
Con las ecuaciones 5.5 y 5.6 se encuentran las coordenadas del punto ,
el cual está a una distancia del punto final y a la misma orientación que posee
el objeto a manipular, representado por el punto final. En la figura anterior se
puede apreciar dos radios ubicados en los puntos final y , estos radios son los
radios que en la ecuación 5.3 se expresan como , y son los encargados de
reducir la velocidad de la plataforma móvil en cuanto ésta entre en el área descrita
por este radio. Se aprecia que son de una misma longitud , por lo tanto para
que la plataforma detenga su movimiento debe de incidir el radio con el radio
, que se ubica en el punto de referencia del manipulador móvil (punto de
operación ), teniendo que:
(5.7)
64
cada punto. Lo anterior se debe a que para el primer punto ( ), este radio tiene
que ser muy pequeño, lo suficiente para que la plataforma no pierda su rumbo
original, pues este es el punto donde la plataforma “da vuelta” para coincidir con la
orientación del objeto a manipular. Finalmente, el radio indica que la
plataforma ya se encuentra orientándose para recoger el objeto y este radio es de
mayor longitud al anterior, pues el robot tiene que detenerse a una distancia
suficiente, para que el manipulador recoja el objeto a manipular.
En resumen, al algoritmo de campos potenciales, primero se realiza con un
punto de pre – docking, una vez que se haya llegado a este punto se realiza de
nuevo la técnica, con la diferencia de que se realiza con el punto final,
deteniéndose cuando la distancia sea la requerido y entonces el manipulador
“recoja” su objetivo.
V. 2. 1. PERFIL DE TRAYECTORIA
En la operación pick and place (P&P), se requiere que el brazo manipulador lleve
a una pieza de trabajo u objeto de una posición inicial, con cierta orientación y
posición referidas a un marco coordinado, a una posición final. En principio existen
dos formas de planear la trayectoria: en el espacio cartesiano o global y en el
espacio de juntas. Para el primer caso, se requiere conocer los puntos físico por
los cuales va a pasar el órgano terminal del brazo manipulador y el tiempo de
recorrido, para ir de un punto de inicio a un punto final. Las posiciones iniciales y
finales para la operación P&P se describen en el espacio cartesiano, mientras que
el movimiento del robot se encuentra en el espacio de juntas. La planeación de la
trayectoria del manipulador está compuesta por un lugar geométrico y un perfil de
trayectoria.
65
Por lo tanto, la planeación de la operación P&P se realiza para el punto de
operación . Entonces, la posición inicial del punto de operación está definida
por el punto , mientras que su posición final está definida por el vector , éstas
referenciadas al marco coordinado global o espacio cartesiano. Teniendo así que,
y sean las velocidades y aceleraciones iniciales del punto , de igual forma
que y denotan las velocidades y aceleraciones finales del punto . Por otro
lado se asume que para la posición inicial . Posteriormente si la operación se
considera que transcurre en un tiempo , el tiempo para la posición final es .
Finalmente, se tiene el conjunto de condiciones necesarias para que el
movimiento sea suave y continuo desde la posición inicial a la posición final:
(5.8)
(5.9)
Para cumplir con las condiciones anteriormente expuestas una interpolación
de polinomios de bajo orden no la satisface, de forma que se utiliza un polinomio
de un orden mayor, con la finalidad de cumplirlas. En este trabajo se propone un
polinomio de quinto orden para planear la trayectoria, también conocido como
perfil de trayectoria. El polinomio se representa en la siguiente expresión:
(5.10)
Donde el polinomio y su variable poseen el intervalo que se muestra abajo:
(5.11)
Por lo tanto la variable independiente del polinomio expresado en 5.10, está
definida por la siguiente relación:
(5.12)
La forma de describir el lugar geométrico de la posición inicial a la final del
punto de operación , se determina por:
(5.13)
(5.14)
(5.15)
Entonces los coeficientes que aparecen en la ecuación 5.10, se calculan
considerando las condiciones que se expresan en 5.8 y 5.9 y las relaciones
mostradas en 5.13 – 15, encontrando las condiciones:
(5.16)
Por consecuencia, las derivadas de la ecuación 5.10 se muestran abajo,
estas son importante obtenerlas, con el fin de encontrar los coeficientes de .
(5.17)
(5.18)
66
Con las condiciones expresadas en 5.16 se sustituyen las expresiones 5.10,
5.17 y 5.18 de las que se encuentra que:
(5.19)
Además de las expresiones de 5.19, también se forma un sistema de tres
ecuaciones con tres incógnitas, que se muestra abajo.
(5.20)
Resolviendo el sistema representado en 5.20, se obtienen los coeficientes
del polinomio:
67
V. 2. 2. DETERMINACIÓN DEL LUGAR GEOMÉTRICO
Con el proceso anterior expuesto, se puede planear la trayectoria que describirá el
efector final del manipulador, solo queda determinar qué puntos son los que la
describen.
El objeto a manipular, se considera que se encuentra en algún punto del
espacio por el cual se desplaza el manipulador móvil y como se menciona en la
sección anterior este se detendrá una cierta distancia (5.7) para manipular. Esto
lleva a que la operación P&P parte de una posición inicial del manipulador y que el
origen del manipulador se encuentra orientado de acuerdo a la postura que, tome
la plataforma al llegar al docking. Para el primer problema es necesario indicar la
forma en que el manipulador “llegará” al objeto, se tiene que considerar lo
siguiente:
• El brazo manipulador empieza su movimiento con una postura la
cual se considera el inicio y final del movimiento planeado a realizar. Se
miden a lo largo del marco del origen del manipulador.
• El objeto tiene como coordenadas éstas tienen que estar referidas
al marco coordenado origen del manipulador.
La operación como el nombre lo dice es pick (recoger) el objeto y place
(colocar) el objeto en su determinado destino, por lo que el manipulador debe de
recoger el objeto. Una vez que lo recoge se mantiene en una posición de forma
que se pueda desplazar el robot y colocar el objeto a dónde le corresponde. El
anterior párrafo se puede expresar de la siguiente manera:
• Primera trayectoria: de la posición inicial del manipulador a un punto
en el mismo plano , lo que lleva a que, el segundo punto para la
trayectoria está dado por .
• Segunda trayectoria: partiendo del final de la primera trayectoria ( ),
se dirige el manipulador a un punto en el mismo plano z, por lo que el
segundo punto para la trayectoria corresponde a . Y al final de ésta,
la pinza se cierra, sujetando al objeto, cumpliendo con la operación pick.
• Tercera trayectoria: partiendo del punto final de la trayectoria anterior y
teniendo sujetado el objeto, se regresa a la posición inicial de forma inversa
a como se llegó, es decir, que esta trayectoria se dirige de a
.
• Cuarta trayectoria: finalmente, del punto se dirige el manipulador a
la posición inicial con la que se parte. Completando con la primera parte de
la operación.
68
• El manipulador móvil se desplaza y llega al destino del objeto realizando
nuevamente los cuatro pasos anteriores, sólo que con su correspondiente
posición final teniendo sujetado el objeto. Con la diferencia de que al final
de la cuarta trayectoria suelta el objeto. En este paso se termina la
operación P&P, con la colocación (place) del objeto en su destino.
El anterior proceso describe el lugar geométrico que tendrá la trayectoria.
Sin embargo, en la ecuación 5.13, se muestra el lugar geométrico en base al
punto de operación , si este punto consiste de las coordenadas entonces
para describir la trayectoria en las componentes del punto de operación se tiene:
(5.22)
69
(5.23)
(5.24)
70
Figura V – 4. Transformación de coordenadas globales a coordenadas del manipulador.
71
Figura V – 5. Determinación del ángulo de la última junta del brazo manipulador.
72
V. 3. ALGORITMO DE COORDINACIÓN.
Para describir el algoritmo de coordinación heurístico que se propone, se necesita
describir primeramente la configuración preferida del manipulador. Este concepto
represente la estrategia para coordinar como lo muestra Yamamoto [6]. Al definir
este concepto y aplicado a la correspondiente parte del robot, se determina el
punto inicial para la operación P&P, también se aclara la planeación de la
plataforma. Es necesario recordar el acoplamiento que se describió en el capítulo
IV, siendo éste, el dato que une a ambas partes y determina la coordinación de
movimientos.
V. 3. 1. CONFIGURACIÓN PREFERIDA
Para encontrar la configuración preferida, se usa el concepto de índice de
manipulabilidad y la configuración preferida es la que maximiza este índice. El
índice de manipulabilidad es considerado como: la distancia entre la configuración
del manipulador y las configuraciones singulares, en donde, este índice se vuelve
cero. Cerca de las configuraciones singulares al punto de operación del brazo
manipulador, le “cuesta trabajo” cambiar la dirección de su movimiento. Principal
motivo de utilizar este índice, es mantener lejos de las singularidades al
manipulador, cuando éste se encuentre transportando al objeto. Con el fin de que,
si en su trayecto el manipulador encuentra perturbaciones, éstas no interfieran con
el cumplimiento de la tarea. Debido a la gran capacidad de procesamiento para
encontrar este índice, no se puede realizar cuando el robot está ejecutando la
tarea. De ser posible, se evaluaría cada punto al que el manipulador se mueva y
se encontraría una trayectoria óptima. Por lo tanto, se realiza fuera de línea y se
utiliza el resultado para coordinar los movimientos. El índice de manipulabilidad se
define como [6]:
(5.28)
Donde es el índice de manipulabilidad y representa el Jacobiano del
manipulador, a su vez representa la traspuesta del Jacobiano. Con lo anterior
se demuestra, que es necesario calcular el Jacobiano del manipulador. Para
calcular el índice de manipulabilidad, se consideran solamente las tres primeras
juntas, despreciando a las últimas dos juntas que definen a la muñeca. Se realiza
con la finalidad de que sea fácil de calcular, sin perder objetividad del método.
De acuerdo a la ecuación 4.8, donde se describe la posición del punto en
función de los cinco ángulos de las cinco juntas, hay que modificar a manera de
que se describa el punto con las tres primeras juntas. Entonces, la ecuación 4.8
se vuelve:
(5.29)
73
Con la ecuación de arriba, hay que sustituirle los valores que se encuentran
en la Tabla IV – 1, los que están definidos como los parámetros de D – H. Por lo
tanto, el punto se define como:
(5.30)
(5.31)
Con la anterior expresión se puede calcular el índice de manipulabilidad.
Sin embargo, tradicionalmente la forma en la que se conduce un vehículo, en este
caso un robot móvil, es “mirando” hacia enfrente similar a un control “look-ahead”.
Por lo que se considera que el manipulador se encuentre “viendo hacia adelante”.
Para la configuración preferida, lo anterior se hace estableciendo al ángulo de la
primera junta como . Con lo anterior, este valor se sustituye en el Jacobiano,
obteniendo una nueva expresión.
(5.32)
De acuerdo a lo anterior, el índice de manipulabilidad corresponde a
encontrar la distancia más alejada de las singularidades, cuando la primera junta
tiene un desplazamiento angular igual a cero, para garantizar que el manipulador
móvil se desplace en su entorno hacia adelante. Lo anterior mencionado, se indica
en el acoplamiento de ambos sistemas. Una vez teniendo el Jacobiano, se tiene
que calcular el índice de manipulabilidad. Esta ecuación trata de un sistema no
lineal, la solución no se encuentra fácilmente, además, por tratarse de términos
trigonométricos, no se tiene una única solución, sino son múltiples. Po lo tanto, en
este trabajo se resuelve este problema mediante una gráfica, a través de la
paquetería de MATLAB, se graficó el índice de manipulabilidad mediante mallas.
Se define una malla de los dos ángulos que varíen para un ciclo de a y
el índice de manipulabilidad representando el eje z. Encontrando gráficamente, el
74
valor máximo del índice de manipulabilidad, la gráfica obtenida se encuentra en la
Figura V – 6. El resultado se muestra a continuación:
(5.33)
(5.34)
Los ángulos de las juntas que se muestran arriba, corresponden cuando el
valor numérico de la junta uno es:
(5.35)
Los tres valores anteriores dan como resultado el máximo valor del índice
de manipulabilidad, que corresponde a:
Los anteriores valores indican el ángulo en que las primeras juntas deben
posicionarse, para encontrarse en la configuración preferida. Se nota que falta
indicar el valor numérico de las últimas dos juntas, por lo que se tienen que
indicar. El valor de la última junta, no influye en la configuración preferida,
entonces, uno puede decidir la orientación con la que el objeto se encuentre en la
configuración preferida, el valor seleccionado es el siguiente:
(5.36)
Sólo queda determinar el valor de la cuarta junta o primera de la muñeca.
Este ángulo no está sencillo determinarlo, principalmente porque depende del
valor de los ángulos de las juntas anteriores, además existe el parámetro ,
dependiente de la orientación del objeto a manipular. Lo que conlleva a
seleccionar una orientación para este parámetro, el valor propuesto es , con
75
la finalidad de que el objeto esté paralelo al piso en la configuración preferida. En
la Figura IV – 7, se muestra la configuración preferida con el parámetro
asignado y el valor de la última junta, obteniendo para la junta cuatro lo siguiente:
(5.37)
(5.38)
76
las ecuaciones 4.61 y 4.62, es decir, falta obtener . La anterior
coordenada se encuentra mediante las siguientes expresiones:
(5.39)
V. 3. 3. ALGORITMO
Los anteriores párrafos describen la estrategia para tratar a ambas partes como
una sola y realizar el movimiento del sistema en su totalidad. Sin embargo, lo
anterior sólo determina el movimiento coordinado de ambos sistemas. Por ende
falta establecer el algoritmo coordinante de ambos sistemas, este se explica en los
siguientes párrafos.
El algoritmo heurístico propuesto consiste básicamente de los siguientes
puntos:
1. Detectar manipulador móvil, objetos a manipular y sus correspondientes
destinos en coordenadas globales.
2. Seleccionar la secuencia de sub metas a las que tiene que desplazarse el
MM, empezando por aquel objeto que se encuentre más cerca del robot.
3. Evaluar en qué parte de la tarea se encuentra el MM y mandar el punto al
que debe dirigirse.
4. Llevar a la configuración preferida al brazo manipulador, en cuanto llegue a
ella, pasar al siguiente paso.
5. Calcular pre-docking y mover la plataforma al mismo.
6. Una vez llegado al pre-docking, indicar que cambie el punto al docking.
7. Indicar cuando se haya llegado al docking e iniciar operación P&P, primera
parte: recoger.
8. Completada la operación de recoger, indicar que se encuentra nuevamente
en la configuración preferida y comenzar movimiento de plataforma,
cambiando el punto final al destino del objeto recogido.
9. Calcular pre-docking y mover plataforma al pre-docking.
10. Una vez llegado al pre-docking, dirigirse al docking.
77
11. Cuando se llegue al docking, comenzar con la segunda parte de la
operación P&P: colocar.
12. Colocado el objeto en su destino, regresar a la configuración preferida e
indicar que se llegó a ella.
13. Repetir el proceso a partir del paso tres, para el segundo objeto y terminar
tarea.
El algoritmo que se describe arriba, demuestra el uso de indicadores
(banderas), las cuales permiten pasar y determinar el evento que se realiza en el
momento. Revisando constantemente estos indicadores, se coordina la planeación
de los movimientos de ambas partes y se coordina la tarea diseñada. A
continuación se muestran los indicadores descritos y lo que representan.
Para este trabajo se distinguen dos indicadores:
• IPO: indicador de posición óptima: el nombre lo dice, determina el instante
en que se encuentra en la configuración preferida y se le atañe al brazo
manipulador, este indicador consiste de tres valores.
o 0 – Cuando el manipulador se encuentra en la configuración
preferida.
o 1 – Cuando el manipulador se encuentra realizando la operación Pick
& Place.
o 2 – Cuando el manipulador termina una parte de la operación P&P y
regresa a la configuración preferida.
• ILP: Indicador de que llegó al punto: indicador que se le atañe a la
plataforma móvil, indica qué evento realiza actualmente la plataforma y
consiste de dos valores.
o 0 – La plataforma móvil se encuentra en movimiento,
independientemente del punto al que se dirija (no ha llegado).
o 1 – La plataforma móvil está estacionada, es decir, ya llegó al punto
correspondiente.
Los dos indicadores que determinan qué realiza cada parte del MM,
disparan un tercer indicador, que es consecuencia de lo que se realice en el
momento, este es:
IMM: Indicador de evento del manipulador móvil: mediante combinaciones
de los anteriores se determina que está realmente realizando la plataforma.
Consiste de tres valores.
o 0 – El manipulador móvil está desplazándose en su entorno.
o 1 – El manipulador móvil está realizando la primera parte de la
operación: pick (recoger).
o 2 – El manipulador móvil está realizando la segunda parte de la
operación: place (colocar).
78
El IMM adquiere el valor correspondiente, de acuerdo a la regla establecida
para disparar este indicador, esta regla se describe a continuación.
Si el brazo manipulador se encuentra en la configuración preferida y la
plataforma está en movimiento, entonces el manipulador móvil está
moviéndose.
o Si IPO = 0 & ILP = 0
IMM = 0
Si el brazo manipulador está en la configuración preferida y la plataforma
móvil se detuvo, entonces, el manipulador móvil se encuentra realizando la
primera parte de la operación P&P.
o Si IPO = 0 & ILP = 1
IMM = 1
Si el brazo manipulador, regresó a la configuración preferida y la plataforma
móvil está en movimiento, entonces el manipulador móvil se encuentra
moviéndose y se dirige al siguiente punto donde se encuentra el objeto a
manipular.
o Si IPO = 2 & ILP = 1
IMM = 0
Mandar cambio de punto al que el robot se dirige.
Si el brazo manipulador se encuentra realizando la operación P&P y la
plataforma móvil está moviéndose, entonces el manipulador se encuentra
en movimiento.
o Si IPO = 1 & ILP = 1
IMM = 1
Cuando el siguiente punto al cual se dirige el MM es numero par
(considerando que la numeración empieza con el primer objeto a
manipular), entonces, el manipulador móvil realiza la segunda parte de la
operación P&P.
o Si IMM = 1 y contador%2=0
IMM = 2
El anterior proceso descrito forma el algoritmo de coordinación heurístico,
propuesto en este trabajo, que a su vez corresponde al motivo del mismo.
Siguiendo estas reglas, se ejecuta la tarea definida en el capítulo dos de manera
coordinada. Sólo queda implementar todo el sistema en una plataforma, que
demuestre el funcionamiento del algoritmo propuesto, con el robot diseñado y
fabricado en el capítulo tres, lo que aparece en la siguiente sección.
79
demostrar el funcionamiento del algoritmo propuesto. Siendo Simulink una de las
mejores alternativas para realizar simulaciones o experimentos como el descrito a
lo largo de este trabajo.
Simulink de MathWorks, consiste de un ambiente para simulaciones de
dominio múltiple y diseño basado en modelos para sistemas dinámicos y
embebidos. Consiste de un editor gráfico interactivo, para armar y manejar
diagramas de bloques. Dentro del modelo diseñado se puede crear, configurar y
buscar todas las señales, así como parámetros, propiedades y todo el código
asociado al modelo introducido. Otros factores importantes son los bloques
funcionales de MATLAB, que permiten llevar los algoritmos de MATLAB a
Simulink, con el fin de implementar sistemas embebidos. Además de que toda la
información generada, se tiene acceso mediante MATLAB para analizar y
visualizar resultados, personalizando el ambiente del modelo, definiendo señales,
parámetros y datos de prueba. La misma plataforma analiza y diagnostica el
modelo para asegurar consistencia e identifique los errores. A su vez, MATLAB
permite realizar análisis de datos, visualización y cálculos numéricos, además que
puede resolver problemas numéricos más rápido que los lenguajes de
programación tradicionales.
Estableciendo el software en el que se diseña el experimento, se procede a
diseñar el programa, de acuerdo a la descripción del algoritmo explicado en la
sección anterior. El programa de Simulink se hace por bloques, de aquí en
adelante cuándo se indique la existencia de algún bloque se refiere a un
componente del programa.
Similar al enfoque de Yingshu en [1], este programa está estructurado en
bloques y un conjunto de bloques representa una etapa o un nivel del programa,
destacando principalmente las siguientes etapas:
1. Etapa de adquisición: Mediante visión se obtienen las posiciones en el
plano del MM, de los objetos a manipular y de los destinos donde se
colocan los objetos (se detalla en la siguiente sección).
2. Etapa de decisión o selección: En esta etapa, los dos indicadores ILP e IPO
entran para ser procesados y se determina el valor de IMM, así como el
punto al que se dirige el manipulador móvil.
3. Etapa de procesamiento: En esta etapa, se procesa toda la información que
manda la etapa de selección y a su vez entrega los indicadores ILP e IPO.
Lo que quiere decir que en esta etapa se encuentra la planeación de
trayectoria, la operación P&P, el acoplamiento y los modelos cinemáticos
de ambas partes.
4. Etapa de ejecución: En esta etapa, se encuentran los bloques que forman el
acondicionamiento de las señales que tienen que ser mandadas al MM,
para que cada parte cumpla con su cometido. También se encuentran los
80
bloques para configurar y mandar los datos (se detalla en la sección seis de
este capítulo).
5. Bloques de representación gráfica: en estos bloques entran los datos
obtenidos que se mandan al robot y se dibujan en la computadora para
visualizar la tarea que está en proceso.
En la Figura V – 8 se muestra un diagrama del flujo de datos, el cual
representa lo que se describe arriba, aquí se aprecia que varios sistemas son
definidos.
81
visión artificial. El sistema de visión, así como la etapa de ejecución del programa
se describirán con mayor detalle en secciones posteriores.
Con todo lo establecido anteriormente, queda describir el flujo de datos
interno de Simulink, en esta sección se explicarán las etapas selección,
procesamiento y los bloques de representación gráfica. La mayoría de los bloques
contiene ecuaciones y representaciones trigonométricas o matriciales.
Aprovechando que en Simulink existen funciones tipo S, las cuales permiten
introducir código en el lenguaje de MATLAB con la ventaja de que se ejecutan en
Simulink, dando pie a tener la información fluyendo y ejecutándose cuando entre
información en los bloques de función tipo S. Éstas se utilizan para el diseño del
experimento.
Etapa de selección: Esta etapa consiste de un solo bloque, en el cual entran
diecinueve señales a procesar, quince de ellas corresponden a la postura
del robot, de los objetos y de sus destinos, tres por cada elemento. Dos de las
señales de entrada representan los indicadores ILP e IPO y dos señales internas:
un contador, para saber a cuál de los cuatro puntos se dirige el MM, y una señal
que indica el orden al cual debe de dirigirse el MM.
Primeramente, se calcula la distancia de cada objeto a manipular al
manipulador móvil. Esto se realiza antes de comenzar el movimiento del robot y
determina hacia cuál de ellos debe dirigirse primero. Sabiendo a qué objeto se
debe dirigir primero, se obtiene la secuencia de puntos a los que se dirige. La
secuencia se acomoda de la siguiente forma: objeto uno, destino del objeto uno,
objeto dos, destino del objeto dos.
Conforme los indicadores ILP e IPO entran a este bloque, el algoritmo
propuesto determina qué se encuentra desempeñando el manipulador móvil y lo
indica a la siguiente etapa mediante el IMM, además de determinar cuándo el
cambio de punto se debe realizar. Por lo tanto, además del indicador IMM, de este
bloque sale la posición y orientación del punto al que se tiene que dirigir en ese
momento el MM. En la Figura V – 9, se muestra el bloque con sus entradas y
salidas.
82
Figura V – 9. Etapa de decisión o selección.
83
indicador IMM le dice a este bloque qué trayectoria debe realizar, si debe cumplir
con la operación pick o con la operación place. También indica si el manipulador
encuentra en la configuración preferida, por consecuencia, se obtiene el indicador
IPO que sale a la etapa de selección. Por lo tanto, este bloque determina el
movimiento del brazo manipulador correspondiente a lo que señala el indicador
IMM. De forma que, las primeras cinco salidas del bloque, entran a la cinemática
inversa del manipulador, que corresponde al siguiente bloque.
En el bloque de cinemática inversa, entran cinco señales: las primeras cinco
salidas del bloque que determina el movimiento del brazo manipulador (las
coordenadas en el marco origen del manipulador, el ángulo respecto a la
horizontal y el ángulo de orientación de la última junta). Como el nombre lo dice,
aquí se encuentran las ecuaciones calculadas para la cinemática inversa del brazo
manipulador en el capítulo IV, por ende las salidas de este bloque corresponden al
ángulo de cada junta del brazo, como se muestra en la figura V – 10.
84
Figura V – 11. Etapa de procesamiento. Bloque de acoplamiento.
85
Estos valores, indican el radio de convergencia para detener la plataforma.
Como se mencionó en la sección V.1, uno es menor al otro con el fin de no perder
la dirección del punto. Por consecuencia, este bloque tiene como salidas la señal
de velocidad lineal y angular para la plataforma, el indicador ILP y el resultado del
contador interno, consecuencia de la penúltima entrada, como se aprecia en la
Figura V – 12.
Para finalizar las velocidades lineal y angular, así como la orientación de la
plataforma móvil, que corresponden a la salida del bloque “llegando a la meta”,
entran al bloque que representa las restricciones cinemáticas de la plataforma
móvil. En este bloque se programa la ecuación 4.60, aquí, las entradas
corresponden a cinco: las tres mencionadas anteriormente; y los parámetros de la
plataforma móvil, que de acuerdo al robot diseñado se tiene:
Por lo tanto, las salidas de este bloque corresponden a la ecuación 4.60: las
velocidades lineales de la componente en y en ; la velocidad angular; las
velocidades de las llantas izquierda y derecha, como se muestra en la Figura V –
12.
86
Figura V – 13. Representación gráfica.
V. 5. REACTIVISION.
Mediante el sistema de visión se puede obtener una vista aérea del entorno de
trabajo del manipulador móvil. Se requiere la vista aérea debido a que el entorno
en el que se desplaza la plataforma es el plano , sólo el brazo manipulador
es el que trabaja en las tres dimensiones . Sin embargo, si se conoce a que
coordenada en se dirige, la vista en el plano es suficiente, representado en
coordenadas globales. Por lo tanto, es correcto utilizar la vista aérea del entorno
de trabajo donde se desplaza el manipulador móvil, de esta forma se puede
apreciar la ubicación del robot, así como las metas a las que tiene que llegar el
MM. Entonces, el campo de visión que cubre la cámara representa el límite del
espacio de trabajo. Lo que quiere decir que, si el identificador que tiene unido cada
objeto sale de este campo, lo perderá. Cada objeto debe tener un identificador
para detectarlo en el plano .
El software, que permite ubicar cada objeto mediante un identificador en el
plano, utilizado en este trabajo es reacTIVision [22]. Es un software de código libre
87
para el seguimiento robusto de fiducial (Figura V - 14) o identificadores que se le
adjuntan al objeto físico a detectar, al igual sirve para aplicaciones multi-touch con
la detección de dedos.
88
vector, dirigido del primero al segundo, se estima la orientación del símbolo
Fiducial, como se ve en la Figura V – 15.
Establecido lo anterior, puede apreciarse que estos símbolos fiducials serán
los identificadores que permitan saber la ubicación y orientación del MM, de los
objetos a recoger y del lugar destino donde se tienen que colocar. Así
aprovechando esto, cada uno de los sistemas mencionados tiene unido un
símbolo Fiducial para su detección en el entorno de trabajo.
Entonces de acuerdo a lo que se menciona en la sección anterior, la
detección de los sistemas forma la etapa de adquisición, de la implementación del
algoritmo de coordinación propuesto en este trabajo.
Etapa de adquisición: Esta etapa consiste de dos bloques: un bloque donde se
adquieren los datos y otro bloque donde se ajustan estos datos. En el primer
bloque (Adquisición de datos) no existen entradas, debido a que se adquieren los
datos mediante código, pero posee quince salidas que corresponden a las
primeras quince entradas de la etapa de decisión o selección. Sin embargo, antes
de llegar a la siguiente etapa pasan por el segundo bloque (Ajuste de datos de
visión), en este bloque se ajustan los datos que se reciben, debido a ciertas
características propias del manipulador móvil y del entorno de trabajo, que se
detallarán más adelante, en la Figura V – 16, se muestra el diagrama de bloques
que se describe en este párrafo.
En el primer bloque de esta etapa se ejecuta el cliente TUIO, que recibe los
datos que ReacTIVision manda y de esta forma se adquieren los datos. Para el
caso de trabajar con MATLAB y Simulink el cliente TUIO está en el lenguaje de
programación java (véase Apéndices), de esta forma se adquieren las posiciones
y ubicaciones de los símbolos Fiducial que representan cada uno de los sistemas
de la prueba.
89
obstruye el rayo de visión de la cámara esto, porque la altura del manipulador en
su configuración preferida y la plataforma móvil supera los 45 cm. Haciendo que la
detección del símbolo Fiducial sea errónea o totalmente nula, provocando que la
tarea no se realice con eficacia. Estipulado lo anterior se encuentra que el Fiducial
no puede estar ubicado en el centro del sistema a considerar, sea los objetos a
manipular, sus destinos o el punto del manipulador móvil. Por lo tanto, la
solución propuesta y con la que la respuesta mejora es trasladando el punto de
análisis, similar a lo que se hace para calcular el pre-docking. Lo que quiere decir
que el símbolo Fiducial se encontrará una distancia , medida del centroide del
Fiducial al centro del objeto a manipular o su destino, según sea el caso; con la
misma orientación del Fiducial, como se ve en la Figura V – 17a. Por otra parte, el
Fiducial que corresponde al manipulador móvil se encuentra a una distancia
medida del punto al centro del Fiducial, como se aprecia en la Figura V –
17b y se define mediante las siguientes expresiones.
(5.41)
a) b)
Figura V – 17. Traslado de puntos de detección: a) para objetos y destinos b) para manipulador
móvil.
90
V. 6. COMUNICACIÓN COMPUTADORA-MANIPULADOR
MÓVIL.
Debido a que el manipulador móvil es un robot que se desplaza en su entorno, la
comunicación alámbrica de éste con la computadora no es una opción. De lo
contrario, el mismo robot pasaría por encima de los cables o se desconectarían,
haciendo que una persona se encargue de seguir al robot e impida que esto
suceda. Como la cámara con la que se detecta la posición y orientación de los
sistemas que componen la tarea, se encuentra montada a una altura tal que
permita apreciar todo el entorno de trabajo, la persona que siga al robot estorbaría
para su correcta detección. Por lo tanto, la comunicación alámbrica no es una
opción, sino, se necesita que sea vía inalámbrica la comunicación entre la
computadora (donde está programado el algoritmo coordinador y se realizan todos
los cálculos para su ejecución) y el Manipulador Móvil (el robot que ejecuta la
tarea diseñada).
Existen varias formas de realizar comunicación inalámbrica, unas más
difíciles que las otras. Sin embargo, con el fin de no complicarse en la
comunicación (no es objetivo de este trabajo) y considerando la existencia de
microcontroladores con módulo de Bluetooth integrado, la comunicación mediante
Bluetooth es la que se decide utilizar para implementar el trabajo que se ha estado
desarrollando a lo largo de éste. Cumpliendo con el requisito de ser inalámbrica y
relativamente sencilla de implementar, por lo que se describe posteriormente,
además de poseer una buena velocidad de transferencia de datos. La tecnología
inalámbrica Bluetooth es el estándar inalámbrico de banda corta global, que
permite la conectividad con una gran cantidad de dispositivos electrónicos. Esta
tecnología hoy en día sigue evolucionando; las características más relevantes de
esta tecnología es el bajo consumo de energía y su bajo costo, sin perder la
robustez que proporciona.
El microcontrolador que se menciona arriba y el que se utiliza para la
implementación de la tarea es de la marca ATMEL, montado en una tarjeta de
Arduino [23]. El modelo de tarjeta utilizado tiene un módulo de Bluetooth Bluegiga
WT11 integrado, con un microcontrolador de montaje superficial modelo
ATmega328 (Figura V – 18).
91
Figura V – 18. Arduino BT
92
COM, por el cual se envían los datos. Con el bloque Serial Configuration, este
puerto ya se estableció, es aquel que se genera al emparejar la computadora con
el Arduino BT. En este bloque se configuran los parámetros para la comunicación
serial, parámetros como el número de puerto, la velocidad de baudios, los bits de
datos, entre otros. De no configurar primeramente el puerto con el que se trabaja,
los datos no se enviarían, esto hace surgir que existe un bloque encargado de
enviar los datos este bloque es el Serial Send. En este bloque entran los datos
que son enviados por el puerto que ya se configuró.
Ya que se estableció, que los datos serán enviados puerto serial y la
configuración de este, queda determinar qué datos son enviados al Arduino BT.
Recordando que el manipulador móvil está formado de un brazo manipulador de 5
GDL donde el movimiento lo realizan servomotores de aeromodelismo y una
plataforma móvil en donde se ubican dos llantas motrices, se aprecia que los
datos que se tienen que mandar, son aquellos que permitan el movimiento del
robot. Para el manipulador: la posición angular para cada una de sus juntas y la
posición angular para abrir y cerrar el gripper; y para la plataforma móvil la
velocidad de la llanta derecha y de la llanta izquierda. Una vez establecidos los
datos a enviar se tienen que hacer acondicionamiento de las señales.
El acondicionamiento de los datos del manipulador son esencialmente tres:
• El primero es un bloque donde se realiza un filtro, es decir, si la posición
angular a la cual se tiene que mover cada junta sobrepasa a la del límite
determinado por el servomotor, se tiene que mandar una posición de inicio.
La cual determina que el manipulador está fuera de rango.
• Después del primer acondicionamiento viene el acondicionamiento de
ancho de pulso de los servomotores. Este acondicionamiento se debe
principalmente a dos cuestiones:
1. La tarjeta Arduino tiene una librería que manda la señal a los
servomotores que estén conectados, esta señal puede ser
determinada por: posición angular, en números enteros, y por ancho
de pulso.
2. La tarjeta Arduino solo recibe Bytes de información por lo que si se
manda algún tipo de dato mayor al que puede recibir la información
no es procesada correctamente. De ahí que se convierta el tipo de
datos por enteros no signados de ocho bits.
Las posiciones angulares que genere la Cinemática Inversa del
manipulador obviamente no son enteras en la mayoría de los casos. Por lo que,
para mayor precisión tendrán que mandarse los valores con punto flotante, sin
embargo debido a la primera restricción se tienen que enviar los datos en ancho
de pulso. Entonces, la posición angular generada por la etapa de procesamiento,
se tiene que convertir en ancho de pulso para cada servomotor (característica
propia de cada tipo de servomotor comercial). Lo que estipula la segunda
93
restricción es que no se pueden enviar datos que superen el Byte y siendo que el
ancho de pulso es un número en micro-segundos mayor a 255, lo que se hizo fue
separar el valor en ancho de pulso en dos cantidades para cada servomotor.
En resumen, el acondicionamiento para los datos del manipulador son:
establecer que no sobrepasen el límite de cada servomotor; que los datos
enviados tienen que estar representados en ancho de pulso (para mayor precisión
en los movimientos) y divididos en dos cantidades por cada servomotor. Haciendo
que se manden diez datos para las juntas del manipulador más un dato que
representa el abrir y cerrar del gripper.
Los datos divididos que se envían al Arduino BT son procesados y juntados
de nuevo así formando el ancho de pulso correcto y escribiéndolo a las juntas del
manipulador. La etapa de ejecución se aprecia en la Figura V – 20.
94
• Se alimenta con un voltaje único de +12 VDC.
• Tiene integrado un regulador de +5VDC a 300mA para alimentar circuitos
externos (Arduino BT).
• Es capaz de suministrar hasta 3A a cada motor.
• Cuenta con la posibilidad de comunicarse a ella mediante protocolo serial y
protocolo I2C,
95
255. Donde, cero indica la máxima velocidad en un sentido y 255 la máxima
velocidad en el sentido contrario, por lo que la velocidad cero está determinado
por el valor 128. Sin embargo, estos valores no expresan una unidad de velocidad,
como la entrega el modelo cinemático. Por lo que es necesario encontrar una
regla de correspondencia de la velocidad angular a la velocidad de MD25. Este
problema se encuentra resuelto por un miembro del grupo de trabajo en [25], esta
regla de correspondencia se muestra en la Figura V – 22.
96
del funcionamiento del algoritmo coordinante de movimientos, para el manipulador
móvil diseñado, lo que se presenta en el siguiente capítulo.
97
VI. EXPERIMENTACIÓN Y
RESULTADOS.
Formando la parte final del presente trabajo, se presenta la implementación de
todos los sistemas, la planeación y el algoritmo que se ha ido desarrollando a lo
largo del presente. De manera que en este capítulo se describe la implementación
de éste así como todos sus componentes. En una segunda parte del capítulo se
describe, cómo se obtienen los datos del experimento que comprueban el
funcionamiento del algoritmo y finalmente se analiza lo que se obtuvo de la
prueba.
VI. 1. 2. EQUIPO.
Sin considerar al manipulador móvil y sus elementos, el equipo utilizado para
realizar el experimento consiste de una computadora, la cámara y el cable
FireWire que comunica a estos sistemas.
98
La computadora corresponde a una Laptop propia del autor, modelo
Toshiba Satellite M115, corriendo en Microsoft Windows 7. Procesador Intel dual
Core a 1.75 [GHz] y una memoria RAM de 2.5 [GB]. La videocámara es de marca
Sony, modelo Handycam DCR-TRV 361. Existen varias formas para conectar la
cámara a la computadora y que se reconozca con reacTIVision, sin embargo la
comunicación vía FireWire 1394 es la que permite una más rápida transferencia
de datos, permitiendo una resolución de 720x480 a una velocidad promedio de 30
[fps] (cuadros por segundo). Obteniendo una imagen como la mostrada en la
Figura VI – 2.
99
VI. 2. DESCRIPCIÓN DEL EXPERIMENTO.
La finalidad del experimento es comprobar la funcionalidad del algoritmo
coordinante propuesto, ver su efectividad y el desempeño del robot para realizar la
tarea. La descripción de la tarea, ya se ha abordado en otros capítulos, así que
básicamente el experimento está diseñado a razón del algoritmo. Sin embargo,
hay detalles que no se han mencionado y son necesarios para la funcionalidad del
algoritmo. En la presente sección se describe de manera más detallada y sin
pasar por alto algún detalle, pues todos los conceptos referentes se han descrito.
El experimento como se ha mencionado, fue realizado en Simulink. En la
aplicación programada, se calculan todos los datos que proporcionan movimiento
a ambas partes del MM y a su vez se envían por comunicación serial simulada al
Arduino BT, que se encarga de mandar los comandos de velocidad de las llantas
de la plataforma móvil. Todos los datos que son procesados para realizar la tarea
son proporcionados por el software de visión, entrega las posiciones en el plano
de objetos y robot, en base a estas se calcula todo lo mencionado. La
representación gráfica se ha realizado, con la finalidad de monitorear la posición
actual del MM y comprobar que todo lo enviado al robot coincida con lo que se
calcula en Simulink. El programa de Simulink, la plataforma de reacTIVision y la
representación gráfica del experimento forman la interfaz de usuario. Lo que
proporciona información al usuario del estado del experimento y del trayecto del
MM en el espacio de trabajo. La interfaz descrita, se muestra en la Figura VI – 3.
100
Dentro de la misma figura, se aprecia la disposición de los objetos a
manipular, siendo estos los que se encuentran en contacto directo con el suelo.
Por lo tanto, el brazo manipulador tiene que descender en su eje para recoger
los objetos. Al igual, los destinos de cada objeto se encuentran a nivel del piso, por
lo tanto, el brazo manipulador, igualmente tiene que descender para colocar cada
objeto en su destino. Se aprecia que los objetos a manipular se encuentran fijos,
sin embargo, si alguno de estos se mueve la posición de pre-docking se actualiza,
haciendo que el manipulador móvil siga el punto con tal de llegar a él, esto permite
flexibilidad en el desempeño de la tarea. El identificador del MM está en el plano,
que corresponde al origen del brazo manipulador, entonces significa que existe
una distancia entre el identificador del MM y el piso ( ), es decir, hay un
desplazamiento entre la posición indicado por reacTIVision y la posición real del
manipulador móvil. Por lo tanto, la solución propuesta, con el fin de tener mayor
precisión en la detección de la ubicación del MM, es una proyección del punto
determinado por reacTIVision al piso.
a)
b)
Figura VI – 4. Proyección del punto del MM al piso.
101
En la sección V. 5, se habla sobre un ajuste debido al entorno de trabajo,
este ajuste corresponde a la proyección del punto que se muestra en la Figura VI
– 4. De acuerdo a la figura, se realiza la proyección mediante el concepto de
triángulos semejantes, de la Figura VI – 4a se tiene la siguiente relación:
(6.1)
De donde:
(6.3)
102
lo que se menciona en el capítulo V y en el presente. Sabiendo dónde se
encuentran los objetos a manipular, se calcula cuál de ellos es el más cercano al
MM. Una vez determinado cuál es el objeto más cercano se forma un arreglo con
el orden de metas consecutivas a las que el MM debe llegar. Teniendo
determinada la primera meta de cuatro, se calcula el pre-docking, siendo éste la
primera sub-meta a la cual llegar. Debido a que el MM tiene que desplazarse en el
espacio de trabajo, el brazo manipulador se posiciona en su configuración
preferida y así la plataforma móvil se puede desplazar hacia la pre-meta. Cuando
el punto de referencia (punto de EE) llegue a la pre-meta, se indica que hay que
dirigirse a la primera meta. En esta etapa el brazo manipulador sigue en la
configuración preferida. Ahora que el MM se dirige a la meta, éste se detiene
cuando el radio de incidencia sea menor igual a la distancia determinada para el
docking del MM. Cuando se indica que el robot se detuvo, lo siguiente es realizar
la primera parte de la operación P&P.
Las coordenadas globales de visión se transforman a coordenadas del
brazo manipulador, de forma que ya puede realizar la primera parte de la
operación. Primero, el manipulador se desplaza en los ejes con la misma
componente en , que corresponde a la configuración preferida. Una vez llegando
a ese punto, el manipulador se desplaza en el eje z, dirigiéndose al objeto
mientras el ángulo con la horizontal incrementa, hasta encontrarse perpendicular
al piso y recogiendo así el objeto. Ya que el objeto haya sido tomado, el brazo
manipulador describe el mismo lugar geométrico para llegar al objeto, con la
diferencia de que ahora lo realiza en forma inversa y sujetando al objeto, para no
tirarlo, hasta regresar a la configuración preferida. Cuando ya se haya regresado a
la configuración preferida, se indica que este evento ocurrió, haciendo que se
mande la segunda meta a dirigirse, al destino del objeto que está sujetando el
manipulador.
Debido a que se envía una segunda meta, se calcula un pre-docking de
esta meta, y el MM se dirige a este punto con el brazo en la configuración
preferida. Se cambia el punto a la meta, en cuanto el punto de referencia para el
movimiento del robot, en el espacio de trabajo, esté dentro del área de incidencia,
correspondiente al pre-docking. El MM se detiene de nuevo, cuando el punto de
referencia esté dentro del área de incidencia, que corresponde al docking, en
cuanto se detenga el robot, el brazo procederá con la segunda parte de la
operación P&P. De nuevo, las coordenadas globales son transformadas a las
coordenadas del brazo. La segunda parte de P&P, corresponde a la colocación del
objeto que sujeta el brazo manipulador. Similar a la forma de recogerlo, el brazo
desplaza el efector final en el plano a la misma componente en de la
configuración preferida. Llegando a la coordenada correspondiente del plano, al
destino, el efector final desciende hasta encontrarse a una distancia cerca del
103
suelo, el destino del objeto, e inmediatamente libera el objeto, haciendo que éste
entre al compartimiento destino. Ya liberado el objeto, el brazo manipulador
regresa a la configuración preferida. Como ya no hay objeto que cargar, el brazo
regresa a esta configuración directamente.
Regresando a la configuración preferida, se manda la siguiente meta, la
tercera que corresponde al segundo objeto a recoger. De esta meta se calcula el
pre-docking y el MM se dirige a este. Cuando el punto de referencia indique que
llego al pre-docking, se cambia la dirección del MM a la meta y se detiene cuando
el punto de referencia indique que se llegó al docking del MM. Haciendo que se
empiece nuevamente la operación P&P. De nuevo, el brazo manipulador recoge el
objeto, describiendo el lugar geométrico mencionado anteriormente y se regresa a
la configuración preferida.
Cuando haya regresado a la configuración preferida, se manda la nueva y
cuarta meta, que corresponde al destino del segundo objeto recogido. Se calcula
un nuevo pre-docking para esa meta y se cambia a la meta cuando el punto de
referencia determine que ya llegó al pre-docking. El MM se detiene cuando el
punto de referencia determine que está dentro del área de incidencia,
correspondiente al docking. En cuanto la plataforma móvil se detenga, la segunda
parte de la operación P&P se ejecuta, describiendo el lugar geométrico descrito
anteriormente y libera al objeto, entrando éste al compartimiento que le
corresponde. Cuando libera al objeto, se regresa a la configuración preferida y,
como para este experimento no existen más objetos para recoger, el experimento
llega a su fin y el MM se detiene hasta que se repita la tarea o se apague el robot.
Para este experimento, sólo son dos objetos a recoger, cabe mencionar que
en el caso de que se necesite recoger una mayor cantidad de objetos, el código
permite que se modifique, para cumplir con lo necesario por el usuario. Debido al
limitado espacio de trabajo, sólo dos objetos a recoger son los que demuestran el
funcionamiento. El fin de tener más de un objeto, es demostrar el desempeño del
algoritmo y su repetitividad.
El proceso anterior describe el experimento, debido a que todo lo que se
describe ya se dedujo o se calculó a lo largo del presente trabajo, la descripción
está completa y el lector para este momento entiende cómo se ejecuta cada línea
descrita. Sólo queda reportar los resultados obtenidos de la implementación del
experimento y principalmente el desempeño del algoritmo heurístico propuesto
para la coordinación de movimientos del manipulador móvil diseñado.
104
directamente del sistema, porque la comunicación con Simulink sólo puede ser
unidireccional, sólo se puede recibir o enviar datos, de querer recibir y mandar
datos el procesamiento del experimento se vuelve lento y no se ejecuta de forma
deseada. Por consecuencia, como se ha estado mencionando a lo largo de este
trabajo, sólo se envían datos a Arduino, encargado de traducir los datos enviados
de Simulink y hacer que se mueva tanto la plataforma móvil como el brazo
manipulador, según lo planeado. Entonces se tiene que los datos adquiridos, que
son los que reportan la funcionalidad, están formados por aquellas señales que se
obtienen de la etapa de adquisición, de procesamiento y de ejecución. En Simulink
existe la posibilidad de adquirir datos mediante “Scopes” en donde entran las
señales que se quieren adquirir y se guardan en el “Workspace” de MATLAB para
su posterior procesamiento. Mediante estas características propias, de la
plataforma en la que se desarrolla el experimento, se obtienen los datos a
reportar.
La información más relevante para reportar es la que demuestre la
efectividad y funcionalidad del experimento, pero más importante el algoritmo, los
datos que se consideran son:
- La evolución de las juntas del brazo manipulador.
- La evolución de la velocidad de las llantas.
- Las posiciones en el plano x-y de la plataforma móvil y los objetos, así
como el punto de referencia de la planeación de movimientos (punto final
del efector final).
- La postura de la plataforma y las coordenadas cartesianas que describe el
efector final.
- Los datos que definen la planeación de trayectoria y el lugar geométrico
descrito por el brazo.
Siendo estos datos los que el autor considera los adecuados para
demostrar su funcionamiento. En el transcurso de la experimentación, se
realizaron varias pruebas, sin embargo, el experimento consiste de una sola
prueba donde la tarea se ejecuta dos veces, por ser dos los objetos a recoger y
colocar. El fin de realizar la tarea para dos objetos es demostrar la repetitividad y
flexibilidad de la misma. Como se demuestra en gran cantidad de trabajos en el
área de robótica, se pueden distinguir dos espacios diferentes: espacio de articular
(de juntas) y espacio cartesiano (global), de esta forma se reportan los resultados
en este trabajo, para una misma prueba, lo que permite distinguir los resultados
con mayor facilidad. Los resultados reportados en este trabajo se realizan
teniendo una configuración de objetos a manipular, destinos de los objetos y
posición inicial del MM como la que se muestra en la Figura VI – 2. Las posiciones
iniciales para la prueba reportada, que proporciona reacTIVision son las
siguientes:
105
VI. 3. 1. ESPACIO ARTICULAR.
En los resultados del espacio articular, se reportan la evolución de las juntas del
brazo manipulador (cinco) y el movimiento de abrir y cerrar del gripper. Por parte
de la plataforma móvil las velocidades de cada llanta forman el espacio articular
del MM. Éstas se separan en cuatro pasos que se han mencionado anteriormente:
Recogiendo objeto uno, colocando objeto uno, recogiendo objeto dos y colocando
objeto dos.
a)
b)
c)
106
d)
e)
f)
g)
107
h)
Figura VI – 5. Espacio de juntas para: Recogiendo objeto uno, a) Junta Base de manipulador, b)
Junta Hombro de manipulador, c) Junta Codo de manipulador, d) Junta Inclinación de Muñeca,
e) Junta Giro de Muñeca, f) Abrir y cerrar del gripper, g) Velocidad en rpm de llanta derecha de
la plataforma móvil, h) Velocidad en rpm de llanta izquierda de la plataforma móvil.
a)
b)
c)
d)
108
e)
f)
g)
h)
Figura VI – 6. Espacio de juntas para: Colocando objeto uno, a) Junta Base de manipulador, b)
Junta Hombro de manipulador, c) Junta Codo de manipulador, d) Junta Inclinación de Muñeca,
e) Junta Giro de Muñeca, f) Abrir y cerrar del gripper, g) Velocidad en rpm de llanta derecha de
la plataforma móvil, h) Velocidad en rpm de llanta izquierda de la plataforma móvil.
a)
109
b)
c)
d)
e)
f)
g)
h)
Figura VI – 7. Espacio de juntas para: Recogiendo objeto dos, a) Junta Base de manipulador, b)
Junta Hombro de manipulador, c) Junta Codo de manipulador, d) Junta Inclinación de Muñeca,
e) Junta Giro de Muñeca, f) Abrir y cerrar del gripper, g) Velocidad en rpm de llanta derecha de
la plataforma móvil, h) Velocidad en rpm de llanta izquierda de la plataforma móvil.
110
a)
b)
c)
d)
e)
f)
111
g)
h)
Figura VI – 8. Espacio de juntas para: Colocando objeto dos, a) Junta Base de manipulador, b)
Junta Hombro de manipulador, c) Junta Codo de manipulador, d) Junta Inclinación de Muñeca,
e) Junta Giro de Muñeca, f) Abrir y cerrar del gripper, g) Velocidad en rpm de llanta derecha de
la plataforma móvil, h) Velocidad en rpm de llanta izquierda de la plataforma móvil.
112
V I . 3 . 2. 1. P L A N O X- Y .
Figura VI – 10. Posición del punto p del brazo manipulador en el plano x-y
113
V I . 3 . 2. 2. P O ST U R A S D E B R A Z O MA N I P U L A D O R Y P L A T A FO R MA MÓ V IL .
114
V I . 3 . 2. 3. P L A N E A CIÓ N D E T R A Y E C T O R IA Y L U G A R G E O MÉ T R IC O .
a)
b)
c)
115
d)
Figura VI – 13. Velocidades lineales y angulares resultado la planeación de la trayectoria para la plataforma móvil:
a) Recogiendo al objeto uno, b) Colocando al objeto uno, c) Recogiendo al objeto dos, d) Colocando al objeto dos.
a)
116
b)
117
c)
d)
Figura VI – 14. Lugar geométrico descrito por la trayectoria del brazo manipulador: a) Recogiendo objeto uno,
b) Colocando objeto uno, c) Recogiendo objeto dos, d) Colocando objeto dos.
118
VI. 4. ANÁLISIS DE RESULTADOS.
Un hecho importante antes de avanzar, es indicar que el tiempo que se muestra
es el que corresponde al tiempo de Simulink. Principalmente se debe, a la gran
carga de procesamiento que se requiere para utilizar la visión y ejecutar todas las
funciones que realizan la tarea.
119
trayectoria. En cuanto termina la segunda trayectoria, aproximadamente en el
segundo treintaiuno, la pinza se abre, lo que permite que el objeto se libere y entre
en su lugar destino. Como se aprecia en el inciso f, se mantiene la pinza abierta
hasta regresar a la configuración preferida, pues conceptualmente, no trae el
objeto consigo. Al momento en que se llega a la posición inicial la pinza
nuevamente se cierra. Y así se termina la operación P&P para el primer objeto.
Debido a que este experimento consiste de dos objetos y en las Figuras VI
– 5 y VI – 6 se aprecia la evolución de las juntas en el trayecto para recoger y
colocar el primer objeto, en las Figuras VI – 7 y VI – 8 se muestra la evolución de
juntas para el segundo objeto.
Una vez colocado el objeto uno en su destino, el MM procede a dirigirse al
segundo objeto, correspondiente a la tercera meta. El MM se mantiene en
movimiento como se muestra en la Figura VI – 7g-h, hacia la meta desde
aproximadamente el segundo treinta y tres hasta el cuarentaiuno. Después de
este segundo se indica que el MM se detuvo, lo que significa que llego al docking
y ahora el brazo manipulador tiene que recoger el objeto dos. Al igual para el
objeto anterior las juntas empiezan a desplazarse angularmente, describiendo el
lugar geométrico de la trayectoria (incisos a-d). Al terminar con la primera
trayectoria nuevamente la junta cinco (inciso e) se orienta de acuerdo al ángulo de
orientación del objeto dos, con el propósito de recoger el objeto correctamente y
se mantiene en ese ángulo hasta regresar al punto final de la primera trayectoria.
Finalmente, el inciso f indica que cuando se llega al final de la primera trayectoria,
la pinza nuevamente se tiene que abrir y así se puede recoger el objeto dos.
Mientras la junta cinco se mantiene orientada para recoger el objeto, se cierra al
terminar la segunda trayectoria, de forma que el objeto lo tiene sujetado y así lo
pueda llevar a su correspondiente destino. Después de recoger el objeto las juntas
regresan a su configuración preferida y se indican que se llegó a ella.
Para finalizar el experimento en el espacio articular hay que colocar el
segundo objeto en su destino, esto se muestra en la Figura VI – 8, donde una vez
llegado a la configuración preferida el MM, comienza por última vez a desplazarse
hacia su cuarta y última meta. El MM se continúa moviendo hasta que se detiene
aproximadamente al segundo cincuentainueve, como se aprecia en los incisos g-h
y en cuanto se detiene el brazo, comienza con la segunda parte de la operación
P&P para el objeto dos. El brazo traza su primera trayectoria (incisos a-d) y al
terminarla la junta cinco (inciso e) se orienta de acuerdo a la orientación del
destino del objeto, manteniéndose en esa orientación hasta colocar el objeto en su
lugar destino, que corresponde al final de la segunda trayectoria. Al final de la
misma la pinza se abre (inciso f), liberando el objeto y dejándolo entrar en su lugar
destino, por cualquier situación la pinza se mantiene abierta hasta regresar a la
configuración preferida. Una vez llegando se vuelve a cerrar. Cuando el objeto se
120
libera el brazo manipulador regresa a la configuración preferida y debido a que no
hay más objetos, se mantiene estático el MM y termina el experimento.
Existen varios puntos que comentar acerca de estos resultados:
• En los incisos a – d de las Figuras 5, 6, 7, 8 del presente capítulo, se
aprecia que la evolución de las juntas es muy similar a simple vista, sin
embargo no lo son, describen la misma forma, se debe esto al perfil de
trayectoria implementado para el movimiento de las juntas. Es el mismo
perfil para las dos trayectorias de ida y las dos de regreso, cuando el caso
es recoger el objeto. Dos trayectorias de ida y una de regreso cuando el
caso el colocar en su destino. Mirando con más detenimiento estas figuras,
se ve que el rango de movimiento es diferente y es claro que sea diferente
pues las ubicaciones de los objetos son diferentes. La forma en la que el
MM llega a su meta es distinta, no siempre es la misma y se debe
principalmente a las llantas y a la visión. Otra cosa que se puede apreciar,
es que el tiempo en el que transcurre cada parte del experimento es
diferente. Si se mira con detenimiento al eje correspondiente al tiempo de
las anteriores figuras se verá que el tiempo de recorrido para una u otra
meta no es el mismo, se aprecia que hay diferencia de varios segundos. Sin
embargo, la evolución de la velocidad de llantas es muy similar en cada
figura, debido a que se aplica la misma técnica para llegar a la meta en
cada una de ellas, incluso las sub-metas (pre-docking). El mismo caso es
para la evolución de las juntas del brazo, el tiempo tomado para recoger o
colocar el objeto es diferente, y se debe a que el docking está determinado
por un radio de influencia, un área. Por visión, no siempre se detendrá en la
misma posición, pero lo que sí es un hecho es que la distancia entre el
punto de referencia y el objeto, es decir, la distancia del docking, siempre
será menor al radio de influencia definido.
• En el inciso f de la figuras 5, 6, 7, 8 de este capítulo, se aprecia el
transcurso de la pinza (gripper) del brazo manipulador. Para la pinza solo
hay dos valores numéricos que corresponden a cerrado y abierto (15° y 55°
correspondientemente). Por lo tanto, se puede apreciar como un pulso, si
está en alto está abierto y si está en bajo está cerrado, entonces cuando se
encuentra en la configuración preferida, la pinza está cerrada (bajo). Se
puede decir que la configuración de la pinza es estar en bajo, lo que indica
que sin importar el caso, se cerrará la pinza, garantizando que no suelte el
objeto, lo traiga consigo o no. Principalmente se debe a que no existen
sensores que determinen si hay o no hay objeto, y así se saca provecho de
no tener sensores. Además, se ahorra código, de lo contrario se introduciría
otra variable para determinar, la parte de la operación P&P que esté
ejecutando y saber si debe estar en alto o en bajo.
121
• En los incisos a-d de las figuras 6, 8 se aprecia que las trayectorias no son
simétricas a diferencia de las 5,7 que muestran cierta simetría. Como se
menciona antes y en el capítulo V, dos trayectorias de ida y dos de regreso
son las que se utilizan para recoger el objeto, donde el lugar geométrico
son dos rectas diferentes. Sólo que de ida y de regreso se describen la
misma, es decir, la primera recta se describe y luego la segunda, en cuanto
se recoge el objeto se vuelve a describir la segunda recta en sentido
inverso y luego la primera en sentido inverso, de ahí la simetría. Sin
embargo, cuando se coloca el objeto, se trazan dos trayectorias para
colocarlo y una para regresar a la configuración preferida, por lo tanto, se
describen dos rectas diferentes para colocarlo. En cuanto el objeto se libera
se regresa a la configuración preferida, describiendo así una recta
completamente diferente a las otras dos, con la similitud de estar formada
por el final de la segunda y el inicio de la primera, lo que determina la
asimetría de la trayectoria descrita.
• Finalmente, el tiempo de simulación se muestra en todas las figuras y no el
tiempo real, la visión toma muchos recursos de la computadora y no
permite que el tiempo de simulación corresponda al tiempo real de
ejecución. En la figura VI – 8, se muestra que el tiempo total del
experimento consiste de 66 segundos cuando en tiempo real el
experimento consiste de 3 minutos y 13 segundos. Se podría decir que el
experimento va tres veces más lento de lo que debería, sólo para aclarar la
cantidad de procesamiento que se realiza en el experimento.
• En las figuras 5, 6, 7, 8 de este capítulo, se aprecia el funcionamiento del
algoritmo propuesto, se muestra un buen desempeño y permite realizar la
tarea. Primero la plataforma debe de llevar al brazo manipulador a la meta,
mientras éste se mantiene en la configuración preferida. Cuando se llega al
docking el brazo recoge el objeto y se regresa a su configuración preferida
y lo mismo para el segundo objeto. Los resultados se describen de acuerdo
al algoritmo, a cómo suceden los eventos para desempeñar la tarea. Se
aprecia en las figuras del espacio articular que ambas partes del MM
coordinan sus movimientos de acuerdo al algoritmo heurístico propuesto.
Se aprecia que ambas partes “saben” cuándo moverse, qué es lo que
deben de cumplir dentro de la tarea, es decir, que le corresponde a cada
parte realizar y mediante el código se comunican ambas partes para saber
si cumplen con su parte o, en el caso de que no se haya cumplido, pues se
indica que aún no se ha logrado. El algoritmo de coordinación propuesto
demuestra que ambas partes pueden trabajar como una sola. Aunque
continúan siendo dos partes, pues cada una cumple con lo que se debe y
se comunican para trabajar como un solo sistema completo.
122
Todo esto se aprecia a través de las juntas de cada parte: las cinco juntas
del brazo manipulador y las dos llantas motrices de la plataforma móvil en el
espacio articular. Solo queda mostrar los resultados en el espacio cartesiano y
comentar sobre ellos.
123
a recoger el objeto dos. Cuando regresa al punto de partida gira a la izquierda y
desciende al pre-docking del destino del objeto, marcado con un cuadrado rojo.
Aproximadamente a los 100 cm en ubica este punto y se dirige a su meta.
Cercano a los 95 cm en se ubica el docking para el segundo objeto y procede a
colocarlo en su destino. Cuando el objeto se libera, regresa al punto de partida y
finalmente, el experimento ahí termina.
• Acerca de estos resultados, se aprecia que el sistema de las metas del MM
a pesar de estar estáticos se mueven un poco y repercute en la trayectoria,
pues para la cruz azul y la cruz roja no regresa el punto de operación por
el mismo camino que por el que llegó, por esto se ven dos líneas al
momento de recoger el objeto. Lo anterior no se aprecia en los cuadrados
azul y rojo debido, probablemente, a que sólo una trayectoria es de regreso.
A diferencia de las dos, para recoger los objetos.
• Otra cosa apreciable en estas las figuras VI – 9-10, la trayectoria descrita
por ambos puntos ( y ) no es un trazo constante, tiene muchos trazos
accidentados, algunas posibles causas: las ruedas, quiere decir que hay
deslizamiento, lo que no se considera en el modelo; o el sistema de visión
captura posiciones erróneas de vez en cuando, sin importar la posible
razón, no perjudicó el cumplimiento de la tarea, aunque sí un poco el
desempeño del experimento.
• En la figura VI – 10 se muestra la coordinación del MM, pues un solo punto
está describiendo la trayectoria del robot. Demostrando que las ecuaciones
de acoplamiento satisfacen la coordinación de movimientos de ambas
partes. Esta es una forma en la que se puede utilizar al manipulador móvil
como un solo sistema.
En el espacio articular se muestran los resultados para cada junta del
sistema, pero para cada sistema existe un punto que determina el movimiento de
cada parte. Para la plataforma es y para el brazo es . Con lo que se quiere
mostrar los resultados de estos puntos en específico, como lo muestran las
Figuras VI -11 y VI -12. En la figura VI – 11 se muestra la postura de la plataforma
móvil, aquí se aprecia el transcurso de este punto en el plano, además del ángulo
de orientación de la plataforma.
• Particularmente, en la orientación se aprecian saltos desde cero hasta los
360°, esto por el sistema de visión que mide solo de 0° a 360°. Lo que se
quiere decir es que si el robot gira hacia la derecha y se pasa del cero se
toma que, el ángulo está en el cuarto cuadrante. Esto pueden llegar a
repercutir, aunque como los resultados muestran, la tarea se ejecutó bien.
En la figura VI – 12 se muestra las coordenadas cartesianas para el EE,
referidas al marco origen del manipulador. Como el manipulador (punto ) realiza
124
un movimiento en el espacio, es pertinente mostrar la posición del punto en las
tres dimensiones. En esta imagen, se aprecia el resultado del perfil de trayectoria
utilizado lo que demuestra por qué los resultados en el espacio articular sean
similares y simétricos entre sí. En esta figura se muestran los cuatro eventos
ocurridos: recoger objeto uno, colocar objeto uno, recoger objeto dos y colocar
objeto dos. Cuando no está manipulando, se mantiene en la configuración
preferida, además aquí se muestra la posición del EE en la configuración
preferida.
• En la figura VI – 12 se nota claramente cómo es afectada la trayectoria.
Más importante se aprecia que la componente en es la más afectada del
problema sobre la visión. Cuando se coloca el objeto uno, no hay afectación
de la trayectoria. Sin embargo, para los otros tres eventos si hay errores,
particularmente al recoger el objeto uno.
• En esta figura no se aprecia mucho la coordinación, se aprecia más el
algoritmo planteado. Cumpliendo con el hecho de que se mantiene en la
configuración preferida y cuando se indique, le corresponde al brazo
manipulador moverse para manipular el objeto.
El resultado de la planeación de trayectoria para la plataforma móvil,
corresponde a la velocidad lineal y angular del punto , por lo que al plantear esta
técnica, uno puede decidir cuál es la velocidad lineal máxima y la velocidad
angular máxima. El resultado se puede apreciar en la Figura VI – 13, la cual se
divide en cuatro incisos, cada uno representa los eventos del experimento. El
inciso a, corresponde, a recoger el objeto uno, se ve que la plataforma se
desplaza a su máxima velocidad lineal, pues no se encuentra dentro del radio de
influencia, en cuanto incide en este radio su velocidad decrece como se aprecia
cerca del segundo seis y se detiene, indicando que llego al pre-docking. Luego, la
velocidad incremente de nuevo al máximo y decrece al llegar al docking, que
inmediatamente después se detiene para recoger el objeto. En cuanto a la
velocidad angular, empieza en su máximo y decrece conforme se va orientando.
Al llegar al pre-docking gira para el sentido contrario, de ahí que parte de la
velocidad angular máxima negativa y al llegar al docking no gira. En cuanto el
objeto uno es recogido se vuelve a mover la plataforma móvil a su máxima
velocidad (inciso b), hasta entrar al radio de influencia y detenerse en el pre–
docking, aproximadamente en el segundo veinticuatro y nuevamente se dirige a la
meta hasta que se detiene en el docking. En cuanto a la velocidad angular,
muestra que gira en sentido horario (derecha) y aproximadamente en el segundo
veintiuno se pasa del ángulo requerido, regresando de nuevo, girando a la
izquierda (sentido anti-horario), pero como se llegó al docking, el ángulo de
orientación es diferente y vuelve a girar en sentido anti-horario hasta llegar al
docking y dejar de girar. Cuando el objeto se coloca la plataforma móvil, se
125
desplaza una vez más dirigiéndose al pre-docking del segundo objeto (inciso c),
repitiendo el mismo proceso: mantenerse en la velocidad lineal máxima y decrece
ésta en cuanto se incida en el radio de influencia, llegando al pre–docking y
dirigiéndose a la meta. Cuando incida en el radio de influencia que determina el
docking se detendrá. Mientras que la velocidad angular, orienta a la plataforma lo
más posible a su meta o sub-meta, posible debido a que el pre–docking y docking
determinan qué tanto llegue a orientarse, estos puntos indican, cuándo hay que
detenerse. Finalmente, se dirige a la última meta (inciso d), realizando el mismo
procedimiento descrito.
• Acerca de los resultados hay que comentar que la velocidad lineal máxima
y la velocidad angular máxima son propuestas por el autor y que determina
el mejor resultado. Si las velocidades son mayores a las propuestas el
sistema de visión pierde el símbolo Fiducial, haciendo que el experimento
falle, lo cual no se debe permitir. Las velocidades indicadas se muestran a
continuación:
126
para recoger el objeto uno, el punto del EE llega hasta una cota de
. Llegado a este punto, se regresa al punto inicial describiendo las
mismas dos trayectorias en sentido inverso. En el inciso b, se muestra el lugar
geométrico descrito para colocar el objeto en su destino. Primero se trazan las dos
trayectorias arriba mencionadas, con la diferencia que para colocar el objeto la
cota del punto del EE desciende hasta . Esto quiere decir que el
objeto se libera desde una posición alta, relativamente, así permitiendo entrar al
objeto en un depósito que coincide con la geometría del mismo. Cuando el objeto
sea liberado, se regresa a su posición inicial y como muestra la figura, en el inciso
b, la trayectoria se traza desde la posición final hasta el punto correspondiente a la
configuración preferida. En el inciso c se muestra el mismo proceso mencionado
arriba, sólo que para recoger el objeto dos. Se aprecia que la trayectoria es la
misma, sin embargo, el lugar geométrico es diferente pues son diferentes
ubicaciones del objeto, compartiendo la misma posición de partida y la cota final
correspondiente para recoger un objeto, al igual se muestra la trayectoria de ida y
la trayectoria de regreso. Finalmente, en el inciso d se muestra las trayectorias
para colocar el objeto, igual que para el objeto uno, consiste de la trayectoria de
colocar, formada por dos rectas, donde la cota final de la segunda recta
corresponde a la misma que se menciona arriba para colocar un objeto. La
trayectoria de regreso, dirigiéndose de la posición final al punto inicial,
correspondiente a la configuración preferida. El hecho de realizar más directo el
regreso es porque no se está cargando el objeto y no hay nada que se pueda
soltar y perjudique la funcionalidad del experimento, además de ahorrar algunas
operaciones y variables.
• Lo que se aprecia de esta figura, es que el lugar geométrico descrito no son
realmente líneas rectas. Debido a las diferentes posiciones que manda
reacTIVision, ya se ha mencionado este problema que se presenta de una
u otra forma en los resultados presentes. Una situación así no se consideró
al momento de realizar el experimento, en el código no se encuentra algún
filtro para esta situación, lo que pudo en dado momento contrarrestar estos
efectos. Esto es lo que se aprecia en la figura, principalmente en el inciso d,
donde el lugar geométrico no son rectas sino segmentos de ellas, que
debido al cambio de la posición se calculan para las nuevas posiciones
formando varios segmentos de recta en un mismo plano, reiterando que
una situación así no se consideraba. Esta situación sí afecta la
funcionalidad del experimento, sin embargo, esta figura representa
únicamente la trayectoria del EE del brazo manipulador, no forma parte del
algoritmo de coordinación ni de la coordinación de movimientos, esta parte
le corresponde al brazo únicamente realizarla. Si ambas partes se movieran
127
al mismo tiempo esto repercutiría totalmente en la coordinación de
movimientos.
128
VII. CONCLUSIONES Y TRABAJO
FUTURO.
Discusión:
129
límite de carga, por esto es que los objetos a manipular están hechos de unicel,
cuando originalmente eran de nylamid. Al hacer las primeras pruebas, se encontró
que el brazo no soporta la carga representada por el nylamid, así que se
realizaron los objetos con unicel. El servomotor que otorga movimiento a la junta
del codo se tiene que cambiar por uno de mayor par, que supere el par calculado
inicialmente. Y he aquí que se encontró una limitante económica, pues los
servomotores de alto par cuestan, del doble hasta el cuádruple del utilizado en
este robot. Se demuestra que funciona, pues a pesar de que la junta del hombro
está formada por dos servomotores iguales al del codo, se pudo conseguir un
servomotor de alto torque con un valor poco menor a cuatro veces el original y así
llevar a cabo las modificaciones pertinentes. Otra posible solución, es que se
realice el robot más pequeño y evitar el problema de la limitante de carga.
La forma propuesta para coordinar los movimientos muestra buenos
resultados, ya que, sin importar donde se encuentre el robot, primero debe
orientarse para manipular el objeto asignado, y esto, compensa la limitante de
movimiento del brazo manipulador. Esto demostró que las dos partes del
Manipulador Móvil trabajaron en conjunto. El brazo manipulador cuenta con un
espacio de trabajo al estar fijo y la plataforma móvil, lleva al sistema hasta el
docking, que representa una distancia dentro del espacio de trabajo del brazo,
hecho que comprueba trabajo coordinado. La operación P&P, es una tarea muy
básica para los sistemas manipuladores, y se tiene la libertad de definir el lugar
geométrico que desee, esto permite que la operación se haga tan fácil o tan
compleja como se desee. Con la finalidad de demostrar el funcionamiento del
algoritmo, este se planteó lo más sencillo posible, con líneas rectas para llegaran
al objetivo, por ende, cumplir con la operación. La principal razón de realizar la
trayectoria con un perfil, es evitar que el brazo alcance una velocidad alta y que su
inercia, no desarme, ni destruya el brazo, pues es de acrílico y no resiste grandes
golpes. Sin embargo, el perfil de trayectoria en sus características originales, se
realiza con tiempo de ejecución. En este trabajo, se aplicó la esta técnica con un
contador de puntos, que va formando la trayectoria con cierto número de
discretizaciones. Que la trayectoria se realice de esta forma hace que el
movimiento del manipulador sea pausado e inconstante. El principal factor de este
hecho es que al momento de realizar el experimento no se encontró una solución
en Simulink, para que iniciare el tiempo en cuanto el brazo tuviera que manipular
el objeto, tal y como la tarea lo describe: el manipulador se mueve hasta llegar al
docking. Es decir, la trayectoria por medio de puntos entrega buenos resultados, a
pesar de que dé la impresión de realizar el movimiento entrecortado. El
desplazamiento del MM en su entorno de trabajo, se realiza considerando un
ambiente ideal, sin perturbaciones, sin objetos que interrumpan su camino. Esto
fue considerado para que el experimento no se complicara y no se sobrecargara el
procesamiento de la computadora. Es preciso que el entorno de trabajo del MM,
130
es demasiado pequeño como para agregar más sistemas, debido principalmente
al gran tamaño del robot y, a que hay que hacer arreglos al sistema para que la
visión entregue resultados satisfactorios.
Acerca del sistema de visión, se aprecia que este tipo de vision no es la
mejor solución para un sistema como el que se reporta en este trabajo, pues el
tamaño del manipulador en movimiento, interfiere en el campo de visión de la
cámara, provocando que los símbolos Fiducial se pierdan y el experimento fallé.
Los inconvenientes encontrados en este experimento relativos a la visión fueron
los siguientes:
• Los símbolos Fiducial parecieron pequeños. Se propone que deban ser muy
grandes para que el sistema de visión los detecte sin problemas, de esta
manera se resta espacio al entorno de trabajo. Como se muestra en el
capítulo V, la ubicación del punto de trabajo se tiene que desplazar cierta
distancia para detectar el objeto.
• El hecho de que el desplazamiento del punto de trabajo reduzca mucho
espacio (de 18 cm para los objetos y casi 30 cm para el MM), impide
agregar más sistemas al experimento.
• Y otro factor importante es el entorno de trabajo, que está definido por la
altura de más de 200 cm, a la que la cámara se encuentra, formando un
espacio de trabajo amplio para robots pequeños pero, no para el robot
utilizado en este trabajo cuya principal limitante es el techo del recinto.
Conclusiones:
131
Existen algunas observaciones e ideas, a posteriori, que pueden modificar
el experimento propuesto en este trabajo, se pueden desarrollar soluciones para
continuar explorando los temas abiertos en esta tesis, lo cierto es que este robot,
el algoritmo y todo lo que aquí se ha propuesto, puede formar parte del trabajo
futuro en este ámbito. En los siguientes párrafos se sugieren algunos temas a
desarrollar en el futuro.
Trabajo a futuro:
132
También cabe la posibilidad de implementar este mismo sistema
considerando la dinámica de ambas partes, lo que hace al sistema más complejo,
sin embargo, determinaría la necesidad de emplear el modelo dinámico para
ciertas tareas, como la presente.
El mejor avance que podría lograrse en futuro sería respecto a la evolución
de un sistema de visión. Desde la perspectiva del autor, sería mucho mejor si el
sistema de visión se montará en el manipulador móvil, de tal manera que
funcionara como sus ojos y formara su propio camino. Esta tarea requeriría más
tiempo dedicado al algoritmo que a su vez, podría adaptarse, asimismo, la
planeación de movimientos se modificaría. Lo anterior, plantea la necesidad de
agregar sensores al robot. De hecho, se podrían agregar sensores a cada parte
del MM, por ejemplo:
• Sensores laser para la planeación de movimiento de la plataforma móvil, así
como sensores de proximidad para poder evadir obstáculos y trazar un
mapa de su entorno.
• Para el brazo manipulador puede incorporarse un sensor de proximidad
para identificar la distancia a la que se halla el objeto a manipular y pueda
corregir el movimiento, si el objeto, estuviera lejos. Cabe mencionar que al
realizar este experimento llegó a ocurrir que el MM llegó al docking pero por
alguna razón no identificada no podía sujetar al objeto. En algunas
ocasiones se encontraba muy lejos de él a pesar de que el sistema de
visión indicaba lo contrario, por ello surge la necesidad de tener algún
sensor de proximidad al objeto. Una propuesta, es colocar un imán a los
objetos y en gripper un sensor magnético así, si el programa determina que
se encuentra cerca de recoger el objeto, tenga la posibilidad de comprobar
que se encuentre cerca y corrija la posición, esto, de ser necesario. Otra
propuesta diferente es la que se implementa en MM comerciales, y consiste
en colocar una cámara en el efector final que compruebe que el objeto está
cerca y distinga la forma en que se debe recoger.
• Con la finalidad de comprobar que la señal mandada a los servomotores
representa la posición calculada, se tendrían que colocar encoders de
posición o en su defecto potenciómetros lineales en sus juntas para que se
pueda comprobar la posición correcta, o tenga que corregirse.
Obviamente todas las propuestas para trabajos futuros, indican una mayor
cantidad de procesamiento, por lo que se debe de hacer que el código que forma
el experimento se optimice, a manera de lograr un mejor desempeño.
Para mejorar el desempeño del manipulador, al realizar la operación P&P,
es muy necesario realizar la trayectoria con el tiempo real de ejecución, así que
habría que revisar o descubrir una forma de iniciar un cronómetro en el momento
en el que el brazo manipulador tenga que recoger o colocar el objeto, y así le sea
133
permitido un movimiento más natural y continuo para que se pueda definir el
tiempo en que se desea realizar.
La técnica de campos potenciales es, en esencia, utilizada para llegar a una
meta evadiendo obstáculos, por lo que sería muy importante en futuros trabajos
agregar objetos a evadir. Consolidando la importancia del trabajo, la tarea se
acercaría más a una situación real en un entorno real no estructurado. Para
lograrlo, hay que cambiar el sistema de visión y de aquí se deriva la propuesta de
agregar sensores de proximidad para que, cualquier objeto cercano al MM, se
evada. El espacio de trabajo en el que se llevó a cabo este experimento fue muy
reducido, por ello, cabría la posibilidad de modificar el tamaño del robot, para que
tuviera mayor libertad de movimiento en el entorno de trabajo que sea.
Respecto al algoritmo, habrá que hacerle modificaciones acordes a lo que
requieran las necesidades del futuro, tales como, cambiar el sistema de visión por
uno a bordo del robot. Si se mantiene la forma en que se adquieren las posiciones
y orientaciones de los objetos y del MM, las modificaciones se tendrían que hacer
de acuerdo a la tarea a desempeñar, siendo éstas menores a comparación de las
primeras. Es decir, este algoritmo sirve como un esqueleto para cualquier otra
tarea o experimento, sin perder validez al implementarse en otro experimento.
Sirve como referencia para realizar más investigación acerca de la coordinación
de movimientos y no sólo de un Manipulador Móvil formado por un brazo
manipulador montado a una plataforma móvil, también y esto es de fundamental
relevancia, para cualquier otro sistema hibrido.
134
VIII. APÉNDICES
135
%2 -> Caja_Obj1 (FD 3)
%3 -> Objeto2 (FD 4)
%4 -> Caja_Obj2 (FD 5)
import TUIO.*;
tc=TuioClient();
tc.connect();
for i=1:5%5
c=tc.getTuioObjects().size();
if(c>0)
f1=tc.getTuioObjects().get(0).getSymbolID();
switch f1
case 1
xr=tc.getTuioObjects().get(0).getPosition().getX();
yr=1-tc.getTuioObjects().get(0).getPosition().getY();
thr=tc.getTuioObjects().get(0).getAngle();
case 2
x1=tc.getTuioObjects().get(0).getPosition().getX();
y1=1-tc.getTuioObjects().get(0).getPosition().getY();
th1=tc.getTuioObjects().get(0).getAngle();
case 3
x2=tc.getTuioObjects().get(0).getPosition().getX();
y2=1-tc.getTuioObjects().get(0).getPosition().getY();
th2=tc.getTuioObjects().get(0).getAngle();
case 4
x3=tc.getTuioObjects().get(0).getPosition().getX();
y3=1-tc.getTuioObjects().get(0).getPosition().getY();
th3=tc.getTuioObjects().get(0).getAngle();
case 5
x4=tc.getTuioObjects().get(0).getPosition().getX();
y4=1-tc.getTuioObjects().get(0).getPosition().getY();
th4=tc.getTuioObjects().get(0).getAngle();
otherwise
end
end;
if(c>1)
f2=tc.getTuioObjects().get(1).getSymbolID();
switch f2
case 1
xr=tc.getTuioObjects().get(1).getPosition().getX();
yr=1-tc.getTuioObjects().get(1).getPosition().getY();
thr=tc.getTuioObjects().get(1).getAngle();
case 2
x1=tc.getTuioObjects().get(1).getPosition().getX();
y1=1-tc.getTuioObjects().get(1).getPosition().getY();
th1=tc.getTuioObjects().get(1).getAngle();
case 3
x2=tc.getTuioObjects().get(1).getPosition().getX();
y2=1-tc.getTuioObjects().get(1).getPosition().getY();
th2=tc.getTuioObjects().get(1).getAngle();
case 4
x3=tc.getTuioObjects().get(1).getPosition().getX();
y3=1-tc.getTuioObjects().get(1).getPosition().getY();
th3=tc.getTuioObjects().get(1).getAngle();
case 5
x4=tc.getTuioObjects().get(1).getPosition().getX();
y4=1-tc.getTuioObjects().get(1).getPosition().getY();
th4=tc.getTuioObjects().get(1).getAngle();
otherwise
end
end;
if(c>2)
f3=tc.getTuioObjects().get(2).getSymbolID();
switch f3
case 1
xr=tc.getTuioObjects().get(2).getPosition().getX();
yr=1-tc.getTuioObjects().get(2).getPosition().getY();
thr=tc.getTuioObjects().get(2).getAngle();
136
case 2
x1=tc.getTuioObjects().get(2).getPosition().getX();
y1=1-tc.getTuioObjects().get(2).getPosition().getY();
th1=tc.getTuioObjects().get(2).getAngle();
case 3
x2=tc.getTuioObjects().get(2).getPosition().getX();
y2=1-tc.getTuioObjects().get(2).getPosition().getY();
th2=tc.getTuioObjects().get(2).getAngle();
case 4
x3=tc.getTuioObjects().get(2).getPosition().getX();
y3=1-tc.getTuioObjects().get(2).getPosition().getY();
th3=tc.getTuioObjects().get(2).getAngle();
case 5
x4=tc.getTuioObjects().get(2).getPosition().getX();
y4=1-tc.getTuioObjects().get(2).getPosition().getY();
th4=tc.getTuioObjects().get(2).getAngle();
otherwise
end
end;
if(c>3)
f4=tc.getTuioObjects().get(3).getSymbolID();
switch f4
case 1
xr=tc.getTuioObjects().get(3).getPosition().getX();
yr=1-tc.getTuioObjects().get(3).getPosition().getY();
thr=tc.getTuioObjects().get(3).getAngle();
case 2
x1=tc.getTuioObjects().get(3).getPosition().getX();
y1=1-tc.getTuioObjects().get(3).getPosition().getY();
th1=tc.getTuioObjects().get(3).getAngle();
case 3
x2=tc.getTuioObjects().get(3).getPosition().getX();
y2=1-tc.getTuioObjects().get(3).getPosition().getY();
th2=tc.getTuioObjects().get(3).getAngle();
case 4
x3=tc.getTuioObjects().get(3).getPosition().getX();
y3=1-tc.getTuioObjects().get(3).getPosition().getY();
th3=tc.getTuioObjects().get(3).getAngle();
case 5
x4=tc.getTuioObjects().get(3).getPosition().getX();
y4=1-tc.getTuioObjects().get(3).getPosition().getY();
th4=tc.getTuioObjects().get(3).getAngle();
otherwise
end
end;
if(c>4)
f5=tc.getTuioObjects().get(4).getSymbolID();
switch f5
case 1
xr=tc.getTuioObjects().get(4).getPosition().getX();
yr=1-tc.getTuioObjects().get(4).getPosition().getY();
zthr=tc.getTuioObjects().get(4).getAngle();
case 2
x1=tc.getTuioObjects().get(4).getPosition().getX();
y1=1-tc.getTuioObjects().get(4).getPosition().getY();
th1=tc.getTuioObjects().get(4).getAngle();
case 3
x2=tc.getTuioObjects().get(4).getPosition().getX();
y2=1-tc.getTuioObjects().get(4).getPosition().getY();
th2=tc.getTuioObjects().get(4).getAngle();
case 4
x3=tc.getTuioObjects().get(4).getPosition().getX();
y3=1-tc.getTuioObjects().get(4).getPosition().getY();
th3=tc.getTuioObjects().get(4).getAngle();
case 5
x4=tc.getTuioObjects().get(4).getPosition().getX();
y4=1-tc.getTuioObjects().get(4).getPosition().getY();
th4=tc.getTuioObjects().get(4).getAngle();
otherwise
end
end;
137
pause(0.02);
end;
tc.disconnect();
global xr yr thr x1 y1 th1 x2 y2 th2 x3 y3 th3 x4 y4 th4 xrr yrr thrr x11 y11 th11 x22 y22
th22 x33 y33 th33 x44 y44 th44;
xr=u(1);
yr=u(2);
thr=u(3);
x1=u(4);
y1=u(5);
th1=u(6);
x2=u(7);
y2=u(8);
th2=u(9);
x3=u(10);
y3=u(11);
th3=u(12);
x4=u(13);
y4=u(14);
th4=u(15);
if(thrr>2*pi)
thrr=thrr-2*pi;
end;
if(th11>2*pi)
th11=th11-2*pi;
end;
if(th22>2*pi)
th22=th22-2*pi;
end;
if(th33>2*pi)
th33=th33-2*pi;
end;
if(th44>2*pi)
th44=th44-2*pi;
end;
%************************************************************************
%*******Proyecciones de la posicion del manipulador movil****************
a=12;
A=238;
x_centro=97.75;
y_centro=73.5;
x_MM=xr*195.5;
y_MM=yr*147;
aux1=y_MM-y_centro;
aux2=x_MM-x_centro;
gama=atan2(aux1,aux2);
x_Rmag=norm([aux1 aux2]);
c_g=cos(gama);
x_p=A/(A-a)*x_Rmag;
x_MM_p=x_Rmag*c_g;
x_proy=x_p*c_g;
138
y_robot=y_centro-x_proy*(y_centro-y_MM)/x_MM_p;
x_robot_r=x_centro+x_proy;
%************************************************************************
sr=sin(thrr);
cr=cos(thrr);
s1=sin(th11);
c1=cos(th11);
s2=sin(th22);
c2=cos(th22);
s3=sin(th33);
c3=cos(th33);
s4=sin(th44);
c4=cos(th44);
x11=x1*195.5-18*c1;
y11=y1*147-18*s1;
x22=x2*195.5-18*c2;
y22=y2*147-18*s2;
x33=x3*195.5-18*c3;
y33=y3*147-18*s3;
x44=x4*195.5-18*c4;
y44=y4*147-18*s4;
%************************************************************************
sys = [xrr yrr thrr x11 y11 th11 x22 y22 th22 x33 y33 th33 x44 y44 th44];
int vel_i=128;
int vel_d=128;
int bas=map(90,0,180,530,2360);
int hombr=map(35,0,180,530,2360);
int cod=map(71,0,180,530,2360);
int mune=map(164,0,180,530,2360);
int gmune=544;
int acmune=0;
//
//Configuracion de servomotores
Servo Base;
Servo Hombro;
Servo Hombro2;
Servo Codo;
Servo Muneca;
Servo Gmuneca;
Servo ACmuneca;
139
//
void setup()
{
//Configuracion de ancho de pulso de servomotores
Base.attach(3,530,2360);
Hombro.attach(5,530,2360);
Hombro2.attach(6,500,2280);
Codo.attach(9,530,2360);
Muneca.attach(10,530,2360);
Gmuneca.attach(11);
ACmuneca.attach(12);
//
Wire.begin();
Serial.begin(115200);
encoderReset();
}
void loop()
{
if(Serial.available()>12)//Comprobar que haya datos en bufer
{
//Recibir datos
b1=Serial.read();
b2=Serial.read();
h1=Serial.read();
h2=Serial.read();
c1=Serial.read();
c2=Serial.read();
m1=Serial.read();
m2=Serial.read();
gm1=Serial.read();
gm2=Serial.read();
acmune=Serial.read();
vel_d=Serial.read();
vel_i=Serial.read();
//
//Enviar datos
bas=pwm(b1,b2);
hombr=pwm(h1,h2);
cod=pwm(c1,c2);
mune=pwm(m1,m2);
gmune=pwm(gm1,gm2);
juntas_mani(bas,hombr,cod,mune,gmune,acmune);
vel_llantas(vel_d,vel_i);
}
//
else
{
bas=bas;
hombr=hombr;
cod=cod;
mune=mune;
140
gmune=gmune;
acmune=acmune;
vel_d=vel_d;
vel_i=vel_i;
juntas_mani(bas,hombr,cod,mune,gmune,acmune);
vel_llantas(vel_d,vel_i);
}
delay(20);
}
//Reiniciar encoder de motores EMG30
void encoderReset()
{
Wire.beginTransmission(md25address);
Wire.send(cmdByte);
Wire.send(0x20);
Wire.endTransmission();
}
//
//Enviar datos de velocidad a la tarjeta MD25
void vel_llantas(int vel_d,int vel_i)
{
Wire.beginTransmission(md25address);
Wire.send(speed1);
Wire.send(vel_d);
Wire.endTransmission();
Wire.beginTransmission(md25address);
Wire.send(speed2);
Wire.send(vel_i);
Wire.endTransmission();
}
//
//Enviar posiciones angulares a servomotores
void juntas_mani(int base,int hombro,int codo,int muneca,int g_muneca,int ayc_muneca)
{
Base.writeMicroseconds(base);
Hombro.writeMicroseconds(hombro);
int hombro_2=map(hombro,530,2360,0,180);
Hombro2.write(180-hombro_2);
Codo.writeMicroseconds(codo);
Muneca.writeMicroseconds(muneca);
Gmuneca.writeMicroseconds(g_muneca);
ACmuneca.write(ayc_muneca);
}
//
//Unir anchos de pulso
int pwm(int x,int y)
{
int pwm_servo=x*100+y;
return pwm_servo;
}
141
//
global x_r y_r theta_r x_o1 y_o1 theta_o1 x_c1 y_c1 theta_c1 x_o2 y_o2 theta_o2 x_c2 y_c2
theta_c2 p xr yr theta IMM punt sel2;
x_r=u(1);
y_r=u(2);
theta_r=u(3);
x_o1=u(4);
y_o1=u(5);
theta_o1=u(6);
x_c1=u(7);
y_c1=u(8);
theta_c1=u(9);
x_o2=u(10);
y_o2=u(11);
theta_o2=u(12);
x_c2=u(13);
y_c2=u(14);
theta_c2=u(15);
IPO=u(16);
ILP=u(17);
p=u(18);
sel2=u(19);
%%%%%%%%%%%Algoritmo de Coordinacion%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if(IPO==0 && ILP==0)
IMM=0;
punt=p;
elseif(IPO==0 && ILP==1)
IMM=1;
punt=p;
142
elseif(IPO==2 && ILP==1)
IMM=0;
punt=p+1;
elseif(IPO==1 && ILP==1)
IMM=1;
punt=p;
end
if(IMM==1)
sel=mod(p,2);
if(sel==0)
IMM=2;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%Asignacion del orden de metas del MM%%%%%%%%%%%%%%%
if(p<=1)
a=[x_o1-x_r y_o1-y_r];
b=[x_o2-x_r y_o2-y_r];
d1=norm(a);
d2=norm(b);
if(d2>d1)
sel2=1;
else
sel2=2;
end
end
switch sel2
case 1
Vptos=[x_o1 y_o1 theta_o1;x_c1 y_c1 theta_c1;x_o2 y_o2 theta_o2;x_c2 y_c2 theta_c2];
case 2
Vptos=[x_o2 y_o2 theta_o2;x_c2 y_c2 theta_c2;x_o1 y_o1 theta_o1;x_c1 y_c1 theta_c1];
end
global x_f y_f theta_o x_r y_r theta_r IMM punt x_m y_m z_m phi csi ayc IPO cont;
x_f=u(1);
y_f=u(2);
theta_o=u(3);
x_r=u(4);
y_r=u(5);
theta_r=u(6);
143
IMM=u(7);
punt=u(8);
%*********Configuracion preferida****************************%
xi=3.5473;
yi=0;
zi=31.7226;
%************************************************************%
%******Parametros de brazo manipulador y cotas finales*******%
zo_f=-9;
zd_f=-5;
h=8.67;
k=0;
if(IMM==0)
%******************Configuracion preferida*******************%
x_m=xi;
y_m=yi;
z_m=zi;
phi=0;
csi=0;
ayc=15;
IPO=0;
cont=0;
%************************************************************%
elseif(IMM==1)
%*****Transformacion a coordenadas del brazo manipulador*****%
ct_r=cos(theta_r);
st_r=sin(theta_r);
g=ct_r*(x_f-x_r)+st_r*(y_f-y_r)-h;
l=ct_r*(y_f-y_r)-st_r*(x_f-x_r)-k;
%************************************************************%
IPO=1;
%*******************Recogiendo el objeto*********************%
if(punt<=20)
[x_m y_m z_m cont]=Trayectoria_mani(xi,yi,zi,g,l,zi,punt);
phi=0;
csi=0;
ayc=15;
elseif(punt>20 && punt<=40)
punt_a=punt-20;
[x_m y_m z_m cont]=Trayectoria_mani(g,l,zi,g,l,zo_f,punt_a);
phi=90*punt_a/20;
csi=Angulo_csi(x_r,y_r,theta_r,theta_o,h,x_f,y_f);%%%
ayc=50;
cont=cont+20;
elseif(punt>40)
punt2=punt-40;
if(punt2<=20)
[x_m y_m z_m cont]=Trayectoria_mani(g,l,zo_f,g,l,zi,punt2);
phi=90-90*punt2/20;
csi=Angulo_csi(x_r,y_r,theta_r,theta_o,h,x_f,y_f);
ayc=15;
cont=cont+40;
elseif(punt2>20 && punt2<=40)
punt_a=punt2-20;
[x_m y_m z_m cont]=Trayectoria_mani(g,l,zi,xi,yi,zi,punt_a);
phi=0;
csi=0;
ayc=15;
cont=cont+60;
elseif(punt2>40)
cont=0;
IPO=2;
end
end
%*************************************************************%
%**************Colocando el objeto en su destino**************%
elseif(IMM==2)
ct_r=cos(theta_r);
st_r=sin(theta_r);
g=ct_r*(x_f-x_r)+st_r*(y_f-y_r)-h;
144
l=ct_r*(y_f-y_r)-st_r*(x_f-x_r)-k;
IPO=1;
if(punt<=20)
[x_m y_m z_m cont]=Trayectoria_mani(xi,yi,zi,g,l,zi,punt);
phi=0;
csi=0;
ayc=15;
elseif(punt>20 && punt<=40)
punt_a=punt-20;
[x_m y_m z_m cont]=Trayectoria_mani(g,l,zi,g,l,zd_f,punt_a);
phi=90*punt_a/20;
csi=Angulo_csi(x_r,y_r,theta_r,theta_o,h,x_f,y_f);%%%%%
if(punt==40)
ayc=50;
else
ayc=15;
end
cont=cont+20;
elseif(punt>40)
punt2=punt-40;
if(punt2<=20)
[x_m y_m z_m cont]=Trayectoria_mani(g,l,zd_f,xi,yi,zi,punt2);
phi=90-90*punt2/20;
csi=0;
ayc=50;
cont=cont+40;
else
cont=0;
IPO=2;
end
end
%*************************************************************%
else
%**********Regresando a la configuracion preferida************%
x_m=xi;
y_m=yi;
z_m=zi;
phi=0;
csi=0;
ayc=15;
IPO=2;
cont=0;
end
%*************************************************************%
sys = [x_m y_m z_m phi csi ayc IPO cont];
T=punt/20;
ft=10*T^3-15*T^4+6*T^5;
x_m=xi+(xf-xi)*ft;
y_m=yi+(yf-yi)*ft;
z_m=zi+(zf-zi)*ft;
cont=punt+1;
end
function csi=Angulo_csi(xr,yr,thr,tho,h,xo,yo)
c1=cos(thr);
s1=sin(thr);
ha=xr+h*c1;
ka=yr+h*s1;
eta=atan2(yo-ka,xo-ha);
csi=eta-tho;
if(csi<0)
csi=pi+csi;
end
end
145
V I I I . 4 . 2. 2. C IN E M Á T IC A I N V E R S A D E L B R A ZO MA N IP U L A D O R .
px=u(1);
py=u(2);
pz=u(3);
phi=u(4);
csi=u(5);
%****************Parametros del brazo manipulador**************%
h=9.3;
k=15;
g=15;
f=11.7;
%**************************************************************%
a=cos(phi);
b=sin(phi);
rr=norm([px py]);
x=rr-f*a;
z=pz+f*b;
R=norm([x z-h]);
sin_a=(z-h)/R;
cos_a=x/R;
cos_b=(R^2+g^2-k^2)/(2*g*R);
sin_b=(1-(cos_b)^2)^(1/2);
cos_g=(k^2+g^2-R^2)/(2*g*k);
sin_g=(1-(cos_g)^2)^(1/2);
th1=atan2(py,px);
th2=atan2(sin_a*cos_b+cos_a*sin_b,-(cos_a*cos_b-sin_a*sin_b));
c=cos(th2);
d=sin(th2);
th3=atan2(sin_g,-cos_g);
th4=atan2(a*(sin_g*c-cos_g*d)+b*(cos_g*c+sin_g*d),a*(cos_g*c+sin_g*d)-b*(sin_g*c-cos_g*d));
th5=csi;
sys = [th1 th2 th3 th4 th5];
V I I I . 4 . 2. 3. A C O P L A M I E N T O .
xi=u(1);
yi=u(2);
theta=u(3);
th1=u(4);
th2=u(5);
th3=u(6);
phi=u(7);
%**************Parametros del Manipulador Movil****************%
l1=15;
l2=15;
l3=11.7;
xbc=8.67;
ybc=0;
%**************************************************************%
c1=cos(pi-th2-th3);
c2=cos(th2);
c3=cos(phi);
c0=cos(th1);
s0=sin(th1);
c=cos(theta);
s=sin(theta);
146
%************************Acoplamiento**************************%
la=l2*c1+l3*c3-l1*c2;
xrc=xbc+la*c0;
yrc=ybc+la*s0;
xr=xi+xrc*c-yrc*s;
yr=yi+xrc*s+yrc*c;
%**************************************************************%
sys = [xr yr theta];
V I I I . 4 . 2. 4. L L E G A N D O A L A M E T A .
xi=u(1);
yi=u(2);
thetai=u(3);
xf=u(4);
yf=u(5);
phi=u(6);
caso=u(7);
IMM=u(8);
%***********Calculo del pre-docking y el docking***************%
dis_pd=45;
kmm=19;
s=sin(phi);
c=cos(phi);
if(IMM==0)
if(phi==0||phi==2*pi)
x1=xf-dis_pd;
y1=yf;
elseif(phi==pi/2)
x1=xf;
y1=yf-dis_pd;
elseif(phi==pi)
x1=xf+dis_pd;
y1=yf;
elseif(phi==3/2*pi)
x1=xf;
y1=yf+dis_pd;
else
y1=yf-dis_pd*s;
x1=xf-dis_pd*c;
end
a=x1-xi;
b=y1-yi;
thetag1=atan2(b,a);
c=xf-xi;
d=yf-yi;
thetag2=atan2(d,c);
%**************************************************************%
%*******Asignacion de la meta a la que se dirige el MM*********%
switch caso
case 0
[v,w,ca]=Trayectoria_movil(xi,yi,x1,y1,thetai,thetag1,3);
ILP=0;
case 1
[v,w,ca]=Trayectoria_movil(xi,yi,xf,yf,thetai,thetag2,kmm);%x2--xf y2--yf y kmm
no va
ILP=0;
otherwise
v=0;w=0;ILP=1;
end
ca=caso+ca;
else
%******************Plataforma movil detenida*******************%
v=0;
147
w=0;
ILP=1;
ca=0;
%**************************************************************%
end
%**************************************************************%
sys = [v w ILP ca x1 y1];
function [vo,wo,cass]=Trayectoria_movil(xi,yi,xf,yf,thetai,thetag,K_mm)
%************Llegando a la meta por campos potenciales************%
Kr=10;
vmax=3;
wmax=0.3;
a=xf-xi;
b=yf-yi;
dg=norm([a b]);
thetae=thetag-thetai;
s=sin(thetae);
if(dg<=K_mm)
vo=0;
wo=0;
cass=1;
else
cass=0;
if(dg>Kr)
vo=vmax;
wo=wmax*s;
elseif(dg<=Kr)
vo=(vmax/Kr)*dg;
wo=wmax*s;
end
end
%*****************************************************************%
end
V I I I . 4 . 2. 5. R E S T R IC C IO N E S C I NE MÁ T IC A S D E L A P L A T A FO R MA MÓ V IL
v=u(1);
w=u(2);
theta=u(3);
d=u(4);
b=u(5);
r=u(6);
U=[v;w];
A=cos(theta);
B=sin(theta);
C=(1/r);
sys = Xp;
148
VIII. 5. 2. ETAPA DE EJECUCIÓN.
V I I I . 5 . 2. 1. AJ U S T E D E L O S D A T O S D EL B R A ZO MA N IP U L A D O R.
Ángulo
Ajuste
a PWM
de ángulos
V I I I . 5 . 2. 2. AJ U S T E D E L O S D A T O S D E L A P L A T A FO R MA MÓ V IL .
Cambio a MD25
152
IX. REFERENCIAS.
[1] Yingshu Chen,Libing Liu,Minglu Zhang, Hui Rong; ”Study on Coordinated
Control and Hardware System of Mobile Manipulator”; 6th World Congress on
Intelligent Control and Automation (2006), Dalian, China.
[2] Gilles Foulon, J. Yves Fourquet, Marc Renaud; “Cordinarting mobility and
manipulation using nonholonomic mobile manipulators”; Control Engineering
Practice 7 (1999), Toulousse, Francia.
[3] T.I. James Tsay, Y.F. Lai, L. Hsiao; “Material Handling of a Mobile Manipulator
Using an Eye in Hand Vision System”; The 2010 IEE/RSJ International Conference
on Intelligent Robots and Systems, Taipei, Taiwan.
[4] Magnus Egerstedt and Xiaoming Hu; “Coodinated Trayectory Following for
Mobile Manipulation”; IEE International Conference on Robotics & Automation
(2010), California, USA.
[5] Chunyan Gao,Minglu Zhang, Lingyu Sun; “Motion Planning And Coordinates
Control For Mobile Manipulators”; 9th International Conference on Control,
Automation, Robotics and Vision (2006), Tianjin, China.
[6] Yoshio Yamamoto and Xiaoping Yun; “Coordinating Locomotion and
Manipulation of a Mobile Manipulator”; IEEE Transactions on Automatic Control
(1994), Philadelphia.
[7] Paul E. I. Pounds, Daniel R. Bersak and Aaron M. Dollar; “Gasping From the
Air: Hovering Capture and Load Stability”; IEE International Conference on
Robotics and Automation (2011), Shangai, China.
[12] Siddhartha S.S, Dave F, Casey J. H, Dimitry B, Alvaro C, Rosen D, Garrat G,
Geoffrey H, James K, Michael V. W; “HERB: a home exploring robotic butler”;
Auton Robot (2010), Pittsburgh, USA.
[13] Mads Hvilshoj and Simon Bogh; “Little Helper – An Mutonomous Industrial
Mobile Manipulator Concept”; Intenational Journal of Advance Robotic Systems
(2011), Aalborg, Dinamarca.
[17] J. Angeles; “Fundamentals of Robotic Mechanical Systems: Theory, Methods,
and Algorithms”; 3rd edition, Springer (2006), USA.
[18] K. S. Fu, R. C. González, C. S. G. Lee; “Robótica: Control, detección, visión e
inteligencia”; Mc Graw Hill (1989), México.
[19] J. J. Craig; “Robótica”; Pearson, Prentice Hall, 3a edición (2003), México.
[20] V. J. G. Villela; “IV A Unifying Theory on Conventional Wheeled Mobile
Robots. Research on a semiautonomous mobile robot for loosely structured
environments focused on transporting mail trolleys” (2006), Reino Unido.
153
[21] V. J. G. Villela, et al.; “A Wheeled Mobile Robot with Obstacle Avoidance
Capability”; SOMIM Ingeniería mecánica tecnología y desarrollo (2004), México.
[25] A. M. Sandoval; “Experimentación en tiempo real sobre deformación reactiva
de trayectorias para robótica móvil”; Facultad de Ingeniería, UNAM (2011), México.
[8] http://www.ritsumei.ac.jp/se/~kawamura/research/underwater_e.html
[9] http://mobilemanipulation.org
[10] http://mekabot.com/products/m1-mobile-manipulator/
[11] http://www.willowgarage.com/
[14] http://www.neobotix-roboter.de/automation-robotics-home.html?&L=1
[15] http://www.kuka-robotics.com/germany/en/
[16] http://www.youbot-store.com/
[22] http://reactivision.sourceforge.net/
[23] http://arduino.cc
[24] http://www.robot-electronics.co.uk/htm/md25tech.htm
154