81
1 Desarrollo de un prototipo de inspección y transporte con base en la teoría de robótica de enjambres Andrés Felipe Villamil Romero Autor Jonathan Camargo Leyva Asesor Proyecto de Grado Para obtener el título de Ingeniero Mecánico Universidad de Los Andes Facultad de Ingeniería Departamento de Ingeniería Mecánica Bogotá, Colombia Enero de 2018

Desarrollo de un prototipo de inspección y transporte con

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Desarrollo de un prototipo de inspección y transporte con

1

Desarrollo de un prototipo de inspección y transporte con base en la

teoría de robótica de enjambres

Andrés Felipe Villamil Romero

Autor

Jonathan Camargo Leyva

Asesor

Proyecto de Grado

Para obtener el título de Ingeniero Mecánico

Universidad de Los Andes

Facultad de Ingeniería

Departamento de Ingeniería Mecánica

Bogotá, Colombia

Enero de 2018

Page 2: Desarrollo de un prototipo de inspección y transporte con

2

Tabla de contenido 1. Lista de Imágenes ........................................................................................................................ 3

2. Lista de tablas .............................................................................................................................. 5

3. Resumen ...................................................................................................................................... 6

4. Introducción ................................................................................................................................ 7

4.1. Antecedentes ...................................................................................................................... 9

5. Objetivos ................................................................................................................................... 12

5.1. Principal: ............................................................................................................................ 12

5.2. Objetivos secundarios: ...................................................................................................... 12

6. Proceso de diseño ..................................................................................................................... 13

6.1. Subsistemas y Behaviors ................................................................................................... 14

6.2. Solución por para cada behavior ....................................................................................... 16

6.3. Solución por subsistema ................................................................................................... 32

7. Resultados ................................................................................................................................. 46

7.1. Sistema de suspensión ...................................................................................................... 46

7.2. Resultados de llevar peso .................................................................................................. 46

7.3. Resultados de sistema de locomoción .............................................................................. 48

7.4. Resultados de obstacle avoidance .................................................................................... 48

7.5. Resultados auto-ensamble ................................................................................................ 49

7.6. Resultados de la electrónica ............................................................................................. 49

7.7. Lista de partes y justificación ............................................................................................ 51

7.8. Características generales del robot ................................................................................... 58

8. Conclusiones.............................................................................................................................. 59

9. Referencias ................................................................................................................................ 61

10. Anexos ....................................................................................................................................... 63

10.1. Esquemáticos ................................................................................................................ 63

10.2. Códigos .......................................................................................................................... 66

10.3. Planos ............................................................................................................................ 72

Page 3: Desarrollo de un prototipo de inspección y transporte con

3

1. Lista de Imágenes

Ilustración 1. Sistema completo desarrollado por García (2013). Vista frontal y lateral [4]. ............ 9

Ilustración 2. Estructura completa de estados y comportamientos implementado por Torabi. ...... 10

Ilustración 3. Robot presentado y descrito por Kube y Bonabeau. Tomado de [7]. ......................... 11

Ilustración 4. Proceso de diseño. ...................................................................................................... 13

Ilustración 5. Subsistemas del diseño. .............................................................................................. 14

Ilustración 6. Diagrama de estados para el control de los behaviors en el sistema. ........................ 15

Ilustración 7. Potencia especifica versus velocidad esperada para diferentes mecanismos de

locomoción. ....................................................................................................................................... 18

Ilustración 8. Aproximación de grid 2D del área de trabajo. Tomado de [13] .................................. 23

Ilustración 9. The bug Algorithm. ...................................................................................................... 24

Ilustración 10. Bug2 algorithm. ......................................................................................................... 24

Ilustración 11. Proceso de rebote de la burbuja para el bubble algorithm. Tomado de [B]. ........... 27

Ilustración 12. Algoritmo propuesto para este proyecto. ................................................................. 28

Ilustración 13. Resumen de los cuatro tipos principales de auto-ensamble de robots presentada

por Mondada et al. ............................................................................................................................ 30

Ilustración 14. a) Sistema de tracción del robot. b) Disposición de las ruedas en el robot. ............. 33

Ilustración 15. Tamaño de un posible modulo si el motor se ubicaba horizontalmente conectado

directamente a la llanta. ................................................................................................................... 33

Ilustración 16. Disposición de la polaridad de los imanes. ............................................................... 34

Ilustración 17. Cambio de sección en la cara de los robots. ............................................................. 35

Ilustración 18. a) transporte colectivo en formacion colmena por empuje. b) transporte colectivo

por enjaulamiento. ............................................................................................................................ 35

Ilustración 19. Configuraciones de uniones de varias figuras geométricas. ..................................... 36

Ilustración 20. Sensores infrarrojos ubicados en las caras del robot. ............................................... 37

Ilustración 21. Encoder óptico incremental utilizado. ...................................................................... 38

Ilustración 22. Encoder rotatorio de cuadratura. Utilizado normalmente en el sistema de scroll de

un mouse. .......................................................................................................................................... 38

Ilustración 23. Circuito para la lectura de los pines del encoder de cuadratura de un mouse. ....... 39

Ilustración 24. Encoder óptico de cuadratura. La relación de fases entre los trenes de pulso del

canal A y el B son usados para determinar la dirección de rotación. Tomado de [4]. ...................... 39

Ilustración 25. esquemáticos utilizados para la conexión del sensor QRD 1114 (a) y del encoder de

cuadratura (b). .................................................................................................................................. 41

Ilustración 26. Configuración utilizada para el encoder de herradura TCST1103. Tomado de [J]. ... 41

Ilustración 27. Conexión de las baterías BL-5C dentro del robot. ..................................................... 42

Ilustración 28. Esquemático de las conexiones del L298n. ............................................................... 42

Ilustración 29. Esquemático de las conexiones del Arduino nano. ................................................... 43

Ilustración 30. A la izquierda se presenta la PCB que ira en la parte superior de modulo. A la

derecha, se presenta la PCB para la parte inferior. .......................................................................... 44

Ilustración 31. Diagrama de cuerpo libre del robot empujando un objeto. ..................................... 44

Ilustración 32. Robot superando un desnivel de 4mm. .................................................................... 46

Ilustración 33. Experimento de un robot empujando un objeto de madera sobre madera. ........... 47

Page 4: Desarrollo de un prototipo de inspección y transporte con

4

Ilustración 34. Experimento de un robot empujando un objeto de madera sobre aluminio. .......... 47

Ilustración 35. Mecanismo de locomoción en funcionamiento. ....................................................... 48

Ilustración 36. Secuencia de evasión de obstáculos del robot. ........................................................ 49

Ilustración 37. Secuencia de auto-ensamble de dos módulos del robot. ......................................... 49

Ilustración 38. PCB superior fabricada y soldada. ............................................................................. 50

Ilustración 39. PCB inferior fabricada y soldada. .............................................................................. 50

Ilustración 40. CAD de la carcasa. ..................................................................................................... 51

Ilustración 41. Vista interna del CAD de la carcasa. .......................................................................... 51

Ilustración 42. Carcasa construida .................................................................................................... 51

Ilustración 43. Tapa. .......................................................................................................................... 52

Ilustración 44. Tapa vista superior. ................................................................................................... 52

Ilustración 45. PCB superior. ............................................................................................................. 52

Ilustración 46. PCB inferior. ............................................................................................................... 52

Ilustración 47. PCB para el infrarrojo de herradura .......................................................................... 52

Ilustración 48. Llanta esférica implementada. .................................................................................. 52

Ilustración 49. Llanta esférica. .......................................................................................................... 53

Ilustración 50. Baterias BL-5C. ........................................................................................................... 53

Ilustración 51. Modulos robot con imanes. ...................................................................................... 53

Ilustración 52. Imán. .......................................................................................................................... 53

Ilustración 53. Transmisión por engranajes biselados. ..................................................................... 54

Ilustración 54. Conector del servo. Viene incluido con el motor. ..................................................... 54

Ilustración 55. Servomotor. ............................................................................................................... 54

Ilustración 56. Motorreductor. ......................................................................................................... 54

Ilustración 57. Lector de la batería. ................................................................................................... 54

Ilustración 58. Pieza ensambladora. Vista 1. ..................................................................................... 55

Ilustración 59. Pieza ensambladora. Vista 2. ..................................................................................... 55

Ilustración 60. Llanta. ........................................................................................................................ 55

Ilustración 61. Eje de la llanta. .......................................................................................................... 56

Ilustración 62. Encoder de cuadratura. ............................................................................................. 56

Ilustración 63. Sensores QRD1114 implementqdos. ......................................................................... 56

Ilustración 64. Sensor infrarrojo de herradura. ................................................................................ 56

Ilustración 65. Disco giratorio de madera para el encoder óptico. ................................................... 56

Ilustración 66. Pieza de madera de soporte para el servo. ............................................................... 57

Ilustración 67. Pieza de madera que da soporte al infrarrojo de herradura. ................................... 57

Ilustración 68. Hembra del conversor del eje de la llanta.. .............................................................. 57

Ilustración 69. Macho del cnversor del eje de la lanta. .................................................................... 57

Ilustración 70. Arduino nano. ............................................................................................................ 58

Ilustración 71. Esquemático de la PCB superior. ............................................................................... 63

Ilustración 72. Esquemático de la PCB inferior. ................................................................................ 64

Ilustración 73. PCB superior. ............................................................................................................. 65

Ilustración 74. PCB inferior. ............................................................................................................... 65

Page 5: Desarrollo de un prototipo de inspección y transporte con

5

2. Lista de tablas

Tabla 1. Mecanismos de locomoción utilizados en sistemas biológicos. Tomado de [12]. .............. 17

Tabla 2. Configuraciones de llantas para vehículos rodantes. Tomada de [12]. .............................. 19

Tabla 3. Características físicas de los módulos para auto-ensamblado de sistemas auto-

propulsados. Tomado de [F]. ............................................................................................................ 31

Tabla 4. Clasificación de sensores usados en aplicaciones de robot móviles. Tomado de [12].. ..... 40

Tabla 5. Resumen del consumo de potencia en el robot. ................................................................. 41

Tabla 6. Lista de piezas con su descripción y precio para un solo modulo. ...................................... 58

Tabla 7. Características generales del Robot. ................................................................................... 58

Page 6: Desarrollo de un prototipo de inspección y transporte con

6

3. Resumen

En este documento se pretende presentar una solución a nivel de Hardware al

problema de transporte colectivo de objetos. Muchos trabajos se han centrado en

analizar este problema desde un punto de vista algorítmico. Se han propuesto como

resultado diferentes maneras de realizar esta tarea, pero siempre contando con un

hardware sobre el cual implementar dichos algoritmos, o utilizando software de

simulación especializado. En este proyecto se describe una solución de hardware para

un enjambre de robots capaces de realizar transporte colectivo de objetos. Estos

robots, en principio, corresponden a agentes que, individualmente, no pueden resolver

tareas complicadas pero que, cooperando entre ellos, logran un mejor desempeño

mecánico.

El prototipo fue desarrollado utilizando impresión 3D como principal técnica de

manufactura. Se propuso también una forma alternativa de desplazamiento con el fin

de variar el comúnmente utilizado robot diferencial. Esto, para evaluar el

comportamiento de una cinemática más simple y por ende un costo computacional

menor. Adicionalmente, se propone un posible algoritmo de funcionamiento basado

en una máquina de estados y un conjunto de behaviors, que permiten al robot llevar

a cabo el transporte de objetos colectivo. También, se presentan algunas posibles

soluciones a problemas de comunicación y reconocimiento de áreas. Finalmente, se

realiza un resumen bibliográfico respecto a cada aspecto importante en el algoritmo

de transporte de objetos colectivo.

Page 7: Desarrollo de un prototipo de inspección y transporte con

7

4. Introducción

La robótica de enjambres nace con la idea de reproducir el comportamiento de

diferentes sociedades de animales que se organizan sin jerarquías para cumplir una

tarea difícil. Es decir, un grupo sin líder ni sistema de organización jerárquico logra

alcanzar un objetivo complejo partiendo de tareas sencillas desempeñadas por cada

individuo. Ejemplos de estas sociedades son las hormigas, termitas, peces y aves.

Vito Trianni en su libro Evolutionary Swarm Robotics: Evolving self-organising

Behaviours in Groups of Autonomous Robots [1] expone la trayectoria de los estudios

sobre el comportamiento organizacional aplicado a robots con el fin de introducir los

avances en robótica de enjambres. En este texto el autor define robótica de enjambres

como “un sistema compuesto de un número de robots autónomos que necesitan

interactuar y cooperar para conseguir un objetivo común” [1]. Por otro lado, Sahin en

el artículo Swarm robotics: from sources of inspiration to domains of application [2]

precisa la robótica de enjambres como “una nueva aproximación a la coordinación de

un gran número de robots” y como “el estudio de cómo un gran número de agentes

físicamente incorporados relativamente simples puede ser diseñado de manera que un

comportamiento colectivo deseado emerja de una interacción local entre agentes y

entre agentes y el medio” [2]. En resumen, se puede decir que Sahin propone un

conjunto de criterios para la investigación en robótica de enjambres cuyos sistemas

consisten en: Un gran número de robots individualmente incapaces, homogéneos y

autónomos, con capacidad de sensado y comunicación.

Las anteriores seis características de un sistema de robots enjambre se han

aprovechado para resolver problemas prácticos de ingeniería. Entre estos problemas

se encuentran: búsqueda urbana, rescate en zonas de desastre, vigilancia de grandes

áreas, recolección de recursos naturales y transporte colectivo de elementos, entre

otras. Esto se debe a que diseñar varios robots simples podría ser mejor que diseñar

un solo robot muy complicado. Además, podría ser más barato dependiendo del

número de robots que se utilicen, y más flexible y tolerante a las fallas, pues reduciría

el riesgo de no cumplir el objetivo si hay una falla en algún robot. Más adelante se

presentarán en detalle los prototipos usados para algunas de estas aplicaciones que

son de interés en el marco de este proyecto.

Liu y wu en su libro Multi-Agent robot Systems, presenta como ventajas de la robótica

cooperativa las siguientes propiedades [3]:

- Mayor rango de dominios para aplicaciones.

- Mayor eficiencia.

- Mejor desempeño del sistema.

- Tolerancia a fallas.

- Robustez.

- Menor costo económico.

- Facilidad de desarrollo.

- Acciones y sensado distribuido.

- Paralelismo inherente.

Page 8: Desarrollo de un prototipo de inspección y transporte con

8

- Relación con ciencias sociales.

Así, este trabajo se centrará en utilizar la teoría de robótica de enjambres para

solucionar el problema de transporte de objetos. Como idea general, lo que se quiere

hacer es usar un grupo de robots para llevar objetos de diferentes pesos de un punto

A a un punto B. Como ejemplo ilustrativo, me basaré en una colonia de hormigas.

Una hormiga es suficiente para transportar un trozo pequeño de alimento desde el

punto de encuentro hasta su hogar. Sin embargo, cuando se trata de un elemento más

largo y pesado ¿cómo pueden hacer para desplazarlo? Para ello es necesario la

cooperación entre diferentes agentes. Aunque estos individualmente no pueden llevar

a cabo la tarea, unidos aportan la totalidad de recursos necesarios para lograrlo. Ahora

bien, esta cooperación que acabo de mencionar requiere elementos complejos en

cuanto a la comunicación entre agentes, comunicación con el medio, distribución y

aprovechamiento de recursos, y planeación de la realización de la tarea. Dichos

elementos complejos se salen de la visión de este proyecto y no serán tocados a lo

largo del mismo.

El prototipo que se va a desarrollar se compondrá de tres individuos homogéneos y

simples. Estos individuos deberán ser capaces de inspeccionar la zona y localizar los

objetivos que deben transportar. Esto implica resolver tareas de go-to-goal, obstacle

avoidance y rendez-vous, por sí mismos y a través de mecanismos de comunicación.

Debido a que este trabajo está en el marco de un proyecto de grado para recibir el

título de ingeniero mecánico, solamente se centrará en aspectos mecánicos de los

robots como: geometría, tamaño, dinámica, cinemática y manufactura. Los

algoritmos de reconocimiento de espacios, la comunicación y la automatización serán

planteados para trabajos futuros. Sin embargo, me aseguraré de que los robots

diseñados tengan las herramientas mecánicas suficientes para, en un futuro, cumplir

los objetivos de la aplicación deseada.

Cabe resaltar que este trabajo surge como continuación al proyecto de grado para

ingeniería mecánica de Eduardo García García, titulado “Desarrollo de un robot

prototipo para robótica de enjambres” [4]. En él, García presenta un marco teórico

sobre conceptos relacionados con robótica de enjambres e inteligencia artificial. Así

mismo, propone el diseño de un prototipo que aplica dichos conceptos. Este es un

robot basado en pisos que utiliza sensores de luz y fotorresistencias para captar

objetos cercanos (Ilustración 1). Además, usa un sistema de movimiento por medio

de vibración que le permite al robot desplazarse en una dirección en donde encuentre

más fricción que las demás. Este sistema de movimiento se fabrica con cepillos de

dientes y motores vibradores de celular, elementos que demuestran el bajo costo del

prototipo. Finalmente, para comunicar a los robots entre sí, utiliza señales infrarrojas

en código, que siguen el protocolo Daewoo [4]. A diferencia del trabajo de García,

este proyecto buscará desarrollar un prototipo con una aplicación más compleja a

nivel mecánico. Además, tendrá herramientas electrónicas y procesos de fabricación

más avanzados. Finalmente, buscará ser más pequeño y más fácil de ensamblar y

construir.

Page 9: Desarrollo de un prototipo de inspección y transporte con

9

Ilustración 1. Sistema completo desarrollado por García (2013). Vista frontal y lateral [4].

Este documento está organizado de la siguiente manera: en primer lugar, se mostrará

el trabajo previo realizado en cuanto a la aplicación de robótica de enjambres en

transporte colectivo. Luego se presentará la metodología de diseño que se llevó a cabo

y el desarrollo de cada una de sus partes. Junto a esto, se plantearán algoritmos que

servirán para el futuro cumplimiento de los objetivos de la aplicación, así como ideas

para el trabajo futuro. A continuación, se expondrán los resultados obtenidos al

finalizar el proceso de diseño, es decir, el prototipo y su caracterización, y los

resultados de la implementación y construcción del robot. Finalmente, se plantearán

las conclusiones obtenidas como resultado del proceso.

4.1. Antecedentes

Diferentes trabajos se han llevado a cabo alrededor del transporte de objetos por un

enjambre de robots. La mayoría de dichos trabajos ha tratado de encontrar algoritmos

de transporte de objetos, algoritmos de comunicación y de control de los robots. Una

solución comúnmente utilizada es el de auto-ensamblar varios robots. Groß y Dorigo,

a lo largo de varios trabajos han investigado mecanismos de auto-ensamble como una

posible forma de coordinación a la hora de transportar objetos. En el documento

Towards group transport by swarm robots [5] usan una red neuronal para encontrar

el mejor algoritmo de auto-ensamble en el transporte colectivo de diferentes muestras,

con diferentes distribuciones de peso, geometría y dimensiones. Así, estudian las

posibles formas de conectar robots entre sí para transportar objetos, cuantificando el

número de veces que la red neuronal escoge una configuración y el resultado que cada

una arroja.

Por otro lado, Sina Torabi [6] propone un control para robots enjambre basado en

máquinas de estado y behaviors. En él, cada robot sigue un comportamiento similar

al de las hormigas cuando se trata de transporte individual, pero al necesitar ayuda,

usa un comportamiento llamado recruiting y empieza un algoritmo de transporte

Page 10: Desarrollo de un prototipo de inspección y transporte con

10

colectivo. El diagrama de estados es mostrado en la ilustración 2. Este control es

aplicado a robots modelados en un ambiente de simulación.

Ilustración 2. Estructura completa de estados y comportamientos implementado por Torabi.

Así mismo, Kube y Bonabeau explican cómo las hormigas cooperan en el transporte

colectivo de presas y proponen una solución robótica basada en el comportamiento

de las hormigas [7]. Adicionalmente, introducen el concepto de dos behavior claves

en el transporte de objetos: go-to-goal y obstacle avoidance. Todo esto, es

implementado en módulos robots (ilustración 3), que fueron diseñados para empujar

cajas. Los módulos robot son brevemente descritos en la referencia [7].

Page 11: Desarrollo de un prototipo de inspección y transporte con

11

Ilustración 3. Robot presentado y descrito por Kube y Bonabeau. Tomado de [7].

En la literatura también se encuentran propuestas diferentes para el transporte

colectivo de objetos. Fink et al. proponen un sistema de control basado en behaviors

que permite al robot rodear un elemento y transportarlo mediante enjaulamiento a

través de una pista que posee obstáculos. En su documento explican que es posible

transportar el objeto por este método si se tiene el número suficiente de módulos.

Finalmente, propone un algoritmo para evitar problemas de repartición de recursos

entre los individuos como los es el espacio alrededor del objeto [8].

Page 12: Desarrollo de un prototipo de inspección y transporte con

12

5. Objetivos

5.1. Principal:

El objetivo es tener, al finalizar el proyecto, el diseño, la documentación e

implementación de un prototipo de robot enjambre compuesto por seis individuos que

sean capaces de reconocer objetos sobre una superficie delimitada y transportarlos de

un punto A a un punto B.

5.2. Objetivos secundarios:

Los robots deben ser lo más pequeños posibles.

Todos los robots deben poder comunicar la información obtenida entre sí.

Los robots deben poder ensamblarse para recoger objetos más pesados.

El prototipo debe ser de bajo costo y fácil de manufacturar.

Page 13: Desarrollo de un prototipo de inspección y transporte con

13

6. Proceso de diseño Para realizar el robot me basé en el proceso de diseño presentado por Edward Krick

en su libro Introducción a la ingeniería y al diseño en ingeniería [9]. Adicionalmente,

utilicé conceptos del diseño basado en comportamientos descrito en el libro Mobile

Robots: inspiration to implementation de Jones y Flynn [10]. De esta manera,

propongo el proceso presentado en la ilustración 4.

Ilustración 4. Proceso de diseño.

El primer paso es definir el problema sobre el que se va a trabajar, el cual se encuentra

descrito en la introducción de este documento. Luego se definen las restricciones y

requerimientos del diseño, donde se decide dividir el robot en dos subsistemas:

Mecánico y Electrónico (Ilustración 5).

Page 14: Desarrollo de un prototipo de inspección y transporte con

14

Ilustración 5. Subsistemas del diseño.

El siguiente paso consiste en proponer diferentes soluciones a cada subsistema, de las

cuales se seleccionará la mejor, con base en criterios de complejidad, costos,

funcionalidad y disponibilidad. Una vez seleccionada, se diseña el CAD de esta

solución y se comprueba que es funcional y realizable. Este es un proceso iterativo,

pues durante la verificación de los diseños es posible encontrar modificaciones de la

solución. Incluso, la aprobación del diseño está sujeta a la disponibilidad de piezas en

el mercado. Por ende, el diseño en CAD va ligado a la búsqueda de materiales y piezas

disponibles. Una vez aprobado, se procede a implementar cada uno de los módulos.

Aquí, también se debe llevar un proceso de iteración, pues durante la construcción se

van a encontrar acciones que no se pueden desarrollar, o mecanismos muy difíciles

de ensamblar o manufacturar, de manera que es necesario modificar también el CAD

en este paso. Cuando ya esté superada la implementación de un robot, se procede a

probarlo para verificar que este logra llevar a cabo los objetivos. Finalmente se

manufactura en masa para obtener el prototipo y así, probar dinámicas de enjambre

preestablecidas.

6.1. Subsistemas y Behaviors

En esta sección se revisará el diseño del robot dividido en subsistemas. Esto se hizo

para facilitar la tarea del diseñador y a la vez encaminar la solución a un diseño más

modular. Lo anterior permitirá testear y ensamblar el prototipo más fácilmente. Se

escogieron entonces dos subsistemas: Mecánico y Electrónico. Estos mismos se

dividen en behaviors.

Un behavior se define como una acción simple, bien definida, fácil de manejar,

programar y depurar, que se centra en la ejecución de una sub-tarea de una tarea más

grande [11]. Por ejemplo, en este caso la mecánica del robot le permite navegar dentro

de un área y transportar objetos de un punto a otro. Sin embargo, para lograr esta gran

tarea es necesario ejecutar acciones más pequeñas: desplazarse, transportar objetos,

auto-ensamblarse y evadir obstáculos. Lo mismo sucede con la parte electrónica. Para

conseguir el transporte colectivo de objetos, el robot deberá relacionarse con el medio

Page 15: Desarrollo de un prototipo de inspección y transporte con

15

y con los demás individuos. Para ello, también deberá llevar a cabo tareas específicas

como sensar, comunicarse con otros individuos o planear una trayectoria.

En consecuencia, es posible que en algún momento de su funcionamiento el robot

deba decidir entre dos o más behaviors a ejecutar. Por ejemplo, si el robot llegase a

chocar con una pared y a la vez recibir información de algún individuo que necesita

su ayuda, él deberá decidir si evadir el obstáculo o dar una mano al otro robot. Es por

esto que se deben jerarquizar los behaviors según niveles, como proponen Jones y

Flynn [10]. Para esto organizaré jerárquicamente los behaviors en una máquina de

estados que describirá el comportamiento general del robot y su respuesta a estímulos

del medio.

Ilustración 6. Diagrama de estados para el control de los behaviors en el sistema.

Antes de comenzar a explicar el diagrama cabe resaltar que el robot está sensando

continuamente y que las señales de cambio entre estados corresponden al resultado

del sensado. Con esta imagen se obtiene una idea general de lo que va a realizar el

robot y las acciones que deberá llevar a cabo para lograr su objetivo, además da un

orden jerárquico a los behaviors.

En primer lugar, el robot es encendido con la señal de ON con la cual comenzará a

moverse (estado M, Move). En este momento hay tres opciones que pueden hacer

que el robot cambie su behavior, la primera es que encuentre un objetivo (señal

target), la segunda que encuentre un obstáculo (wall) y la tercera, que soliciten su

ayuda en algún lugar (help). Supongamos que el robot está moviéndose y se encuentra

con un objetivo, lo que activará la señal de target. En este caso el robot cambiará al

estado T (Test) e intentará transportar el objeto. Ahora, si el objeto es muy pesado se

activará la señal heavy y el robot pasará al estado COM (Comunication) donde

comunicará a los demás robots que necesita ayuda. Así, esperará a que llegue algún

Page 16: Desarrollo de un prototipo de inspección y transporte con

16

individuo a ayudarlo, es decir alguien que se auto-ensamble con él para darle más

fuerza. Esto se representa con el estado SA (Self-Assembilng), al que pasa una vez

sienta cerca un individuo y se active la señal Near. Cuando ya está ensamblado

(Assembled) con otro individuo intentarán juntos mover otra vez el objeto (T). Si aún

está muy pesado, se repetirá el procedimiento anterior. Esto se repetirá hasta que un

conjunto de robots pueda mover un objeto, es decir, cuando se active la señal

Admitted. En este caso se pasará al behavior MO (Move Object) que corresponde a

la acción de llevar el objeto, individualmente o en conjunto, hasta un punto deseado,

representado en este caso con la señal Goal. Allí se detendrá el recorrido con la acción

S (Stop) que hace que un individuo se detenga. Sin embargo, si durante la ejecución

el robot se encuentra con un obstáculo que active cualquiera de las señales target, wall

o heavy, cambiará su trayectoria para poder evadir estas perturbaciones. Lo anterior

significa que en primer lugar está su tarea de llevar el objetivo que ya ha empezado a

transportar hasta el punto específico, en segundo lugar, o en un nivel más bajo, la

señal de ayuda, de un muro o de otro objetivo en el camino.

Ahora bien, si cambiamos nuestra suposición a un caso en el cual el robot se encuentre

un obstáculo (señal wall), el estado al que se moverá la máquina de estados es OA

(Obstacle Avoidance). Este representa la acción de rodear un muro o un obstáculo

que no sea un objetivo y se encuentre en el camino. Sin embargo, si rodeando el

obstáculo se encuentra con un objetivo (target) el behavior que tomará lugar será T,

y se repetirá la secuencia de pasos descrita en el párrafo anterior. Por el contrario, si

se activa la señal de ayuda (help) el robot dejará de esquivar el muro y planteará una

trayectoria hasta el punto donde solicitan ayuda. Esto se representa con el estado GTG

(Go-to-Goal) que finaliza una vez sienta cerca el individuo que solicitó su ayuda

(near). En este momento el robot tomará el estado SA (Self-Assembling) y seguirá el

procedimiento del párrafo anterior. Ahora bien, si se encuentra un obstáculo en su

intento por darle una mano a algún individuo, deberá esquivarlo y volver a su

cometido. Esto se representa por la transición de GTG a OA por medio de la señal

target y su retorno al activarse de nuevo la señal help.

6.2. Solución por para cada behavior

En esta sección se describirá detalladamente cada behavior teniendo en cuenta el

diagrama de estados planteado en el numeral anterior. Así, se tendrán todas las

funciones obligatorias para cada acción y se podrá obtener una solución por

subsistema más completa, que cubra todos los requerimientos encontrados.

- Move (M): el objetivo final de este comportamiento es que el robot sea capaz de

inspeccionar un área finita pero indefinida, como una casa o un cultivo. Sin

embargo, esto requiere de una programación más avanzada y de algoritmos

complejos que se alejan del alcance de este proyecto. Por lo tanto, el robot que

diseñaré solo podrá moverse en línea recta y cambiará aleatoriamente su dirección

para intentar recorrer la mayor parte de la pista de pruebas.

Page 17: Desarrollo de un prototipo de inspección y transporte con

17

Ahora bien, se presentan entonces dos problemas fundamentales para lograr la

tarea Move: el primero y más básico es el de desplazarse, ¿Cuál es la forma más

eficiente de hacer que el robot se desplace? ¿Cuál se adapta más a la aplicación

en cuestión? En segundo lugar, está el problema de inspeccionar toda el área

disponible para encontrar los objetos a transportar. Este puede ser abordado desde

diferentes enfoques como map building, área exploration o área coverage.

En primer lugar, nos centraremos en la tarea de hacer desplazar el robot. Muchos

mecanismos utilizados por robots móviles han sido inspirados por la naturaleza.

En la tabla 1 se muestran los mecanismos biológicos de los cuales se han sacado

ideas para el sistema de locomoción de robots móviles. De estas ideas se derivan

soluciones como robots con llantas, patas, orugas, robots que reptan o que se

desplazan en el aire o en el agua.

Tabla 1. Mecanismos de locomoción utilizados en sistemas biológicos. Tomado de [12].

Según Siegwart et al. en su libro Introduction to autonomous mobile robots [12],

el gasto de energía específica en función de la velocidad alcanzada por un robot

es uno o dos órdenes de magnitud más eficiente que el desplazamiento por patas

o reptando (ilustración 7). Por ende, y dada la naturaleza del terreno donde el

robot se va a desplazar, la aplicación a la que se va a exponer y la estabilidad

necesaria, se partirá de un robot con llantas. Siegwart et al. explican que este tipo

de locomoción es fácil de implementar y tienen un balance estable, sin embargo,

atraen más la atención a problemas de tracción, maniobrabilidad y control [12].

Page 18: Desarrollo de un prototipo de inspección y transporte con

18

Ilustración 7. Potencia especifica versus velocidad esperada para diferentes mecanismos de locomoción.

Existen varios tipos de configuraciones de llantas para un robot móvil. Estas son

presentadas por Siegwart et al. en la tabla 2. Para mi aplicación no utilizaré

ninguna de las propuestas en esta tabla. Dado que quiero probar otro tipo de

locomoción diferente y que el robot debe ser lo más pequeño posible, utilizaré

una mezcla de varias configuraciones presentes en la tabla.

Page 19: Desarrollo de un prototipo de inspección y transporte con

19

Tabla 2. Configuraciones de llantas para vehículos rodantes. Tomada de [12].

Page 20: Desarrollo de un prototipo de inspección y transporte con

20

Tabla 2. Configuraciones de llantas para vehículos rodantes. Tomada de [12].

Page 21: Desarrollo de un prototipo de inspección y transporte con

21

Tabla 2. Configuraciones de llantas para vehículos rodantes. Tomada de [12].

La propuesta es, entonces, utilizar una llanta de dirección y tracción en el centro

del robot, rodeada por tres llantas esféricas que proporcionen balance a la

estructura completa. Esta selección afecta tres características fundamentales del

robot: Estabilidad, maniobrabilidad y control. La primera puede ser definida

como la capacidad que tiene un robot para mantenerse de pie y no caerse al suelo.

Para ello, se ha demostrado que se requiere un mínimo de dos llantas, pues existen

robots diferenciales que logran este objetivo. Sin embargo, estos robots requieren

de grandes llantas o de mucho torque para no dar con el suelo.

Convencionalmente se usan al menos tres llantas. En segundo lugar, está la

maniobrabilidad, la cual se refiere a la capacidad de un robot de desplazarse en

cualquier dirección en un plano x-y. Un ejemplo de buena maniobrabilidad son

los robots omnidireccionales, aquellos con cuatro llantas giratorias con tracción y

direccionamiento, y los robots diferenciales. Finalmente, se encuentra el control.

Se dice que esta característica tiene una relación inversa con la maniobrabilidad.

Por ejemplo, los robots omnidireccionales requieren un procesamiento

significativo para transformar velocidades y direcciones del robot en indicaciones

individuales para cada llanta. En general, esta configuración requiere mucho

control para poder llevar a cabo un verdadero desplazamiento omnidireccional.

Page 22: Desarrollo de un prototipo de inspección y transporte con

22

Por ejemplo, sus llantas deben ser capaces de moverse a la misma velocidad para

poder alcanzar direcciones exactas, lo cual es una tarea difícil teniendo en cuenta

las variaciones de manufactura de la llanta y el medio ambiente [12].

En lo que respecta a mi solución, la más grande falencia se da en la estabilidad.

Dado que es una configuración hiperestática de más de tres llantas, el robot

requiere de alguna forma de suspensión flexible para terrenos disparejos [12]. Por

lo que será necesario diseñar una suspensión que le permita sobrepasar desniveles.

En cuanto a maniobrabilidad, el robot puede desplazarse en cualquier dirección,

pues cuenta con un servomotor que modifica directamente el ángulo entre el

marco de referencia del robot y el marco de referencia global. El rango en el cual

el servo pude variar este ángulo es de 0° a 180°. Esto, combinado con un

movimiento de la llanta de tracción hacia atrás y hacia adelante, le permitirá al

robot alcanzar cualquier dirección. Finalmente, en términos de control, la

cinemática de este robot es muy sencilla, pues el actuador modifica y mide

directamente la dirección. Por lo tanto, no es necesario ningún procedimiento

previo para controlar esta variable.

El segundo problema consiste en inspeccionar un área disponible para encontrar

un objeto a ser llevado. Este problema puede atacarse desde dos enfoques

diferentes: El primero se llama map building o area exploration, en el cual un

agente autónomo tiene que escanear un campo desconocido usando sus sensores;

El segundo, llamado area coverage, requiere de un barrido físico de un elemento

en cada punto del área de trabajo. Dado que para nuestra aplicación el robot debe

ser capaz de encontrar el objeto señalado en cualquier lugar del terreno, nos

enfocaremos más en la segunda aproximación.

Uno de los algoritmos más efectivos para este enfoque fue desarrollado por

Gabriely y Rimon, al cual llamaron The Ant-line Spanning Tree Covering

algorithm [13]. Este es un algoritmo online, es decir, un algoritmo en el cual el

robot no tiene conocimiento previo del terreno que va a recorrer. Entonces, usa

sus sensores para calcular su posición en el espacio y reconocer los lugares por

los que ya ha pasado. Normalmente, divide este espacio en sub celdas 2D y

descarta aquellas que están parcialmente cubiertas por un obstáculo (ilustración

8). Ahora bien, igual que las hormigas, el robot dejará una marca o feromona en

los lugares donde ya ha pasado. Luego, calculará un Spanning tree o un árbol

expandible instantáneo que lo hará pasar por celdas donde no hay marca hasta que

complete todo el terreno. Una de las ventajas de este algoritmo es que no necesita

acordarse de cada una de las celdas por las que ha pasado, sino que, interactuando

con el ambiente a través de sensores, podrá saber cuál fue su movimiento

inmediatamente anterior.

Page 23: Desarrollo de un prototipo de inspección y transporte con

23

Ilustración 8. Aproximación de grid 2D del área de trabajo. Tomado de [13]

- Obstacle Avoidance (OA): El problema de evadir obstáculos ha sido ampliamente

abordado a lo largo del tiempo. Desde el desarrollo de robots móviles y su

incursión en aplicaciones de inspección hasta la creación de individuos

autónomos, se han definido diferentes algoritmos para llevar a cabo esta tarea.

Entre dichos algoritmos se encuentran: The bug algorithms, métodos de campos

de fuerza, Vector field Histogram (VHF) y bubble algorithm. A continuación,

daré una breve descripción de cada uno de ellos y, dada la aplicación de mi robot,

haré una comparación para seleccionar el mejor.

The bug algorithm

The bug algorithm es el algoritmo más simple de todos y, sin embargo, el

más ineficiente. En este, el individuo rodea completamente el obstáculo

buscando el punto más cercano al objetivo. Una vez le da una vuelta

completa al obstáculo, va hasta dicho punto otra vez y desvía su

trayectoria de nuevo en curso hacia su objetivo. Este algoritmo utiliza dos

behavior para poder ser realizado. El primero es border following en

donde el robot debe cerciorarse de rodear el obstáculo mientras calcula en

cada punto la distancia hacia el objetivo. El segundo, es go-to-goal, pues

en cada punto traza una trayectoria desde su posición actual hasta el

objetivo. Por lo anterior, se puede notar que este algoritmo siempre

alcanza su punto de destino, así le tome un buen tiempo lograrlo [14] [15].

Page 24: Desarrollo de un prototipo de inspección y transporte con

24

Ilustración 9. The bug Algorithm.

Bug2 Algorithm

Este algoritmo es similar al anteriormente explicado, sin embargo, es más

eficiente. En principio el robot traza una línea recta desde su posición

actual hasta su punto de destino. Luego avanza y cuando encuentre un

obstáculo lo rodea hasta interceptar la línea anteriormente trazada. En este

punto se desvía y continua su trayectoria hasta el objetivo. Si después de

superar un obstáculo se encuentra inmediatamente con otro, el

procedimiento anterior se repite (ilustración 10). La dirección en la cual

rodea el obstáculo es decisión del diseñador. Se observa que en este

algoritmo el robot toma menos tiempo para evadir el obstáculo, sin

embargo, no es un algoritmo óptimo si este se encuentra en un laberinto.

De nuevo, como el bug algorithm, Bug2 no toma en cuenta la cinemática

del robot y es sensible al ruido en los sensores. Por ende, podría ser muy

difícil para el robot bordear el objeto y él se podría confundir evadiendo

obstáculos falsos [14] [15].

Ilustración 10. Bug2 algorithm.

Page 25: Desarrollo de un prototipo de inspección y transporte con

25

Potential Field algorithm

Este algoritmo representa el robot como una partícula dentro de un campo

de potencial generado por el objetivo y los obstáculos. El potencial

repulsivo está dado por los obstáculos y el potencial de atracción por el

objetivo. Entonces, el robot es sumergido en dichos campos de potencial

quienes lo mueven de acuerdo a las fuerzas generadas por los gradientes

del mismo.

Esto puede ser interpretado como campos de energía potencial, en donde

los obstáculos representas pendientes positivas que aumentan a medida

que el robot se acerque al obstáculo y que se vuelven negativas por acción

del objetivo. En este caso el robot es considerado como una esfera sin

fricción, que va cuesta abajo para acercarse al objetivo. Sin embargo, este

método tiene un problema y es los mínimos locales. Es posible que la

esfera caiga en un punto que no le permita acercarse al objetivo ni alejarse

de los obstáculos.

María Isabel Ribeiro [15] propone una representación matemática para

ambos tipos de potenciales, gradientes y fuerzas. El campo de potencial

artificial generado sobre el robot es la suma de ambos potenciales, el de

atracción del punto de llegada y los de repulsión de los obstáculos.

𝑈(𝑞) = 𝑈𝑎𝑡𝑡(𝑞) + ∑ 𝑈𝑟𝑒𝑝(𝑞)

𝑖

Donde i representa los obstáculos que estén cerca y que afecten el robot.

También define el potencial de atracción como cero en el punto de destino

y muy grande entre más se aleje el robot de este punto. Así mismo, el

potencial de repulsión es infinito en el centro de los obstáculos y muy

pequeño a medida que el robot se aleja de ellos. Teniendo en cuenta

entonces que los potenciales son diferenciables y que el gradiente de ellos

es la dirección en la que aumenta más rápido su magnitud, Ribeiro define

la fuerza que actúa sobre el robot como

𝐹(𝑞) = 𝐹𝑎𝑡𝑡(𝑞) + 𝐹𝑟𝑒𝑝(𝑞) = −∇𝑈𝑎𝑡𝑡(𝑞) − ∇𝑈𝑟𝑒𝑝(𝑞)

Ribeiro escoge para el potencial de atracción una función parabólica

estándar que aumenta cuadráticamente con la distancia entre el robot y el

punto de destino. En cambio, para el potencial de repulsión, se debe tener

en cuenta que el potencial es infinito en el obstáculo y disminuye con la

distancia entre el robot y el obstáculo. Además, hay un rango en el cual el

obstáculo ya no debería afectar el desplazamiento del robot, por lo que se

debe plantear una distancia de threshold en donde actúa la fuerza

producida por el campo.

Page 26: Desarrollo de un prototipo de inspección y transporte con

26

VHF

The vector field histogram es un método descrito por primera vez por

Borenstein y Korem [15]. Consiste en crear un histograma polar de la

lectura más reciente de muchos sensores. En primer lugar, el robot crea un

mapa 2D con la lectura de los sensores sobre donde podrían estar los

obstáculos. Luego, convierte este mapa 2D en un histograma polar donde

el eje x es la dirección del robot y la magnitud del eje y es la probabilidad

de que haya un obstáculo en dicha dirección. Así, el robot identifica unas

regiones del histograma, donde hay poca probabilidad, como valles.

Entonces selecciona los valles más amplios del histograma y a través de

una función de costo genera la nueva dirección del robot y la velocidad a

la cual este se va a desplazar. Esta función de costo está basada en la

alineación del robot y el obstáculo, la diferencia entre la dirección del

robot y la del destino, y la diferencia entre la anterior dirección tomada

por el robot y la nueva [15].

Como ventajas, este método es más robusto frente a ruido en el sensor,

tiene en cuenta la cinemática del robot y elimina la inestabilidad generada

en el método de campos de potencial. Sin embargo, también posee

desventajas como su costo computacional y su difícil de implementación

en microcontroladores [14].

Bubble algorithm

Esta solución es propuesta por Susnea, Minzu y Vasiliu [14]. Yo le

atribuyo el nombre bubble algorithm pues se asemeja a un método de path

planning llamado bubble band technique.

El robot es un vehículo que contiene un anillo de sensores ultrasónicos

equidistantes que cubren un Angulo de 180°. Con este se genera una

burbuja alrededor del robot que determina un área de sensibilidad. Cuando

la burbuja del robot choca contra un obstáculo se genera un histograma

polar con las direcciones en donde hay y no hay obstáculos. Así, el robot

cambia su dirección hacia una en la que haya menos densidad de

obstáculos. Este continua su recorrido hasta encontrar otro obstáculo o

hasta que el objetivo se haga visible. Es decir, hasta que en el histograma

polar no haya obstáculos en la dirección en la que se encuentra el punto

de destino. De ser así, el robot cambia su dirección a aquella que lo lleva

al objetivo y continua su trayectoria directamente hacia él (Ilustración 11).

Page 27: Desarrollo de un prototipo de inspección y transporte con

27

Ilustración 11. Proceso de rebote de la burbuja para el bubble algorithm. Tomado de [B].

Propuesta

Para mi propuesta tuve en cuenta que el objetivo de este proyecto es

puramente mecánico, por lo que seleccioné un algoritmo que no fuera tan

complicado de programar en un sistema embebido pero que permitiera

probar las habilidades mecánicas del robot. Por ende, tomé como base el

bug2 algorithm, pero lo modifiqué para que fuera más eficiente. Entonces,

dado que el robot se opera a través de behaviors en principio este se

moverá directamente hacia el punto de destino siguiendo el behavior go

to goal. Una vez los sensores sientan un obstáculo, el robot cambiara de

behavior a border follow. Durante este procedimiento evaluará en cada

posición la dirección a la cual está el objetivo, si en esta dirección aún hay

un obstáculo continuara con el behavior border follow, si no, cambiara de

behavior a go to goal y trazará de nuevo una línea recta desde su posición

actual hasta el objetivo.

Page 28: Desarrollo de un prototipo de inspección y transporte con

28

Ilustración 12. Algoritmo propuesto para este proyecto.

Ahora bien, si el robot encuentra un obstáculo tal que al rodearlo hacia

una dirección lo aleje cada vez más del objetivo, este dará media vuelta y

tomara la dirección contraria de bordeado del obstáculo. Así hasta

encontrar una salida. Si hacia la otra dirección tampoco logra encontrar un

camino sin obstáculos hacia el objetivo, declara ese obstáculo como pared.

Este algoritmo requiere un poco más de costo computacional que el Bug2,

sin embargo, es más eficiente que este. Por otro lado, tiene como

desventajas que no tiene en cuenta la geometría del robot ni su cinemática.

- Go-To-Goal (GTG): Este comportamiento permite al robot llegar desde la

posición actual hasta el lugar donde se solicita la ayuda. Para esto necesita tener

conocimiento del lugar donde está y del lugar a donde hay que llegar. Esto

significa que previamente el individuo que necesita ayuda debió haberle

comunicado al ayudante su posición actual. De esta manera el robot planteará una

trayectoria en línea recta hasta el objetivo.

Para saber la posición del robot este tendrá sensores internos que le permitirán

calcular su posición relativa al su punto de partida. Para que todos los robots estén

en un mismo mapa, se requiere que todos partan del mismo punto de partida. Esta

técnica se llama odometria.

Una vez se conoce la posición del robot y la posición de destino, el robot calculara

la dirección relativa a la que se encuentra el uno del otro. Con esta dirección y

dada la naturaleza de la cinemática del robot, moverá su actuador para ubicar la

dirección de la llanta hacia el destino y avanzará hasta alcanzar el punto final.

- Test (T): A lo largo del tiempo se han planteado diferentes algoritmos para el

transporte colectivo de objetos. Según Torabi [6] existen tres grandes estrategias

para transportar objetos: Empujar, halar y enjaular. Con este comportamiento se

pretende intentar transportar el objeto desde el punto donde fue encontrado hasta

Page 29: Desarrollo de un prototipo de inspección y transporte con

29

el punto de partida de los robots. Se propone como test debido a que en principio

el robot intentará llevarse el objeto, pero si este no lo logra, deberá proceder a un

comportamiento colectivo para llevarlo a cabo.

En principio el robot va a saber que lo que acaba de encontrar es un obstáculo.

No se profundizará en técnicas para reconocimiento de objetos específicos pues

se sale de la visión de este proyecto. Una vez el robot descubre el objeto lo rodeara

para saber qué tan grande es este. Mientras lo rodea, tomara muestras de las

coordenadas de sus fronteras con el fin de almacenar en memoria la posición del

mismo.

El siguiente paso consiste en intentar mover el objeto. Para ello se debe definir en

primer lugar el tipo de transporte que más se adapta a la aplicación. Por un lado,

tenemos la estrategia empujar, cuyos problemas son radican en el estancamiento

del objeto, la coordinación del movimiento hacia el punto de destino y el efecto

de la geometría que será empujada [6]. En segundo lugar, está la estrategia halar.

Esta estrategia, sin embargo, requiere de mecanismos físicos para conectar el

robot con el objeto, los cuales suelen ser complejos y difíciles de manufacturar.

Finalmente, esta enjaular, que corresponde a encerrar el objeto con robots

ensamblados entre sí, que lo empujaran y halaran hasta el punto de destino. Lo

anterior se puede realizar solo si se tiene información previa del objeto y si los

robots poseen mecanismos para conectarse entre sí.

Se escogió que el robot empujara el objeto desde donde lo encuentra hasta el

punto de destino. Esto debido a que es posible empujar cualquier geometría y a

que el robot no requiere de mecanismos extras que compliquen su manufactura.

Se escogió este camino pensando en que el robot debía ser lo más simple posible

y solo la unión de varios robots harían más fuerte y complejo el sistema. Además,

esta estrategia permite que varios robots se conecten entre si más fácilmente.

Ahora bien, pueden pasar dos cosas después de intentar empujar el objeto: Si por

un lado el robot logra desplazarse, el sistema pasará al comportamiento move

object; en caso de que no lo logre, se comunicara con sus compañeros para

solicitarles ayuda. La forma de saber si el robot fue capaz o no de desplazar el

objeto es mediante el nivel de corriente demandado por el motor. Para esto, se

midió el nivel límite de corriente que el motor puede pedir al llevar el objeto más

pesado posible. Entonces, si el motor pide más corriente que este límite cuando

no se trate de un pico de encendido, significara que el robot está siendo forzado a

llevar un objeto más pesado que su límite. Más adelante se presentarán los

resultados de las pruebas para los pesos imite.

- Communication (COM): En este trabajo no se utilizan protocolos de

comunicación para conectar los robots entre sí. Sin embargo, se propone utilizar

el protocolo zigbee IEEE 802.15.4 y tarjetas xbee que permitan el enmallado de

la comunicación.

Page 30: Desarrollo de un prototipo de inspección y transporte con

30

- Self-Assembling (SA): Este comportamiento permite a los robots conectarse

entre sí para volverse un sistema más complejo y más fuerte a la hora de

transportar objetos. Diferentes mecanismos de auto-ensamble entre robots

móviles se han probado a lo largo de las investigaciones sobre swarm robotics.

Fukuda et al. Proponen un robot llamado CEBOT que tiene tres versiones: dos

con un actuador con memoria de forma que sirve como cerradura para atrapar una

ranura en un pin lateral del otro robot (Ilustración 13.a), y uno con una pinza

mecánica para hacer la función de auto-ensamble [16]. Otros conceptos robóticos

usan también este mecanismo de cerradura y ranura, llamada usualmente latch to

catch, como el CONRO o el Polybot [17]. Estas conexiones pueden ser

hermafroditas como en el Polybot o conexiones macho-hembra como en el

CONRO [G]. Así mismo, el sistema de pinzas es también usado por robots como

Swarm-bot, super-mecano Colony o el sistema de reparación colectiva de

Bererton y Kohsla [17]. Otro sistema de auto-ensamble utilizado corresponde a la

conexión de módulos por imanes. El MTRAN desarrollado por Kamimura et al.

Está basado en imanes permanentes combinados con resortes que permiten la

desconexión de los módulos (ilustración 13.d). Finalmente, existen también

mecanismos más complejos de auto-ensamble como conexiones macho-hembra

de geometrías complicadas, los cuales fueron aplicados en modelos como I-CES

y el robot Molécula [18].

Mondada et al. Resumen dichos mecanismos con la ilustración 13.

Ilustración 13. Resumen de los cuatro tipos principales de auto-ensamble de robots presentada por Mondada et

al.

Roderich Groß en su tesis doctoral Self-assembling Robots [17] presenta un

resumen más detallado de los mecanismos de unión (tabla 5).

Page 31: Desarrollo de un prototipo de inspección y transporte con

31

Tabla 3. Características físicas de los módulos para auto-ensamblado de sistemas auto-propulsados.

Tomado de [F].

Los mecanismos de encaje como los presentados en la ilustración 13 a, b y c,

requieren de una coordinación y orientación muy cuidadosa a la hora de encajar

las geometrías de enganche. Adicionalmente, aquellos mecanismos con cerradura

móvil requerirán también de piezas motorizadas para completar el auto-

ensamblado, y aquellas con figuras complicadas necesitarán de una manufactura

especializada y compleja. Por lo anterior, se hace evidente el uso de imanes para

el auto-ensamble como el sistema más simple de implementar. Sin embargo, este

mecanismo presenta debilidades a la hora de soportar fuerzas de cizalla. Incluso

Page 32: Desarrollo de un prototipo de inspección y transporte con

32

con fuerzas perpendiculares, debido a la poca disponibilidad de espacio y, por

ende, el pequeño tamaño del imán, podría presentarse una separación inesperada

de los módulos.

- Move object (MO): Con este comportamiento el robot podrá mover objetos desde

un punto a otro. En este trabajo no se estudiará algoritmos de transporte de objeto

tanto individual como colectivamente. Solo se probará que la mecánica del robot

es suficiente para transportar objetos y que a través del auto-ensamblado su

desempeño realizando esta tarea mejora. Para esto se evalúa entonces el

desplazamiento de objetos por un solo robot, el desplazamiento con un enjambre

de dos individuos y luego de tres. Para cada configura se mide el peso máximo

que puede ser desplazado.

- Planning (PL): Este comportamiento no fue implementado. Hace referencia a la

etapa en la cual el robot o el enjambre recalcula la trayectoria que debe seguir

mientras empuja el objeto para llegar al punto de destino. Lo anterior en respuesta

a obstáculos y paredes presentes en el mapa, que se irán conociendo a medida que

el robot avance a través del mismo.

- Stop (S): Una vez alcanzado el punto de destino, el robot pasa a un estado de

detención en el cual espera la próxima orden. Ahora bien, si aún no ha completado

la recolección completa de objetos, volverá a partir en busca de algo que traer a

su punto de origen.

6.3. Solución por subsistema La anterior explicación representa los algoritmos que utilizará el robot para llevar a

cabo cada uno de los behaviors a los que se debe enfrentar. Estas acciones, a su vez,

exhiben soluciones parciales a diferentes problemas relacionados con el prototipo

final. A continuación, se presenta un resumen de las dichas soluciones rescatadas de

los algoritmos escogidos para los behaviors:

Forma de movimiento

Para la forma de movimiento se escogió un robot con tres ruedas esféricas que le

dieran soporte y que no impusieran ninguna restricción a su modelo cinemático, y

una rueda corriente con tracción que permitiera el movimiento hacia atrás o adelante

del robot. Adicionalmente, esta rueda con tracción está conectada en su parte superior

a un servo motor que fijará directamente su dirección. Como se muestra en la

ilustración 14.b, las ruedas esféricas están ubicadas simétricamente con respecto al

eje vertical del robot, es decir, espaciadas entre ellas 120° y a la misma distancia del

punto central. Por otro lado, la rueda de tracción y dirección tiene el punto de contacto

con el suelo alineado con el eje vertical del robot. Esto permitirá que la dirección

seleccionada por el servomotor sea la misma dirección a la que el robot se moverá.

Page 33: Desarrollo de un prototipo de inspección y transporte con

33

Ilustración 14. a) Sistema de tracción del robot. b) Disposición de las ruedas en el robot.

Por otro lado, dado que se quería reducir el tamaño del robot, se decidió ubicar el

motor de tracción paralelo al eje vertical del mismo, de manera que su longitud no

afectara el ancho de la estructura (ilustracion 15). Por ende, se hizo necesario un

sistema de transmisión de potencia que cambiara la dirección de movimiento. Para

esto, se utilizaron engranajes biselados con relación 1:0.75. La relación de

dimensiones fue determinada por el espacio disponible para situar las piezas dado que

se quería un robot con las dimensiones mas pequeñas posibles. Como se observa en

la ilustración 14.a el servomotor esta ubicado de manera que el punto de contacto de

la llanta con el suelo este en el centro del plano horizontal del robot. Además, el

motorreductor está pegado lo mas cerca posible al servomotor, de forma que se

redujera el tamano del robot pero que fuera posible encontrar una relación de

reducción que emparejara el eje del reductor con el eje de giro de la llanta.

Ilustración 15. Tamaño de un posible modulo si el motor se ubicaba horizontalmente conectado directamente a

la llanta.

Sistema de suspension

Dado que es un robot con más de 2 llantas, como propone Siegwart et. al en su libro,

se adecuó un sistema de suspensión que permitiría al robot superar desniveles de hasta

5 mm. Para ello usé un sistema de resortes sobre cada llanta esférica, de manera que,

si una de ellas era levantada por un desnivel, el resorte pudiera comprimirse cinco

milímetros sin que la llanta de tracción y dirección dejara el suelo. Para esta solución

era necesario tener en cuenta la rigidez del resorte, pues si se escogía un resorte muy

Page 34: Desarrollo de un prototipo de inspección y transporte con

34

débil se aumentaba la posibilidad de deslizamiento de la llanta de tracción. Si, al

contrario, se usaba un resorte muy fuerte, se perdía estabilidad y la función de las tres

llantas esféricas era nula. Como resultado, los resortes estaban comprimidos 2 mm

mientras el robot se desplazaba por terreno plano, con el fin de presionar la llanta

contra el suelo, y se dejaban comprimir 5 mm más cuando un desnivel en el terreno

se presentaba.

Sistema de auto-ensamblado

Como se plantea en la sección anterior, la forma más viable para auto-ensamble en la

aplicación del robot es a través de imanes. Sin embargo, como ya se dijo, este

mecanismo presenta debilidades contra la fuerza de cizalla y altas fuerzas

perpendiculares. Por ende, decidí colocar cuatro imanes en cada cara, donde cada

esquina tuviera una polaridad diferente a sus vecinas. Entonces la configuración

queda polo positivo en la esquina superior derecha, negativo en la superior izquierda,

positivo en la inferior izquierda y negativo en la inferior derecha (ilustración 16). Esto

también se hizo para conservar la simetría de la cara, de manera que cualquier otra

cara de otro modulo pudiera conectarse sin problema. Una de las ventajas de los

imanes es que el robot no debe hacer movimientos precisos para conectarse a otro

robot, pues acercarse a su cara ya permite que las fuerzas magnéticas de atracción

generen el ensamble. Se decidió poner 4 imanes dado que permitiría una buena

conexión aun cuando la zona de ensamble del robot sufra la acción de un momento

par alrededor de su eje vertical

Ilustración 16. Disposición de la polaridad de los imanes.

Por otro lado, dada la geometría hexagonal del robot, en las uniones diagonales la

fuerza se repartirá en componentes perpendiculares y paralelas a la cara del robot. Lo

cual creara la posibilidad de separar el ensamblaje si las fuerzas paralelas son altas.

Por ende, a la geometría hexagonal de cada robot le agregué una pestaña de manera

simétrica, otra vez con el fin de conectar cualquier cara de los robots entre sí. Esta

pestaña no es más que un cambio de nivel suave, con perfil cilíndrico, sobre la

superficie de cada cara (ilustración 18). Esta variación suave del perfil de la cara se

hace, además, para permitir el fácil ensamblado de dos módulos. De nuevo, los robots

solo deberán acercarse uno al otro para ser atraídos por los imanes y desplazados por

el desnivel suave.

Page 35: Desarrollo de un prototipo de inspección y transporte con

35

Ilustración 17. Cambio de sección en la cara de los robots.

Forma de transportar objetos

Como conclusión de la sección anterior se tiene que la forma más sencilla de

transportar objetos es empujándolos. Como se muestra en la ilustración 19.a los

robots pueden ubicarse en configuración de panal de abeja, uno tras el otro, para

empujar su objetivo pesado. Así, se volverán una sola estructura conectada que

empujara más fuerte a su objetivo hasta poder moverlo. Igualmente, y a pesar de que

el mecanismo no fue diseñado para eso, se plantea la posibilidad de transportar el

objeto por enjaulamiento. Esto podría ayudar en caso de que sea necesario cambiar

súbitamente de dirección de desplazamiento, ya que todos los robots no cambiarían

de posición para poder cambiar de dirección, sino que la jaula completa cambiaria de

dirección haciendo que los módulos que más ejercen fuerza cambien (ilustración

19.b).

Ilustración 18. a) transporte colectivo en formacion colmena por empuje. b) transporte colectivo por

enjaulamiento.

Page 36: Desarrollo de un prototipo de inspección y transporte con

36

Geometría

Para escoger la geometría se tuvieron en cuenta cuatro parámetros: los módulos del

enjambre “debían ser simétricos de manera que se pudieran empaquetar densamente,

es decir que los espacios entre módulos adyacentes fueran minimizados” [19]; debía

ser posible unir un máximo de robots entre sí; las fuerzas aplicadas por los robots de

apoyo debían ser suficientemente aprovechadas; los costos del robot no debían

aumentarse drásticamente. Si se piensa entonces en las posibles geometrías que se

pueden aplicar se tiene como opción un circulo, un cuadrilátero, un triángulo, un

polígono de orden superior o una geometría especifica. Sin embargo, descartaré a

priori los polígonos de más de 6 lados, pues estos implican un mayor gasto en

sensores, material de impresión 3D y mecanismo de auto-ensamble. También,

descarté la opción de una geometría especifica diferente de una figura geométrica

estándar pues quería hacer los robots lo más simples y homogéneos posibles. Ahora

bien, con respecto al primer parámetro, en la ilustración 20 se observan las diferentes

configuraciones de ensambles que se pueden lograr con módulos de las diferentes

geometrías listadas.

Ilustración 19. Configuraciones de uniones de varias figuras geométricas.

Aquí se observa que el rectángulo, el triángulo y el hexágono son las únicas que están

densamente empaquetadas en un espacio, por lo que se descartara el circulo y el

pentágono. Ahora bien, si observamos los demás parámetros, el cuadrado solo

permite aprovechar la fuerza de dos módulos de apoyo en la parte trasera y el

triángulo requiere muchas más acciones de control para poder ejercer fuerzas

efectivas sobre los robots que necesitan apoyo. En conclusión, el hexágono es la

geometría que se adaptaba mejor a los requerimientos de geometría de los robots para

la aplicación en cuestión.

Sensores

Para lograr llevar a cabo la tarea de obstacle avoidance, es necesario que el robot se

comunique con el medio ambiente con el fin de saber dónde se encuentran los

obstáculos. Esto se hace tomando mediciones de varios sensores y sacando

información importante de ellas. Siegwart et al. clasifica los tipos de sensores para

robots móviles en dos grandes grupos funcionales: de acuerdo a la posición de la

variable que midan y de acuerdo a la forma de medirlo. En el primer gran grupo

funcional se encuentran los sensores proprioreceptive y exteroreceptive. Un sensor

proprioreceptive “mide valores internos en el sistema, por ejemplo, velocidad del

motor, carga sobre las llantas, ángulos de las uniones de un brazo robot, y voltaje en

Page 37: Desarrollo de un prototipo de inspección y transporte con

37

la batería.” [12]. Un sensor exteroreceptive “adquiere información del ambiente cerca

al robot, por ejemplo, medición de distancias, intensidad de la luz, y amplitud del

sonido” [12]. El segundo grupo funcional está divido en sensores activos y pasivos.

Un sensor pasivo es aquel que “mide la energía del medio ambiente entrando al

sensor” por ejemplo, sensores de temperatura, micrófonos y cámaras CCD/CMOS

[12]. Un sensor activo, al contrario, “emite energía al ambiente, luego mide la

reacción ambiental” [12]. Según los autores, este tipo de sensores alcanzan un mejor

desempeño dada su controlada interacción con el medio ambiente, sin embargo,

introducen muchos riesgos. Por ejemplo, la energía emitida puede modificar las

características que el sensor intenta medir, también puede sufrir de interferencia por

otros sensores o por las mismas señales que intenta medir. Ejemplos de estos sensores

son encoders de cuadratura, sensores ultrasónicos y buscadores de rango laser.

Así, los autores presentan la tabla 4, donde exponen los sensores más usados para

aplicaciones de robots móviles, organizados ascendentemente en orden de

complejidad y descendentemente en orden de madurez tecnológica. Dada la

naturaleza simple e “incapaz” del robot que estoy diseñando, seleccionare solamente

sensores de los dos primeros usos típicos presentados en la tabla: Sensores táctiles y

sensores llanta/motor. Del primer tipo usare un optical barrier, es decir un sensor

óptico que le permita a cada módulo detectar objetos próximos. Para esto ubicaré un

sensor infrarrojo en cada una de las caras de la estructura hexagonal, de manera que

le permita tener varias aproximaciones de qué objeto se encuentra delante de él. Estos

se ubicarán en la parte más baja de la carcasa para poder detectar obstáculos de baja

altura que impidan la movilidad del robot. Serán el único contacto que tendrá el robot

con el medio ambiente.

Ilustración 20. Sensores infrarrojos ubicados en las caras del robot.

Del segundo tipo de sensores usaré un encoder incremental óptico y un encoder de

cuadratura. El encoder óptico se usará para obtener una segunda medición de la

dirección de la llanta relativa a la dirección del cuerpo del robot. En principio el

servomotor que modifica directamente esta variable mide y tiene en cuenta cuantos

pasos o cuantos grados cambió su dirección de la dirección original. Sin embargo,

dado el deslizamiento de la llanta y los errores de manufactura del robot, será

necesario otro sensor para comparar y hacer un loop de control que disminuya este

error. Un encoder óptico es básicamente “un interruptor mecánico de luz que produce

Page 38: Desarrollo de un prototipo de inspección y transporte con

38

un cierto número de pulsos de onda sinusoidal o cuadradas, para cada revolución del

motor” [12]. Este consiste de un sensor infrarrojo con una fuente de luz y un receptor

y de un obstáculo en forma de disco con muescas que aparecen y desaparecen según

la posición angular del eje del motor.

Ilustración 21. Encoder óptico incremental utilizado.

Por otro lado, el encoder de cuadratura se usará para medir el avance angular de la

llanta y, junto con la medicion de la direccion, calcular la posicion actual del robot en

el marco de referencia del mismo. Se decidió usar un encoder de cuadratura pues es

un encoder absoluto, es decir, tiene en cuenta la direccion en la que gira la llanta.

Además, encontré un dispositivo en el mercado que se adaptaba a pequeños ejes de

llantas para medir su avance o su retroceso. Este corresponde al dispositivo utilizado

en el scroll de un mouse para avanzar o retroceder dentro de una pagina web oarchivo

en el computador (ilustracion 23). Este encoder de cuadratura consta de tres pines y

dos contactos de cobre conectados a un agujero giratorio. El agujero giratorio es

mecanicamente desplazado por el eje del rotor, haciendo que los contactos de cobre

conecten los dos pines laterales con el central en todas las configuraciones posibles.

Es decir, si llamamos A al pin izquierdo, C al central y B al derecho, obtendremos

conexiones AC, BC, ABC y ambos pines laterales desconectados de C.

Ilustración 22. Encoder rotatorio de cuadratura. Utilizado normalmente en el sistema de scroll de un mouse.

Entonces, para utilizar este sensor se propone el circuito presentado en la ilustracion

24. De manera que cuando haya contacto entre un pin y el pin central conectado a

Page 39: Desarrollo de un prototipo de inspección y transporte con

39

tierra, la lectura digital sera 0 y cuando no la lectura digital sera 5V. En conclusion,

el sistema realizará lecturas que, en binario, corresponden a las siguientes parejas de

bits: 01, 10, 00 y 11. Donde el primer bit es la conexión del pin A y el segundo la

conexión del pin B.

Ilustración 23. Circuito para la lectura de los pines del encoder de cuadratura de un mouse.

Ahora bien ¿Cómo puede este encoder saber la posicion actual del robot y la direccion

a la cual se desplaza? Para esto, internamente el encoder esta configurado de manera

que las pulsos de onda que produce cada pin estan desfasados 90° uno del otro. La

ilustracion 25 muestra la forma de onda que tendrian los pulsos generados por este

encoder y la tabla de verdad que produciria. Por ende, si el robot avanza hacia

adelante, la senal esperada es 10, 11, 01, 00 y si el robot avanza hacia atrás, la

respuesta obtenida sera 10, 00, 01, 11. Ahora bien, cada lectura de estos dos bits

corresponde a un paso del encoder, el cual tiene un angulo relacionado en su

sensibilidad. Para calcular entonces la posicion angular del eje, basta con con contar

el numero de pasos avanzados y multiplicarlos por la sensibilidad o el angulo

relacionado a cada paso del encoder.

Ilustración 24. Encoder óptico de cuadratura. La relación de fases entre los trenes de pulso del canal A y el B son

usados para determinar la dirección de rotación. Tomado de [4].

Page 40: Desarrollo de un prototipo de inspección y transporte con

40

Tabla 4. Clasificación de sensores usados en aplicaciones de robot móviles. Tomado de [12]..

Circuitos

En resumen, los elementos electrónicos utilizados durante el proyecto fueron: 6

sensores QRD1114, un encoder de cuadratura, un encoder óptico de herradura, 3

baterías de celular BL-5C, un puente H y un microcontrolador. Los sensores

QRD1114 son sensores ópticos del tipo exteroreceptive que poseen un emisor de luz

infrarroja y un receptor. Son los más baratos, pequeños y funcionales que pude

conseguir disponibles en el mercado. Sus características se explicarán más adelante

en la lista detallada de componentes. El encoder de cuadratura corresponde al ya

mencionado dispositivo que se encuentra en los mouses para medir el avance del

scroll. El encoder de herradura es una mezcla de los dos dispositivos anteriores, pues

mide la posición y velocidad angular con el encoder de cuadratura, pero usando una

configuración de emisor-receptor infrarrojos. Los circuitos utilizados para hacer

funcionar cada uno de estos módulos se muestran en las ilustraciones 26 y 27.

Page 41: Desarrollo de un prototipo de inspección y transporte con

41

Ilustración 25. esquemáticos utilizados para la conexión del sensor QRD 1114 (a) y del encoder de cuadratura

(b).

Ilustración 26. Configuración utilizada para el encoder de herradura TCST1103. Tomado de [J].

Por otro lado, uno de los problemas grandes a solucionar en cuanto a la parte

electrónica del robot era el de la fuente de potencia, pues se debía encontrar una

batería que respondiera a las demandas de potencia de los circuitos y los motores,

pero que no aumentara el peso y las dimensiones del robot. En la tabla 5 se presenta

una aproximación a la potencia necesaria para hacer funcionar todos los elementos

electrónicos al mismo tiempo.

Componente Potencia consumida [mW]

Reductor 488

Servo 400

lm298n 350

Sensores y encoder 700

Arduino 315

Total 2253 Tabla 5. Resumen del consumo de potencia en el robot.

Se observa que se requieren 2.2W para encender todo el sistema, ahora, se supondrá

un tiempo de autonomía del robot de cinco horas. Por lo tanto, el sistema requerirá

una energía de 11 Wh para lograr esto. En términos de baterías, encontré dos opciones

Page 42: Desarrollo de un prototipo de inspección y transporte con

42

para suplir esta necesidad: por un lado, se puede usar una batería LiPo de 11.1V y

1000mAh; por el otro, la cual es una opción poco convencional, descubrí que podría

utilizar baterías de celular recicladas, en total tres, cada una con 3.7V y 1020mAh. La

primera solución entrega 11.1Wh y la segunda 11.32 Wh. Si fijamos nuestra atención

en las ventajas y desventajas de cada solución, veremos que, por un lado, la batería

LiPo es más segura, pero más pesada y as difícil de ubicar dentro del robot. Ella tiene

dimensiones de 74 x 34 x 41 mm, lo cual está cerca del tamaño de la carcasa del robot.

Por otro lado, las baterías de celular requieren un poco más de hardware para poder

funcionar, es decir, requiere de un sistema lector para aprovechar su energía y de una

conexión en serie de las mismas para llegar a 11.1V. Sin embargo, son mucho más

pequeñas y se adaptan al tamaño del robot: cada una tiene dimensiones de 53 x 34 x

18 mm. Por esta razón, preferí utilizar baterías de celular recicladas BL-5C y adaptar

sus respectivos lectores a la carcasa del robot. El circuito utilizado para conectar las

baterías se muestra en la ilustración 28. Se observa que hay un master switch que

enciende y apaga el robot por completo.

Ilustración 27. Conexión de las baterías BL-5C dentro del robot.

Otro elemento electrónico utilizado fue un puente H L298n para regular la dirección

de movimiento y la velocidad del motor. El circuito utilizado se muestra en la

ilustración 29.

Ilustración 28. Esquemático de las conexiones del L298n.

Page 43: Desarrollo de un prototipo de inspección y transporte con

43

Finalmente, es necesario tener un procesador para llevar a cabo las estrategias de

control, el diagrama de estados y los comportamientos en cada estado. Dado que este

proyecto tiene un enfoque más mecánico, se decidió utilizar un Arduino para suplir

estas funciones. Sin embargo, se plantea la posibilidad de en un futuro utilizar tarjetas

xbee para la comunicación entre agentes e incluso módulos Zigbee como el ATZB

24A2. Las conexiones del Arduino se muestran en la ilustración 30, el Arduino

utilizado es un Arduino nano. En los anexos se adjuntan los esquemáticos de todos

los circuitos juntos.

Ilustración 29. Esquemático de las conexiones del Arduino nano.

Ahora, dada la cantidad de circuitos que se deben implementar y el poco espacio

disponible, fue necesario separar las conexiones en dos PCB. Además, las geometrías

del robot, los lugares donde irían conectados los actuadores y los espacios para las

conexiones entre piezas como la carcasa y la tapa o las ruedas esféricas, limitaban

también la posibilidad de hacer una sola tarjeta electrónica para todo el modulo. En

la ilustración 31 se muestran imágenes de los caminos de cobre propuestos para cada

PCB. Se decidió ubicar una PCB como tapa superior del módulo y otra como tapa

inferior. La PCB superior cuenta con los elementos electrónicos de mayor tamaño

como el Arduino nano y el L298n. Además, tiene un botón que permite el inicio de

operación del robot. Por su parte, la PCB inferior cuenta con los agujeros necesarios

para introducir a presión las ruedas esféricas. Además, se aprovecha su posición para

conectar directamente los sensores infrarrojos. Finalmente, contiene el master switch

on/off que encenderá o apagará por completo cada individuo.

Page 44: Desarrollo de un prototipo de inspección y transporte con

44

Ilustración 30. A la izquierda se presenta la PCB que ira en la parte superior de modulo. A la derecha, se

presenta la PCB para la parte inferior.

Cálculos de la fuerza de empuje de cada modulo

El diagrama de cuerpo libre del robot empujando un objeto se muestra en la

ilustración 32.

Ilustración 31. Diagrama de cuerpo libre del robot empujando un objeto.

Las variables son

𝑚1 = 𝑚𝑎𝑠𝑎 𝑑𝑒𝑙 𝑟𝑜𝑏𝑜𝑡

𝑚2 = 𝑚𝑎𝑠𝑎 𝑑𝑒𝑙 𝑜𝑏𝑗𝑒𝑡𝑜 𝑎 𝑑𝑒𝑠𝑝𝑙𝑎𝑧𝑎𝑟

𝐹𝑐 = 𝐹𝑢𝑒𝑟𝑧𝑎 𝑑𝑒 𝑟𝑒𝑎𝑐𝑐𝑖ó𝑛

𝐹𝑟1 = 𝐹𝑢𝑒𝑟𝑧𝑎 𝑑𝑒 𝑓𝑟𝑖𝑐𝑐𝑖ó𝑛 𝑒𝑛𝑡𝑟𝑒 𝑙𝑎 𝑙𝑙𝑎𝑛𝑡𝑎 𝑦 𝑒𝑙 𝑠𝑢𝑒𝑙𝑜

𝐹𝑟2 = 𝑓𝑢𝑒𝑟𝑧𝑎 𝑑𝑒 𝑓𝑟𝑖𝑐𝑐𝑖ó𝑛 𝑒𝑛𝑡𝑟𝑒 𝑒𝑙 𝑜𝑏𝑗𝑒𝑡𝑜 𝑦 𝑒𝑙 𝑠𝑢𝑒𝑙𝑜

𝑁1 = 𝐹𝑢𝑒𝑟𝑧𝑎 𝑛𝑜𝑟𝑚𝑎𝑙 𝑑𝑒𝑙 𝑟𝑜𝑏𝑜𝑡

𝑁2 = 𝐹𝑢𝑒𝑟𝑧𝑎 𝑛𝑜𝑟𝑚𝑎𝑙 𝑑𝑒𝑙 𝑜𝑏𝑗𝑒𝑡𝑜

𝐿 = 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑖𝑎 𝑑𝑒𝑙 𝑐𝑒𝑛𝑡𝑟𝑜 𝑑𝑒 𝑙𝑎 𝑙𝑙𝑎𝑛𝑡𝑎 𝑎𝑙 𝑝𝑢𝑛𝑡𝑜 𝑚𝑎𝑠 𝑎𝑙𝑡𝑜 𝑑𝑒𝑙 𝑟𝑜𝑏𝑜𝑡

𝜏 = 𝑡𝑜𝑟𝑞𝑢𝑒 𝑔𝑒𝑛𝑒𝑟𝑞𝑑𝑜 𝑝𝑜𝑟 𝑒𝑙 𝑚𝑜𝑡𝑜𝑟

𝑟 = 𝑟𝑎𝑑𝑖𝑜 𝑑𝑒 𝑙𝑎 𝑙𝑙𝑎𝑛𝑡𝑎

𝜇1 = 𝑐𝑜𝑒𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝑒 𝑑𝑒 𝑓𝑟𝑖𝑐𝑐𝑖𝑜𝑛 𝑒𝑛𝑡𝑟𝑒 𝑙𝑎 𝑙𝑙𝑎𝑛𝑡𝑎 𝑦 𝑒𝑙 𝑠𝑢𝑒𝑙𝑜

𝜇2 = 𝑐𝑜𝑒𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝑒 𝑑𝑒 𝑓𝑟𝑖𝑐𝑐𝑖𝑜𝑛 𝑒𝑛𝑡𝑟𝑒 𝑒𝑙 𝑜𝑏𝑗𝑒𝑡𝑜 𝑦 𝑒𝑙 𝑠𝑢𝑒𝑙𝑜

Page 45: Desarrollo de un prototipo de inspección y transporte con

45

Se separa entonces el sistema en dos cuerpos y se analizan por separado: 1

corresponde al robot y 2 corresponde al objeto a ser desplazado. Se analiza la

dinámica por separado de ambos cuerpos

Cuerpo 1

∑ 𝐹𝑥 = 𝑚𝑎1 = −𝐹𝑟1 − 𝐹𝑐 + 𝐹𝑒

∑ 𝐹𝑦 = 0 = 𝑁1 − 𝑚1𝑔

∑ 𝑀𝑧𝑙𝑙𝑎𝑛𝑡𝑎 = 𝐼𝛼 = 𝜏 + 𝐹𝑟1 ∗ 𝑟 −𝐿

2𝐹𝑐

Cuerpo 2

∑ 𝐹𝑥 = 𝑚𝑎2 = −𝐹𝑟2 + 𝐹𝑐

∑ 𝐹𝑦 = 0 = 𝑁2 − 𝑚2𝑔

Ahora desarrollamos la ecuación de momentos en el eje de rotación de la llanta. Para

encontrar la masa limite a la cual el sistema deja de moverse, igualamos la sumatoria

de momentos a 0.

0 = 𝜏 + 𝐹𝑟1 ∗ 𝑟 −𝐿

2𝐹𝑐

Despejamos la fuerza de contacto entre ambos cuerpos

𝐹𝑐𝑐𝑟𝑖𝑡𝑖𝑐𝑎 =2(𝜏𝑚𝑎𝑥 + 𝑚1𝑔𝜇1𝑟)

𝐿

Reemplazando la ecuación de fuerzas en x del cuerpo 2 obtenemos la siguiente

expresión

𝑚𝑐𝑟𝑖𝑚𝑎𝑥 =2(𝜏𝑚𝑎𝑥 + 𝑚1𝑔𝜇1𝑟)

𝐿𝑔𝜇2

El torque máximo del motor es de 1.5 kg-cm y los coeficientes de fricción son

respectivamente

𝜇𝑀−𝑀 = 𝑚𝑎𝑑𝑒𝑟𝑎 𝑠𝑜𝑏𝑟𝑒 𝑚𝑎𝑑𝑒𝑟𝑎 = 0.7

𝜇𝑀−𝑆 = 𝑚𝑎𝑑𝑒𝑟𝑎 𝑠𝑜𝑏𝑟𝑒 𝑎𝑐𝑒𝑟𝑜 = 0.65

𝜇𝐶−𝑀 = 𝑐𝑎𝑢𝑐ℎ𝑜 𝑠𝑜𝑏𝑟𝑒 𝑚𝑎𝑑𝑒𝑟𝑎 = 0.7

𝜇𝐶−𝑆 = 𝑐𝑎𝑢𝑐ℎ𝑜 𝑠𝑜𝑏𝑟𝑒 𝑎𝑐𝑒𝑟𝑜 = 1

Con esto, los valores esperados de masa crítica para para ambas configuraciones son:

para madera sobre madera 0.595 kg y para madera sobre acero 0.667 kg.

Page 46: Desarrollo de un prototipo de inspección y transporte con

46

7. Resultados

7.1. Sistema de suspensión

Para las pruebas del sistema de suspensión se hizo rodar al robot por diferentes alturas

de desnivel hasta encontrar una limite, a la cual se impedía el movimiento de su llanta

de tracción. Esta fue determinada a 4.5mm, 10% diferente a la calculada. Esto se debe

a que los resortes utilizados no eran todos exactamente iguales, pues en el mercado

no pude conseguir resortes con exactamente la misma constante de rigidez. Algo

similar sucedía con sus dimensiones, al no ser las mismas no se adaptaban

correctamente a la guía de la carcasa, dejando a veces holguras que hacían que el

resorte se desplazara. En la ilustración 33 se muestra al robot superando un obstáculo

de 4mm de altura.

Ilustración 32. Robot superando un desnivel de 4mm.

7.2. Resultados de llevar peso

Las pruebas para la fuerza de empuje del robot se hicieron en dos escenarios: Madera

sobre madera y madera sobre aluminio. Según a los resultados de la sección anterior

el máximo peso que el robot puede desplazar para madera sobre madera es de 554g,

y de madera sobre aluminio 603g. En la ilustración 34 se observa al robot desplazando

un peso variable soportado en una estructura de madera mdf sobre una placa de este

mismo material. El resultado experimental fue que el robot se detuvo cuando el peso

de todo el sistema era 510 ± 10 g. lo que corresponde a un error de 8% comparado

con lo esperado teóricamente.

Page 47: Desarrollo de un prototipo de inspección y transporte con

47

Ilustración 33. Experimento de un robot empujando un objeto de madera sobre madera.

Por otro lado, la ilustración 35 muestra al robot empujando el mismo objeto de peso

variable sobre una placa de aluminio. Para este experimento el resultado fue de una

masa límite de 590 ± 5 g, es decir, 2.15% menos que el resultado teórico. Estas

variaciones se deben a que los cálculos se realizan bajo modelos teóricos que se

acercan a la realidad pero que no la describen completamente, además, a los valores

de fricción entre los materiales, los cuales no fueron calculados experimentalmente.

Ilustración 34. Experimento de un robot empujando un objeto de madera sobre aluminio.

Page 48: Desarrollo de un prototipo de inspección y transporte con

48

7.3. Resultados de sistema de locomoción

Durante las pruebas del sistema de locomoción descubrí que había un gran error entre

el ángulo que se le pedía al robot tomar y la dirección real que este seguía. A pesar

de que el mecanismo funcionaba perfectamente y permitía al robot desplazarse en

cualquier dirección, lograr una exactitud a nivel del ángulo de giro no fue posible. El

problema se debe a la manufactura del robot, pues muchas veces el servomotor

quedaba muy apretado y no funcionaba correctamente. Además, la llanta no tenía un

único contacto con el suelo, como se había supuesto en el modelo cinemático del

robot, sino que se acerca a un rectángulo plano. Esto generaba más fricción entre el

giro del servo y el ángulo deseado. En la ilustración 36 se muestra un ejemplo del

mecanismo de locomoción apuntado a diferentes direcciones.

Ilustración 35. Mecanismo de locomoción en funcionamiento.

7.4. Resultados de obstacle avoidance

El robot fue capaz de evadir obstáculos. Como se muestra en la ilustración 37, el robot

va directamente hacia el obstáculo y cuando lo encuentra, se detiene y cambia de

dirección para poder rodearlo y seguir su trayectoria. Se notó, sin embargo, que la

distancia a la cual el robot sentía el obstáculo era muy pequeña, de máximo 5mm.

Esto puede deberse a la potencia con la que estaban funcionando los sensores, pues

en su datasheet se reporta que la máxima corriente en el colector del transistor foto

receptor se da entre 20 y 30 mm. Se recomienda en próximos trabajos utiliza sensores

infrarrojos más potentes, puesto mejorara la respuesta del robot a geometrías difíciles

y su tiempo de reacción a obstáculos sucesivos.

Page 49: Desarrollo de un prototipo de inspección y transporte con

49

Ilustración 36. Secuencia de evasión de obstáculos del robot.

7.5. Resultados auto-ensamble

Este comportamiento se probó haciendo que un robot se ensamblara a otro y luego se

intentara separar en la dirección contraria. Se encontró que, si ambos robots no se

mueven al mismo tiempo y en la misma trayectoria, se modifica la dinámica del

sistema y se le impide avanzar correctamente en una dirección. Entonces, si el robot

que necesita apoyo está quieto y el ayudante auto-ensamblado se mueve en la

dirección a la que se encuentra el robot, la llanta estática del ayudado impedirá el

correcto desplazamiento de ambos módulos unidos.

En la ilustración 38 se muestran algunas secuencias de la unión y desplazamiento de

dos módulos ya auto-ensamblados. Sin embargo, cabe resaltar que hicieron falta

muchas pruebas a lo largo del desarrollo de este proyecto. Se recomienda en un futuro

probar el cambio de fuerza aplicada entre empujar con un solo robot y hacerlo con un

enjambre ensamblado. También, hizo falta probar el desempeño de la pestaña

agregada en la carcasa y las dinámicas de separación entre módulos auto-

ensamblados.

Ilustración 37. Secuencia de auto-ensamble de dos módulos del robot.

7.6. Resultados de la electrónica

En cuanto a las PCB fabricadas se encontró que, dada su geometría y todos los

agujeros que debía tener para permitir el paso de tornillos y cables, su manufactura

Page 50: Desarrollo de un prototipo de inspección y transporte con

50

era difícil y cara. Esto aumentó el precio del robot e hizo difícil su modularidad y su

fácil ensamble. El hecho de tener una PCB como tapa superior y otra como tapa

inferior hizo que fuera necesario atravesar cables a lo largo del robot, lo que impedía

desarmarlo de nuevo en ciertas ocasiones. En un futuro se recomienda hacer un

circuito electrónico más completo y con componentes superficiales. Con más

completo me refiero a agregar un microcontrolador y no una tarjeta electrónica como

el Arduino nano. También, agregar circuitos de carga de la batería, amplificadores de

potencia para el sensor infrarrojo, transreceptores que usen el protocolo Zigbee para

la comunicación ente módulos, sensores de fuerza aplicada o algún sensor para

descubrir obstáculos, y sensores de proximidad o algún dispositivo para saber cuándo

ya se ha auto-ensamblado un robot. La ilustración 39 muestra la PCB superior ya

fabricada y soldada. La ilustración 40 muestra la PCB inferior.

Ilustración 38. PCB superior fabricada y soldada.

Ilustración 39. PCB inferior fabricada y soldada.

Page 51: Desarrollo de un prototipo de inspección y transporte con

51

7.7. Lista de partes y justificación

Pieza Cant. Función imagen costo

carcasa 1

la carcasa escogida fue de geometría

hexagonal. Tiene 4 agujeros superficiales en

cada cara para pegar los imanes que

conectarán los robots entre sí, y un agujero

pasante en la parte inferior para ubicar los

sensores infrarrojos. Normalmente, estos

entran a presión, sin embargo, dada la

variación de la manufactura de los mismos, es

posible que para insertarlos sea necesario

utilizar algún pegante. Los agujeros de los

sensores se encuentran ubicados en la parte

más baja de cada cara, en el centro de la

misma. Adicionalmente, las caras superior e

inferior cuentan con agujeros y soportes para

los tornillos que sostendrán las respectivas

PCB. Los tornillos para la PCB superior son

de 3mm de diámetro y aquellos que soportan

la PCB inferior de 2.66. Por otro lado,

internamente, la carcasa tiene un agujero para

insertar las baterías a presión. En la parte

inferior de dichos agujeros tiene un espacio

destinado a los lectores de las baterías, estos

deben ser pegados con super bonder a la

carcasa. Otra característica de la carcasa es el

espacio destinado al sistema de suspensión.

Este corresponde a unas guías cilíndricas

agujeradas en su extremo superior. Allí se

insertarán los resortes seguidos de una tapa

que se asegurará con un tornillo al agujero. La

tapa fue necesaria para permitir la compresión

del resorte. El tamaño de esta pieza es de 65.3

x 82.5 x 74 mm. Está fabricada en filamentos

de PLA, material utilizado por los

laboratorios de impresión 3D de la

universidad de los andes. La impresora

utilizada fue la MAKERBOT.

Ilustración 40. CAD de la

carcasa.

Ilustración 41. Vista interna

del CAD de la carcasa.

Ilustración 42. Carcasa

construida

$78.000

Tapa 1

La tapa posee la misma geometría exterior

que la carcasa. Internamente, tiene espacios

destinados a conexiones con tornillos para

fijarla a la carcasa. Se decidió poner una tapa

para hacer un robot más modular y así poder

separar la PCB superior del cuerpo del

$32.000

Page 52: Desarrollo de un prototipo de inspección y transporte con

52

módulo. Esto con el fin de retirar las baterías

y poder cargarlas y de evaluar el estado

interno de cada módulo. Está fabricada en

filamentos de PLA en los laboratorios de

impresión 3D de la universidad de Los Andes.

La impresora utilizada fue la MAKERBOT.

Ilustración 43. Tapa.

Ilustración 44. Tapa vista

superior.

PCB up 1

Esta PCB fue fabricada en los laboratorios de

circuitos impresos de la universidad de Los

Andes. Los esquematicos y los planos se

encuentran los anexos.

Ilustración 45. PCB superior.

$20.000

PCB bottom 1

Esta PCB fue fabricada en los laboratorios de

circuitos impresos de la universidad de Los

Andes. Los Esquematicos y los planos se

encuentran en los anexos.

Ilustración 46. PCB inferior.

$20.000

PCB infrarrojo 1

Esta PCB utilizada fue un resultado del trabajo

Prótesis funcional de mano con control y

retroalimentación de fuerza [20], proyecto de

grado de Mario Benitez para obtener el titulo

de ingeniero Mecanico en la universidad de los

andes.

Ilustración 47. PCB para el

infrarrojo de herradura

$5.000

Llanta

esférica 3

Esta llanta corresponde a una rueda esférica

incertada en un cilindro cuyo diámetro interno

es un poco menor al diámetro de la esféra.

Adicionalmente, cuenta con un cilindro de

menor diámetro en la parte superior para más

comodidad en la instalación. Fue la más

pequeña y barata que conseguí en el mercado,

y la más fácil de instalar. Para poder insertarla

a presión en el robot es necesario cortar el

cilindro superior de la pieza original e insertar

Ilustración 48. Llanta esférica

implementada.

$10.500

Page 53: Desarrollo de un prototipo de inspección y transporte con

53

el cilindro inferior en la PCB, luego, usar

pegante para fijarla a ella.

Ilustración 49. Llanta esférica.

Batería BL-5C 3

Estas son baterías de Ion Litio, normalmente

utilizadas en celuares. Tienen un voltaje

nominal de 3.7V y una capacidad de 1020

mAh. Además, tienen una corriente máxima

de descarga de 1200 mA y un tiempo de vida

de más de 300 ciclos.

Ilustración 50. Baterias BL-5C.

$24.000

Imán 24

Decidí escoger imanes cuadrados porque van

mejor con la idea de simplicidad y de figura

geométrica que tiene el robot. Estos deben ser

pegados con super bonder a la carcasa del

robot. Se debe tener precaución a la hora de

pegarlos de manera que se respete la simetría

de polos presentada en la ilustración 16.

Ilustración 51. Modulos robot

con imanes.

Ilustración 52. Imán.

$7.200

Resorte 3

Dado el pequeño tamano del resorte, fue muy

difícil conseguir alguna referencia específica

en el mercado. Lo que hice entonces, fue

buscar varios resortes cuya constante de

rigidez y geometria fueran cercanas a la

necesaria y similares entre ellas.

- $900

Engranaje

pequeño 1 Estos engranajes fueron fabricados en el

labortorio de impresión 3D de la universidad

de Los Andes. Fueron fabricados en la

impresora FORM 1+ utilizando la tecnología

de estereolitografía. La relación de reducción

$23.000

Engranaje

grande 1 $23.000

Page 54: Desarrollo de un prototipo de inspección y transporte con

54

es de 1:0.75, esto disminuye un poco el torque

del motor y aumenta la velocidad del robot.

Esta relación fue completamente determinada

por el espacio que había entre llanta y

motorreductor.

Ilustración 53. Transmisión por engranajes biselados.

Conector

servo 1

Esta pieza viene integrada al servo motor. Se

usa para conectar el eje del servomotor con

aquello que se quiere rotar. Es muy útil dado

que el eje del servo tiene una geometría en

forma de piñón, macho, que complementa la

geometría del agujero de la pieza, hembra.

Adicionalmente, cuenta con un agujero en el

centro para un tornillo, que viene incluido con

el motor, que permite una fijación mas fuerte

entre el par pieza/objeto y el servo motor.

Ilustración 54. Conector del servo. Viene incluido con el

motor.

$11.000

Servomotor 1

Servo motor SG90 tower pro de 1.8 kg-cm de

torque. Funciona entre 3 y 7.2 V y solo puede

girar 180°. Durante su instalación se observó

que si quedaba muy apretado perdía algunos

pasos y no alcanzaba a girar 180 grados

completamente. Ilustración 55. Servomotor.

Motorreductor 1

Motorreductor DC con voltaje de

funcionamiento entre 3 y 9 V. Tiene un torque

de 1.9 kg.cm a 60 rpm.

Ilustración 56.

Motorreductor.

$17.000

Lector batería 3

Componente presente en los celulares para leer

la batería BL-5C. Basicamente consiste en tres

láminas de cobre que hacen de contacto con los

tres pines de la batería. Están dispuestos a

manera de resorte para presionar la batería

contra el socket que la almacena.

Ilustración 57. Lector de la

batería.

$3.000

Page 55: Desarrollo de un prototipo de inspección y transporte con

55

Ensamblador 1

Esta pieza es fundamental en el diseño del

robot. Sirve para ensamblar ambas partes del

sistema de locomoción, la tracción y la

dirección. Por la parte superior se conecta la

pieza designada como “conector servo”, que va

ensamblada al eje del servo y permite el

cambio de dirección del mecanismo. Se

observa que el agujero central es de gran

tamano, pues allí debe entrar el tornillo que

asegura el conector al servo y además debe

poderse apretar con un destornillador. En la

parte inferior cuenta con agujeros para encajar

el eje. Estos agujeros no son completamente

cerrados pues de esta manera era muy dificil

insertar el eje unido a la llanta. Por eso, se deja

un espacio para insertar el eje a presión.

Ahora bien, a un lado de la pieza se tiene una

placa con tres agujeros. Esta permite la fijación

del motorreductor. El agujero sentral es para el

eje del motor y los dos tornillos laterales, de

1.6mm de diámetro son para asegurar el motor

a la placa. Finalmente al otro lado de la pieza

hay un espacio destinado al encoder de

cuadratura. Dado que esta pieza es un

componente electrónico de actuación

mecánica, no tiene un sistema de fijación y

debe soportar grandes torques. Por ende,

diseñé este espacio que encierra el encoder y

no le permite rotar en la dirección de giro de la

llanta.

Esta pieza fue fabricada en la impresora

FORM 1+ usando la tecnología

Estereolitografía. Esta hecha de resina

fotopolimérica - Metacrilato.

Ilustración 58. Pieza

ensambladora. Vista 1.

Ilustración 59. Pieza

ensambladora. Vista 2.

$30.000

Llanta 1

Al principio se pretendía uilizar la misma

llanta que venía en el mouse junto con el

encoder de cuadratura, sin embargo, esta era

muy difícil de conseguir y no siempre tenía el

mismo tamaño. Por ende, decidí utilizar una

llanta comercial de diametro 41mm, hecha de

caucho blando. Este material hacía que el

contacto de la llanta con el suelo no fuera

solamente un punto y por ende que su

cinemática no fuera tan precisa.

Ilustración 60. Llanta.

$1.000

Page 56: Desarrollo de un prototipo de inspección y transporte con

56

Eje 1

Eje comercial que se semeja a los ejes de los

motorreductores. Diseñado con una sección

especial para que transmita la potencia y pueda

encajar en la llanta. Originalmente era un eje

de aluminio de seccion circular, para darle la

geometría fue necesario limarlo.

Ilustración 61. Eje de la llanta.

$300

Encoder de

cuadratura 1

Este encoder es una pieza rescatada de un

mouse de computador. El agujero por donde

entra el eje es de perfil hexagonal de 1mm de

arista.

Ilustración 62. Encoder de

cuadratura.

$2.000

QRD1114 6

Sensor fotoreflectivo que consta de un led

emisor y uno receptor de luz infrarroja. A 3cm

de distancia del objeto permite el paso de 1mA

por el colector del transistor receptor.

Ilustración 63. Sensores

QRD1114 implementqdos.

$15.000

Infrarrojo

TCST1103 1

Sensor infrarrojo con una distancia entre leds

de 3.1mm. Típicamente su corriente de salida

es de 2mA. Tiempo de respuesta de encendido

10us y de apagdo 8us.

Ilustración 64. Sensor

infrarrojo de herradura.

$1.200

Disco de

madera 1

Disco hecho en cartón paja. Contiene las

ranuras que medirá el sensor infrarrojo de

herradura para contar los ángulos. Posee 100

pares agujero/barrera de manera que cada

pulso de subida medido por el sensor

representa 7.2° de desplazamiento. En el

centro posee un agujero para insertar el

conector del servo. De un costado, tiene

también un espacio por donde pasan los cables

que vienen del encoder de cuadratura.

Ilustración 65. Disco giratorio

de madera para el encoder óptico.

$2.000

Page 57: Desarrollo de un prototipo de inspección y transporte con

57

Soporte servo 1

Pieza hecha en madera de 2mm de grosor.

Tiene un agujero para insertar el servo motor y

otro dentro del cual girara el motorreductor.

Adicionalmente, cuenta con tres agujeros a los

extremos donde se insertan las guias del

sistema de suspension. Presenta una ligera

marca superficial donde se ubicara el soporte

del sensor infrarrojo de herradura. Esta

fabricado en mdf y cortado a laser.

Ilustración 66. Pieza de

madera de soporte para el servo.

$2.000

Soporte

infrarrojo 1

Pieza de madera utilizada para soportar el

sensor infrarrojo de herradura. Consiste de dos

piezas, una sobre la otra, que se pegan al

soporte del servo en el espacio destinado para

esto.

Ilustración 67. Pieza de

madera que da soporte al infrarrojo de herradura.

$1.000

Conversor eje

de la lanta 1

Dado que no se pudieron utilizar llantas de

mouse especiales para trabajar con el encoder

de cuadratura, fue necesario adaptar el eje de

la llanta a la entrada del encoder. Con esta

pieza se empalman ambos ejes. En un extremo

posee la entrada hembra del eje de la llanta y

en el otro el macho con geometría hexagonal

del encoder.

Esta pieza fue fabricada en la impresora

FORM 1+ usando la tecnología

Estereolitografía. Esta hecha de resina

fotopolimérica - Metacrilato

Ilustración 68. Hembra del

conversor del eje de la llanta..

Ilustración 69. Macho del

cnversor del eje de la lanta.

$10.000

Tapas para

resorte 3

-

$800

Tornillos

2.66mm 8

$5.000

Tornillo

1.66mm 5

Tornillo 3mm 5 Tuerca 3mm 5 Tuerca 2.66 2

Page 58: Desarrollo de un prototipo de inspección y transporte con

58

Arduino nano 1

Es el Arduino más pequeño disponible en el

mercado. A la PCB superior se le instalaron

unos sockets para pines de manera que fuera

posible conectar y desconectar el arduino.

Ilustración 70. Arduino nano.

$40.000

Componentes

electronicos - - $15.000

Corte laser de

elementos en

madera -

- $12.600

Total $412.500 Tabla 6. Lista de piezas con su descripción y precio para un solo modulo.

Como se observa en la tabla 6, el robot cuesta en total $412.000. Este valor es

mayor que el esperado, pues las técnicas de impresión 3D e impresión de circuitos

aumentan considerablemente el precio de manufactura. En total son $193.000 en

impresión 3D y $40.000 en fabricación de circuitos. Por otro lado, en motores se

gastaron alrededor de $30.000 y en el Arduino otros $40.000. En resumen, el

costo del robot es tan grande a causa de los procesos de manufactura, los motores

y el Arduino.

7.8. Características generales del robot

En la tabla 8 se presentan las características finales del robot diseñado. Se observa

que el peso máximo arrastrado por este es casi 3 veces su peso. Adicionalmente,

se observa que el robot es más grande que el construido por García. Este último

tiene unas dimensiones de 70 x 70 x 101.6mm mientras que el diseñado en este

documento mide 100 x 84 x 75 m.

Caracteristica Valor

Peso [g] 190

Carga máxima (madera sobre madera) 1 robot [g ] 510

Carga máxima (madera sobre metal) 1 robot [g] 590

Autonomia [h] 5,2

Tamano [mm] 100 x 84 x 75

Costo por unidad [COP] 412.500 Tabla 7. Características generales del Robot.

Page 59: Desarrollo de un prototipo de inspección y transporte con

59

8. Conclusiones

Se ha creado una primera versión del prototipo para robots enjambre capaz de

reconocer objetos y transportarlos de un lugar a otro. El robot fue fabricado por

medio de técnicas de impresión 3D y usando elementos de bajo costo como

baterías recicladas de celulares. A pesar de que se quería fabricar un robot de

bajo costo, su precio resulto siendo elevado a causa de las técnicas de impresión

3D y del desarrollo de circuitos impresos. Así mismo, se quería que el robot fuese

más pequeño que el propuesto por García, sin embargo, a causa de su

complejidad, su tamaño fue mayor.

Pese a esto, el nuevo prototipo de robot enjambre tiene varias diferencias

remarcables. En primer lugar, su sistema de locomoción es una llanta de tracción

y dirección, y tres ruedas esféricas de estabilidad. Por lo que es más fácil controlar

su trayectoria, analizar su cinemática. Además, este mecanismo le permite

desplazarse más rápidamente hacia posiciones deseadas.

Por otro lado, permite ensamblarse a otros robots mediante el uso de imanes. Estos

imanes están situados particularmente en las caras del robot, de manera que cada

robot puede conectarse a cualquier otro robot por cualquier otra cara. Así mismo,

protegen el ensamble contra las fuerzas de cizalla en una dirección, mediante un

cambio de nivel en la superficie de cada cara. Finalmente, dada su configuración

en cuartetos, impiden el fácil desensamble producido por torques en el eje vertical

del robot.

En tercer lugar, este robot puede calcular su posición instantánea a través de las

mediciones de sensores internos. Posee un encoder de cuadratura para medir el

desplazamiento angular de la llanta y un encoder óptico para medir el cambio de

dirección de la misma. Con esta información se puede calcular la posición actual

del robot relativa a su punto de inicio.

Otra característica que diferencia este robot de su versión anterior es la capacidad

de transportar objetos de un punto a otro. Este, posee un actuador más potente y

una geometría especifica que le permite empujar objetos más pesados que él

mismo. Así, logró llevar hasta 2.6 veces su propio peso cuando transportaba

objetos de madera sobre madera, y hasta 3.1 veces su peso cuando transportaba

objetos de madera sobre metal.

En este mismo orden de ideas, una característica fundamental del robot aquí

implementado es su control interno basado en comportamientos. Entre los

comportamientos que puede llevar a cabo se encuentran obstacle avoidance, auto-

ensamblado y move objects. Existen otros comportamientos que no fueron

evaluados, pero de los cuales se propuso una metodología y algunos algoritmos,

como: go-to-goal, path planning, area coverage y communication.

Page 60: Desarrollo de un prototipo de inspección y transporte con

60

Ahora bien, dado que se trata de un primer prototipo, el robot aun cuenta con

varias tareas a implementar. A continuación, presentaré algunas ideas de posibles

mejoras que se le pueden hacer al robot para convertirlo en un verdadero enjambre

funcional.

Las PCB de tapa inferior y superior, y la ubicación de los actuadores

y baterías, fueron un problema la hora de ensamblar el robot. Estas

introducían una gran cantidad de cables que atravesaban casi

transversalmente el robot, limitando su modularidad y su fácil

ensamblado. Se recomienda entonces para futuros trabajos, mejorar el

diseño de ambas PCB. Para esto, es posible utilizar dispositivos

superficiales para elementos como el puente H (L298n). También,

utilizar un microprocesador en lugar de una tarjeta ya diseñada como

el Arduino. Además, se podría cambiar la ubicación de las baterías de

manera que el lector quede más cerca de la PCB superior. Incluso, se

podría diseñar un sistema tal que, al encajar la tapa, la PCB se

conectara automáticamente a los lectores de baterías, sin necesidad de

cables.

Por otro lado, es posible mejorar las PCB adicionando nuevas

funcionalidades a la misma. Por ejemplo, implementando un circuito

de carga y control para las baterías, de manera que el robot se vuelva

recargable, o la implementación de una transreceptor o un módulo

zigbee capaz de permitir la comunicación entre robots.

Una de las mejoras más fuertes que puede tener el robot es la

capacidad de realizar diferentes funciones que no fueron

implementadas o evaluadas durante este proyecto. Entre estas están:

el diseño e implementación un código que permita la inspección de un

terreno y el reconocimiento de los objetos sobre él; el diseño e

implementación de un sistema de comunicación basado en protocolo

Zigbee; la implementación de algoritmos de transporte colectivo de

objetos pesados; la implementación y prueba de métodos de

corrección de posición, que permitan al robot desarrollar un

comportamiento de go-to-goal exacto y preciso.

Finalmente, a nivel mecánico también existen posibles correcciones.

A pesar de que los encoder fueron testeados y funcionan

correctamente, son dispositivos que aún tienen errores de fabricación.

Por ende, se propone buscar en el mercado encoders más

especializados y mejor fabricados. También, se podrían cambiar los

sensores infrarrojos QRD1114, dado que su alcance es muy corto. Así

mismo, se debe diseñar en un futuro un sistema de suspensión más

homogéneo y más fácil de implementar. Finalmente, se puede añadir

algún sensor de contacto o de proximidad que permita a cada módulo

saber si un amigo se ha auto-ensamblado para ayudarle en su tarea de

transporte.

Page 61: Desarrollo de un prototipo de inspección y transporte con

61

9. Referencias

[1] V. Trianni, Evolutionary Swarm Robotics: Evolving self-organising Behaviours in Groups of

Autonomous robots, Roma, Italia: Springer-Verlag Berlin Heidelberg, 2008.

[2] E. Sahin, Swarm robotics: from sources of inspiration to domains of application, Ankara,

Turkey: Middle East Technical University, 2005.

[3] J. Liu et J. Wu, Multi-agent Robotic Systems, BocaRaton, Florida: CRC Press LLC, 2001.

[4] E. G. García, «Desarrollo de un robot prototipo para robótica de enjambres,» Universidad de

Los Andes, Bogotá, 2010.

[5] R. Groß et M. Dorigo, «Towards group transport by swarms of robots,» International journal

of bio-inspired computation, vol. 1, n° %11/2, 2009.

[6] S. Torabi, «Collective transportation of objects by a swarm of robots,» Chalmers university of

technology, G•oteborg, Sweden, 2015.

[7] R. Kube et E. Bonabeau, «Cooperative transport by ants and robots,» Robotics and

autonomous systems, vol. 30, pp. 85-101, 2000.

[8] J. Fink, A. Hsieh et V. Kumar, «Multi-Robot Manipulation Via Caging in Environments with

obstacles,» University of Pennsylvania, Philadelphia, 2008.

[9] E. Krick, Introducción a la ingeniería y al diseño en ingeniería, Mexico D.F.: Limusa, 2010.

[10] J. Jones y A. Flynn, Mobile robots: inspiration to implementation, Natick, MA: A.K. Peters Ltd,

1999.

[11] L. Cherroun y M. Boumehraz, «Fuzzy behavior based navigation approach for mobile robot in

unknown environment,» Journal of electrical Engineering, 2013.

[12] R. Siegwart, I. Nourbakhsh y D. Scaramuzza, Introduction to autonomous mobile robots,

Massachusetts: Massachusetts institute of technology, 2011.

[13] Y. Gabriely et E. Rimon, «Spanning-tree based Coverage of continuous Areas by a Mobile

Robot,» Technion, Israel Institute of technology, 1999.

[14] I. Susnea, V. Minzu et G. Vasiliu, «Simple, Real-Time Obstacle Avoidance Algorithm for

Mobile Robots,» chez CIMMACS'09 Proceedings of the 8th WSEAS International Conference

on Computational intelligence, man-machine systems and cybernetics, Puerto De La Cruz,

Tenerife, Canary Islands, Spain, 2009.

[15] M. I. Ribeiro, «Obstacle Avoidance,» 2005.

Page 62: Desarrollo de un prototipo de inspección y transporte con

62

[16] T. Fukuda et S. Nakagawa, «Method of autonomous approach, docking and detaching

between cells for dynamically reconfigurable robotic system CEBOT,» JSME, vol. 33, n° %12,

pp. 263-268, 1990.

[17] R. Groß, «Self-Assembling Robots,» Universite Libre de Bruxelles, Bruxelles, Belgium, 2008.

[18] F. Mondada, M. Bonani, S. Magnenat, A. Guignard et D. Floreano, «Physical connections and

cooperation in swarm robotics,» chez 8th Conference on Intelligent Autonomous Systems,

Amsterdam, Netherlands, 2004.

[19] J. Walter, J. Welch et N. Amato, «Concurrent metamorphosis of hexagonal robot chains into

simple connected con¯gurations,» IEEE TRANSACTIONS ON ROBOTICS AND AUTOMATION,

vol. 18, n° %16, pp. 945 - 956, 2002.

[20] M. Benitez, «Prótesis funcional de mano con control y retroalimentación de fuerza,»

Universidad de Los Andes, Bogotá, Colombia, 2016.

Page 63: Desarrollo de un prototipo de inspección y transporte con

63

10. Anexos

10.1. Esquemáticos

Ilustración 71. Esquemático de la PCB superior.

Page 64: Desarrollo de un prototipo de inspección y transporte con

64

Ilustración 72. Esquemático de la PCB inferior.

Page 65: Desarrollo de un prototipo de inspección y transporte con

65

Ilustración 73. PCB superior.

Ilustración 74. PCB inferior.

Page 66: Desarrollo de un prototipo de inspección y transporte con

66

10.2. Códigos

Código completo

#include <Servo.h>

#include <math.h>

/*------------------------------------------------------------

---------------------------------------------------

VARIABLES*/

enum PinAssignments {

encoderPinA = 2, // rigth

encoderPinB = 3, // left

clearButton = 5, // another two pins

beginButton = 12,

PWM_servo = 11,

IN2 = 10,

encoderServo = 4,

IN1 = 9

};

Servo myservo;

//Contadores y señales del encoder de cuadratura

volatile int encoderPos = 0; // a counter for the dial

unsigned int lastReportedPos = 1; // change management

static boolean rotating=false; // debounce management

// variables de rutina del servicio de interrupción

boolean A_set = false;

boolean B_set = false;

boolean E_state, lastE_state;

int phi_act, deg, n, x0, y0, x1, y1;

double phi_ref, pi, d_ref, d, r, P, I1, I2, I_sum, w_up, diff,

D1, D2, D_sum, D, PID, control_reductor, output_reductor, Ki,

Kp, Kd, K_back, Factor, N;

/*------------------------------------------------------------

--------------------------------------------------- SETUP*/

void setup() {

//variables encoder distancia

pinMode(encoderPinA, INPUT_PULLUP);

pinMode(encoderServo, INPUT_PULLUP);

myservo.attach(PWM_servo);

pinMode(IN1,OUTPUT);

pinMode(IN2,OUTPUT);

pinMode(encoderPinB, INPUT_PULLUP);

pinMode(clearButton, INPUT_PULLUP);

pinMode(beginButton, INPUT_PULLUP);

attachInterrupt(digitalPinToInterrupt(2), doEncoderA,

CHANGE);

attachInterrupt(digitalPinToInterrupt(3), doEncoderB,

CHANGE);

inicializar ();

Page 67: Desarrollo de un prototipo de inspección y transporte con

67

//funciones

Serial.begin(9600); // output

}

/*------------------------------------------------------------

--------------------------------------------------- LOOP*/

void loop() {

rotating = true; // reset the debouncer

//actualiza la posición del encoder de la llanta

if (lastReportedPos != encoderPos) {

lastReportedPos = encoderPos; }

if (digitalRead(clearButton) == LOW ) {

encoderPos = 0;

}

//si se oprime el botón el arduino va a la posición deseada

if (digitalRead(beginButton) == LOW ) {

while (x0!=x1 && y0!=y1){

lastE_state=digitalRead(encoderServo);

calculate(x1,y1,x0,y0);

if (phi_ref < 0){

phi_ref += pi;

}

deg = ((phi_ref)*180)/pi;

deg = round(deg);

while (phi_act != deg){

if (phi_act < deg){

n +=1;

myservo.write(n);

delay(40);

E_state = digitalRead(encoderServo);

if (E_state != lastE_state){

phi_act += 1;

n = phi_act;

}

lastE_state=E_state;

}

else if (phi_act > deg){

n -=1;

if (n<0){

n=0;

}

myservo.write(n);

delay(40);

E_state = digitalRead(encoderServo);

if (E_state != lastE_state){

phi_act -= 1;

n = phi_act;

}

lastE_state=E_state;

}

}

PID_d(d_ref);

output_reductor=map(control_reductor,0, 12, 0, 255);

if (y1-y0 >=0){

Page 68: Desarrollo de un prototipo de inspección y transporte con

68

analogWrite(IN1,output_reductor);

analogWrite(IN2,0);

}

else{

analogWrite(IN2,output_reductor);

analogWrite(IN1,0);

}

delay (100);

analogWrite(IN1,0);

analogWrite(IN2,0);

d=((Factor*abs(encoderPos))/360)*2*pi*r;

x0 += d*cos(phi_ref);

y0 += d*sin(phi_ref);

encoderPos=0;

}

}

}

/*------------------------------------------------------------

---------------------------------------------------

doEncoderA*/

// Interrupt on A changing state

void doEncoderA(){

// debounce

if ( rotating ) delay (1); // wait a little until the

bouncing is done

// Test transition, did things really change?

if( digitalRead(encoderPinA) != A_set ) { // debounce once

more

A_set = !A_set;

// adjust counter + if A leads B

if ( A_set && !B_set )

encoderPos += 1;

rotating = false; // no more debouncing until loop() hits

again

}

}

/*------------------------------------------------------------

---------------------------------------------------

doEncoderB*/

// Interrupt on B changing state, same as A above

void doEncoderB(){

if ( rotating ) delay (1);

if( digitalRead(encoderPinB) != B_set ) {

B_set = !B_set;

// adjust counter - 1 if B leads A

if( B_set && !A_set )

encoderPos -= 1;

rotating = false;

}

}

Page 69: Desarrollo de un prototipo de inspección y transporte con

69

/*------------------------------------------------------------

---------------------------------------------------

INICIALIZAR*/

void inicializar(){

E_state = false;

lastE_state = false;

phi_act = 0;

deg = 0;

n = 0;

phi_ref = 0;

pi = 3.1415;

d_ref = 0;

d = 0;

x0 = 0;

y0 = 0;

x1 = 0;

y1 = 0;

r = 1.17;

P = 0;

I1 = 0;

I2 = 0;

I_sum = 0;

w_up = 0;

diff = 0;

D1 = 0;

D2 = 0;

D_sum = 0;

D = 0;

PID = 0;

control_reductor = 0;

output_reductor = 0;

Ki = 13.4;

Kp = 268.1;

Kd = -13;

K_back = 1;

N = 5.71;

Factor = 24;

myservo.write(0);

delay(1000);

}

/*------------------------------------------------------------

---------------------------------------------------

CALCULATE*/

// Calcula la distancia y el ángulo del goal

void calculate (double xf, double yf, double xi, double yi)

{

double dx = xf - xi;

double dy = yf - yi;

d_ref = sqrt((dx*dx)+(dy*dy));

phi_ref = atan2(dy,dx);

}

/*------------------------------------------------------------

--------------------------------------------------- PID*/

void PID_d (double err){

P = Kp*err;

Page 70: Desarrollo de un prototipo de inspección y transporte con

70

I1 = Ki*err;

w_up = K_back* diff;

I2 = I1 + w_up;

double D1 = Kd*err;

double D2 = D1 - D_sum;

D = D2*N;

D_sum += D;

PID = P + I_sum + D;

I_sum += I2;

/* saturación de la entrada al motor*/

if (PID > 12)

{

control_reductor = 12;

}

else if (PID < 0)

{

control_reductor = 0;

}

else

{

control_reductor = PID;

}

diff= control_reductor - PID;

}

Obstacle avoidance

#include <Servo.h>

enum PinAssignments {

PWM_servo = 11,

IN2 = 10,

encoderServo = 4,

IR1 = A0,

IR2 = A1,

IR3 = A2,

IR4 = A3,

IR5 = A4,

IR6 = A5,

IN1 = 9

};

Servo myservo;

boolean dir, moving;

int S1=0, S2=0, S3=0, S4=0, S5=0, S6=0, phi=0;

void setup() {

myservo.attach(PWM_servo);

pinMode(IN1,OUTPUT);

pinMode(IN2,OUTPUT);

}

void loop() {

obstacles();

degree();

Page 71: Desarrollo de un prototipo de inspección y transporte con

71

if (moving == true){

direccion();

myservo.write(phi);

delay(600);

if (dir == true){

analogWrite(IN1,255);

analogWrite(IN2,0);

}

else if (dir == false){

analogWrite(IN2,255);

analogWrite(IN1,0);

}

delay (100);

analogWrite(IN1,0);

analogWrite(IN2,0);

}

moving = true;

}

void obstacles(){

if (analogRead(IR1) > 512){

S1 = 1; }

else{

S1 = 0; }

if (analogRead(IR2) > 512){

S2 = 1; }

else{

S2 = 0; }

if (analogRead(IR3) > 512){

S3 = 1; }

else{

S3 = 0; }

if (analogRead(IR4) < 900){

S4 = 1; }

else{

S4 = 0; }

if (analogRead(IR5) > 512){

S5 = 1; }

else{

S5 = 0; }

if (analogRead(IR6) > 512){

S6 = 1; }

else{

S6 = 0; }

}

void degree(){

if (S1*S2*S6 == 1 && S3*S4*S5 ==0 || S3*S4*S5 == 1 &&

S2*S1*S6 == 0){

phi = 90;

}

else if (S1*S2*S3 == 1 && S4*S5*S6 ==0 || S4*S5*S6 == 1 &&

S1*S2*S3 == 0){

phi = 30;

}

else if (S1*S3*S6*S5 == 1 && S2*S4 ==0 || S2*S3*S4*S6 == 1 &&

S1*S5 == 0){

Page 72: Desarrollo de un prototipo de inspección y transporte con

72

phi = 150;

}

else if (S1*S2 == 1 && S3*S4*S5*S6 ==0 || S4*S5 == 1 &&

S2*S1*S3*S6 == 0){

phi = 60;

}

else if (S2*S3 == 1 && S1*S4*S5*S6 ==0 || S5*S6 == 1 &&

S1*S2*S3*S4 == 0){

phi = 0;

}

else if (S1*S6 == 1 && S2*S3*S4*S5 ==0 || S3*S4 == 1 &&

S2*S1*S6*S5 == 0){

phi = 120;

}

else if(S1*S2*S3*S4*S5*S6 == 0){

moving = false;

}

}

void direccion (){

if (S4 == 0){

if (S1*S2*S3 == 0){

dir = true;

}

else{

dir = false;

}

}

else{

dir = true;

}

}

10.3. Planos

Page 73: Desarrollo de un prototipo de inspección y transporte con

1

1

2

2

A A

B B

Rev.

Plan

oRe

v. Té

cnico

de La

bora

torio

Facultad de IngenieríaDepto. Ing. Mecánica

Nombre del proyecto: Nombre de la pieza:Proyecto de Grado CarcazaMaterial:PLA

CANT:

2 A4 Escala:

1:1Código plano:

Unidades en [mm] - Ángulos en [°]Tolerancia General: ± 0,5 mm y ± 1°

TIEMPO COSTOEQUIPO

Nombre del Estudiante: Código:E-mail: Celular:Nombre del Curso:Nombre Profesor:

Observaciones: Fecha Solicitud Servicio: Fecha Reserva Servicio:

Dimensiones Materia Prima:

Andrés Felipe Villamil [email protected] 3007540652

Proyecto de gradoJonathan Camargo

74,5

74,5

65,2

Page 74: Desarrollo de un prototipo de inspección y transporte con

H ( 2 : 1 )

J-J ( 1 : 1 )

H

JJ

1

1

2

2

A A

B B

Rev.

Plan

oRe

v. Té

cnico

de La

bora

torio

Facultad de IngenieríaDepto. Ing. Mecánica

Nombre del proyecto: Nombre de la pieza:Proyecto de grado IMEC TapaMaterial:PLA

CANT:

1 A4 Escala:

1:1Código plano:

Unidades en [mm] - Ángulos en [°]Tolerancia General: ± 0,5 mm y ± 1°

TIEMPO COSTOEQUIPO

Nombre del Estudiante: Código:E-mail: Celular:Nombre del Curso:Nombre Profesor:

Observaciones: Fecha Solicitud Servicio: Fecha Reserva Servicio:

Dimensiones Materia Prima:

Andrés Felipe Villamil Romero 201215413af.villamil231 3502491320

Proyecto de gradoJonathan Camargo

5,0

4,8

4,0

4,0

90,0°

R2,5

3,2

R3,0

5,5

2,7

2,0

5,5

2,7

Page 75: Desarrollo de un prototipo de inspección y transporte con

1

1

2

2

A A

B B

Rev.

Plan

oRe

v. Té

cnico

de La

bora

torio

Facultad de IngenieríaDepto. Ing. Mecánica

Nombre del proyecto: Nombre de la pieza:Proyecto de Grado EncoderMaterial:Resina

CANT:

7 A4 Escala:

10:1Código plano:

Unidades en [mm] - Ángulos en [°]Tolerancia General: ± 0,5 mm y ± 1°

TIEMPO COSTOEQUIPO

Nombre del Estudiante: Código:E-mail: Celular:Nombre del Curso:Nombre Profesor:

Observaciones: Fecha Solicitud Servicio: Fecha Reserva Servicio:

Dimensiones Materia Prima:

4.9 x 4.9 x 9 mm

Andrés Felipe Villamil [email protected] 3007540652

Proyecto de gradoJonathan Camargo

4,8

4,0

1,0

R1,0R1,0

5,0

Page 76: Desarrollo de un prototipo de inspección y transporte con

1

1

2

2

A A

B B

Rev.

Plan

oRe

v. Té

cnico

de La

bora

torio

Facultad de IngenieríaDepto. Ing. Mecánica

Nombre del proyecto: Nombre de la pieza:Proyecto de Grado Engranajes BiseladosMaterial:Resina

CANT:

5 de c/u A4 Escala:

2:1Código plano:

Unidades en [mm] - Ángulos en [°]Tolerancia General: ± 0,5 mm y ± 1°

TIEMPO COSTOEQUIPO

Nombre del Estudiante: Código:E-mail: Celular:Nombre del Curso:Nombre Profesor:

Observaciones: Fecha Solicitud Servicio: Fecha Reserva Servicio:

Dimensiones Materia Prima:

Andrés Felipe Villamil [email protected] 3007540652

Proyecto de gradoJonathan Camargo

R7,0

R1,5

2,13,9

R8,3R1,5

2,1 3,6

Engranaje biselado 12 Engranaje biselado 22

Page 77: Desarrollo de un prototipo de inspección y transporte con

1

1

2

2

A A

B B

Rev.

Plan

oRe

v. Té

cnico

de La

bora

torio

Facultad de IngenieríaDepto. Ing. Mecánica

Nombre del proyecto: Nombre de la pieza:Proyecto de Grado EnsambladorMaterial:Resina

CANT:

4 A4 Escala:

1:1Código plano:

Unidades en [mm] - Ángulos en [°]Tolerancia General: ± 0,5 mm y ± 1°

TIEMPO COSTOEQUIPO

Nombre del Estudiante: Código:E-mail: Celular:Nombre del Curso:Nombre Profesor:

Observaciones: Fecha Solicitud Servicio: Fecha Reserva Servicio:

Dimensiones Materia Prima:

Andrés Felipe Villamil [email protected] 3007540652

Proyecto de gradoJonathan Camargo

3,1

5,0

2,7

8,0 11,4

12,0 4,5

22,8

13,0 2,0 16,0 2,0

40,02,0

2,0

7,0

R1,6

1,923,0

15,9

11,5

Page 78: Desarrollo de un prototipo de inspección y transporte con

1

1

2

2

A A

B B

Rev.

Plan

oRe

v. Té

cnico

de La

bora

torio

Facultad de IngenieríaDepto. Ing. Mecánica

Nombre del proyecto: Nombre de la pieza:Proyecto de grado IMEC Soporte servoMaterial:Madera

CANT:

1 A4 Escala:

1:1Código plano:

Unidades en [mm] - Ángulos en [°]Tolerancia General: ± 0,5 mm y ± 1°

TIEMPO COSTOEQUIPO

Nombre del Estudiante: Código:E-mail: Celular:Nombre del Curso:Nombre Profesor:

Observaciones: Fecha Solicitud Servicio: Fecha Reserva Servicio:

Dimensiones Materia Prima:

Andrés Felipe Villamil Romero 201215413af.villamil231 3502491320

Proyecto de gradoJonathan Camargo

2,0

59,8

34,55,5

1,8R2,5

22,3

11,8

11,4

24,0

2,9

4,7

R1,3 R7,6

17,39,9

R12,4

R27,5

8,0

10,6

11,3

Page 79: Desarrollo de un prototipo de inspección y transporte con

1

1

2

2

A A

B B

Rev.

Plan

oRe

v. Té

cnico

de La

bora

torio

Facultad de IngenieríaDepto. Ing. Mecánica

Nombre del proyecto: Nombre de la pieza:Proyecto de grado IMEC PCB inferiorMaterial:Baquela

CANT:

1 A4 Escala:

1:1Código plano:

Unidades en [mm] - Ángulos en [°]Tolerancia General: ± 0,5 mm y ± 1°

TIEMPO COSTOEQUIPO

Nombre del Estudiante: Código:E-mail: Celular:Nombre del Curso:Nombre Profesor:

Observaciones: Fecha Solicitud Servicio: Fecha Reserva Servicio:

Dimensiones Materia Prima:

Andrés Felipe Villamil Romero 201215413af.villamil231 3502491320

Proyecto de gradoJonathan Camargo

1,6

R22,5

71,0

41,0

9,0

35,82,3

R1,6

R6,3

4,0

4,7

4,4 18,3

Las líneas punteadas indican marcas superficiales

Page 80: Desarrollo de un prototipo de inspección y transporte con

1

1

2

2

A A

B B

Rev.

Plan

oRe

v. Té

cnico

de La

bora

torio

Facultad de IngenieríaDepto. Ing. Mecánica

Nombre del proyecto: Nombre de la pieza:Proyecto de grado IMEC PCB superiorMaterial:Baquela

CANT:

1 A4 Escala:

1:1Código plano:

Unidades en [mm] - Ángulos en [°]Tolerancia General: ± 0,5 mm y ± 1°

TIEMPO COSTOEQUIPO

Nombre del Estudiante: Código:E-mail: Celular:Nombre del Curso:Nombre Profesor:

Observaciones: Fecha Solicitud Servicio: Fecha Reserva Servicio:

Dimensiones Materia Prima:

Andrés Felipe Villamil Romero 201215413af.villamil231 3502491320

Proyecto de gradoJonathan Camargo

65,8

1,7

8,6

6,0

3,0

5,03,0

8,7

3,0

3,9

13,8

7,0

25,6

19,0

1,8

3,1

R3,3

R1,625

,6

25,5

5,610,07,0

7,0

5,0

38,0

16,2

7,0

5,0

3,4

2,9

Page 81: Desarrollo de un prototipo de inspección y transporte con

1

1

2

2

A A

B B

Rev.

Plan

oRe

v. Té

cnico

de La

bora

torio

Facultad de IngenieríaDepto. Ing. Mecánica

Nombre del proyecto: Nombre de la pieza:Proyecto de grado IMEC Disco EncoderMaterial:Carton Paja

CANT:

1 A4 Escala:

2:1Código plano:

Unidades en [mm] - Ángulos en [°]Tolerancia General: ± 0,5 mm y ± 1°

TIEMPO COSTOEQUIPO

Nombre del Estudiante: Código:E-mail: Celular:Nombre del Curso:Nombre Profesor:

Observaciones: Fecha Solicitud Servicio: Fecha Reserva Servicio:

Dimensiones Materia Prima:

Andrés Felipe Villamil Romero 201215413af.villamil231 3502491320

Proyecto de gradoJonathan Camargo

1,2

R24,5

R1,3

9,0

3,010,04,5

8,0

83,0° R4,1

48,5°

En total son 100 agujeros al rededor del circulo central