diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

232

Upload: juan-gonzalez-gomez

Post on 27-Jul-2015

500 views

Category:

Documents


2 download

DESCRIPTION

Proyecto fin de carrera de Juan Gonzalez. En él se diseña y construye un robot articulado, sin patas, similar a un gusano, que avanza en línea recta, mediante onda que se propagan desde la cola hasta la cabeza, de igual manera que lo hacen los gusanos de seda. Se desarrollan modelos teóricos de gusanos transversales, longitudeinales y tridimensionales de los que se obitnene propiedades y ecuaciones.

TRANSCRIPT

Page 1: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

UNIVERSIDAD POLIT�ECNICA DEMADRIDEs uela T�e ni a Superior de Ingenieros deTele omuni a i�onDise~no y onstru i�on de un robot arti ulado queemula modelos animales: apli a i�on a un gusanoJuan Gonz�alez G�omezProye to Fin de CarreraAbril de 2001

Page 2: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

T��tulo:Dise~no y onstru i�on de un robot arti ulado que emula modelosanimales: apli a i�on a un gusano.Tutor:D. Javier Ma ��as GuarasaAutor:Juan Gonz�alez G�omezTribunalPresidente : D. Javier Ferreiros L�opezVo al : D. Jos�e Col�as PasamontesSe retario : D. Javier Ma ��as GuarasaSuplente : D. Juan Manuel Montero Mart��nezA uerdan otorgar la ali� a i�on de:Madrid, a de de 2001.

Page 3: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

A mis padres, Juan y Virginia, porhaberme in ul ado desde peque~no elesp��ritu t�e ni o- ient��� o y por poten- iar mis aptitudes desde el prin ipio.Gra ias por todo. <Lo he onseguido!.

Page 4: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Agrade imientosEn primer lugar, quiero agrade er a D. Javier Ma ��as Guarasa, mi tutor durante todoeste tiempo, su dedi a i�on y apoyo in ondi ional. Siempre a sabido poten iar a susalumnos, orient�andolos orre tamente y prestando su valioso tiempo. Mu has gra ias.Tambi�en tengo que adrade er a aquellos profesores que supieron transmitirme su inter�espor determinados temas t�e ni os. Entre ellos D. Jos�e Col�as Pasamontes, on el quedes ubr�� los mi ro ontroladores y D. Eduardo Boemo que me despert�o el inter�es por losmi robots. Mu has gra ias. Espe ial men i�on se mere en mis amigos y ompa~neros detrabajo Cristina, Pe o y Andr�es. De ellos he aprendido mu has osas y disfruto adad��a on su imagina i�on, ono imientos t�e ni os y simpat��a. Mu has gra ias. Dentro delmundo empresarial, estoy muy agrade ido, de todo oraz�on, a D. Juan Jos�e San Mart��n,padre de Pe o, por on�ar en nuestras posibilidades y apostar por nosotros, ayud�andonosa rear Mi rob�oti a, S.L. Mu has gra ias. Y �nalmente, en el ampo personal, adem�asde a mis padres, Juan y Virginia, a los que dedi o este proye to, agradez o a Mer edes lapa ien ia y el apoyo re ibido. Mu has gra ias.

Page 5: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

ResumenEn este proye to se dise~na y onstruye un robot arti ulado, sin patas, similar a ungusano, que avanza en l��nea re ta, mediante ondas que se propagan desde la ola hastala abeza, de igual manera que lo ha en los gusanos de seda. Se desarrollan modeloste�ori os de gusanos transversales, longitudinales y tridimensionales de los que se obtienenpropiedades y e ua iones. La genera i�on de las se uen ias de movimiento se realiza demanera autom�ati a, apli ando los algoritmos desarrollados a un gusano virtual para luegoreprodu irlos en un gusano real. Cambiando los par�ametros amplitud, longitud de onda yvelo idad de propaga i�on se onsiguen diferentes se uen ias de movimiento. El prototipo�nal est�a dotado de uatro arti ula iones ontroladas mediante una red de mi ro ontro-ladores, pero est�a dise~nado para ser muy fa ilmente ampliado, tanto a nivel me �ani o omo ele tr�oni o. El sistema reado es una potente plataforma de desarrollo para lainvestiga i�on en el ampo de los robots sin extremidades.Palabras laveMi rob�oti a, rob�oti a, gusano, �apodo, serpiente, mi ro ontrolador, MC68HC11, ontroldistribuido, ele tr�oni a, hardware.

Page 6: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Índice general

1. Introducción 11.1. Encuadre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1. Robótica, Robots y sus diferentes tipos . . . . . . . . . . . . . . . . . . 11.1.2. Robots animales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.1.3. Robots sin patas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.1.4. Estado del arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.2. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.4. Organización del tomo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

I Teoría 20

2. Propagación de perturbaciones 212.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2. Clasificación de las perturbaciones . . . . . . . . . . . . . . . . . . . . . . . . . 212.3. Ondas transversales unidimensionales (O.T.U) . . . . . . . . . . . . . . . . . . . 25

2.3.1. Propagación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.3.2. Propagación de una O.T.U sin amortiguamiento . . . . . . . . . . . . . . 28

2.4. O.T.U periódicas y sin amortiguamiento . . . . . . . . . . . . . . . . . . . . . . 282.4.1. Parámetros importantes . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.4.1.1. Longitud de onda (λ) . . . . . . . . . . . . . . . . . . . . . . 292.4.1.2. Periodo (T) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.4.1.3. Velocidad de propagación (v) . . . . . . . . . . . . . . . . . . 31

2.4.2. Formulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.5. Ondas sinusoidales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.5.1. Fórmulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.5.2. Superposición de ondas sinusoidales . . . . . . . . . . . . . . . . . . . . 322.5.3. Ondas sinusoidales longitudinales . . . . . . . . . . . . . . . . . . . . . 32

2.6. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

I

Page 7: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

ÍNDICE GENERAL II

3. Mecanismos de movimiento I:Gusano longitudinal 353.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.2. Modelo de gusano longitudinal . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.2.1. Parámetros de modelado . . . . . . . . . . . . . . . . . . . . . . . . . . 353.2.1.1. Parámeros de los segmentos . . . . . . . . . . . . . . . . . . . 363.2.1.2. Parámetros del gusano . . . . . . . . . . . . . . . . . . . . . . 37

3.2.2. Caracterización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.2.2.1. Caracterización de los segmentos . . . . . . . . . . . . . . . . 383.2.2.2. Caracterización del gusano . . . . . . . . . . . . . . . . . . . 38

3.2.3. La función de contorno . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.2.4. Secuencias y evolución de los estados . . . . . . . . . . . . . . . . . . . 40

3.3. Caracterización del movimiento de avance . . . . . . . . . . . . . . . . . . . . . 403.3.1. Definición de avance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.3.2. Un gusano longitudinal que avanza . . . . . . . . . . . . . . . . . . . . 413.3.3. Las tres reglas del avance . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.4. Modelo de evolución: propagación de ondas . . . . . . . . . . . . . . . . . . . . 443.5. Condiciones externas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.5.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.5.2. Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.5.3. Regla de no retroceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.6. Condiciones internas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.6.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.6.2. Regla de avance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.6.3. La función de contorno triangular . . . . . . . . . . . . . . . . . . . . . 52

3.6.3.1. Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.6.3.2. Demostración . . . . . . . . . . . . . . . . . . . . . . . . . . 523.6.3.3. Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

3.7. Estudio del avance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.7.1. Recapitulación de resultados . . . . . . . . . . . . . . . . . . . . . . . . 543.7.2. Función de contorno no periódica . . . . . . . . . . . . . . . . . . . . . 543.7.3. Función de contorno periódica . . . . . . . . . . . . . . . . . . . . . . . 55

3.8. Implementación física de gusanos longitudinales . . . . . . . . . . . . . . . . . 593.9. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4. Mecanismos de movimiento II:Gusano transversal 614.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614.2. Modelo de gusano transversal . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.2.1. Parámetros de modelado . . . . . . . . . . . . . . . . . . . . . . . . . . 614.2.1.1. Articulaciones . . . . . . . . . . . . . . . . . . . . . . . . . . 624.2.1.2. Parámetros del gusano . . . . . . . . . . . . . . . . . . . . . . 67

4.2.2. Caracterización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Page 8: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

ÍNDICE GENERAL III

4.2.3. Función de contorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704.3. Relación con el modelo de gusano longitudinal . . . . . . . . . . . . . . . . . . 72

4.3.1. Modelo continuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724.3.2. Modelo discreto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

4.4. Gusano transversal y reglas de avance . . . . . . . . . . . . . . . . . . . . . . . 744.4.1. Modelo de evolución: propagación de ondas . . . . . . . . . . . . . . . . 744.4.2. Condiciones externas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764.4.3. Condiciones internas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

4.4.3.1. Modelo continuo . . . . . . . . . . . . . . . . . . . . . . . . . 774.4.3.2. Modelo discreto . . . . . . . . . . . . . . . . . . . . . . . . . 79

4.5. Estudio del avance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834.5.1. Función de contorno no periódica . . . . . . . . . . . . . . . . . . . . . 834.5.2. Función de contorno periódica . . . . . . . . . . . . . . . . . . . . . . . 84

4.6. Implementación de gusanos transversales . . . . . . . . . . . . . . . . . . . . . 844.7. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

5. Gusano transversal:algoritmo de ajuste 865.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865.2. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

5.2.1. Simplificaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885.2.2. Problema de ajuste para un segmento . . . . . . . . . . . . . . . . . . . 89

5.3. Estudio de alternativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915.3.1. Solución analítica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915.3.2. Solución numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

5.4. El algoritmo de ajuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935.4.1. Propagación del algoritmo de ajuste . . . . . . . . . . . . . . . . . . . . 935.4.2. Aplicación a una articulación . . . . . . . . . . . . . . . . . . . . . . . . 935.4.3. Sentido de rotación inicial . . . . . . . . . . . . . . . . . . . . . . . . . 965.4.4. El ángulo inicial de ataque . . . . . . . . . . . . . . . . . . . . . . . . . 965.4.5. Pasos del algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

5.5. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

6. Mecanismos de movimiento III:giros 996.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996.2. Gusano plano rígido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

6.2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996.2.2. Parámetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996.2.3. Caracterización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006.2.4. Función de trayectoria . . . . . . . . . . . . . . . . . . . . . . . . . . . 1026.2.5. Evolución de los estados de orientación . . . . . . . . . . . . . . . . . . 103

6.3. Gusano plano contráctil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

Page 9: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

ÍNDICE GENERAL IV

6.3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046.3.2. Parámetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046.3.3. Caracterización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056.3.4. Avance y coordinación . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

6.4. Gusano tridimensional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076.4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076.4.2. Articulaciones de doble estado . . . . . . . . . . . . . . . . . . . . . . . 1076.4.3. Parámetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076.4.4. Caracterización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1096.4.5. Relación con el gusano plano . . . . . . . . . . . . . . . . . . . . . . . 109

6.5. Algoritmo de giro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1096.5.1. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . 1096.5.2. Pasos del algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

6.6. Implementación de gusanos tridimensionales . . . . . . . . . . . . . . . . . . . 1126.7. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

II Implementación de un gusano transversal 115

7. Software: modelo virtual 1167.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167.2. Herramientas software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167.3. Descripción de la aplicación cube­virtual . . . . . . . . . . . . . . . . . . 1177.4. Arquitectura software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

7.4.1. Módulo calc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1187.4.2. Módulo func . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1217.4.3. Módulo cube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1227.4.4. Módulo vectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1247.4.5. Módulo video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1267.4.6. Módulo interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1277.4.7. Programa principal: cube_virtual . . . . . . . . . . . . . . . . . . . 127

7.5. Manejo del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1287.5.1. Descripción del interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . 1287.5.2. La pantalla de vídeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1287.5.3. Estado de las articulaciones . . . . . . . . . . . . . . . . . . . . . . . . 1317.5.4. Botones del interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1317.5.5. Interfaz para conversiones . . . . . . . . . . . . . . . . . . . . . . . . . 1387.5.6. Generación de secuencias . . . . . . . . . . . . . . . . . . . . . . . . . 138

7.6. Gusano virtual y gusano físico . . . . . . . . . . . . . . . . . . . . . . . . . . . 1407.6.1. El estado del gusano virtual . . . . . . . . . . . . . . . . . . . . . . . . 1407.6.2. El estado del gusano físico . . . . . . . . . . . . . . . . . . . . . . . . . 1407.6.3. Conversiones entre los estados . . . . . . . . . . . . . . . . . . . . . . . 140

7.7. Estados y niveles de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

Page 10: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

ÍNDICE GENERAL V

7.8. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

8. Estructura mecánica 1458.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1458.2. Descripción de los prototipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

8.2.1. Primer prototipo: cube­1.0 . . . . . . . . . . . . . . . . . . . . . . . . . 1458.2.2. Segundo prototipo: cube­2.0 . . . . . . . . . . . . . . . . . . . . . . . . 146

8.3. Servomecanismo futaba 3003 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1468.4. Modelo mecánico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

8.4.1. Cabeza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1488.4.2. Cola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1508.4.3. Cuerpo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

8.4.3.1. Módulos básicos . . . . . . . . . . . . . . . . . . . . . . . . . 1508.4.3.2. Articulaciones de doble eje . . . . . . . . . . . . . . . . . . . 153

8.5. Construcción de Cube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1558.6. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

9. Electrónica 1619.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1619.2. Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1619.3. Alternativas de diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1629.4. Arquitectura hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1649.5. Tarjetas CT6811 y BT6811 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

9.5.1. Características . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1659.5.2. Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669.5.3. Interconexión de las tarjetas . . . . . . . . . . . . . . . . . . . . . . . . 169

9.6. Red de microcontroladores: spinet . . . . . . . . . . . . . . . . . . . . . . . . . 1709.6.1. Arquitectura software . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1709.6.2. Servicios ofrecidos por la spinet . . . . . . . . . . . . . . . . . . . . . . 171

9.7. Adaptación a la estructura mecánica . . . . . . . . . . . . . . . . . . . . . . . . 1719.8. Alimentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1739.9. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

10. Software: gusano físico 17610.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17610.2. Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17610.3. Servos y secuencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

10.3.1. Control de los servos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17810.3.2. Secuencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

10.3.2.1. Parámetros temporales . . . . . . . . . . . . . . . . . . . . . . 17810.3.2.2. Estimación del tiempo de tránsito . . . . . . . . . . . . . . . . 180

10.4. Arquitectura software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18110.4.1. Módulo spinet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

Page 11: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

ÍNDICE GENERAL VI

10.4.2. Módulo vectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18310.4.3. Módulo secuencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18310.4.4. Módulo interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18410.4.5. Programa principal cube­fisico . . . . . . . . . . . . . . . . . . . . . . . 184

10.5. Manejo del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18410.5.1. Descripción del interfaz de usuario . . . . . . . . . . . . . . . . . . . . . 18410.5.2. Menú . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18610.5.3. Movimiento de los servos . . . . . . . . . . . . . . . . . . . . . . . . . 18610.5.4. Vector de estado físico . . . . . . . . . . . . . . . . . . . . . . . . . . . 18710.5.5. Control de secuencias . . . . . . . . . . . . . . . . . . . . . . . . . . . 18810.5.6. General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18910.5.7. Manejando las articulaciones . . . . . . . . . . . . . . . . . . . . . . . . 19010.5.8. Reproducción de secuencias . . . . . . . . . . . . . . . . . . . . . . . . 19010.5.9. Generación de secuencias . . . . . . . . . . . . . . . . . . . . . . . . . 190

10.6. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

11. Conclusiones y líneas futuras 19211.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19211.2. Líneas futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

A. Listado de piezas y materiales de Cube­2.0 198

B. Características de Cube­2.0 200

C. Programas para el 68hc11 201C.1. Programa maestro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201C.2. Programa esclavo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

D. Álbum de fotos 212

Page 12: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Índice de figuras

1.1. Brazo robot industrial, de la marca ASEA. . . . . . . . . . . . . . . . . . . . . . 21.2. Vista lateral del robot Asimo creado por Honda . . . . . . . . . . . . . . . . . . 31.3. Vista frontal de Asimo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4. Concurso de luchadores de sumo celebrado en la UPC, 2000 . . . . . . . . . . . 51.5. Izquierda: Concurso de limpiadores de superficie, UPC, 2000. Derecha: Robot

de sumo Tauro­viper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.6. Vehiculo MICROROVER analizando la roca “yogi” en Marte . . . . . . . . . . . 61.7. Prototipo del MICROROVER en los laboratorios de la NASA . . . . . . . . . . 71.8. Dos robots hexápodos muy simples . . . . . . . . . . . . . . . . . . . . . . . . 71.9. AIBO, el “Perro” robot de Sony . . . . . . . . . . . . . . . . . . . . . . . . . . 81.10. PUCHOBOT, un perro robot desarrollado por Andrés Prieto­Moreno Torres . . . 91.11. Una hormiga y una cucaracha . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.12. Un robot serpiente diseñado en la Nasa . . . . . . . . . . . . . . . . . . . . . . . 111.13. Dibujos del robot serpiente de la Nasa. Derecha: se ha fragmentado para explorar

un entorno. Izquieda: La serpiente está trepando por una estructura compleja. . . 121.14. Robot serpiente desarrolado en el GMD. . . . . . . . . . . . . . . . . . . . . . . 131.15. La serpiente del GMD atravesando un obstáculo . . . . . . . . . . . . . . . . . . 131.16. Distintos prototipos de serpiente del Dr. Gavin Miller . . . . . . . . . . . . . . . 141.17. El Dr. Gavin Miller con su creación. . . . . . . . . . . . . . . . . . . . . . . . . 141.18. Robot serpiente del Mita Lab, en Japón. . . . . . . . . . . . . . . . . . . . . . . 151.19. Tarjetas comercializadas por Microbótica, S.L . . . . . . . . . . . . . . . . . . . 161.20. Diferentes microbots desarrollados por Microbótica . . . . . . . . . . . . . . . . 161.21. El microbot Tritt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.22. Los microbots Pucho y Cube­1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.1. Tipos de propagación de perturbaciones . . . . . . . . . . . . . . . . . . . . . . 222.2. El efecto del amortiguamiento en una perturbación unidimensional . . . . . . . . 232.3. Propagación longitudinal y transversal . . . . . . . . . . . . . . . . . . . . . . . 242.4. Movimiento ondulatorio periódico y no periódico . . . . . . . . . . . . . . . . . 242.5. Propagación de una perturbación transversal y unidimensional . . . . . . . . . . 262.6. Propagación de una onda transversal y unidimensional, con amortiguamiento . . 272.7. Un gusano corto y uno largo que son recorridos por ondas transversales de la

misma amplitud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

VII

Page 13: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

ÍNDICE DE FIGURAS VIII

2.8. Concepto de longitud de onda. . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.9. La onda P(x,t) dibujada para cuatro instantes de tiempo diferentes y sólo en el

intervalo [0, λ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.10. Concepto de periodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.11. Una onda sinusoidal, en el intervalo x ∈ [0, λ] . . . . . . . . . . . . . . . . . . . 322.12. Un sistema por el que se propagan ondas longitudinales . . . . . . . . . . . . . . 33

3.1. Gusano longitudinal de cinco segmentos . . . . . . . . . . . . . . . . . . . . . . 363.2. Parámetros estáticos y dinámicos de un segmento i. . . . . . . . . . . . . . . . . 373.3. Parámetros estáticos y dinámicos de un gusano . . . . . . . . . . . . . . . . . . 383.4. Gusano longitudinal con un vector de estado de (A,0,0,0,0) . . . . . . . . . . . . 393.5. Una función de contorno triangular y el estado del gusano . . . . . . . . . . . . . 403.6. Un ejemplo de avance de un gusano longitudinal una distancia D . . . . . . . . . 413.7. Un gusano longitud que avanza, con sus vectores de estado en ciertos instantes . 423.8. Gusano que evoluciona de una manera incorrecta, por lo que no avanza . . . . . 433.9. Gusano que no avanza porque no se cumple la condición externa adecuada . . . . 433.10. Propagación de la función de contorno . . . . . . . . . . . . . . . . . . . . . . . 453.11. Movimiento de un gusano similar a una lombriz de tierra . . . . . . . . . . . . . 463.12. Un gusano en un instante t con los segmentos 1 y 2 activos . . . . . . . . . . . . 473.13. Gusano de tres segmentos que avanza, en el que se ve la evolución de los puntos

de apoyo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.14. Evolución de la contracción total del gusano de la figura 3.11. . . . . . . . . . . 503.15. Función de contorno que no cumple la regla de avance . . . . . . . . . . . . . . 513.16. Función de contorno cuadrada . . . . . . . . . . . . . . . . . . . . . . . . . . . 513.17. Función de contorno que cumple la proposición de avance . . . . . . . . . . . . 523.18. La función de contorno triangular al desplazarse cumple la proposición de avan­

ce. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533.19. Distancia recorrida por la funcion de contorno, desde el estado inicial hasta el final 543.20. Avance de un gusano de cuatro segmentos . . . . . . . . . . . . . . . . . . . . . 563.21. Funcion de contorno periodica . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.22. Contracción cuando la función de contorno es periódica . . . . . . . . . . . . . . 563.23. Función de contorno periódica con longitud de onda N+1 . . . . . . . . . . . . . 573.24. Nueva contracción cuando la longitud de onda es N+1 . . . . . . . . . . . . . . . 583.25. Función de contorno periódica con longitud de onda N . . . . . . . . . . . . . . 583.26. Nueva contracción cuando la longitud de onda es N . . . . . . . . . . . . . . . . 58

4.1. Modelo de gusano transversal con 5 segmentos y 6 articulaciones . . . . . . . . . 624.2. Elementos de una articulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . 624.3. Articulaciones con distintos estados y diferentes orientaciones . . . . . . . . . . 644.4. Dos articulaciones representadas mediante su vector interior y exterior. . . . . . . 654.5. Segmento exterior y segmento interior . . . . . . . . . . . . . . . . . . . . . . . 654.6. Diferentes valores de θ en una articulación . . . . . . . . . . . . . . . . . . . . . 664.7. Parámetros estáticos del gusano transversal. . . . . . . . . . . . . . . . . . . . . 67

Page 14: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

ÍNDICE DE FIGURAS IX

4.8. Parámetros dinámicos de un gusano transversal . . . . . . . . . . . . . . . . . . 684.9. Gusanos en diferentes estados . . . . . . . . . . . . . . . . . . . . . . . . . . . 694.10. Una función de contorno sinusoidal y el estado del gusano que determina . . . . 704.11. Concepto de zona activa de la función de contorno . . . . . . . . . . . . . . . . 714.12. Diferencia entre ZA y ZAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714.13. Gusano transversal y su gusano longitudinal asociado . . . . . . . . . . . . . . . 734.14. Relación entre un gusanos longitudinal y uno transversal. . . . . . . . . . . . . . 744.15. Propagación de la función de contorno . . . . . . . . . . . . . . . . . . . . . . . 754.16. Gusano transversal y longitudinal generado junto con los puntos de apoyo can­

didatos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764.17. Gusano transversal discreto y puntos de apoyo . . . . . . . . . . . . . . . . . . . 774.18. Propagación de la función de contorno y los diferentes estados que provoca en el

gusano transversal y longitudinal asociado . . . . . . . . . . . . . . . . . . . . . 784.19. Comparación de dos funciones de contorno que recorren el mismo gusano utili­

zando el parámetro VLP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804.20. Función de contorno que produce una VLP del 2 % . . . . . . . . . . . . . . . . 824.21. La contracción NO se mantiene constante . . . . . . . . . . . . . . . . . . . . . 824.22. Función de contorno incorrecta. El perímetro es más grande que la longitud del

gusano. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834.23. Función de contorno periódica, con longitud de onda igual a la zona activa mas

la longitud del gusano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844.24. Más de una perturbación recorriendo el gusano . . . . . . . . . . . . . . . . . . 84

5.1. Fundamentos de la generación de una secuencia . . . . . . . . . . . . . . . . . . 875.2. Algoritmo genérico para generar una secuencia de M estados . . . . . . . . . . . 885.3. Problema del ajuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895.4. Aplicación iterativa del ajuste de una articulacion . . . . . . . . . . . . . . . . . 905.5. Problema de ajuste aplicado a un gusano de 1 segmento y dos articulaciones . . . 915.6. Calculo del punto final como intersección de F(x) con una circunferencia . . . . 925.7. Una función de error ejemplo, generada con el programa kplot . . . . . . . . . . 945.8. Propagación del algoritmo de ajuste . . . . . . . . . . . . . . . . . . . . . . . . 955.9. Algoritmo de ajuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 965.10. Ángulo inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

6.1. Un gusano plano rígido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006.2. Un gusano plano rígidos en diferentes estados . . . . . . . . . . . . . . . . . . . 1016.3. Gusano plano rígido con un estado diferente de la articulación de la cola . . . . . 1016.4. Gusano avanzando por una función de trayectoria . . . . . . . . . . . . . . . . . 1026.5. Función trayectoria propagándose por un gusano . . . . . . . . . . . . . . . . . 1036.6. Gusano plano contráctil de 5 articulaciones y 4 segmentos . . . . . . . . . . . . 1046.7. Un gusano plano con un vector de estado de [(A,0,0,0),(0,0,30,0,0)] . . . . . . . 1056.8. Un gusano plano describiendo una función de trayectoria . . . . . . . . . . . . . 1066.9. Ejemplo de generación de los vectores de estado E

c(t) y E

o(t) . . . . . . . . . . 108

Page 15: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

ÍNDICE DE FIGURAS X

6.10. Articulacion de doble estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1096.11. Gusano tridimensional y su proyección . . . . . . . . . . . . . . . . . . . . . . . 1106.12. Etapas para la generación de secuencias de movimiento de un gusano tridimen­

sionalo sobre plano xy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1116.13. Función de trayectoria simple y gusano en estado inicial y final . . . . . . . . . . 1126.14. Algoritmo de avance para una trayectoria simple . . . . . . . . . . . . . . . . . 113

7.1. Entorno software desarrollado para cube . . . . . . . . . . . . . . . . . . . . . . 1177.2. Aspecto del programa cube­virtual . . . . . . . . . . . . . . . . . . . . . . . . . 1197.3. Módulos del programa cube­virtual . . . . . . . . . . . . . . . . . . . . . . . . 1207.4. Estructura de datos empleada para modelar el gusano . . . . . . . . . . . . . . . 1227.5. Diferentes partes del interfaz del programa cube_virtual . . . . . . . . . . . . . . 1297.6. La pantalla de vídeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1307.7. Estado de las articulaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1307.8. Grupos de botones en el interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . 1317.9. Las tres funciones de contorno empleadas . . . . . . . . . . . . . . . . . . . . . 1347.10. Secuencia de 4 estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1367.11. Propagación del estado hacia la ezquierda y la derecha . . . . . . . . . . . . . . 1377.12. Gusano en un estado alcanzado “manualmente” . . . . . . . . . . . . . . . . . . 1377.13. Gusano enganchado a una función de contorno a la que se le varía la amplitud . . 1397.14. Interfaz para las correcciones del estado . . . . . . . . . . . . . . . . . . . . . . 1397.15. Gusanos con diferente estado de la articulacion 1 . . . . . . . . . . . . . . . . . 1417.16. Articulaciones virtuales y servos reales . . . . . . . . . . . . . . . . . . . . . . . 1427.17. Los tres niveles de control del gusano . . . . . . . . . . . . . . . . . . . . . . . 143

8.1. Primera version del gusano: cube­1.0 . . . . . . . . . . . . . . . . . . . . . . . . 1468.2. Foto de Cube 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1478.3. Foto con las estructuras mecánicas de Cube 1.0 y Cube 2.0 . . . . . . . . . . . . 1478.4. Foto de un servo modelo futaba 3003 . . . . . . . . . . . . . . . . . . . . . . . . 1488.5. Planta y alzado de Cube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1498.6. Foto de la estructura de cube . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1498.7. Diferentes vistas de la cabeza de Cube . . . . . . . . . . . . . . . . . . . . . . . 1508.8. La cabeza vista en perspectiva . . . . . . . . . . . . . . . . . . . . . . . . . . . 1518.9. Diferentes vistas de la cola de Cube . . . . . . . . . . . . . . . . . . . . . . . . 1518.10. La cola de Cube vista en perspectiva . . . . . . . . . . . . . . . . . . . . . . . . 1528.11. Módulo básico, en diferentes vistas . . . . . . . . . . . . . . . . . . . . . . . . . 1528.12. Módulo básico visto en perspectiva . . . . . . . . . . . . . . . . . . . . . . . . . 1538.13. Diferentes vistas de una articulación con doble eje . . . . . . . . . . . . . . . . . 1548.14. Construcción de la pieza con falso eje . . . . . . . . . . . . . . . . . . . . . . . 1548.15. Todas las piezas necesarias para construir Cube­2.0 . . . . . . . . . . . . . . . . 1568.16. Aspecto de la articulación de doble eje una vez montada . . . . . . . . . . . . . 1578.17. Rueda del futaba, con los taladros que hay que realizar . . . . . . . . . . . . . . 1588.18. Paso 6 del montaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

Page 16: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

ÍNDICE DE FIGURAS XI

8.19. Paso 7: Unión de los módulos básicos. . . . . . . . . . . . . . . . . . . . . . . . 1598.20. Estructura final de Cube­2.0, sin la electrónica . . . . . . . . . . . . . . . . . . . 160

9.1. Alternativa 1: PC + electrónica por el puerto paralelo . . . . . . . . . . . . . . . 1629.2. Alternativa 2: PC + microcontrolador por puerto serie . . . . . . . . . . . . . . . 1639.3. Alternativa 3: Red de microntroladores, conectada al PC por puerto serie . . . . . 1649.4. Arquitectura hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1659.5. Las tarjetas CT6811 y BT6811 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669.6. Elementos de la tarjeta CT6811 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1679.7. Elementos de la tarjeta BT6811 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1689.8. Interconexión de las tarjetas CT6811 y BT6811 en Cube . . . . . . . . . . . . . 1699.9. Arquitectura software de la spinet . . . . . . . . . . . . . . . . . . . . . . . . . 1709.10. La estructura mecánica y la electrónica de cube. . . . . . . . . . . . . . . . . . . 1729.11. Situación de la electrónica y las pilas en Cube . . . . . . . . . . . . . . . . . . . 1739.12. Gusano final, con las principales interconexiones . . . . . . . . . . . . . . . . . 174

10.1. Aspecto del programa cube­fisico . . . . . . . . . . . . . . . . . . . . . . . . . 17710.2. Gráfica de conversión entre grados y grados futaba . . . . . . . . . . . . . . . . 17810.3. Ejemplo de tiempo de tránsito y de tiempo de espera en la evolución de un servo . 17910.4. cf_arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18110.5. Diferentes partes del interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18510.6. Parte superior del interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18610.7. Posicionamiento de los servos . . . . . . . . . . . . . . . . . . . . . . . . . . . 18710.8. Parte del interfaz relacionada con los vectores de estado físicos . . . . . . . . . . 18710.9. El interfaz para el control de las secuencias . . . . . . . . . . . . . . . . . . . . 18810.10.Botones generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

11.1. Prototipo final, Cube­2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19411.2. Programa cube­fisico para el control del gusano físico . . . . . . . . . . . . 19511.3. Entorno de trabajo virtual, para un gusano transversal . . . . . . . . . . . . . . . 196

Page 17: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Capítulo 1

Introducción

1.1. Encuadre

1.1.1. Robótica, Robots y sus diferentes tipos

Hoy en día la robótica como disciplina ha crecido mucho y existe una gran cantidad de robots,cada uno de un estilo totalmente diferente al otro. Es muy difícil hacer una clasificación generalválida para todos ellos. Con la idea de encuadrar el objeto de este proyecto se va a realizar unaclasificación, que no es en absoluto rígida y en la que las fronteras no son totalmente nítidas,pero queo nos servirá para centrar las ideas.

Como primer criterio de clasificación se va a emplear la reentabilidad o provecho comercialque se le puede sacar al robot, que nos permite hacer la primera división entre robots industria­les y robots de investigación. Los primeros tienen un tremendo impacto en la industria y sonpor tanto económicamente rentables. Los segundos no generan beneficios, al contrario, hay queinvertir mucho dinero, pero generan conocimiento y hacen que la robótica evolucione.

Los típicos robots industriales [1] son brazos mecánicos, muy pesados, con cierto númerode grados de libertad y que se caracterizan por la versatilidad: ahora pintan, ahora sueldan, aho­ra colocan piezas,etc. según el manipulador que se les enganche. Se utilizan en las plantas demontaje, haciendo trabajos repetitivos y que pueden ser peligrosos para los hombres. En la figura1.1 hay una foto de un robot industrial de la marca Asea, con seis grados de libertad, tres paraposicionar el manipulador y tres para orientarlo. Para tener una visión global sobre los robotsindustriales se puede consultar [2], para profundizar más [3] y si se quiere algo introductorio dealto carácter práctico, [4].

Por otro lado, están los robots de investigación, que intentan aportar algo nuevo a la robótica:nuevos algoritmos más inteligentes, nuevas formas de movimiento, etc. Dentro de estos robots sepuede hacer otra clasificación, agrupándolos en tres grandes familias: Robots humaniformes,robots tipo vehículo y robots que imitan animales1.

Los robots humaniformes no son nuevos. Se lleva hablando de ellos mucho tiempo. De

1Por el término animal agruparemos a todos aquellos seres vivos que no son humanos: otros mamíferos, insectos,peces, arácnidos,etc.

1

Page 18: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 2

Figura 1.1: Brazo robot industrial, de la marca ASEA.

hecho, la propia palabra robot proviene del checo y quiere decir “esclavo”. La primera vez quese emplezó a hablar de robots fue en una novela de ciencia ficción, escrita por Karel Capek [5] en1917 en la que se describe a unas criaturas mecánicas, robots, creados por un científico con el finde realizar todo el trabajo duro y pesado para el hombre. Estas criaturas se revelan al final contrasu creador. La novela marcó un hito y dió comienzo a una tendencia anti­robot a la que IsaacAsimov2 bautizó con el nombre de “Complejo de Frankenstein”, queriendo indicar el miedo queexiste a crear criaturas artificiales que puedan llegar a revelarse contra sus creadores.

Isaac Asimov, el creador del término robótica como ciencia de los robots, escribió infini­dad de cuentos cortos y novelas sobre el tema de los robots humaniformes, pero desde un puntode vista no destructivo, tratando a los robots como máquinas inteligentes que realizan un tra­bajo muy útil para el hombre. Para garantizar la seguridad definió sus famosas tres leyes de larobótica3, que no puedo por menos que reproducir aquí:

1. Un robot no puede hacer daño a un ser humano, o, por medio de la inacción, permitir quesea lesionado.

2. Un robot debe obedecer las órdenes recibidas por los seres humanos, excepto si estas ór­

2Soy un fi el lector de Isaac Asimov. Creo que ha aportado mucho a la popularización de la robótica y me veo enla obligación de citarlo.

3Publicadas por primera vez en la revista “Asombrosa ciencia fi cción”en 1942, y estaban incluidas en la historia“el círculo vicioso”. Este cuento, junto a otros se puede encontrar en [6]

Page 19: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 3

Figura 1.2: Vista lateral del robot Asimo creado por Honda

denes entrasen en conflicto con la Primera Ley.

3. Un robot debe proteger su propia existencia en la medida en que esta protección no seaincompatible con la Primera y la Segunda Ley.

La idea de tener una máquina tan versátil como un ser humano es muy buena. Si todas las herra­mientas están hechas para que las manejen humanos, ¿no es una buena idea el crear una máquinaque maneje esas herramientas en vez de automatizar las propias herramientas? Por ejemplo, unaexcavadora podría convertirse en un robot autónomo, o se podría sustituir el conductor por unrobot humaniforme, sin tener que cambiar la excavadora. Este razonamiento lo deja intuir muyclaramente Isaac Asimov en sus obras sobre robots.

Los robots humaniformes de hoy en día, no tienen todavía utilidad comercial, pero son de­sarrollados por grandes empresas para mostrar su elevada tecnología y conseguir que los medioshablen sobre ellas. Son un reclamo publicitario. El mejor ejemplo está en el robot Asimo [7],desarrollado por Honda y que se puede ver en las figuras 1.2 y 1.3.

En el M.I.T4 se está trabajando en un robot humaniforme, COG, con un comportamientosimilar al de un niño de dos años[8]. De momento han desarrollado el tronco superior del robot:torso, brazos y cabeza.

Los robots tipo vehículo son una evolución lógica del concepto tan usual de medio de trans­porte: la mecánica ya existe, ahora convirtámosla en un robot. Se caracterizan porque disponende ruedas u orugas que les permiten moverse por un entorno, igual que lo hace un tanque, uncoche o una excavadora. Realmente se pueden definir como “vehículos con inteligencia”. Son

4MIT son las siglas de “Massachusets Institute of Technology”

Page 20: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 4

Figura 1.3: Vista frontal de Asimo.

robots más sencillos de construir que los humaniformes, más baratos y la mecánica está muchomás estudiada.

Actualmente hay dos tipos de vehículos robóticos. Por un lado los modelos de iniciación,que son muy simples y cualquier estudiante o aficionado se los puede construir. En el ambienteuniversitario se emplean para que los alumnos asimilen los conceptos y aprendan electrónica,mecánica y programación, además de, por qué no, para que se diviertan. Existen numerosos con­cursos en los que se puede participar, como Robocup [9], donde los robots juegan un partido defútbol, luchadores de sumo [10] [11], donde se enfrentan en terribles luchas sin tregua, carre­ras(microracing), salir de un laberinto y rastreadores son otras categorías en las que se compite,como por ejemplo en el concurso Alcabot en la Universidad de Alcalá de Henares [12].

En la figura 1.4 se muestran escenas de un concurso de luchadores de sumo celebrado enla UPC. Dos robots se sitúan frente a frente en un tatami circuilar, de color negro, estando elborde delimitado por un color blanco. El objetivo es echar fuera del tatami al adversario. Paraello los robots deben estar dotados de sensores que le permitan detectar si ellos mismos se salenfuera, analizando el color del suelo, y sensores para detectar al adversario. Además de esto debendisponer de mecanismos para expulsar al enemigo.

En la figura 1.5 se muestra en la parte de la izquierda el concurso de “robots limpiadoresde superficie” también celebrado en la UPC. En este caso el robot lucha contra el reloj y tieneque recoger de un recinto cerrado tantos granos de arroz como pueda. Si además los depositaen “la basura” obtendrá más puntos. En la foto de la derecha se muestra un robot que concursóen Sumo y en cuya construcción participó el autor de este proyecto. Se trata de un toro que encuanto detecta al enemigo comienza a embestir hasta que lo expulsa del tatami.

Otro tipo de vehículos más avanzados son los de exploración, que sirven para reconocerun entorno hostil, donde el hombre no puede llegar, y así obtener datos y realizar medidas. LaNASA está trabajando en este tipo de robots. La sonda Mars Pathfinder [14] que se envió aMarte llevaba en su interior un vehículo autónomo para recorrer el entorno y tomar muestras de

Page 21: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 5

Figura 1.4: Concurso de luchadores de sumo celebrado en la UPC, 2000

Figura 1.5: Izquierda: Concurso de limpiadores de superficie, UPC, 2000. Derecha: Robot desumo Tauro­viper.

Page 22: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 6

Figura 1.6: Vehiculo MICROROVER analizando la roca “yogi” en Marte

la superficie de marte. Aunque gran parte del control de este robot se realizaba remotamente,estaba dotado de una cierta inteligencia que lo diferencia mucho de un simple robot por “radiocontrol” .

La misión a marte fue un éxito, aunque el vehículo se quedó a veces “atascado”, teniendo quehacer muchas maniobras para poder avanzar por el pedregoso terreno. Esto puso de manifiestodos aspectos importantes: Por un lado la viabilidad de enviar robots en vez de hombres, que esmucho más barato y menos arriesgado. Por otro lado la necesidad de enviar robots cada vez másversátiles y que se adapten a cualquier tipo de superficie.

En la figura 1.6 hay una foto del Microrover sobre la superficie de Marte, tomada desde lasonda. Está analizando la roca “Yogi”. Puede verse la cantidad de piedras que hay sobre el terrenoy lo complicado que resultó para el robot poder acceder a la roca. En la figura 1.7 se muestrauna versión prototipo del Microrover que se está probando en los laboratorios de la NASA, enun entorno que simula la superficie marciana.

1.1.2. Robots animales

Con la idea de buscar robots que puedan sustituir a los vehículos con ruedas, de manera quepuedan moverse por superficies donde éstos no pueden, ingenieros y científicos están imitandoanimales, que se encuentran muy bien adaptados al medio en el que viven. ¿Para qué inventaruna máquina nueva, si la evolución ha creado unas criaturas perfeccionadas por el transcurso de

Page 23: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 7

Figura 1.7: Prototipo del MICROROVER en los laboratorios de la NASA

Figura 1.8: Dos robots hexápodos muy simples

Page 24: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 8

Figura 1.9: AIBO, el “Perro” robot de Sony

miles de años y que están exitosamente adaptadas al medio en el que se desenvuelven? Esta ideade imitar a la naturaleza es una fuente de inspiración muy fuerte para los técnicos. El problemaes que los animales son tan tremendamente complejos que el hombre sólo puede hacer burdasimitaciones, de momento. Qué más quisieran los ingenieros de la Nasa que crear un vehículode exploración que fuese un “mono robot” y que pudiese realizar sus mismos movimientos. Noexistirían obstáculos para la exploración de entornos hostiles fuera de la Tierra.

Una manera de clasificar los animales robots es atendiendo al número de extremidades. Estánlos robots con patas y los “sin patas”. Los robots con patas intentan heredar las característicasde sus animales replicados. Al tener patas son rápidos, aunque no tanto como los vehículos,ágiles, pueden moverse por terrenos complicados y tienen la capacidad de poderse impulsar paradar pequeños saltos. Esto es en teoría lo que podrían llegar a hacer. En la práctica son lentos ybastante torpes, como si fuesen crías recién nacidas. Conseguir movimiento con patas no es unatarea nada trivial. La coordinación entre las diferentes articulaciones es un problema que todavíano está resuelto de una forma elegante. En la figura 1.8 se muestran dos robots hexápodos, conseis patas. Se puede ver que su estructura es muy simple y dan la impresión de ser lentos y pocoágiles. Distan mucho todavía de moverse como una hormiga real.

Según el número de patas del robot, se pueden denominar cuadrúpedos, hexápodos, octápo­dos,etc. Los cuadrúpedos tienen “personalidad propia” y difieren mucho del resto. Este tipo derobots tienen mucho parecido con las mascotas que los humanos empleamos (gatos, perros,etc.)por lo que son muy “amigables” y tienen mucha aceptación entre el público en general. Quizássea una forma de ir introduciendo la robótica poco a poco y que la gente venza el “complejode Frankenstain” al que hace referencia Asimov. La mascota que más sorprende es AIBO [15],desarrollada por SONY, que se puede ver en la figura 1.9. En la foto de la izquierda está andandoante la estupefacta mirada de un perro de verdad. Sorprende lo logrado que está el acabado finaly la coordinación tan buena que tiene. En el ambiente universitario también se han desarrolladoestos robots, con un presupuesto mucho más bajo, pero los resultados obtenidos son sorprenden­tes. Es el caso de Puchobot [16], desarrollado por D. Andrés Prieto­Moreno Torres en la UPM,

Page 25: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 9

Figura 1.10: PUCHOBOT, un perro robot desarrollado por Andrés Prieto­Moreno Torres

como proyecto fin de carrera, y que se puede ver en la figura 1.10. Está dotado de doce articu­laciones controladas por una red maestro­esclavo de microcontroladores. El perro es autónomo(no necesita conectarse al PC para su funcionamiento), puede avanzar, girar, sentarse, dar la pa­ta, etc. Las secuencias de movimiento se programan desde el PC y luego se envían a Puchobotpara que las reproduzca. El entorno de desarrollo es excelente y pone de manifiesto lo complejaque es la coordinación de todas las articulaciones para conseguir el movimiento. Se trata de unaplataforma ideal para probar diferentes secuencias de coordinación y estudiar con detenimientoel movimiento de los cuadrúpedos.

Los robots hexápodos tienen sólo dos patas más que los cuadrúpedos pero son radicalmenteopuestos a estos. Para empezar, si la coordinación de cuatro patas es compleja, la de seis lo esmuchísimo más. Normalmente los prototipos tienen seis patas pero no son independientes, sinoque bien mecanicamente o por software la patas se “aparean” de manera que cuando una avanzala otra retrocede o cuando una se levanta la otra baja, con lo que es como si sólo hubiese trespatas libres. Por tener mayor número de patas son mucho más estables. Esta es una propiedadmuy interesante y que los hace especialmente útiles, puesto que si pierden una pata, por ejemplosi se estropea la electrónica o el servo, el robot puede seguir desplazándose, peor que al principio,pero lo puede hacer. Sólo hay que hacer el experimento de quitar una pata a una hormiga y verqué ocurre.

Los hexápodos intentan imitar diferentes insectos, como cucarachas u hormigas. En la figura1.11 se muestran dos hexápodos totalmente diferentes. El de la derecha es una hormiga5 cons­tituida por doce articulaciones. La secuencia de movimiento que se emplea es tremendamentesimple y a pesar de ello el avance es muy bueno y tiene unos andares muy “graciosos”. En la fotode la derecha aparece un robot cucaracha, que en vez de servos usa actuadores neumáticos, de

5Sólo es una hormiga por el número de patas y las antenas, pero no por el tamaño ni el peso.

Page 26: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 10

Figura 1.11: Una hormiga y una cucaracha

ahí el elevado número de tubos que interconectan todas las partes. Los robots que imitan insectoso cualquier otra cosa que no sean mascotas tienen menos aceptación entre la gente. Los suelendenominar bajo el término “bichos” y como se parecen a los insectos que imitan, generan ciertorechazo6.

1.1.3. Robots sin patas

Los robots sin patas son conocidos como robots gusano o robots serpiente (snake robots).Estos no son tan veloces ni tan ágiles como los que tienen patas, pero tienen una serie de ventajasque justifican su investigación. Al tener una forma alargada, pueden penetrar por sitios a los queotro tipo de robot no tiene acceso, como por ejemplo una tubería. Pueden adoptar la forma de lasuperficie por la que se desplazan, de manera que pueden hacerlo por sitios muy tortuosos. Estáncompuestos por segmentos iguales, que se enganchan unos a otros, pudiendo conseguirse robotsde cualquier longitud. En la figura 1.12 se muestra uno de estos “bichos”, diseñado por la NASA,en el que se puede apreciar claramente los diferentes segmentos idénticos que la componen.También se puede ver la facilidad que tienen para adoptar cualquier forma.

El desplazamiento se consigue mediante ondas que recorren el robot, para lo cual las articu­laciones tienen que estar perfectamente coordinadas. Las ondas pueden ser:

Ondas transversales: El movimiento de la onda es perpendicular a la dirección de avance.Existen dos posibilidades, según como esté situado el plano que contiene a la onda conrespecto al plano por el que se desplaza el robot:

◦ Ondas transversales paralelas: Es el clásico movimiento de las serpientes, haciendo“eses”. También se denomina movimiento de serpentina (serpentine movement). Lasondas se transmiten desde la cabeza hasta la cola generando movimiento.

6Anécdota: Todavía recuerdo la expresión que empleó mi hermana Virginia cuando por primera vez vió moversea Cube, el gusano que se construye en este proyecto: “¡Qué asco!”,exclamó. Lógicamente, esto me agradó porquequería decir que el movimiento estaba muy logrado y que realmente se parecía a un gusano.

Page 27: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 11

Figura 1.12: Un robot serpiente diseñado en la Nasa

◦ Ondas transversales perpendiculares: Es el movimiento de los gusanos de seda.Aquí las ondas se transmiten desde la cola hasta la cabeza.

Ondas longitudinales: El movimiento de la onda se realiza en la misma dirección depropagación. Las ondas son como las del sonido al propagarse: contracción­expansión­contracción. Es el movimiento de las lombrices de tierra.

Estos tipos de desplazamientos pueden superponerse entre ellos. Las serpientes por ejemplo nosólo hacen el movimiento de serpentina sino que también realizan contracciones y expansiones.Lo mismo les sucede a los gusanos de seda con las ondas longitudinales y las transversalesperpendiculares.

Este proyecto se encuadra en el campo de los robots de investigación, de tipo ani­mal y sin patas. En concreto se centra en el movimiento unidimensional medianteondas transversales, perpendiculares a la superficie, que recorren el gusano desdela cola a la cabeza.

1.1.4. Estado del arte

Actualmente se está trabajando con robots “sin patas” en muchos centros de investigación yuniversidades. En la NASA [18] han desarrollado un prototipo muy modular, que se puede veren la figura 1.12, constituido por muchos módulos iguales, que se enganchan unos con otros, conlo que la serpiente puede crecer tanto como sea necesario. Lo están desarrollando para investigarsobre nuevas formas de movimiento para vehículos de exploración espacial. En particular, lasserpientes se adaptan muy bien a cualquier tipo de terreno y se pueden romper en trozos más

Page 28: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 12

Figura 1.13: Dibujos del robot serpiente de la Nasa. Derecha: se ha fragmentado para explorarun entorno. Izquieda: La serpiente está trepando por una estructura compleja.

pequeños con autonomía propia. En la figura 1.13 se muestran dos dibujos, sacado de la web dela Nasa. En el de la derecha, la serpiente se ha partido en tres trozos iguales y está explorandouna superficie de un planeta. En la imagen de la izquierda aparece la serpiente trepando por unaestructura compleja, donde otro tipo de robot no podría llegar.

En el Ais (Institute for Autonomous Intelligent systems) dentro del GMD (German NationalResearch) están trabajando con robots serpientes [22] similares a los de la Nasa (fig 1.14), cons­tituidos por diferentes secciones que se conectan para constituir una serpiente completa. Cadasección está controlada por un procesador esclavo y todos los esclavos se interconectan median­te un bus serie (CAN­Bus). Existe un procesador central en la red, el maestro, que coordina elmovimiento. La alimentación de la serpiente es externa a ella, teniéndose que conectar un cable.En la figura 1.15 se muestra la serpiente atravesando un obstáculo. Las características para unaserpiente de 6 segmentos son:

Longitud: 200cm

Peso: 3Kg

Diametro: 6cm

Consumo medio: 15Watt

Velocidad: 50cm/min

Existen también serpientes desarrolladas por particulares. Es el caso del Dr. Gavin Miller, quelleva desarrollando prototipos desde 1992[23]. Sus serpientes se caracterizan por el movimientode “serpentina”. En la figura 1.16 se muestran los diferentes prototipos que ha realizado y en la

Page 29: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 13

Figura 1.14: Robot serpiente desarrolado en el GMD.

Figura 1.15: La serpiente del GMD atravesando un obstáculo

Page 30: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 14

1994­951992­93 1996 1998­99

Figura 1.16: Distintos prototipos de serpiente del Dr. Gavin Miller

Figura 1.17: El Dr. Gavin Miller con su creación.

figura 1.17 se muestra el tamaño real de una de sus serpientes. Para poder desplazarse por lassuperficies dispone de unas pequeñas ruedas en cada uno de los segmentos.

Muy similares son las serpientes que se han desarrollado en el Mita Laboratory[24], en Japón.En la figura 1.18 se puede ver uno de sus prototipos, constituido por muchas secciones iguales,conectadas. También están trabajando con el movimiento de serpentina.

Para más información puede consultarse [25] donde hay muchísimos enlaces, todos relacio­nados con este tipo de robots.

1.2. Motivación

Desde pequeño me han fascinado los robots. Quizás fuese por la serie “Mazinger Z”, no losé, pero la curiosidad y la necesidad de estudiar y diseñar robots me han acompañado desde quetengo uso de razón.

De hecho, el entrar en la Escuela de Teleco no fue casualidad. En una visita al Simo, quepor aquel entonces no era tan grande como lo es ahora, ví con asombro cómo un brazo robottransportaba objetos de un lugar a otro. Después de hablar con el que había programado el roboty descubrir que era Ingeniero de Telecomunicación, tuve muy claro qué era lo que quería estudiar.Y así fue como me decidí entrar en la ETSIT.

En la escuela tuve la suerte de conocer a tres de mis mejores amigos, con los que trabajo aho­ra: Cristina, Andrés y Juanjo (Peco). El destino quiso que nos conociésemos y que formásemosun grupo, denominado por entonces como Grupo J&J. Juntos construimos placas microcontro­

Page 31: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 15

Figura 1.18: Robot serpiente del Mita Lab, en Japón.

Page 32: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 16

Tarjeta CT256Tarjeta CT293Tarjeta CT6811

Figura 1.19: Tarjetas comercializadas por Microbótica, S.L

CLONICO GOLIAT TAURO­VIPER

Figura 1.20: Diferentes microbots desarrollados por Microbótica

ladores basadas en el 68HC11 de Motorola (Figura 1.19), así como toda la electrónica necesariapara poder realizar robots básicos. Como miembros de la Rama de estudiantes del IEEE, co­menzamos a impartir talleres de Microbótica7, primero en la propia escuela y después fuera deella [26]. Asistimos al I Concurso Nacial de robot luchadores de sumo, celebrado en la UPC enMarzo de 1997 y en nuestro ratos libres desarrollamos nuevas placas, robots más avanzados yescribimos un libro sobre la programación con el 68HC11[21].

Todo esto nos condujo a formar una empresa, llamada Microbótica S.L [19], dedicada a reali­zar proyectos y a vender Microbots, sobre todo en Universidades. Un robot que se ha convertidoen un “clásico” es Tritt, que destaca por su sencillez y facilidad de programación (Figura 1.21)

Continuando con las inquietudes en el campo de la robótica, Andrés decidió construir unPerro robot[16] y yo un gusano (Figura 1.22). La pregunta que me abordaba era: ¿Es posibleconstruir un robot sin patas que se pueda mover?. Y la respuesta es este proyecto.

Para comprender mejor el movimiento de los gusanos y poder formalizarlo para su posteriorimplementación, he vistomuchos vídeos de National Geograghic, en los que aparecen diferentesinsectos, entre ellos orugas, larvas, lombrices y gusanos de seda. Toda la parte teórica y losresultados obtenidos se basan en la observación directa del movimiento de estos insectos.

7La palabra Microbótica fue inventada por nosotros y nació de la abreviación de las palabras Micro y robótica,con la idea de hacer referencia a un tipo de robot muy diferente del industrial, más simple, sencillo y económico. Eltérmino ha tenido tanta aceptación que hasta se han escrito libros sobre el tema [20]

Page 33: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 17

Figura 1.21: El microbot Tritt

PUCHO CUBE­1.0

Figura 1.22: Los microbots Pucho y Cube­1.0

Page 34: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 18

1.3. Objetivos

Los objetivos de este proyecto son los siguientes:

1. Diseño y construcción de un robot tipo gusano, que se desplace horizontalmente y enlínea recta de forma análoga a como lo hacen los gusanos, mediante ondas transversalesque se propagan desde la cola hasta la cabeza.

2. Desarrollo del cálculo automático de las secuencias de movimiento necesarias para quese desplace en función de la onda aplicada.

3. Diseño de un software de alto nivel, para un ordenador PC, que pueda generar las se­cuencias de movimiento del gusano según cómo sea la forma de la onda que lo recorra, superiodo y su amplitud.

4. Estudio de alternativas para la incorporación de mecanismos de giro.

El punto 1 implica la construcción de un robot físico, capaz de situar sus articulaciones en laposición indicada por el software. Los puntos 2 y 4 hacen referencia a la teoría necesaria parlograr la coordinación entre las diferentes articulaciones. Y el punto 3 es la implementaciónsoftware de los cálculos y algoritmos descritos.

En el robot se buscan las siguientes características:

1. Ser económico, de manera que cualquier persona se lo pueda construir sin tener que reali­zar una gran inversión. Hoy por hoy no se encuentra nada asequible en el mercado.

2. Ser fácil de construir. Las piezas tienen que ser sencillas y fáciles de encontrar en elmercado.

3. Ser extensible. Si se tiene poco dinero se construye un gusano corto, pero gastándose másdinero se puede hacer todo lo largo que se quiera. No puede haber limitaciones hardware,software, ni mecánicas.

4. Ser sencillo, en general. Por ejemplo pocos tipos de piezas diferentes, fáciles de montar,interconexiones electrónicas simples y fáciles de conectar, etc.

Para cumplir los puntos 1, 2 y 4 no se han implementado los mecanismos de giro descritos en laparte teórica. El llevarlos a la práctica implica un rediseño de la estructura mecánica, dejando enese caso de ser sencillo y barato.

Finalmente comentar que el gusano recibe el nombre de CUBE8

8Este nombre no tiene nada que ver con la forma del gusano, ni tampoco signifi can nada las iniciales. Se pusoa raiz de ver la pelicula “CUBE”, que al ser tan extraña, el nombre encajaba perfectamente con el de un robot tanpoco usual.

Page 35: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 1. INTRODUCCIÓN 19

1.4. Organización del tomo

Este tomo está organizado en dos grandes partes:En la parte I se abordan todos los aspectos teóricos, necesarios para el correcto entendimien­

to de los gusanos y su posterior implementación. El capítulo 2 es introductorio y muy básico.En él se presentan los conceptos fundamentales de la propagación de ondas. Los capítulos 3 y4 abordan sendos tipos de gusanos diferentes, los longitudinales y los transversales. En el 5 sepresentan el algoritmo principal para el cálculo de secuencias de movimiento: el algoritmo deajuste, que será ampliamente utilizado en la implementación. Finalmente el capítulo 6 aborda elcomplejo tema de los mecanismos de giro y se presenta un algoritmo para la coordinación de lasarticulaciones que permite que el gusano describa cualquier trayectoria sobre un plano.

La parte II está dedicada a la implementación de CUBE. En el capítulo 7 se explica elsoftware en el que se ha implementado un gusano virtual, y que sirve para hacer cálculos ygenerar las secuencias de movimiento. En el 8 se presenta la estructura mecánica, mostrando lasdiferentes partes y cómo hay que unirlas para construir el prototipo. La electrónica está descritaen el capítulo 9 y por último en el 10 se explica el software en el PC que interactúa con elhardware y con los servos, permitiendo generar secuencias manuales de movimiento y enviandoal gusano secuencias generadas con el modelo virtual. Las conclusiones finales y las mejorasfuturas se presentan en el capítulo 11.

En todos los capítulos hay una introducción y un resumen final. Leyendo sóloestos apartados uno se puede hacer una idea general del contenido del proyecto,sin necesidad de entrar en demasiados detalles.

Page 36: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Parte I

Teoría

20

Page 37: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Capítulo 2

Propagación de perturbaciones

2.1. Introducción

En este capítulo introductorio se presenta el fenómeno físico de la propagación de perturba-ciones, dando una visión general y centrándose en las ideas y conceptos que son de interés paraeste proyecto. Partiendo de una perturbación genérica, se van a ir añadiendo restricciones hastallegar al modelo de onda que nos interesa, presentando las ecuaciones y parámetros que se van autilizar y haciendo un repaso de los conceptos implicados.

Supóngase que sobre un medio cualquiera se produce una perturbación en un punto deno-minado foco de la perturbación (F). Ésta se propaga en todas las direcciones y poco a pocose va amortiguando hasta que desaparece. El típico ejemplo es el de la piedra que cae sobre unestanque de agua en reposo. Se generan pequeñas ondas que se propagan radialmente, con centroen el lugar donde la piedra cayó.

El fenómeno de la propagación de una perturbación se denomina movimiento ondulatorioy la perturbación en sí recibe el nombre de onda.

Más información sobre el movimiento ondulatorio se pueden encontrar en cualquier libro defísica general, por ejemplo [27].

2.2. Clasificación de las perturbaciones

Las perturbaciones se propagan en todas las direcciones en las que haya medio por el quepoder hacerlo. Así, existe propagación tridimensional, como por ejemplo el sonido o la luz,bidimensional como en el ejemplo del estanque y unidimensal, las cuerdas vibrantes de unagitarra (Figura 2.1)

La propagación no se realiza hasta el infinito, sino que se va atenuando hasta que desaparece.La atenuación se debe a dos fenómenos diferentes:

1. Absorción de energía por parte del medio. Ej. rozamiento entre las partículas.

2. La energía aportada por el foco cada vez se reparte entre un número mayor de partí-culas, según se va propagando.

21

Page 38: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 2. PROPAGACIÓN DE PERTURBACIONES 22

F

Eje Y

Eje X

F

Eje Z

FEje X

BidimensionalTridimensional

Unidimensional

Eje Y

Eje X

Figura 2.1: Tipos de propagación de perturbaciones

Esto permite realizar otra clasificación: Propagación con amortiguamiento y sin él. En la figu-ra 2.2 se muestra este concepto aplicado a una perturbación con propagación unidimensional. Sinembargo, el modelo sin amortiguamiento, además de ser más sencillo su estudio, es necesario sila propagación se realiza en medios activos, es decir, medios que no absorben energía de la per-turbación sino que la aportan. Los medios pasivos son los clásicos: el aire en la propagación delsonido, el vacío en la propagación de la luz, las cuerdas de una guitarra,etc. El lector puede estarintrigado llegados a este punto, ¿qué medio es activo?. Por ejemplo un gusano, vivo o mecánico.En ellos las ondas de movimiento, bien transversales o bien longitudinales, se transmiten por elmedio, que es el propio gusano, pero la energía para la propagación es aportada por el gusano yno por un foco externo, por lo que las ondas no sufren atenuación.

Las propagación de perturbaciones unidimensionales puede ser de dos tipos: transversal olongitudinal. La propagación transversal es aquella en la que los puntos se desplazan perpendi-cularmente a la dirección de propagación, mientras que en la longitudinal lo hacen en la mismadirección. Las ondas reciben los nombres de transversales o longitudinales, según cómo seala propagación. En la figura 2.3 se han dibujado dos ejemplos. El primer sistema está formadopor unas bolas unidas a través de muelles y colgadas del techo por una cuerda. La dirección depropagación de las ondas es el eje x, en el mismo sentido en el que se mueven las propias bolas.Es el mismo tipo de ondas que recorren los cuerpos de las lombrices de tierra. El segundo sistemaes una cuerda en la que se ha aplicado una fuerza sobre uno de los extremos. Esto provoca unaonda que se dezplaza de izquierda a derecha, pero los puntos de la cuerda se mueven perpendi-cularmente a la dirección de propagación. Si miramos un corte transversal del mar, las olas sonondas de este tipo.

Page 39: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 2. PROPAGACIÓN DE PERTURBACIONES 23

F

F F

F

Sin amortiguamiento Con amortiguamiento

Propagacion unidimensional

Figura 2.2: El efecto del amortiguamiento en una perturbación unidimensional

Finalmente, se habla de movimiento ondulatorio periódico y no periódico. En el primero,la perturbación en el foco se produce periódicamente, cada cierto intervalo de tiempo y en elsegundo esta perturbación cesa. (Figura 2.4).

Para centrar ideas, se resume a continuación la clasificación que se ha establecido, según losdiferentes criterios empleados:

1. Según las direcciones del espacio en que se propaga:

Propagación tridimensional

Propagación bidimensional

Propagación unidimensional

2. Según la atenuación que sufren por el medio

Con amortiguamiento

Sin amortiguamiento

3. Según el movimiento de los puntos respecto a la dirección de propagación de la onda

Ondas transversales

Ondas longitudinales

Page 40: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 2. PROPAGACIÓN DE PERTURBACIONES 24

Movimiento de los puntos

Direccion de propagacion

F

MuellesBolas

Direccion de propagacion

Propagacion unidimensional y longitudinal

Propagacion unidimensional y transversal

Figura 2.3: Propagación longitudinal y transversal

Eje X

Eje X

Movimiento ondulatorio no periodico

Movimiento ondulatorio periodico

Figura 2.4: Movimiento ondulatorio periódico y no periódico

Page 41: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 2. PROPAGACIÓN DE PERTURBACIONES 25

4. Según la repetición de la perturbación inicial en el foco:

Movimiento ondulatorio periódico

Movimiento ondulatorio no periódico

Las ondas que nos interesan son las unidimensionales, transversales, sin amortiguamiento y pe-riódicas. En los siguientes apartados partiremos de las ondas transversales unidimensionales eiremos aplicando restricciones para obtener las ecuaciones y propiedades que interesan.

2.3. Ondas transversales unidimensionales (O.T.U)

2.3.1. Propagación

Analicemos con un poco más de detalle cómo se propaga una onda transversal unidimen-sional que, a partir de ahora, se denotará por las siglas O.T.U. Supongamos que tenemos unmedio situado sobre el eje x por donde se va a propagar una perturbación. El punto F es el focode la perturbación y los puntos A y B son de prueba, para ver cómo son afectados (Ver figura2.5). Inicialmente el sistema está en reposo. En cierto instante t=1 ha aparecido la perturbaciónque se va propagando a una cierta velocidad. Cuando alcanza los puntos de prueba A y B, estosse mueven transversalmente, adaptándose a la forma de la onda, pero su coordenada x permane-ce inalterada. El lector puede imaginarse que el dibujo representa un corte transversal del mar,donde la perturbación es una ola y los puntos A y B son dos boyas que flotan en el agua. In-tuitivamente se ve cómo las boyas se mueven hacia arriba y hacia abajo, pero no avanzan. Alterminar de pasar la ola, instante t=5, las boyas se encuentran en la misma posición que estabaninicialmente1. Por esto se dice que las perturbaciones son fenómenos asociados al transportede energía pero no de materia.

Para describir matemáticamente a una perturbación necesitamos la función que la describeinicialmente. En el caso del ejemplo de la figura 2.5 esta función se corresponde con la asociadaal instante t = 1. A partir de ahora esta función se denotará como F(x) (haciendo referencia alFoco). Obsérvese que no depende del tiempo, es estática. Nos está indicando la forma que tienela onda inicialmente, antes de propagarse.

En el caso más general, considerando que hay amortiguamiento, para describir el comporta-miento de la perturbación, necesitamos hacer “fotografías” en cada instante de tiempo, de maneraque obtengamos una película de cómo ha evolucionado la propagación. Cada fotografía es unafunción P(x,t) (haciendo referencia a Perturbación), para un t fijo (ver figura 2.6). En el instanteinicial t = 0 tenemos la función P (x, 0), que se corresponde con F (x), en el instante siguientese tendrá otra función P (x, 1) que será muy parecida a P (x, 0) pero estará desplazada hacia laderecha y además atenuada:2

P (x, 1) = G(1)P (x − s, 0)

1Se está suponiendo que no existe ningún tipo de corriente marina que pueda desplazar las boyas.2La atenuación depende del medio, y cada frecuencia que compone el espectro de la perturbación sufrirá una

atenuación diferente. En el ejemplo de la figura 2.6 se ha supuesto por simplicidad que la atenuación de la onda esigual para todas las frecuencias (y por tanto no hay distorsión).

Page 42: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 2. PROPAGACIÓN DE PERTURBACIONES 26

Foco de laperturbacion

t=1

t=0

F

A B

F

F

F

F

F

A

A

A

A

A

B

B

B

B

B

t=2

t=3

t=4

t=5

Eje X

Figura 2.5: Propagación de una perturbación transversal y unidimensional

Page 43: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 2. PROPAGACIÓN DE PERTURBACIONES 27

x

x

x

P(x,3)

P(x,4)

P(x,5)

xx

xs

P(X,2)

P(X,1)

s

s

s

s

F(X)=P(X,0)

t=1

t=0

t=2

t=3

t=4

t=5

Figura 2.6: Propagación de una onda transversal y unidimensional, con amortiguamiento

siendo:

G(1): Ganancia de la onda en el instante t = 1. G(t) = 1 − A(t), siendo A(t) ∈ (0, 1) laatenuación en el instante t.

s: Distancia que avanza la onda en cada unidad de tiempo. s = vt, siendo v la velocidadde propagación de la onda en el medio.3

Para un instante de tiempo genérico t, la onda habrá avanzado un espacio de vt unidades sobre eleje x, y habrá sufrido una atenuación de 1− A(t), por lo que la expresión de la onda queda de laforma:

P (x, y) = (1 − A(t)) F (x − vt) (2.1)

siendo:

P(x,t): la ecuación de la onda para cualquier instante de tiempo t y para cualquier punto x.(Perturbación)

A(t): Atenución de la onda para el instante t

3Se está suponiendo, para mayor simplicidad, que el medio es homogéneo por lo que la velocidad de propagaciónsiempre será constante.

Page 44: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 2. PROPAGACIÓN DE PERTURBACIONES 28

Gusano corto

Gusano largo

Cabeza

Cabeza

Figura 2.7: Un gusano corto y uno largo que son recorridos por ondas transversales de la mismaamplitud

F(x): Perturbación inicial, en el instante t=0. Es la que define la forma de la onda. (Foco)

v: Velocidad de propagación de la onda

2.3.2. Propagación de una O.T.U sin amortiguamiento

La ecuación 2.1 se puede simplificar todavía más si tenemos en cuenta el que no haya ningúntipo de amortiguamiento. En estos casos estamos considerando que:

1. El medio no absorbe energía de la onda

2. La onda se propaga hasta el infinito, siempre con la misma amplitud

Esto es sólo posible en medios que sean activos, que vayan aportando energía a la onda demanera que se compense la atenuación para que se cumpla siempre que A(t)=0. Como ya seapuntó en el apartado 2.2, un gusano vivo o mecánico es un ejemplo de un medio activo. Enellos las ondas se propagan siempre con la misma amplitud independientemente de la longituddel gusano. Supongamos dos gusanos, uno más largo que otro, pero los dos se mueven con ondastransversales de la misma amplitud. El gusano largo tendrá que aportar más energía que el corto,porque tiene más ondas que recorren su cuerpo (ver figura 2.7).

La ecuación de una O.T.U que se propaga en medios activos, es :

P (x, t) = F (x − vt) (2.2)

2.4. O.T.U periódicas y sin amortiguamiento

En el caso de una O.T.U sin amortiguamiento y no periódica, para tenerla caracterizada esnecesario conocer la función P(x,t) ∀x ∈ (x,∞) y ∀t ∈ (0,∞). Sin embargo cuando se trata deuna O.T.U sin amortiguamiento y periódica básta con conocer P(x,t) ∀x ∈ (0, λ) y ∀t ∈ (0, T )siendo λ la longitud de onda y T el periodo, que se definen con más detalle en el apartado 2.4.1.Estas ondas están perfectamente caracterizadas por F(x), v, λ y T.

Page 45: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 2. PROPAGACIÓN DE PERTURBACIONES 29

X

X

P(x,0)

P(x,t1)

t=t1

t=0A B

A B

Figura 2.8: Concepto de longitud de onda.

2.4.1. Parámetros importantes

2.4.1.1. Longitud de onda (λ)

Se denomina longitud de onda a la distancia entre dos puntos consecutivos que en todomomento tienen el mismo estado de perturbación, es decir, que ∀t, P (xA, t) = P (xB, t), siendoxA y xB dos puntos separados una distancia λ. En la figura 2.8 se ha representado el conceptode longitud de onda. Los puntos A y B están siempre en el mismo estado de perturbación (yA =yB). La longitud de onda también recibe el nombre de periodo espacial, recalcándose con estetérmino que se trata de la mínima distancia a partir de la cual la onda se repite. Fijado un tiempot0, ∀x ∈ [0, λ), P (x, t0) = P (x + λ, t0). Es decir, que sólo es necesario conocer la función P(x,t)en el intervalo x ∈ [0, λ); y a partir de él se conoce el valor de P(x,t) ∀x. En la figura 2.9 se hadibujado P(x,t) en cuatro instantes de tiempo diferentes t0, t1, t2 y t3, y con la x en el intervalo[0, λ]. Para obtener el dibujo de la onda completa no hay más que reproducir estos intervaloshacia la derecha y hacia la izquierda.

2.4.1.2. Periodo (T)

Se define el periodo de una onda como el tiempo mínimo que transcurre desde que un puntox vuelve a estar en el mismo estado de perturbación, es decir, ∀x, ∀t, P (x, t) = P (x, t + T ). Deesta manera sólo es necesario conocer el comportamiento de la onda en el intervalo t ∈ [0, T ).En la figura 2.10 se muestra el concepto gráficamente. Se parte de la onda en el instante t=0 y setoma como referencia el punto x=0. En la gráfica inferior se ha dibujado la evolución temporal dela amplitud del punto x=0. El tiempo que transcurre hasta que se vuelve a encontrar en el mismoestado de perturbación que inicialmente es T.

Se define la frecuencia como la inversa del periodo: f = 1

T

Page 46: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 2. PROPAGACIÓN DE PERTURBACIONES 30

x=X

P(x,t0)

x=0

t=t0

x=

X

P(x,t1)

t=t1

x=0

x=

X

P(x,t2)

t=t2

x=0

x=

X

P(x,t3)

x=0

t=t3

Figura 2.9: La onda P(x,t) dibujada para cuatro instantes de tiempo diferentes y sólo en el inter-valo [0, λ]

x=X

P(x,0)

x=0

t=0

t

P(0,t)

t=Tt=0

x=0

T

Figura 2.10: Concepto de periodo

Page 47: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 2. PROPAGACIÓN DE PERTURBACIONES 31

2.4.1.3. Velocidad de propagación (v)

Se define como el espacio que recorre la onda en una unidad de tiempo. De las definicionesanteriores se puede observar que existe una relación entre la velocidad de propagación, elperiodo y la longitud de onda. Suponiendo una velocidad constante, por estar propagándosela onda por un medio homogeneo, un espacio λ se recorre en un tiempo T, obteniéndose así lasiguiente relación:

v =λ

T⇔ λ = vT (2.3)

2.4.2. Formulación

Para caracterizar a una onda transversal unidimensal periódica y sin amortiguamiento sólohay que hacerlo en un intervalo de tiempo igual al periodo y en un intervalo espacial igual a lalongitud de onda:

P (x, t) = F (x − vt), ∀x ∈ [0, λ), ∀t ∈ [0, T ) (2.4)

También se verifican las siguientes igualdades:

Periodicidad temporal: P (x, t) = P (x, t + T )

Periodicidad espacial: P (x, t) = P (x + λ, t)

Velocidad de propagación: v = λT

2.5. Ondas sinusoidales

2.5.1. Fórmulas

Las ondas con las que se ha trabajado hasta ahora estaban definidas a partir de la funciónF(x), que define la forma de la onda en el instante inicial (t=0). Si esta función es de la forma:

F (x) = A sin(kx + ϕ) = P (x, 0) (2.5)

diremos que se trata de una onda sinusoidal. Al hablar de este tipo de ondas entenderemos quese trata de ondas transversales unidimensionales periódicas y sin amortiguamiento. Los nuevosparámetros que aparecen son:

A: Amplitud de la onda

k: Número de onda. Es el número de longitudes de onda en la distancia 2π. k = 2πλ

ϕ: Fase inicial. Determina el valor inicial de F(x), cuando x=0.

Page 48: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 2. PROPAGACIÓN DE PERTURBACIONES 32

x=2

x

F(x)=Asen(kx)

x=0

x=

x=4

Figura 2.11: Una onda sinusoidal, en el intervalo x ∈ [0, λ]

En la figura 2.11 se ha dibujado una onda sinusoidal en el intervalo x ∈ [0, λ] y para t=0, conϕ = 0.

Teniendo en cuenta las ecuaciones 2.4 y 2.5 se obtiene la ecuación general de una ondasinusoidal:

P (x, t) = A sin[k(x − vt) + ϕ] (2.6)

y teniendo en cuenta la definición de la constante k, se llega a:

P (x, t) = A sin[2π

λ(x − vt) + ϕ] (2.7)

Por supuesto se siguen cumpliendo las ecuaciones definidas en el apartado 2.4.2 (velocidadde propagación, periodicidad espacial y temporal).

2.5.2. Superposición de ondas sinusoidales

La importancia que tienen las ondas sinusoidales se debe al hecho de que cualquier perturba-ción periódica se puede descomponer en una superposición de ondas sinusoidales de frecuenciasy fases adecuadas. De esta manera sólo nos centraremos en el estudio de este tipo de ondas, pu-diendo aplicar los resultados obtenidos a ondas con formas más complejas, aplicando el principiode superposción.

El trabajar sólo con ondas sinusoidales facilita los cálculos (¡¡y también los dibujos!!)

2.5.3. Ondas sinusoidales longitudinales

Las ondas sinusoidales transversales son las que se han estado viendo hasta ahora y sonlas que más nos interesan. Sin embargo también es interesante conocer las ondas sinusoidaleslongitudinales, ya que más adelante se utilizarán para comprender el movimiento de un gusanolongitudinal.

Page 49: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 2. PROPAGACIÓN DE PERTURBACIONES 33

Figura 2.12: Un sistema por el que se propagan ondas longitudinales

La ecuación de una onda sinusoidal longitudinal es exactamente igual a la transversal (ec.2.6), salvo por el hecho de que P(x,t0), siendo t0 un instante concreto, representa el desplaza-miento en el eje de abcisas del punto x considerado en vez de una amplitud sobre el eje y. Estohace que estas ondas no se “vean” tan bien como las transversales. Si se toma una fotografía enun instante t0 de una onda transversal propagándose por una cuerda, se verá perfectamente laforma de la onda. Sin embargo si se hace lo mismo con una longitudinal, no se aprecirá cómoes la forma de la onda. Pero las ecuaciones y las propiedades son exactamente iguales paraambos tipos.

Los puntos situados sobre el eje x oscilan con respecto a su posición de equilibrio, pero NOavanzan. Cuando la onda pase, los puntos volverán a su posición inicial. En la figura 2.12 semuestra un sistema constituido por 4 bolas unidas por tres muelles. Suponiendo despreciable elrozamiento de las bolas con la superficie sobre la que apoyan, cuando se aplica una fuerza sobrela bola del extremo derecho, se producen ondas longitudinales que recorren el sistema de derechaa izquierda. En régimen permanente las bolas se moverán hacia la izquierda y hacia la derechapero el desplazamiento medio será nulo.

2.6. Resumen

En este capítulo se ha partido de la idea genérica de perturbación y se han ido realizando par-ticularizaciones hasta obtener las ecuaciones de las ondas que son de interés para este proyecto.De todas las perturbaciones, nos interesan las que se propagan en una dimensión (unidimensio-nales). Con ellas se han introducido los conceptos de función foco F(x) y la función perturbaciónP(x,t) en la que aparecen dos parámetros nuevos, la atenuación y la velocidad de propagación(v).

Si nos restringimos a medios activos, la atenuación no existe y la relación entre P(x,t) yF(x) es directa (ec. 2.2). Si además las ondas son periódicas, aparecen dos nuevos parámetros:longitud de onda (λ) y periodo (T), que nos permite trabajar con la perturbación en los intervalosx ∈ [0, λ) y t ∈ [0, T ).

Cualquier perturbación se puede obtener como suma de ondas sinusoidales, de ahí su impor-tancia. La ecuación que describe las ondas sinusoidales transversales sin amortiguamiento es la2.7 y los parámetros de interés son:

Longitud de onda (λ)

Periodo (T)

Velocidad de propagación (v)

Page 50: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 2. PROPAGACIÓN DE PERTURBACIONES 34

Amplitud (A)

Fase inicial (ϕ)

Todos estos parámetros no son independientes sino que existen relaciones que los ligan. Así, λ,T y v están relacionados por la ecuación: 2.3.

En las ondas transversales las partículas se desplazan perpendicularmente a la direcciónde propagación, manteniendo fija su coordenada x mientras que en las ondas longitudinales lohacen en la misma dirección de propagación, pero el valor medio del desplazamiento de cadapartícula es siempre nulo. Las ondas están asociadas al transporte de energía pero NO demateria.

Page 51: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Capítulo 3

Mecanismos de movimiento I:Gusano longitudinal

3.1. Introducción

En el capítulo 2 se han introducido los conceptos fundamentales sobre la propagación deperturbaciónes. Hay una propiedad fundamental que siempre se cumple:

Las ondas son fenómenos asociados al transporte de energía, pero NO de materia

En este capítulo estudiaremos los gusanos longitudinales, definidos como aquellos que sonrecorridos por ondas longitudinales, desde la cola hasta la cabeza. Un ejemplo podrían ser laslombrices de tierra. El modelo desarrollado nos permitirá responder a las siguientes cuestionesfundamentales:

1. ¿Es posible aplicar el fenómeno de la propagación de ondas para conseguir transportede materia y que por tanto se pueda aplicar a mover un gusano longitudinal robot?

2. ¿Qué mecanismos son necesarios para conseguirlo?

Primero parametrizaremos el gusano y definiremos su estado interno. Después caracterizaremosel movimiento de avance, definiendo reglas que se deben cumplir para conseguirlo. Además ha-remos un estudio sobre la velocidad de avance y los parámetros que influyen en ella. Finalmentecomentaremos los problemas de implementación que este tipo de gusanos presenta.

3.2. Modelo de gusano longitudinal

3.2.1. Parámetros de modelado

Supondremos que el gusano está constituido por N segmentos iguales, de longitud L0 cuandoestán en reposo. Los segmentos se numeran empezando por la cola (segmento 0) y terminado por

35

Page 52: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 36

L0

43210

Segmentos

CabezaCola

Figura 3.1: Gusano longitudinal de cinco segmentos

la cabeza (segmento N-1). En la figura 3.1 se ha dibujado un gusano longitudinal de 5 segmenos,que se encuentra en reposo. Los segmentos son contráctiles y retráctiles de manera que se puedencontraer y expandir una distancia máxima A, denominada contracción máxima.

Todos los segmentos son exactamente iguales, con la misma masa y propiedades mecánicasy están unidos unos a otros sólidamente, no pudiendo separarse. También supondremos que nin-guna fuerza externa puede alterar su estado de contracción. Este estado es interno al gusano y noimpuesto por fuerzas externas.

3.2.1.1. Parámeros de los segmentos

Los segmentos vienen caracterizados por los siguientes parámetros:

1. Parámetros estáticos. Son iguales para todos los segmentos y siempre permanecen con elmismo valor, no varían con el tiempo.

a) L0: Longitud natural o longitud en reposo. Es la longitud del segmento cuando noestá contraido ni expandido.

b) A: Contracción máxima: Es la máxima longitud que se puede contraer o expandirel segmento con respecto a la posición de equilibrio.

2. Parámetros dinámicos. Dependen del instante de tiempo y de cada segmento

a) li(t): Longitud del segmento i en el instante de tiempo t. Su valor está comprendidoen el intervalo [L0 − A, L0 + A].

b) ci(t): Contracción del segmento i en el instante t. Indica el estado de contraccióndel segmento y se calcula como la diferencia entre la longitud natural y la longitudinstantánea:

ci(t) = L0 − li(t) (3.1)

Teniendo en cuenta los valores máximos y mínimos que puede tomar la longitud, lacontracción tiene un valor que varía entre −A y A. Una contracción negativa implicauna expansión.

En la figura 3.2 se muestra gráficamente lo que indica cada uno de los parametros en un segmento.La longitud y la contracción están relacionadas por la constante L0 (ec. 3.1) y las dos dan unaindicación de cuánto se ha comprimido el segmento, en relación con la longitud natural.

Page 53: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 37

c i (t) l i (t)

A

L o

Figura 3.2: Parámetros estáticos y dinámicos de un segmento i.

3.2.1.2. Parámetros del gusano

Hay parámetros globales del gusano que integran toda la información de los diferentes seg-mentos. Nuevamente son de dos tipos, los estáticos y los dinámicos.

1. Parámetros estáticos. No varían con el tiempo.

a) N: Número de segmentos que componen el gusano

b) LT0: Longitud total en reposo o longitud total natural. Es la longitud del gusano

cuando todos sus segmentos se encuentran en reposo. Puesto que todos son iguales,se calcula como:

LT0= NL0 (3.2)

c) AT : Contracción máxima. Valor máximo que se puede contraer o expandir el gu-sanor, con respecto a la longitud total natural. Se puede calcular a partir de los seg-mentos como:

AT = NA (3.3)

2. Parámetros dinámicos. Dependen del instante de tiempo

a) LT (t): Longitud total del gusano en el instante t. El valor oscila entre LT0− AT

y LT0+ AT . Este parámetro se puede expresar en función de los parámetros de los

segmentos como:

LT (t) =N−1∑

i=0

li(t) (3.4)

b) C(t): Contracción del gusano en un instante, cuyo valor pertenece al intervalo[−AT , AT ] y se define como la diferencia entre la longitud total natural y la ins-tantánea:

C(t) = LT0− LT (t) (3.5)

Page 54: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 38

L T0

AT

L T (t)

0 1 2 3 4

0 1 2 3 4

C(t)0 1 2 3 4

Figura 3.3: Parámetros estáticos y dinámicos de un gusano

La contracción total también se puede obtener como la suma de las contracciónes decada segmentos:

C(t) =N−1∑

i=0

c(t) (3.6)

En la figura 3.3 se muestran todos los parámetros globales del gusano.

3.2.2. Caracterización

Por caracterización entendemos la información mínima necesaria para describir el modelode gusano, de manera que a partir de un gusano se puedan obtener los parámetros de caracte-rización y a la inversa, a partir de la caracterización se pueda obtener el gusano resultante. Lacaracterización nos indica qué variables son necesarias para conocer el estado del gusano.

3.2.2.1. Caracterización de los segmentos

El estado de un segmento viene determinado por su longitud instantánea. Para describirloemplearemos el parámetro dinámico contracción. De manera que dado un segmento i con unacontracción ci(t), sabemos que su longitud en cualquier instante de tiempo es:

li(t) = L0 − ci(t)

Cuando ci(t) = 0, el segmento se encuentra en reposo (la longitud es L0). Si es positivo estácontraído y si es negativo está expandido.

3.2.2.2. Caracterización del gusano

Para tener caracterizado al gusano basta con conocer la longitud li(t) de cada segmento encada instante de tiempo. En un instante dado, cada segmento tendrá una longitud. A partir de ellosobtenemos el estado global. Definimos el vector de estado E como un vector de N componentes,cada una de las cuales es la contracción del segmento correspondiente. Es decir:

E = (c0(t), c1(t), ..., cN−1(t)) (3.7)

Page 55: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 39

L0-A L

0L

0L

0L

0

43210

LT(t)

Figura 3.4: Gusano longitudinal con un vector de estado de (A,0,0,0,0)

Todos los parámetros del gusano quedan inequivocamente definidos mediante su vector deestado. Así por ejemplo, un gusano con un vector de estado E=(0,0,0,0,0) sabemos que está enreposo y que su longitud es la natural (LT0

). Es el vector que caracteriza en ese instante al gusanode la figura 3.1. El gusano dibujado en la figura 3.4 tiene un vector de estado de (A,0,0,0,0) queindica que el segmento 0 está totalmente contraído y que el resto están en reposo. La contraccióndel gusano es C(t) = A y su longitud total:

LT (t) = LT0− A

3.2.3. La función de contorno

Hasta aquí tenemos caracterizado el estado del gusano para un instante concreto, medianteel vector de estado E. El movimiento se caracteriza por una serie de vectores de estado quese van sucediendo en el tiempo. Más adelante se tratará en profundidad este tema y para ellonecesitamos el concepto de función de contorno.

La función de contorno, denotada por la letra F , es una función F : < → <, que particula-rizada en los puntos i ∈ {0...N − 1} nos permite conocer el vector de estado:

E(t) = (F (0), F (1), F (2), ..., F (N − 1))

Esta función es estática y no depende del tiempo. Nos está dando en vector de estado en elinstante inicial. A partir de ella definiremos más adelante la función de propagación, P (x, t),que es la misma función de contorno que se va propagando con el tiempo. Estos conceptos secomprenderán mejor más adelante.

En la figura 3.5 se muestra una función de contorno de tipo triangular y se ha dibujado el gu-sano asociado. El efecto de contracción de los diferentes segmentos se ha resaltado dibujándolosmás oscuros cuando más comprimidos están. El vector de estado determinado por esta funciónde contorno es el : (0, A, 0, A

2, 0).

Dada una función de contorno F, queda perfectamente caracterizado el gusano en el instanteinicial, pues se conoce el vector de estado. Sin embargo, dado un vector de estado, hay infinitasfunciones de contorno que lo pueden determinan. No obstante, La relación entre función decontorno y evolución de los estados internos del gusano es 1:1, es decir, dada una función decontorno existe una única evolución interna y para cada evolución interna posible existe unaúnica función de contorno. Más adelante se comprenderá mejor esta idea.

Page 56: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 40

A2

L0 L0- A L0 L0L0

A2

-

x

F(x)

0 1 2 3 4

A

0 1 2 3 4

Figura 3.5: Una función de contorno triangular y el estado del gusano

Denominaremos zona activa de la función de contorno a todos los puntos sobre el eje x queestán comprendidos entre el punto x inicial y el punto x final de la función de contorno. En elcaso de la figura 3.5 la zona activa es el intervalo [0,4].

3.2.4. Secuencias y evolución de los estados

Hasta ahora hemos caracterizado al gusano en un instante de tiempo t dado. El movimientodel gusano es una evolución desde un estado inicial hasta otro final. Cada instante de tiempodefine un estado del gusano. Esta evolución puede ser continua, en ese caso hablamos de mo-vimiento continuo, pero puede ser discreta si los vectores de estado no evolucionan continua-mente, sino que lo hacen discretamente. En ese caso el movimiento entre el estado inicial y finalqueda determinado por una sucesión finita de estados: secuencias.

Al hablar de secuencias entenderemos que es un conjunto finito de vectores de estado, quese suceden en el tiempo, desde el vector inicial hasta el final.

3.3. Caracterización del movimiento de avance

3.3.1. Definición de avance

Ya tenemos parametrizado el gusano. En este apartado estudiaremos qué debe ocurrir paraque exista un movimiento de avance. Empezaremos por definir lo que se entendemos por avance:

Sea un gusano longitudinal que inicialmente se encuentra en el estado determi-nado por el vector E(t1) y que evoluciona hasta llegar al estado caracterizado por

Page 57: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 41

Evolucion delestado del gusano

t1E( ) =(0,0,0,0)

t2E( ) =(0,0,0,0)

(t1) (t 2)

Punto a

Punto a

D

xcola xcola

Figura 3.6: Un ejemplo de avance de un gusano longitudinal una distancia D

E(t2). Diremos que el gusano ha avanzado una distancia D hacia la derecha si secumplen las siguiente condiciones:

1. E(t1) = E(t2)

2. xcola(t2)−xcola(t1) = D, siendo xcola(t) la coordenada x del extermo izquier-do de la cola en el intante t.

La primera condición nos está indicando que el estado final sea igual al inicial. Esto es ne-cesario para poder comparar ambos gusanos. Si están en estados diferentes es difícil establecercuánto ha avanzado el gusano entero. La segunda condición establece que el punto extremo dela cola (punto izquierdo) debe haber avanzado una distancia D, es decir, que su coordenada x enel estado final es D unidades mayor que en el estado inicial. Por estar los gusanos en el mismoestado tanto al principio como al final, esta segunda condición también la cumplen el resto depuntos del gusano.

En la figura 3.6 se ha dibujado un gusano longitudinal de cuatro segmentos que ha avanza-do una distancia D. En el instante t1 el gusano está en el estado inicial, con un vector E(t1) =(0, 0, 0, 0) y en el t2 se encuentra en el estado final, con E(t2) = (0, 0, 0, 0). La primera con-dición se cumple. El extremo de la cola se ha denominado como punto a. En el estado final sucoordenada x ha aumentado en D. Se cumple la condición 2, por lo que podemos afirmar que haavanzado una distancia D.

3.3.2. Un gusano longitudinal que avanza

En la figura 3.7 se presenta un gusano longitudinal, de tres segmentos, que ha avanzado unadistancia A. Podemos hablar de avance porque se cumple la definición dada en el apartado 3.3.1.La evolución desde el estado E(t1) hasta el E(t5) es continua pero para poder visualizarla se hantomado “fotos” en los instantes t1, t2, t3, t4 y t5 y se muestra el vector de estado de cada instante.Sobre este gusano se han definido dos puntos, el a y el b. El punto a es el que nos permite

Page 58: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 42

E(t1)=(0,0,0)

2)=(A,0,0)

E(t3

E(t4)=(0,0,A)

E(t5)=(0,0,0)

E(t

)=(0,A,0)

Punto a Punto b

A

Figura 3.7: Un gusano longitud que avanza, con sus vectores de estado en ciertos instantes

garantizar que se cumple la definición de avance, puesto que vemos que se ha desplazado Aunidades hacia la derecha. El punto b es un punto de prueba que se empleará para realizar elrazonamiento que sigue.

Estudiemos con detenimiento qué es lo que está ocurriendo en este avance. Hay tres ideasbásicas, ocultas en el dibujo:

1. Existe una evolución interna de los estados. Esto parece una trivialidad, pero si no exis-tiese esta evolución, no habría movimiento de avance. Podemos hablar de evolución cuan-do hay al menos dos estados diferentes. Si el gusano siempre permanece en el mismoestado, para todo instante de tiempo, no avanzaría nunca.

2. La evolución de los estados es correcta. No sólo debe haber una evolución, sino que debeser la correcta. Existen evoluciones que no dan lugar a movimiento de avance, como porejemplo la que se muestra en la figura 3.8.

3. Determinación de la condición externa correcta. Además de que haya una evolucióninterna y que ésta sea correcta, hay que garantizar que se cumple una condición externaadecuada. En el ejemplo de la figura 3.7, en la transición entre los estados E(t1) y E(t2),la condición externa que se ha aplicado es que la coordenada x del punto b permanezcaconstante durante toda la evolución, es decir, que el punto b debe permanecer “fijado” a lasuperficie de avance durante toda la evolución, por los mecanismos que sean. En la figura3.9 se ha dibujado el mismo gusano, en el que se produce la misma evolución internaque en el de la figura 3.7(Todos los estados son exactamente iguales en ambos gusanos)pero por el hecho de aplicarse otra condición externa, el movimiento de avance no ocurre.

Page 59: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 43

E(t1)=(0,0,0)

2)=(A,0,0)E(t

E(t3)=(0,0,0)

Figura 3.8: Gusano que evoluciona de una manera incorrecta, por lo que no avanza

E(t1)=(0,0,0)

2)=(A,0,0)

E(t3

E(t4)=(0,0,A)

E(t5)=(0,0,0)

E(t

)=(0,A,0)

Punto a Punto b

Figura 3.9: Gusano que no avanza porque no se cumple la condición externa adecuada

La condición externa es que la coordenada x del punto a permanece contante, en vez dehacerlo la b, durante la transición entre E(t1) y E(t2).

3.3.3. Las tres reglas del avance

Por lo que hemos visto en el apartado anterior, el movimiento de avance queda caracterizadopor tres reglas que siempre se deben cumplir. Estas reglas son muy genéricas y a lo largo de estecapítulo se irán especificando con má detalle.

Las tres reglas que caracterizan el avance son:

Regla 1: Para que exista avance debe existir una evolución de los estados delgusano

Regla 2: La evolución se debe realizar de una manera correcta.

Regla 3: Debe existir una condición externa adecuada

Page 60: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 44

Cada regla nos genera una pregunta, a la que hay que contestar.

Pregunta 1: Según la regla 1 debe existir evolución. ¿Cómo generar esa evolución?

Pregunta 2: Según regla 2 la evolución debe ser correcta: ¿Qué condición interna debecumplir la evolución para que sea correcta?

Pregunta 3: La regla 3 afirma que debe existir una condición externa: ¿Qué condicionexterna se debe cumplir?

Respondiendo a esas preguntas podremos conocer los mecanismos que hacen posible que elgusano longitudinal avance y de esa manera se podrá llevar a la práctica.

Las preguntas 2 y 3 hablan de condiciones. Denominaremos condiciones internas a las quese definen sobre los parámetros internos del gusano y condiciones externas las que se aplicansobre variables externas, como por ejemplo la coordenada x de los puntos del gusano.1

Las condiciones 2 y 3 están relacionadas. Cualquier evolución interna puede dar lugar a des-plazamiento siempre y cuando se den las condiciones externas adecuadas. Por ejemplo, ¿puedeuna evolución aleatoria hacer que el gusano avance?. La respuesta es “depende de las condicio-nes externas que se impongan”. La condición externa más común es que exista rozamiento con lasuperficie, de manera que en esas condiciones cualquier evolución interna no genera movimientode avance.

3.4. Modelo de evolución: propagación de ondas

En este apartado nos centraremos en cómo modelar la evolución de los estados, es decir, endar una respuesta a la pregunta 1, asociada a la regla de movimiento 1.

Sabemos por el apartado 3.2.3 que una función de contorno F nos está determinado el estadodel gusano. Apliquemos ahora la idea de propagación de perturbaciones que se vió en el capítulo2. Consideremos la perturbación P(x,t) que se obtiene moviendo la función F hacia la derecha auna velocidad v:

P (x, t) = F (x − vt)

El vector de estado que se obtiene es:

E(t) = (P (0, t), P (1, t), ..., P (N − 1, t)) = (F (vt), F (1 − vt), ...F (N − 1 − vt))

Este vector varía con el tiempo y depende de un nuevo parámetro que es la velocidad depropagación.

El efecto lo podemos ver en la figura 3.10. En la parte de la izquierda se muestra la funciónde contorno inicial, en un instante de tiempo t1. El vector de estado es: E(t1) = (0, A, 0, 0, 0).El valor de la contracción es C(t1) = A. En la parte de la derecha aparece la misma función

1Cualquier variable no definida en el apartado 3.2 será considerada externa, puesto que no está relacionada conlos estados internos del gusano

Page 61: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 45

00 43 431 2

x

0 1 2 3 4

A

x

0 1 2 3 4

A

2A

1 2

P(x,t) P(x,t)

t=t1 t=t2

Figura 3.10: Propagación de la función de contorno

de contorno que se ha desplazado 0.5 unidades hacia la derecha. El nuevo vector de estado esE(t2) = (0, A

2, A

2, 0, 0) y la nueva contracción: C(t2) = A

2+ A

2= A.

Al irse propagando la onda se van sucediendo los diferentes estados del gusano. Si el seg-mento i se encuentra dentro de la zona activa de la función de contorno, en un instante t, elrango de valores {P (x, t)/x > i} es la historia pasada del segmento, es decir, los valores dela contracción que ha tenido en el pasado, y el rango {P (x, t)/x < i} es la historia futura, losvalores de la contracción en el futuro. El valor P (i, t) es el valor presente.

En la figura 3.11 se muestra un gusano de cinco segmentos que ha avanzado. La evoluciónes continua pero para visualizarla se ha representando el estado en siete instantes de tiempo di-ferentes (t1 − t7) y se ha dibujado la función de contorno. Inicialmente todos los segmentos seencuentra en reposo, con un estado E=(0,0,0,0,0). En el instante t2, el segmento 0 se encuentracontraido. Al avanzar la función de contorno se va expandiendo a la vez que el segmento 1 se vacontrayendo, obteniéndose el estado (0,A,0,0,0) en el instante t3. La evolución continúa alcan-zando sucesivamente los estados (0,0,A,0,0), (0,0,0,A,0), (0,0,0,0,A), (0,0,0,0,0) en los instantest4, t5, t6 y t7 respectivamente.

El hacer evolucionar el gusano es muy sencillo de esta manera. Basta con tener definida unafunción de contorno F en un instante inicial e ir propagándola, obteniéndose los estados internosque componen la evolución. Con esto queda respondida la pregunta 1 formulada en el apartado3.3.3 y se cumple la regla 1 de la caracterización del avance.

3.5. Condiciones externas

3.5.1. Objetivos

En esta sección se analizan las condiciones externas, para responder a la pregunta 3 y podergarantizar la regla 3 de la caracterización del avance.

El gusano está apoyado sobre una superficie por la que se desplaza. Debido a factores exter-nos, como la fuerza de rozamiento, irregularidades,etc. aparecen restricciones sobre los puntos

Page 62: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 46

v

v

v

v

v

v

v

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0

0 1 2 3 4

1 2 3 4

0

0

0

0

0

0

1

1

1

1

1

1

2

2

2

2

2

2

3

3

3

3

3

3

4

4

4

4

4

4

Figura 3.11: Movimiento de un gusano similar a una lombriz de tierra

del gusano. Siempre van a existir estas codiciones externas.Hay que encontrar qué condiciones externas son las que garantizan que el gusano pueda

avanzar. De todas estas condiciones hay que encontrar la menos restrictiva, la que involucre elmenor número de puntos del gusano y la más óptima, que garantice que el avance es el máximo.

Antes de enunciar esta condición son necesarias algunas definiciones.

3.5.2. Definiciones

En el apartado 3.2.3 se definió lo que es la zona activa de una función de contorno. Sea lafunción de contorno F y un instante de tiempo t, denotaremos por ZA(F,t) a la zona activa de lafunción F en ese instante. Vemos que según se va propagando la función de contorno, su zonaactiva también lo va haciendo.

De todos los segmentos del gusano, sólo los que tienen su número i dentro de la zona activaestán evolucionando, el resto permanecen en el mismo estado. Definimos el conjunto de seg-mentos activos para una función de contorno F y un instante t, y lo denotamos por SA(F, t)como:

SA(F, t) = {i ∈ {0, .., N − 1}/i ∈ ZA(F, t)} (3.8)

El número de segmentos activos depende de la anchura de la función de contorno. Puedehaber ninguno, uno, dos,...,M segmentos activos en un instante. El segmento activo que tieneel menor número se denomina segmento activo menor y se representa por las letras sam. Elsegmento activo con el mayor número es el segmento activo mayor, SAM.

Un segmento i tiene un punto en cada extremo que los denominaremos punto izquierdo I(i)y punto derecho D(i). Cada uno tiene una coordenada en el eje de las x, que se denotan así:

Page 63: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 47

Segmentos activos

0 1 2 3 4

0 1 2 43

P(x,t)I(1) D(2)

Eje x

21 30 4 5 6

Figura 3.12: Un gusano en un instante t con los segmentos 1 y 2 activos

xI(i, t): Coordenada x del punto izquierdo del segmento i, en el instante t.

xD(i, t): Coordenada x del punto derecho del segmento i en el instante t.

En la figura 3.12 se ha dibujado un gusano de cinco segmentos, en un instante t en el que lossegmentos 1 y 2 están activos y el resto no. Obtenemos la siguiente información:

Zona activa: ZA(F,t)=[0.5,2.5]

Segmentos activos: SA={1,2}

sam=1 y SAM=2

xI(1, t) =2 y xD(1, t) =4

3.5.3. Regla de no retroceso

Con estas definiciones ya podemos establecer la condición externa que se debe cumplir, quela denominaremos como regla de no retroceso, y se enuncia así:

∀t ∈ <, ∀i ∈ [0, ..., N − 1], (i=sam ⇒ xI(i, t) = cte)∨

(i=SAM⇒xD(i, t) = cte)

que dicho con palabras:

“Durante toda la evolución, se tiene que cumplir al menos alguna de las siguientescondiciones:

Si un segmento i es el segmento activo menor, entonces su coordenada x delpunto izquierdo debe permanecer constante.

Si un segmento i es el segmento activo mayor, su coordenada x del punto dere-cho debe permancer constante.”

Page 64: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 48

Esta regla sólo tiene sentido para funciones de contorno en las que la longitud de la zona activasea mayor o igual a dos. En estos casos podemos garantizar siempre que sam 6= SAM .

El que la coordenada x de un punto permanezca constante quiere decir que el punto debeestar fijado a la superfie, es decir, que no se puede mover. Es un punto de apoyo. Esta regla nosdice que en todo momento al menos tiene que existir un punto de apoyo, que no puede retroceder.Según qué segmentos estén activos, el punto de apoyo es uno u otro.

Esto es muy similar al movimiento de andar de los hombres. Cuando se apoya el talón paraavanzar, éste queda fijado al suelo y no retrocede.

En la figura 3.13 se muestran ocho instantes de tiempos en el avance de un gusano de tressegmentos. Se puede ver cómo van variando los puntos de apoyo. Por la condición de no retro-ceso, cuando existen dos puntos de apoyo, al menos uno tiene que quedar fijado a la superficiede avance.También se pueden ver el segmento menor y el mayor en cada instante. Obsérverseque en el instante t1 el sam y el SAM valen -2 y -1 respectivamente. Esto no se correspondecon ningún segmento. El sam y SAM sólo son válidos cuando pertenecen al intervalo [0,..,N-1],sin embargo es necesario que tengan valores fuera de ese entorno para evitar ambigüedades. Porejemplo, en el instante t7, el sam es el segmento 2 y el SAM el 3, que no existe. Si el segmentovitual 3 no se considerase, ¿sería el segmento 2 el sam o el SAM? Puesto que en este caso en lazona activa sólo habría un segmento, sería a la vez el sam y el SAM lo que no puede ocurrir.

A partir de ahora asumiremos que siempre se cumple la regla de no retroceso.

3.6. Condiciones internas

3.6.1. Objetivos

Según la regla 2, la evolución se debe realizar de una manera correcta. Y esto hace que nospreguntemos ¿Qué condición interna debe cumplir la evolución para que sea correcta?. Sabemosque la evolución se caracteriza por la función de contorno. La pregunta se puede reformular deotra manera:

¿Qué condiciones debe cumplir la función de contorno para que produzca unaevolución correcta?

Hablar de evolución correcta implica que no se entre en contradicción con las condiciones exter-nas y que se genera movimiento de avance. En este apartado se responderá a esta pregunta.

3.6.2. Regla de avance

Vamos a observar cómo se mueve un gusano para extraer conclusiones. Fijémonos en cómoavanza el gusano de cinco segmentos de la figura 3.11. Vemos la evolución en siete instantes detiempo diferentes t1 − t7. En todos ellos hay un segmento activo cuya contracción es máxima (Elmáximo de la función de contorno está sobre el número del segmento). Fijémonos en la longitudtotal del gusano. Podemos distinguir tres fases:

Page 65: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 49

-2 -1 30 1 2

v

-2 -1 30 1 2

v

-2 -1 30 1 2

v

2

1

1

0

Segmentosactivos

Puntos deapoyo

-2 -1 30 1 2

v

-2 -1 30 1 2

v

v

-2 -1 30 1 2

-2 -1 30 1 2

v

v

2

2

0

0

0 1

0 1 2

0 1 2

t 1

t2

t 3

t 4

t 5

t 6

t 7

t 8

sam

SAM

Segmento activo

samSAM

0

SAM

sam

Punto de apoyo

-2 -1 30 1 2

10

1

1

2

2

2

sam

SAM

samSAM

SAM

sam

SAMsam

sam

Eje x

Eje x

Eje x

Eje x

Eje x

Eje x

Eje x

Figura 3.13: Gusano de tres segmentos que avanza, en el que se ve la evolución de los puntos deapoyo

Page 66: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 50

Con

tracc

ion

inic

ial

ESTADO

INICIAL

ESTADOFINAL

t 1 t 2 t 3 t 4 t 5 t 6 t 7

A

C(t)

Expansion final

Propagacion

t

Figura 3.14: Evolución de la contracción total del gusano de la figura 3.11.

1. Entre los instantes t1 y t2: Hay una contracción inicial. El gusano tiene una longitudmenor que la inicial.

2. Instantes t2− t6: La longitud del gusano permanece constante. Pero hay una propagacióndel estado de contracción.

3. Instantes t6 − t7: Hay una expansión final, con lo que el gusano vuelve a recuperar lalongitud inicial.

Si representamos en una gráfica la evolución del parámetro contracción total C(t) en funcióndel tiempo obtenemos una gráfica como la de la figura 3.14. Las tres fases las denominaremoscontracción inicial, propagación y expansión final. El que la longitud del gusano permanezcaconstante durante la propagación es una propiedad muy interesante. Obsérvese que los segmentosno activos no sufren ningún tipo de desplazamiento, se quedan donde están, por lo que no generanrozamiento con la superficie. Los segmentos activos sí se desplazan sobre la superficie por lo queel gusano tendrá que desarrollar mecanismos para evitarlo (como por ejemplo elevar un poco lossegmentos activos sobre la superficie).

Esta propiedad tan interesante es la regla de avance y dice:

Si la función de contorno hace que la contracción total permanezca constantedurante la fase de propagación, la evolución será correcta.

Obsérvese que esta regla no tiene por qué ser la única posibilidad. Lo que nos interesa para esteproyecto es saber que si se cumple, la evolución será correcta, pero no podemos asegurar quetodas las evoluciones correctas cumplan esta regla.

La regla de avance nos permite distinguir entre funciones de contorno “correctas” y no correc-tas. Imaginemos que la función de contorno para un gusano de tres segmentos fuese rectangular,

Page 67: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 51

t 1 t 2 t 3 t 4 t 5 t 6 t 7

Estadofinal

Estadoinicial

Funcion decontorno

A

C(t)

Propagacion

t

P(x,t)

0 21

x

Figura 3.15: Función de contorno que no cumple la regla de avance

0 21

0 21

0 21

0 21

Figura 3.16: Función de contorno cuadrada

de altura A y con una anchura de la zona activa menor que la unidad. La contracción varía entre0 y A y no permanece constante durante la propagación. En la figura 3.15 se ha representando lacontracción total y la función de contorno en el instante inicial t1. El movimiento de este gusanoes indeterminado y depende de las condiciones externas. En la figura 3.16 se ha dibujado unaposible evolución del sistema, en la que se ve cómo varía la longitud total del gusano según sedesplaza la función de contorno. Inicialmente está fuera del intervalo del gusano [0,2]. Cuandoalcanza al segmento 0, éste se contrae. Al situarse la función de contorno entre los puntos x = 0y x = 1, el segmento 0 se vuelve a expandir. El problema surge cuando la zona activa alcanza alpunto x = 1. En ese momento el segmento se contrae, por lo que pueden ocurrir varias situacio-nes: que el segmento 0 permanezca fijado a la superficie y sea el 2 el que se arrastre, lo contrarioo una situación intermedia. Depende de las condicioens externas y no es predecible.

Page 68: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 52

A

1

F(x)

x0-1

Figura 3.17: Función de contorno que cumple la proposición de avance

3.6.3. La función de contorno triangular

3.6.3.1. Presentación

¿Qué funciones de contorno cumplen la regla de avance? En la figura 3.17 se muestra unafunción de contorno triangular que la cumple. Se trata de una función triangular, totalmentesimétrica y con pendientes A y -A. La anchura de la zona activa es de 2 unidades. El valormáximo de esta función es A, la contracción máxima de los segmentos. No tiene sentido que estevalor sea superior a A, puesto que los segmentos no se pueden contraer más.

No es el objetivo de este proyecto el investigar sobre qué otras funciones de contorno cumpleesta regla. Con encontrar una y demostrarlo es suficiente para poder implementar gusanos de estetipo.

3.6.3.2. Demostración

Para demostrar que cumple la regla de avance primero la definimos analiticamente:

F (x) =

{

A(x + 1) x ∈ [−1, 0)A(x − 1) x ∈ [0, 1]

Para convertir esta función en una onda, sustituimos la x por x − vt, lo que nos da:

P (x, t) =

{

A(x − vt + 1) x − vt ∈ [−1, 0)A(x − vt − 1) x − vt ∈ [0, 1]

Esta nueva función es la función original F (x) que se desplaza hacia la derecha a una velo-cidad v. Para cada instante de tiempo indica la contracción de cada segmento a los que afecta.Para que se cumpla la proposición de avance, la contracción C(t) debe ser constante para todo tdentro del intervalo de propagación, definido en el apartado 3.2.3.

Por tener la función de contorno una anchura de 2, La zona activa siempre involucra a dossegmentos a la vez, un segmento en expansión y otro en contracción. Para que la suma seaconstante, lo que se expande uno se debe contraer el otro. Calculando la derivada de P (x, t) se

Page 69: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 53

0 1x

v

Av

-Av

y0

y1

z0

z1

Figura 3.18: La función de contorno triangular al desplazarse cumple la proposición de avance.

obtiene cuánto ha variado cada segmento al variar el tiempo:

dP (x, t)

dt=

{

−Av x − vt ∈ [−1, 0)Av x − vt ∈ [0, 1]

y precisamente se obtienen incrementos negativos que se compensan. El segmento situado a laderecha del pico del triángulo aumenta la contracción mientras que el situado a la izquierda ladisminuye.

Fijémonos en la figura 3.18. En ella se ha representando la función de contorno triangular endos instantes de tiempo, t0 y t1. En el primer instante, los segmentos 0 y 1 tienen un estado dey0 y z0, tal que su suma es igual al estado de contracción C(t0). En el instante t1 la función haavanzado una distancia v(t1 − t0) y el nuevo estado de los segmentos es y1 y z1:

y1 = y0 − Av

z1 = z0 + Av

La contracción en t1 es:

C(t1) = y1 + z1 = y0 − Av + z0 + Av = y0 + z0 = C(t0)

que es igual a la contracción en t0. Por lo que se cumple que c(t) = cte.

3.6.3.3. Definiciones

Ya que la función triangular presentada cumple la regla de avance, es la que emplearemos apartir de ahora. Conviene tener en cuenta algunas definiciones que nos serán de utilidad:

Punto activo (PA): Coordenada x del vértice superior de la función triangular. Este esel punto que define la máxima contracción. Cuando el punto activo pertenece al conjunto{0,1,...,N-1} el segmento correspondiente estará en su máxima contracción

Intervalo de contracción inicial: Intervalo de tiempo desde que el punto máximo de lazona activa es 0 hasta que PA=0. Este intervalo caracteriza la anchura de la fase de con-tracción inicial.

Page 70: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 54

1 2

ESTADO FINAL

v

ESTADO INICIAL

0

D

Figura 3.19: Distancia recorrida por la funcion de contorno, desde el estado inicial hasta el final

Intervalo de propagación: Intervalo de tiempo desde que PA=0 hasta que PA=N-1. Ca-racteriza la duración de la fase de propagación, en la que debe permanecer constante lacontracción.

Intervalo de expansión final: Desde que PA=N hasta que el punto mínimo de la zonaactiva es N. Caracteriza la fase de expansión.

3.7. Estudio del avance

3.7.1. Recapitulación de resultados

El avance lo tenemos caracterizado por las tres reglas. Con los conocimientos que ya tenemospodemos caracterizarlo de una manera más precisa:

1. La evolución se consigue aplicando la propagación de ondas a la función de contorno

2. La función de contorno no puede ser cualquiera. Tiene que cumplir la regla de avance,enunciada en 3.6.2

3. Para garantizar el avance se debe cumplir al menos la regla de no retroceso (ap. 3.5.3)

En este apartado estudiaremos los parámetros que influyen en la velocidad de avance del gusano.Primero trabajaremos con funciones de contorno no periódicas y luego extrapolaremos a lasperiódicas, que son las que nos interesan.

3.7.2. Función de contorno no periódica

Utilizaremos un gusano de tres segmentos, y una función de contorno triangular, como ladefinida en el apartado 3.6.3. En la figura 3.19 se muestra la función de contorno en el estadoinicial y final y la distancia total D que ha recorrido. Puesto que avanza a una velocidad v, elgusano avanza a un ritmo medio dado por:

VG =Espacio

T iempo=

A

t=

ADv

= vA

D

Page 71: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 55

siendo:

VG: La velocidad media de avance del gusano

D: Distancia que recorre la función de contorno, desde que su zona activa entra en elintervalo [0,2] hasta que sale de él.

A: Valor máximo de la función de contorno.

La distancia D es igual al número de segmentos N más la longitud de la zona activa de la funciónde contorno, que es 2, por tanto tenemos que la velocidad del gusano es, cuando la función decontorno empleada es la de la figura 3.17:

VG = vA

N + 2(3.9)

La velocidad del gusano depende por tanto de varios parámetros:

Velocidad de propagación v: Cuando más rápido se propague la función de contorno, másrápido avanzará el gusano. Éste es un parámetro cuyo valor máximo estará determinadopor la máxima velocidad a la que los segmentos se puedan contraer-expandir.

Valor máximo de la función de contorno: Cuanto mayor sea el valor máxima de la fun-ción de contorno, mayor será la contracción y por tanto mayor será la velocidad. El valormáximo es el de la contracción máxima del segmento, que es A.

Número de segmentos: Para una misma función de contorno, un gusano con menos seg-mentos avanza más rápidamente

Anchura de la zona activa de la función de contorno: Cuanto más estrecha sea la funciónde contorno mayor será la velocidad. En el ejemplo la anchura es de 2, que es el valormínimo.

3.7.3. Función de contorno periódica

En la figura 3.20 se presenta un gusano de 4 segmentos, que se desplaza una distancia Acuando la función de contorno lo ha recorrido totalmente. Si la función de contorno fuese pe-riódica, con una longitud de onda igual a N+2, el efecto conseguido es que el gusano se mueveindefinidamente, puesto que cuando un triángulo abandona el dominio del gusano, inmediata-mente entra otro que ocasiona un nuevo ciclo, como se ha dibujado en la figura 3.21. Con unafunción de contorno de este estilo, la contracción C(t) también es una función periódica (fig 3.22). La velocidad de avance del gusano se puede expresar ahora en términos de la longitud de onda:

VG = vA

λ(3.10)

Ahora nos podemos plantear la siguiente pregunta:

Page 72: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 56

0 1 2 3

0 1 2 3

0 1 2 3

0 1 2 3

Estado (0,A,0,0)

Estado (0,0,A,0)

Estado (0,0,0,A)

Estado (A,0,0,0)

Estado inicial: (0,0,0,0)

0 1 2 3

0 1 2 3

Estado final (0,0,0,0)

Figura 3.20: Avance de un gusano de cuatro segmentos

0 1 2 3

Figura 3.21: Funcion de contorno periodica

C(E(t))

A

t

Segundo cicloPrimer ciclo de avance

Figura 3.22: Contracción cuando la función de contorno es periódica

Page 73: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 57

0 1 2 3

Estado (0,A,0,0)

Estado (0,0,A,0)

Estado (0,0,0,A)

Estado (A,0,0,0)

0 1 2 3

0 1 2 3

0 1 2 3

Figura 3.23: Función de contorno periódica con longitud de onda N+1

¿Por qué esperar a que salga un triángulo del intervalo [0,..,N-1] para que entreel siguiente? Es decir, ¿Es posible reducir la longitud de onda de la función decontorno periódica?.

La respuesta es sí, como se ha representado en la figura 3.23, y la contracción se puede ver en lafigura 3.24.

Lo que está ocurriendo es que los ciclos de avance se están solapando. Antes de haber acabadouno, ya está comenzando el siguiente. El resultado es que ahora el gusano avanza un poco másrápido, por haberse reducido la longitud de onda. La contracción total, en este caso, permanecesiempre constante. No existen los ciclos de contracción inicial y expansión final.

¿Podemos reducir λ más?. Sí, como se muestra en las figuras 3.25 y 3.26. Sin embargoahora la función de contracción no permanece constante, sino que hay instantes en los que lacontracción vale 2A (en los estados (A,0,0,A)) y momentos en los que vale A (en el resto deestados).

¿Viola esto la proposición de avance? No. La función periódica se puede considerar unasuperposición de diferentes funciones triangulares desplazadas y cada una de ellas cumple porseparado la proposición de avance. Los instantes de tiempo en los que la contracción total nopermacene constante se corresponden con los intervalos de tiempo en los que algunos de lostriángulos están entrando en el intervalo del gusano ([0...N-1]) o saliendo de él.

La velocidad del gusano ahora es mayor puesto que λ se ha reducido. Además como v esconstante, T ha disminuido (ver ec. 2.3). La velocidad se puede definir en función del periodo

Page 74: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 58

C(E(t))

A

t

Primer ciclo de avance

Segundo ciclo

Tercer ciclo

Figura 3.24: Nueva contracción cuando la longitud de onda es N+1

Estado (0,A,0,0)

Estado (0,0,A,0)

Estado (A,0,0,A)

0 1 2 3

0 1 2 3

0 1 2 3

Figura 3.25: Función de contorno periódica con longitud de onda N

Primer ciclo de avance Tercer ciclo

C(E(t))

A

t

Segundo ciclo

Figura 3.26: Nueva contracción cuando la longitud de onda es N

Page 75: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 59

como:

VG =A

T

El valor A es siempre constante y es el valor máximo de la función de contorno. Manteniendola v cte, cuando reducimos la longitud de onda estamos disminuyendo el periodo y por tanto elavance de la distancia A se hace cada vez con mayor frecuencia.

Todavía se puede reducir la longitud de onda más, para aumentar la velocidad. Es el casoen el que los triángulos están pegados unos a otros y el periodo T es mínimo. La contracciónsiempre vale 2A. Los estados en los intantes t=0 y t = T

2son (A,0,A,0) y (0,A,0,A).

3.8. Implementación física de gusanos longitudinales

El estudio teórico de estos gusanos es muy interesante y permite presentar conceptos queserán de gran ayuda en los capítulos posteriores. Sin embargo la implementación, es decir, laconstrucción de uno de ellos, es muy complicado por varios motivos:

1. El gusano se “arrastra” por lo que hay mucho rozamiento con la superficie. Para eliminareste rozamiento en las partes contráctiles habría que elevarlas del suelo, lo cual complicamucho la mecánica.

2. Lograr que se cumpla la regla de no retroceso es complejo, porque hay que sincronizar muybien todos los mecanismos. Un punto debe estar fijado sólo en unos instantes de tiempo dedeterminados.

3. El gusano no podría moverse por cualquier tipo de superficie, porque no en todas ellaspodría garantizar la condición de no retroceso

4. El gusano no puede atravesar obstáculos ni moverse por superficies rugosas

5. Es complicado mecánicamente implementar los segmentos contráctiles-retráctiles.

3.9. Resumen

En este capítulo se ha presentado un modelo de gusano longitudinal, se ha parametrizado yse ha definido su estado interno. Aunque es difícil de implementar en la práctica, el modelo decontrol es muy sencillo, basado en la propagación de las ondas de contorno, que van definiendosu estado interno. Esto responde a la pregunta 1 formulada en la introducción. La propagaciónde ondas se emplea para obtener las evoluciones internas, o estados de contracción del gusano.

Los parámetros más importantes del gusano son:

La función de contorno F(x), que define los estados presentes, pasados y futuros.

El vector de estado E(t), que define el estado en un instante y se calcula a partir de lafunción de contorno.

Page 76: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 3. MECANISMOS DE MOVIMIENTO I: GUSANO LONGITUDINAL 60

La contracción total C(t), que indica cuánto ha variado su longitud respecto de la longitudnatural.

El movimiento de avance se ha caracterizado, definiendo las tres reglas de avance que se tienenque cumplir:

1. La evolución de los estados internos se consigue propagando la función de contorno.

2. Esta función tiene que cumplir la regla de avance para conseguir que el gusano avance.

3. La condición externa que hay que garantizar es la regla de no retroceso.

Estas reglas responden a la pregunta 2 de la introducción, indicándonos cuáles son los mecanis-mos para que se produzca movimiento.

Se ha presentado una función de contorno, triangular, que cumple la regla de avance y quemodela perfectamente la evolución del estado interno.

Con toda esta información se ha estudiado la velocidad de avance del gusano y los parámetrosimplicados, tanto para funciones de contorno periódicas como no periódicas.

Page 77: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Capítulo 4

Mecanismos de movimiento II:Gusano transversal

4.1. Introducción

En este capítulo se estudian los mecanismos de movimiento para los gusanos transversales.Definimos gusano transversal como aquel que se mueve mediante ondas transversales que reco-rren su cuerpo desde la cola hasta la cabeza. Es el movimiento típico de muchos tipos de gusanos,como por ejemplo los de seda.

Se va a crear un modelo de gusano, con unos parámetros propios y se va caracterizar suestado interno. Esto nos permitirá comprender los mecanismos asociados a los cambios de estadoy cómo se efectúan, para poder luego implementarlos. También estudiaremos las funciones decontorno de manera que el diseñador pueda seleccionar la más apropiada para su tipo de gusano.

Los gusanos transversales y longitudinales están relacionados entre sí. Esto también se estu-diará en este capítulo de manera que los resultados del capítulo 3 tengan validez en los gusanostransversales.

Las ideas centrales que se presentarán son fundamentales para la implementación posteriorde un gusano transversal.

4.2. Modelo de gusano transversal

4.2.1. Parámetros de modelado

Los gusanos transversales se modelan mediante dos elementos: las articulaciones y los seg-mentos. Supondremos que están constituidos por N articulaciones, denotadas mediante a1,a2,....,aN

y por N − 1 segmentos: s1,s2,...,sN−1.Los segmentos son rígidos, de longitud L. Todos ellos exactamente iguales, con la misma

masa y las mismas propiedades mecánicas. El segmento de cola es el s1 y el de cabeza el sN−1.Las articulaciones son los elementos que unen dos segmentos entre sí. En total hay N , de

las cuales dos son articulaciones ficticias, a1 y aN puesto que no unen dos segmentos y en la

61

Page 78: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 62

a1 a2 a3 a4 a5 a6

s 1 2s s 3 s 4 s 5

Articulaciones

CabezaCola

Segmentos

Figura 4.1: Modelo de gusano transversal con 5 segmentos y 6 articulaciones

Cuerpo

Corona

Vector interior

Vector exterior

Figura 4.2: Elementos de una articulacion

implementación no se corresponden con ninguna articulación física. Las restantes N − 2 sonarticulaciones reales, a2..aN−1. La articulación a1 se denomina articulación de cola, o simple-mente cola y la aN , articulación de cabeza o cabeza. Supondremos que son exactamente iguales,con la misma masa e iguales propiedades. Los segmentos se encuentran perfectamente engan-chados unos a otros y el estado en el que se encuentra cada articulación sólo depende del estadointerno del gusano y no viene impuesto por fuerzas externas, es decir, que si una articulción seencuentra en un ángulo determinado, ninguna fuerza externa la podrá hacer cambiar de estado.

En la figura 4.1 se muestra un gusano transversal, con 6 articulaciones y 5 cinco segmentos.Se encuentra apoyado sobre una superficie horizontal.

4.2.1.1. Articulaciones

Las articulaciones las representaremos mediante puntos gruesos que unen los segmentos. Sinembargo, estos puntos negros están constituidos por diferentes elementos, que se muestran en lafigura 4.2. Las diferentes partes son:

Cuerpo y corona. La articulación está constituida por dos partes que pueden rotar una conrespecto a la otra. La parte más grande, donde se encuentran los mecanismos se denominacuerpo y la parte más pequeña, conectada al eje de salida es la corona.

Eje de salida: Es el eje que une ambas partes y que permite que la una gire con respecto ala otra. Este eje no se ha dibujado en la figura 4.2.

Page 79: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 63

Además de estas partes físicas, hay una serie de definiciones a tener en cuenta:

Vector interior: Es un vector que caracteriza el cuerpo. Indica la dirección de orientacióndel cuerpo.

Vector exterior: Es el vector que caracteriza la corona. Indica la dirección de orientaciónde la corona.

Angulo ϕ: Es el ángulo de estado de la articulación. Indica el ángulo que forma el cuerpocon respecto a la corona. Este ángulo es relativo y no depende de cómo esté orientada laarticulación entera.

El rango de giro de la articulación es de 1800 con ϕ ∈ [−90, 90]. Obsérverse que el convenio designos para ϕ es el contrario del habitual: positivo en sentido horario y negativo en el antihora-rio. Se ha tomado este convenio para hacer más intuitivos los cálculos en capítulos posteriores.Cuando ϕ = 0 el vector interior y el exterior apuntan en la misma dirección. Este es el estadode reposo de la articulación.

Para determinar la orientación de una articulación tomaremos por convenio el vector interior.Hay que resaltar que ϕ está determinando el estado interno de la articulación y que por ello es in-dependiente de la orientación en la que se encuentre. En la figura 4.3 se pueden ver articulacionescon el mismo valor de ϕ pero en la que el vector interior está apuntando en diferentes direcciones,es decir, la articulación está orientada en otra dirección, manteniendo el mismo estado interno.

El emplear los vectores interior y exterior nos permite representar la articulación sin tenerque dibujarla, como se muestra en la figura 4.4.

El ángulo que forman dos segmentos conectados por la articulación NO es ϕ, sino que de-pende de dónde estén enganchados. Un segmento estará enganchado a la corona coincidiendosu dirección con el vector exterior. Sin embargo el otro segmento se puede colocar en la mismadirección que el vector interior o justamente en la opuesta, como es el caso del gusano que seha implementado. El segmento asociado a la corona se llama segmento exterior y el asociadoal cuerpo segmento interior, que no tiene por qué coincidir con el vector interior. El ángulo queforma el segmento interior con el exterior se denomina ángulo de estado de los segmentos y serepresenta por θ (Figura 4.5). Siempre se verifica la siguiente relación:

θ = 180 − ϕ (4.1)

que permite calcular el ángulo que forman los segmentos en función del estado interno de laarticulación. El rango de variación de θ es el siguiente:

θ ∈

{

[−90,−180] ϕ < 0[90, 180] ϕ > 0

En la figura 4.6 se han representado tres posiciones θ = 90, θ = 180 y θ = −90, estando elvector interior orientado hacia la parte negativa del eje de abcisas.

La definición de estos ángulos y de los signos se ha establecido así para facilitar los cálculosy los dibujos, pero es un simple convenio que se respetará a lo largo del resto de capítulos.

A modo de resumen los parámetros de la articulación son:

Page 80: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 64

=90=90

=45=45

=-45

=-45

0 0

0 0

0

0

Figura 4.3: Articulaciones con distintos estados y diferentes orientaciones

Page 81: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 65

1

a1

a2

2

Vec

tor e

xter

ior

Vector interior

Vector interior

Vector exterior

Figura 4.4: Dos articulaciones representadas mediante su vector interior y exterior.

=90 =90

Vector interior

Vector exterior

Segmento interior

Segmento exterior

Figura 4.5: Segmento exterior y segmento interior

Page 82: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 66

=90

=-90

Vector interior

Segmento exterior

Segmento interior

Vector interior

Vector exterior

Segmento interior

Segmento exterior

Segmento interior

=180

Segmento exterior

Figura 4.6: Diferentes valores de θ en una articulación

Page 83: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 67

L T

LL L L L

Figura 4.7: Parámetros estáticos del gusano transversal.

Estado de la articulación (ϕ). Ángulo entre vector interior y exterior. ϕ ∈ [−90, 90]

Ángulo de estado de los segmentos (θ). Ángulo que forma el segmento exterior con elinterior.

Ambos parámetros son dinámicos, dependen del instante de tiempo t considerado y se encuentranrelacionados por la ecuación 4.1.

4.2.1.2. Parámetros del gusano

1. Parámetros estáticos.

a) N : Número de articulaciones.

b) LT : Longitud total del gusano. Supondremos que las articulaciones son puntuales yque el tamaño es sólo debido a los segmentos. Como todos tienen la misma longitudL, la longitud total se puede calcular como:

LT = (N − 1)L (4.2)

En la figura 4.7 se ha dibujado un gusano de seis articulaciones y cinco segmentos. Sepuede ver gráficamente la longitud total en relación con la longitud de los segmentos.

2. Parámetros dinámicos.

a) LP : Longitud proyección. Es la longitud que tiene la proyección del gusano sobreel eje de abcisas. Si denotamos por x(ai) la coordenada x de la articulación i, esteparámetro se puede definir como:

LP = x(aN ) − x(a1) (4.3)

b) C(t): Contracción. Es la diferencia entre la longitud total del gusano, LT , y la delgusano proyección, LP . Este parámetro es muy importante y nos da una idea de quese ha acortado el gusano por el hecho de adoptar una posición diferente de la dereposo.

C(t) = LT − LP (4.4)

Page 84: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 68

L P

L T

C(t)

Gusano en un estado cualquiera

Gusano en reposo

Figura 4.8: Parámetros dinámicos de un gusano transversal

El valor mínimo es 0, que se indica que se encuentra en posición de reposo caracte-rizada porque está totalmente extendido sobre la superficie de apoyo y LT = LP . Elvalor máximo teórico es LT , que ocurre cuando el gusano está en posición vertical ysu proyección es un punto.

En la figura 4.8 se han dibujado los parámetros dinámicos y su relación con la longitud total. Seha supuesto que se trata de un gusano continuo, que es lo mismo que decir que la longitud de lossegmentos tiende a cero, L → 0 y que hay infinitas articulaciones, N → 0.

4.2.2. Caracterización

Las articulaciones las caracterizaremos por el ángulo de estado ϕi(t), que determina el ánguloentre el vector interior y exterior de la articulación i. Para caracterizar el estado en el que seencuentra el gusano utilizaremos un vector de estado E, de N componentes, una para cadaarticulación. La componente i de este vector es el ángulo de estado de la articulación i, en uninstante de tiempo t:

E(t) = (ϕ1(t), ϕ2(t), ..., ϕN(t))

Las articulaciones a1 y aN son ficticias por lo que su valor carece de valor para la implemen-tación, sin embargo son muy útiles para los cálculos. La articulación de cola está determinandola orientación del gusano completo y se puede considerar que es una articulación que une el seg-mento de cola con el eje x. La articulación de la cabeza indica la orientación de la cabeza. Noes de utilidad para el modelado, pero se puede emplear para orientar algún tipo de sensor que seencuentre en la cabeza. Consideraremos que su estado es siempre 0.

En la figura 4.9 se ha dibujado el gusano en tres estados diferentes. En la parte superiorel gusano está en estado de reposo, con un vector E=(0,0,0,0,0,0). En los dibujos inferiores seencuentra en dos estados diferentes: (0, 0, 0, 30,−60, 0) y (45,−45,−45, 45, 45, 0). En ellos seha dibujado el vector interior para ver claramente el ángulo ϕ. El vector exterior coincide con elsegmento exterior por lo que no se ha dibujado.

Page 85: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 69

1 2 3 4 5 6

1 2 3

4

5

6

1

2

3

4

5

6

E=(0,0,0,0,0,0)

E=(0,0,0,30,-60,0)

E=(45,-45,-45,45,45,0)

Figura 4.9: Gusanos en diferentes estados

Page 86: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 70

1

2

3

4

5

6

Funcion de Contorno

Figura 4.10: Una función de contorno sinusoidal y el estado del gusano que determina

4.2.3. Función de contorno

En el caso de los gusanos transversales también existe una función de contorno que determinalos estados pasado, presente y futuro. Y es por ello la herramienta que emplearemos para lograrque el gusano evolucione, pasando de un estado a otro. Se trata de una función F : < → <que indica la relación entre las coordenadas (x, y) de las articulaciones. De igual forma que lafunción de contorno determina los estados de contracción de los gusanos longitudinales, en lostransversales determina los ángulos de las articulaciones, pero no de una manera directa.

El concepto de función de contorno se ve muy claro en la figura 4.10. Si denotamos porx(ai) la abscisa de la articulación i, y por y(ai) su ordenada, éstas deben cumplir la función decontorno:

y(ai) = F (x(ai)) (4.5)

Por tener que cumplirse esta relación, quedan determinados los ángulos de estado de lasarticulaciones. El cómo obtenerlos es un problema que se tratará en el capítulo 5. El concepto dezona activa de la función de contorno (ZA) se presenta en la figura 4.11 y nos da una idea dela anchura de esta función. En el ejemplo, ZA = [x(A), x(B)]. Si una articulación está dentrode la zona activa entonces se verificará que ϕ 6= 0. Sin embargo lo contrario no es cierto. Si laarticulación se encuentra fuera de la zona activa, no tiene por qué cumplirse que ϕ = 0. Esto nospermite definir la zona activa del gusano(ZAG), que es un intervalo sobre el eje de abscisas enel que se cumple:

x(ai) ∈ ZAG ⇔ ϕi 6= 0

En la figura 4.12 se muestra un gusano de 8 articulaciones y una función de contorno quedetermina un cierto estado. La zona activa es el intervalo ZA = [x(A), x(B)] y la zona activadel gusano es ZAG = [x(a2), x(a7)].

Siempre se verifica la siguiente relación:

ZA ⊆ ZAG

En el caso de un gusano continuo, constituido por infinitas articulaciones y con longitud delos segmentos L → 0, se cumple la relación de igualdad: ZA = ZAG, ya que este caso el gusanose “ajusta” perfectamente a la función de contorno. El conjunto ZAG − ZA nos está dando una

Page 87: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 71

Eje x

Funcion de Contorno

A B

x(A) x(B)

Zona activa de la funcion de contorno

ZA

Figura 4.11: Concepto de zona activa de la función de contorno

a2x( ) a7x( )

a2 a7

A B

Eje x

x(A) x(B)

ZA

Anchura ZAG

Anchura ZA

Figura 4.12: Diferencia entre ZA y ZAG

Page 88: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 72

idea de cuánto de bien se aproxima el gusano a la función de contorno. Cuando menor sea L,más cortos serán los subintervalos [x(ai), x(A)] y [x(B), x(aj)] del conjunto ZAG−ZA y mejorserá la aproximación.

Los puntos extremos de la ZA los llamaremos A y B y sus abcisas las denotaremos por x(A)y x(B). Para las articulaciones extremas de la ZAG, se empleará aI para la articulación de laizquierda y aD para la de la derecha.

4.3. Relación con el modelo de gusano longitudinal

4.3.1. Modelo continuo

Los modelos de gusano longitudinal y transversal están muy relacionados. De hecho, todogusano transversal genera uno longitudinal. En este apartado se analizarán las relaciones supo-niendo que estamos trabajando con gusanos continuos. Para diferenciar los parámetros de ambosgusanos se utilizará el subíndice T para indicar transversal y L para longitudinal. Los gusanoscontinuos verifican:

Gusano transversal continuo

◦ N → ∞. Infinitas articulaciones.

◦ L → 0. Longitud de los segmentos tiende a cero.

Gusano longitudinal continuo:

◦ N → ∞. Infinitos segmentos.

◦ L0 → 0. La longitud natural de los segmentos tiende a cero

Las relaciones entre los parámetros de ambos gusanos son las siguientes:

1. LTL(t) = LP (t). La longitud total del gusano longitudinal es igual a la longitud proyección

del transversal.

2. CL(t) = CT (t). La contracción del gusano longitudinal es la misma que la del transversal.Por ello a partir de ahora se denotará por C(t).

3. ZAL = ZAT . La zona activa del gusano longitudinal es igual a la zona activa del transver-sal.1

En la figura 4.13 se ha dibujado un gusano transversal y su gusano generado. Dado un gusanotransversal podemos calcular el longitudinal generado obteniendo todos sus parámetros. Parapasar del longitudinal al transversal tenemos que conocer la función de contorno.

1Como estamos trabajando con un modelo continuo de gusano transversal se verifica que ZAT = ZAGT .

Page 89: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 73

L P

Gusano Transversal

Gusano Longitudinal generado

Estado de contraccion

Figura 4.13: Gusano transversal y su gusano longitudinal asociado

4.3.2. Modelo discreto

Si utilizamos modelos discretos, también encontramos relaciones entre los gusanos. Supon-dremos que el gusano transversal tiene N articulaciones y que el longitudinal tiene N − 1 seg-mentos, numerados desde el segmento 1 hasta el N . Al hablar de segmentos entenderemos lossegmentos contráctiles del gusano longitudinal.

El estado de los segmentos el gusano longitudinal está determinado por la contracción ci(t),mientras que en los transversales se habla del estado de las articulaciones ϕi(t). La asociaciónentre ambos gusanos se realiza teniendo en cuenta:

1. El estado de la articulación i, determina el estado del segmento i. ci(t) ↔ ϕi(t)

2. La articulación aN de cabeza no determina el estado de ningún segmento. Se elimina.

La relación entre los estados de las articulaciones y los segmentos es:

ci(t) = Lcos(ϕi(t)) (4.6)

En la figura 4.14 se muestra gráficamente la relación entre ambos gusanos discretos y sepuede ver que se cumple la ecuación 4.6.

Sea un gusano transversal caracterizado por el vector de estado:

ET (t) = (ϕ1(t), ..., ϕN−1(t), ϕN(t))

con N componentes. El vector de estado del gusano longitudinal generado es:

EL(t) = (c1(t), ..., cN−1(t)) = (Lcos(ϕi(t)), ..., Lcos(ϕN−1(t)))

que tiene N-1 componentes.

Page 90: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 74

1

2

3

5

6

4

L 0

c1(t) c2(t) c3(t) c4(t) c5(t) c6(t) c7(t)

L 0

6

2 3 4 5 6 7

L

1

Segmentos activos

7

Figura 4.14: Relación entre un gusanos longitudinal y uno transversal.

4.4. Gusano transversal y reglas de avance

Como se ha visto en el apartado 4.3, existe una relación entre los gusanos transversales ylongitudinales. Esto nos permite aplicar al gusano transversal todas las ideas desarrolladas parael longitudinal en el capítulo 3. En ese capítulo se definió lo que entiende por avance y se carac-terizó el movimiento de avance mediante las tres reglas de avance. Estas mismas reglas son deaplicación a los gusanos transversales, pero enunciándolas de diferente manera para emplear losparámetros de estos gusanos.

En el caso de los gusanos transversales continuos todo es muy sencillo porque las articula-ciones y los propios puntos de la función de contorno son los mismos. Los problemas aparecencuando se trabaja con modelos discretos.

4.4.1. Modelo de evolución: propagación de ondas

Tenemos una función de contorno que define el estado del gusano transversal para un ciertoinstante t. Si esta función se propaga con una velocidad v, se generan los diferentes vectores deestado en función del tiempo. Con ello conseguimos una evolución y se cumple la regla 1.

Si F (x) es la función de contorno, la onda de propagación se obtiene como:

P (x, t) = F (x − vt)

En la figura 4.15 se ha dibujado el gusano en tres estados diferentes, obtenidos a partir deldesplazamiento de la función de contorno.

Page 91: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 75

v

v

v

Figura 4.15: Propagación de la función de contorno

Page 92: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 76

Gusano Transversal

A B

Gusano Longitudinal generado

Ptos de apoyo

Figura 4.16: Gusano transversal y longitudinal generado junto con los puntos de apoyo candida-tos.

4.4.2. Condiciones externas

Para que exista avance, el gusano longitudinal generado debe cumplir la regla de no retro-ceso (apartado 3.5.3). Esta regla, aplicada a un modelo de gusano transversal continuo dice:

Al menos uno de los dos puntos extremos de la ZA, punto A ó punto B, debe ser unpunto de apoyo, es decir, debe cumplirse que x(A)=cte o x(B)=cte.

Esta condición establece que en todo instante de tiempo al menos hay un punto del gusanoque nunca retrocede, por lo que el avance es posible. En la figura 4.16 se muestra un gusanotransversal y su longitudinal generado junto con los puntos de apoyo candidatos. Recuérdese queésta es la condición mínima. Lo normal es que los puntos que permanezcan fijados a la superficiedeban ser todos los que no se encuentran en la ZA.

Para el caso de un gusano transversal discreto, como el de la figura 4.17, la condición de noretroceso se aplica a alguna de las dos articulaciones extremo de la ZAG, bien aI o bien aD. Larelación de estas articulaciones con los segmentos activos es:

I(sam) = asam = aI . El punto izquierdo del segmento activo menor coincide con laarticulación del extremo izquierdo de la ZAG.

D(SAM) = aSAM+1 = aD. El punto derecho del segmento activo mayor coincide con laarticulación del extremo derecho de la ZAG.

Page 93: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 77

a I aD

sam SAM

D(SAM)I(sam)

Figura 4.17: Gusano transversal discreto y puntos de apoyo

4.4.3. Condiciones internas

4.4.3.1. Modelo continuo

En la evolución interna existen las mismas tres fases que con los gusanos longitudinales:contracción inicial, propagación y expansión final. En la figura 4.18 se muestran estas fasesaplicadas a la evolución de un gusano transversal continuo. También se ha dibujado el gusanolongitudinal generado.

La evolución de la contracción C(t) presenta tres tramos bien diferenciados. Un primer tramoen el que va aumentando. Ahora no tiene por qué hacerlo linealmente, puesto que depende de laforma de la función de contorno. Un segundo tramo en el que permanece constante y uno últimoen el que decrece. La regla de avance es la misma. Ahora la pregunta es: ¿Qué funciones decontorno cumplen esta regla?

Por definición la contracción se calcula como:

C(t) = LT − LP

siendo LT la longitud total del gusano, que es constante y LP la longitud proyección, que sípuede variar con el tiempo. Las partes del gusano fuera de la zona activa están apoyadas sobre eleje de abscisas y no sufren contracción. Otra manera de calcular la contracción es:

C(t) = P (F ) − (x(B) − x(A))

donde P (F ) es el perímetro de la función de contorno y x(B) − x(A) es la longitud de la zonaactiva. Por tanto para que C(t) permanezca constante hay que garantizar que:

1. El perímetro de la función de contorno no puede variar mientras se propaga

2. La longitud de la zona activa debe permanecer constante durante la propagación

Page 94: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 78

Gusano Longitudinal

Gusano Transversal

Funcion de contorno

Contraccion inicial

Propagacion

Propagacion

Expansion final

Expansion final

Figura 4.18: Propagación de la función de contorno y los diferentes estados que provoca en elgusano transversal y longitudinal asociado

Page 95: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 79

Para el caso de gusanos continuos, estas condiciones siempre se cumplen si la propagación de lafunción de contorno es sin pérdidas:

Si el gusano es continuo y la propagación es sin pérdidas la evolución siempreserá correcta, pues la contracción C(t) permanecerá constante durante la fase depropagación.

4.4.3.2. Modelo discreto

Para el caso de los gusanos discretos hay que intentar garantizar que la anchura de la ZAGvaríe lo menos posible, o lo que es lo mismo, que la longitud proyección LP varíe menos posible.Esto se consigue cuanto más se ajuste el gusano a la función de contorno. En un modelo discreto,nunca se puede garantizar que C(t) permanezca constantee para todo instante t, pero sí se puedegarantizar que la variación sea muy pequeña. De aquí se extrae una conclusión muy importante:

La evolución sólo será totalmente correcta si el gusano es continuo. En los discre-tos siempre será incorrecta, pero se acercará más a la evolución correcta cuantomás se parezca la forma que adopta el gusano a la función de contorno.

En la implementación de un gusano, éste es fijo y no se puede variar. Las distancias entre articu-laciones (L) no se pueden variar y hay un número fijo de ellas. Por tanto, para conseguir que elmovimiento sea más perfecto, habrá que jugar con la función de contorno, seleccionando aquellaque mejor cumpla la regla de avance. En general cuando mayor sea el perímetro y menor lacurvatura, con respecto a la distancia L, el movimiento será más correcto.

Es responsabilidad del diseñador el emplear la función de contorno correcta. Para poder cono-cer lo buena o mala que es una función de contorno que se utiliza en un mismo gusano, definimosel parámetro Variación de la longitud proyección o VLP:

V LP =4LP

L=

(LPmax− LPmin

)

L(4.7)

donde LPmaxy LPmin

son los valores máximos y mínimos de la longitud proyección en la fasede propagación. El parámetro VLP nos está indicando cuál es la variación de la longitud proyec-ción con respecto a la longitud del segmento. Nos sirve para comparar cómo se comportan dosfunciones de contorno cuando se propagan por el mismo gusano transversal. Cuando menor seraVLP, menor será la variación de la longitud del gusano longitudinal generado y por tanto menosfluctuará la contracción C(t).

En la figura 4.19 se muestran dos funciones de contorno que tienen la misma ZA pero elperímetro es mayor en la primera. Se ha dibujado cada función de contorno en dos instantes, quese corresponden con los momentos en lo que el parámetro LP es máximo y mínimo. La longitudde los segmentos es L = 50.

Los datos2 para la función de contorno 1 son:

2Datos obtenidos empleando el programa cube-virtual, descrito en el capítulo 7

Page 96: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 80

L P

L P

Funcion de contorno 1

VLP=50%

VLP=14%

Funcion de contorno 2

Figura 4.19: Comparación de dos funciones de contorno que recorren el mismo gusano utilizandoel parámetro VLP

Page 97: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 81

LPmin= 225

LPmax= 247

V LP1 = 25

50= 0,5 ⇒ V LP = 50 %

Para la función de contorno 2 tenemos:

LPmin= 241

LPmax= 248

V LP2 = 7

50= 0,14 ⇒ V LP = 14 %

Como V LP2 < V LP1 la función de contorno 2 hace que el gusano se mueva mejor.En el caso de la primera función de contorno la longitud proyección varía en 25 unidades.

Esto ocasiona que ciertos puntos se tengan que “arrastrar” por la superficie. El caso ideal escuando la variación es 0: no hay ningún tipo de arrastre y el gusano se moverá igual de bien porcualquier tipo de superficie. Sin embargo, al haber variación, el movimiento de avance dependedel tipo de superficie. Si hay poco rozamiento, los puntos se podrán arrastrar sin dificultad y elgusano avanzará como si nada. Pero si el rozamiento es alto, los puntos no podrán arrastrarse confacilidad y se pueden producir tensiones en las articulaciones.

Cuanto menor sea el parámetro VLP para una función de contorno F, más inde-pendiente será el movimiento del gusano con respecto a la superficie. También elmovimiento será más predecible.

En la figura 4.20 se muestra una función de contono con un VLP de un 2 %. En el gusano de laparte superior, LPmin

= 246 y en el de la inferior, LPmax= 247. La variación es prácticamente

nula, por lo que este gusano se desplazará mejor que los de la figura 4.19 y el avance variará muypoco de una superficie a otra. El movimiento es menos sensible al cambio de superficie.

Con el parámetro VLP podemos caracterizar lo buena o mala que es una cierta función decontorno cuando se propaga por un gusano. Cuanto mayor sea VLP el movimiento dependeráen mayor medida de la superficie y en general será más impredecible. Sin embargo el avance esposible, aunque sólo sea para algunas superficies concretas.

Existen otros casos en los que la función de contorno no genera una evolución correcta,aunque el VLP sea pequeño:

1. x(B) − x(A) ≤ L: La longitud de la zona activa es menor o igual que L. En estos casoshay momentos en los que el gusano vuelve a un estado de reposo, es decir, que no hayninguna articulación activa. Por tanto no hay estado de contracción que se pueda propagar.La incertidumbre en el movimiento es total. En la figura 4.21 se muestra un ejemplo.En la parte superior el gusano está en reposo, pero el estado no es el inicial. En la parteinferior la función de contorno alcanza la articulación a3 por lo que “de golpe” se activanlas articulaciones a2, a3 y a4. Pero en cuanto avance un poco más se volverá al estado dereposo. En este caso no hay una correcta evolución de los estados internos.

Page 98: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 82

VLP=2%

Figura 4.20: Función de contorno que produce una VLP del 2 %

Funcion de contorno

v

Figura 4.21: La contracción NO se mantiene constante

Page 99: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 83

CabezaCola

Figura 4.22: Función de contorno incorrecta. El perímetro es más grande que la longitud delgusano.

2. El caso 1 no se cumple pero P (F ) > LT . El perímetro de la función de contorno es mayorque la longitud total del gusano. La evolución en estos casos es correcta pero no es de lamanera que el diseñador quiere, porque ¡¡el gusano no puede volar!! (Ver figura 4.22). Lafunción de contorno debe garantizar que al menos habrá siempre dos puntos sobre el ejede abcisas.

4.5. Estudio del avance

Utilizaremos un gusano continuo para el estudio, por ser más intuitivos y fáciles de dibujar.En un ciclo de avance, partiendo de un estado inicial y llegando a un estado final igual al inicialel gusano ha avanzado una distancia igual a la contracción C(t). En este apartado estudiaremosla velocidad de avance del gusano viendo qué parámetros influyen en ella.

4.5.1. Función de contorno no periódica

Si en un ciclo contracción inicial-propagación-expansión final el gusano ha avanzado unadistancia igual a la contracción C(t), la velocidad de propagación es v y la longitud del gusanoes LT , entonces la velocidad media es:

VG =Espacio

tiempo=

C(t)

te=

C(t)LT

v

= vC(t)

LT

(4.8)

De esta forma, para aumentar la velocidad de avance del gusano se puede actuar sobre tresfactores:

Velocidad de propagación v: A mayor v mayor velocidad del gusano. Sin embargo esteparámetro depende de la velocidad con la que las articulaciones cambian de un estado aotro, por lo que depende de las articulaciones en sí.

Page 100: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 84

Gusano

Figura 4.23: Función de contorno periódica, con longitud de onda igual a la zona activa mas lalongitud del gusano

Figura 4.24: Más de una perturbación recorriendo el gusano

Contracción C(t): Cuando mayor sea la contracción, mayor será el avance. La contrac-ción se cambia modificando la función de contorno. Cuando mayor sea el perímetro de lafunción de contorno, mayor la contracción y por tanto mayor la velocidad.

Longitud del gusano: Un gusano más corto avanza más rápido que uno largo.

4.5.2. Función de contorno periódica

Lo normal será tener una función de contorno periódica, con una longitud de onda λ y unperiodo T concretos. Con esto lo que se consigue es aumentar la velocidad de avance del gusano.El caso anterior, el del apartado 4.5.1, es en realidad un caso periódico con una función decontorno que tiene una longitud de onda λ = LT + [x(B) − x(A)], donde x(B) − x(A) es lalongitud de la zona activa (Ver figura 4.23). Si la longitud de onda es menor, habrá más de unaperturbación propagándose por el gusano, como se muestra en la figura 4.24. En este caso lavelocidad de avance es:

VG =C(t)

T

Por cada periodo de tiempo T el gusano avanza una distancia C(t). Cuanto menor sea lalongitud de onda, menor será T (puesto que λ = vt y v permanece constante) y por tanto mayorla velocidad de propagación.

4.6. Implementación de gusanos transversales

Los gusanos transversales son más sencillos de implementar que los longitudinales, debido aque el movimiento no es de deslizamiento. Por ello es un movimiento que depende mucho me-nos de la superficie por la que se mueva: puede ser lisa, rugosa, con pequeños obstáculos, etc. La

Page 101: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 4. MECANISMOS DE MOVIMIENTO II: GUSANO TRANSVERSAL 85

regla de avance sólo se cumple al 100 % en el caso de los gusanos continuos. En una implemen-tación lógicamente este modelo no es posible y tiene que ser discreto. El diseñador debe elegircon cuidado las funciones de contorno de manera que el parámetro VLP sea el mínimo posible.

También hay prestar atención a la regla de no retroceso. En el caso de gusanos longitudinalesciertos puntos tenían que quedar fijados a la superfice en ciertos instantes y sólo en ellos. En elcaso de los transversales sólo hay que garantizar que al menos quede fijada a la superficie laarticulación aI o aD. Esto es sencillo porque sólo hay que colocar algún material que se agarre ala superficie y no hay que realizar ninguna coordinación especial.

Las articulaciones se pueden implementar mediante servomecanismos, que se encuentranfácilmente en el mercado y con diferentes características mecánicas. Los segmentos contrátilesde los longitudinales son caros y difíciles de encontrar.

4.7. Resumen

Los gusanos transversales son más fáciles de implementar, debido fundamentalmente a suscaracterísticas mecánicas. El movimiento conseguido depende menos de la superficie por la quese desplaza y es mucho más intuitivo que en los longitudinales, puesto que el gusano debe adoptarla forma de la función de contorno.

Están constituidos por N articulaciones y N − 1 segmentos rígidos, de longitud L. Cadaarticulación tiene un ángulo de estado interno ϕi(t), que determina la posición relativa de suspartes: el cuerpo y la corona.

Para parametrizar un gusano de este tipo se utilizan los parámetros dinámicos contracciónC(t), que es similar al parámetro contracción de los longitudinales, y longitud proyección,LP que es la longitud que tiene la proyección del gusano sobre el eje de abscisas. Estos dosparámetros están relacionados.

Para caracterizar los estados internos del gusano se emplea un vector de estado E(t) cuyascomponentes son los ángulos de estado ϕi(t) de cada articulación. La función de contorno nosindica cómo va a evolucionar el gusano y especifica cuáles son las posiones (x,y) que debenocupar las articulaciones. Estas posiciones definen un estado interno ϕi para cada articulación.

Ambos tipos de gusanos están relacionados. Cada gusano transversal genera un gusanolongitudinal, que es su proyección sobre el eje de abcisas. Los resultados obtenidos para loslongitudinales se pueden aplicar a los longitudinales generados y por tanto afectan a los trans-versales.

Las tres reglas de avance también se deben cumplir en los transversales. Para que existaevolución interna se usa un modelo de propagación de ondas, en el que la función de contonoavanza a una velocidad v y va determinando los estados internos del gusano. La regla de avancesiempre se cumple en el caso de un modelo de gusano continuo, sin embargo no lo hace cuandoes discreto. Mediante el parámetro VLP se puede determinar cuánto de buena es una función decontorno, dado un gusano y nos permite seleccionar la función de contorno que mejor garanticeesta regla. La condición externa de no retroceso también se tiene que cumplir.

Finalmente se ha estudiado la velocidad media de avance y los parámetros implicados, demanera que el diseñador sepa cómo poder modificar esta velocidad.

Page 102: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Capítulo 5

Gusano transversal:algoritmo de ajuste

5.1. Introducción

Para implementar un gusano transversal es preciso determinar primero los algoritmos nece-sarios para poder obtener los vectores de estado E(t) y enviárselos al gusano real. Éste es elobjetivo del presente capítulo.

Primero se planterá el problema que se quiere resolver. Después estudiaremos diferentesalternativas para solucionarlo y finalmente se presentará el algoritmo de ajuste, que permite so-lucionarlo de una manera muy intuitiva.

5.2. Planteamiento del problema

Para mover un gusano transversal, bien virtual o bien real, necesitamos generar una secuenciade vectores de estado E(t), que definan la evolución interna. Ahora no nos preocuparemos de siesta evolución es correcta ni qué condiciones externas deben ocurrir. Lo que queremos saber escómo calcularla.

Las sencuencias se calculan para M instantes de tiempo diferentes, obteniéndose M vectoresde estado {E(t1), ..., E(tM)}. Una vez obtenidos, se pueden almacenar y cargar en aplicacionesque muevan gusanos virtuales o reales. En este capítulo nos preocuparemos de cómo obtener unasecuencia.

En la figura 5.1 se muestra qué es lo que se quiere conseguir. Inicialmente, en el instante t1

el gusano está en el estado determinado por el vector E(t1) y todas las articulaciones cumplenla función de contorno: el gusano está “ajustado” a la función. En el instante t2 la función decontorno se ha propagado una distancia, pero el gusano permanece en el mismo estado E(t1)anterior. Lo que nos interesa es obtener el estado E(t2) a partir de E(t1) y de P (x, t2). Hay que“ajustar” el gusano del estado t1 a la nueva función de contorno.

El problema que se quiere resolver es el problema de ajuste, y se enuncia así:

86

Page 103: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 5. GUSANO TRANSVERSAL: ALGORITMO DE AJUSTE 87

t1 t1E( ) t1P(x, )

t2 E( )t1 P(x, )t2

t2 E( )t2 P(x, )t2

Evolucion del gusanoa un nuevo estado

Propagacion de lafuncion de contorno

Figura 5.1: Fundamentos de la generación de una secuencia

Page 104: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 5. GUSANO TRANSVERSAL: ALGORITMO DE AJUSTE 88

t1E( )

t i+1P(x, )

i=i+1

)E(ti E(ti+1)

Ajustar gusano ala funcion M=i

E( 1t )E(ti+1)

Gusano en estadoinicial

Desplazar funcionde contorno

i=1

NO

SI

FIN

= ?

El nuevo estadoes igual al inicial?

¿¿

Figura 5.2: Algoritmo genérico para generar una secuencia de M estados

Dado un gusano transversal con un estado caracterizado por E(t1) y conociendola función de contorno P (x, t2) en otro instante, calcular el nuevo vector de estadoE(t2) que hace que el gusano se ajuste a esa función de contorno.

Conociendo la solución al problema de ajuste, es muy sencillo obtener una secuencia. Sólo hayque partir de un estado inicial conocido, desplazar la función de contorno, aplicar la soluciónpara obtener el siguiente estado y repetir el proceso hasta alcanzar nuevamente el estado inicial.Esta secuencia caracteriza ese movimiento y se puede hacer que el gusano la repita cíclicamente,consiguiéndose el movimiento de avance deseado. En la figura 5.2 se muestra el algoritmo paragenerar la secuencia, basado en la solución del problema de ajuste.

5.2.1. Simplificaciones

La solución al problema de ajuste nos indica cómo pasar de un estado genérico E(t1) aotro E(t2), conociendo la función de contorno. Para mayor facilidad, y sin perder generalidad,supondremos lo siguiente:

1. El estado inicial es el de reposo E(t1) = (0, ..., 0). La solución encontrada para este casoparticular es válida en el caso de que el estado inicial sea otro.

2. El origen de coordenadas se establece inicialmente en la articulación de cola a1 y su abcisala fijaremos a cero en todo momento, x(a1) = 0. Va a ser la articulación de referenciasobre la que aplicar el ajuste.

Page 105: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 5. GUSANO TRANSVERSAL: ALGORITMO DE AJUSTE 89

Gusano en estado inicial

Funcion de contorno

Gusano Ajustado

Figura 5.3: Problema del ajuste

El problema de ajuste se puede enunciar de otra manera:

Partiendo de un gusano en estado de reposo, y dada una función de contorno,calcular el estado del gusano que hace que todas sus articulaciones cumplan lafunción de contorno, fijando la abcisa de la articulación de cola a 0.

En la parte superior de la figura 5.3 se muestra un gusano de 6 articulaciones en el estado dereposo y una función de contorno. En la parte inferior el gusano se ha ajustado a dicha función.Obsérvese que la coordenada x de la articulación de cola no ha variado, sino que está fija.

Esto todavía se puede simplificar más teniendo en cuenta que el ajuste de la articulación decola es un simple desplazamiento. Su ordenada se calcula directamente a través de la función decontorno: y(a1) = F (x(a1)) = F (0). No perdemos generalidad si suponemos que el origen decoordenadas está situado en la articulación a1 y que la función de contorno deba pasar por eseorigen. El nuevo enunciado del problema de ajuste es:

Partiendo de un gusano en estado de reposo, con el origen de coordenadas situadoen la articulación de cola, y dada una función de contorno que pase por el origen,calcular el estado del gusano que hace que todas sus articulaciones cumplan lafunción de contorno.

Obsérvese que estamos introduciendo cada vez más restricciones que no afectan a la generalidaddel problema, pero que lo simplifican y nos ayudan a resolverrlo más facilmente.

5.2.2. Problema de ajuste para un segmento

Si se conoce la solución para una articulación, se puede ajustar el gusano entero, amplicandouna iteración desde la articulación 1 hasta la N . Un ejemplo se muestra en la figura 5.4. Separte de un gusano en reposo, con una función de contorno que pasa por el origen situado en la

Page 106: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 5. GUSANO TRANSVERSAL: ALGORITMO DE AJUSTE 90

a1 2a a3 a4 a5 a6

a1

2a

a3 a4 a5 a6

a1

2a a3 a4 a6a5

Ajuste articulacion 2

Ajuste articulacion 3

Funcion de contorno

Traslacion del resto del gusano

Figura 5.4: Aplicación iterativa del ajuste de una articulacion

Page 107: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 5. GUSANO TRANSVERSAL: ALGORITMO DE AJUSTE 91

a1 a2

Origen de coordenadas

a1

a2

a2 a2x( )y( )=F( )Funcion de contorno

Ajuste

L1

Figura 5.5: Problema de ajuste aplicado a un gusano de 1 segmento y dos articulaciones

cola. Primero se aplica la solución a la articulación a2, luego se hace una traslación del resto delgusano, se sitúa el origen en la articulación a2 y se vuelve a aplicar la solución para ajustar la a3.Así sucesivamente hasta ajustar el gusano completo.

El problema que queda por resolver se reduce a:

Dado un gusano constituido sólo por dos articulaciones unidas por un segmentode longitud L, que se encuentra en reposo, y dada una función de contorno quepasa por el origen situado en la cola del gusano, calcular el ángulo θ1 que haceque la articulación a2 cumpla la relación y(a2) = F (x(a2)).

En la figura 5.5 se ha dibujado el problema a resolver. El ángulo θ1 está medido desde la hori-zontal. El problema es ahora mucho más simple y más abordable.

5.3. Estudio de alternativas

En esta apartado se estudia la solución al problema de ajuste de una articulación, presentadoen el apartado 5.2.2.

5.3.1. Solución analítica

Supongamos una situación genérica mostrada en la figura 5.6. Lo que queremos son las coor-denadas (x,y) del punto de intersección entre la función de contorno y la circunferencia concentro en la articulación 1 y radio L, que pasa por la articulación 2.

Por estar los puntos dentro de la circunferencia deben cumplir:

x2 + y2 = L2 (5.1)

Page 108: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 5. GUSANO TRANSVERSAL: ALGORITMO DE AJUSTE 92

a1 a2

x+y=L2 2 2

circunferencia

L

Punto a determinarF(x)

Figura 5.6: Calculo del punto final como intersección de F(x) con una circunferencia

y por pertenecer a la función de contorno:

y = F (x) (5.2)

Eliminando la variable y de ambas ecuacione se obtiene la ecuación de ajuste:

x2 + F 2(x) = L2 (5.3)

que nos permite calcular el valor de x del punto ajustado.Sin embargo, no hay que dejarse arrastrar por la aparente simplicidad de la ecuación de ajuste.

Si la función F(x) es una función lineal, la ecuación es de segundo grado y por tanto se podráresolver analíticamente sin problemas. El problema es que una función lineal no es de muchautilizadad como función de contorno. Si F(x) es una función polinómica de grado menor o igualque 2, la ecuación de ajuste es una función polinómica de grado ≥4, y aquí ya empiezan losproblemas analíticos.

Pero si F(x) es una función trigonométrica, como por ejemplo F (x) = sen(x), la ecuaciónde ajuste que queda es:

x2 + sen2(x) = L2

que no se puede resolver analiticamente. Por tanto hay que buscar soluciones no analíticas alproblema de ajuste.

5.3.2. Solución numérica

La solución numérica consiste en dar valores a x hasta que el error sea lo más cercano posiblea 0. La función de error empleada es:

e(x) =∣

∣x2 + F 2(x) − L2∣

∣ (5.4)

Page 109: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 5. GUSANO TRANSVERSAL: ALGORITMO DE AJUSTE 93

Esta función toma el valor 0 cuando el valor de x cumple la ecuación de ajuste. Cuanto mayorsea el error, más alejado está el valor x del valor correcto. El valor máximo de la x es L, quees la longitud del segmento (un valor más alto no tiene sentido) y el valor mínimo es 0, que seobtiene cuando el ángulo de la articulación es de 900. Por tanto sabemos que la x solución dela ecuación de ajuste está comprendida en el entorno x ∈ [0, L]. Si el valor inicial de x es L,es decir, que x0 = L, se obtiene un valor del error de e(x0). Disminuyendo el valor x en unincremento: x1 = x0 −4x, y calculando en nuevo error e(x1), se puede ver si el nuevo error esmenor que el anterior o por el contrario es mayor.

De esta manera conseguimos encontrar el valor de x que hace mínimo el error, en el entorno[0,L].

En la figura 5.7 se ha dibujado la función de error para una función de contorno sinusoidal yun valor L = 2:

e(x) =∣

∣x2 + sin2(x) − 4∣

5.4. El algoritmo de ajuste

En el apartado anterior hemos visto que la ecuación de ajuste se puede resolver numérica-mente, consiguiendo tanta precisión como queramos, según cómo sea el incremento de la x. Sinembargo es más intuitivo resolver el problema de una manera más gráfica y más relacionada conel problema de ajuste, en vez de resolver una ecuación.

A este procedimiento se le ha denominado algoritmo de ajuste.

5.4.1. Propagación del algoritmo de ajuste

El algoritmo de ajuste sólo hay que realizarlo para una articulación, pudiéndose propagar alresto. La propagación se muestra en la figura 5.8. Primero se ajusta la articulacion 1, que es trivialpuesto que sólo hay trasladar el gusano en el eje de las ordenadas hasta que se ajuste. Despuesse ajusta la número 2, para lo cual se rota todo el gusano con centro en la articulación 1. Acontinuación la número 3, con rotación del gusano con centro la articulación 2. Se puede pensarcomo si el gusano fuese rígido, y cada vez sólo se puede rotar con respecto a una articulación.Primero se rota con respecto a la 1, luego a la 2, etc, hasta llegar al final. Cuando se ha rotadocon respecto a todas las articulaciones el gusano está ajustado. Este algoritmo de propagación esmuy intuitivo y sobre todo se pueden dibujar en la pantalla los estados intermedios.

5.4.2. Aplicación a una articulación

El algoritmo en cuestión es el siguiente. Queremos que la articulación i se sitúe sobre lafunción de contorno, realizando una rotación de la articulación i − 1, que ya se encuentra sobrela función de contorno.

Lo que se hace es rotar la articulación i, con respecto a la i − 1 un ángulo 4θ y se vaevaluando la función de error (ec. 5.4) hasta encontrar un valor mínimo. En ese momento yatenemos ajustada la articulación.

Page 110: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 5. GUSANO TRANSVERSAL: ALGORITMO DE AJUSTE 94

Figura 5.7: Una función de error ejemplo, generada con el programa kplot

Page 111: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 5. GUSANO TRANSVERSAL: ALGORITMO DE AJUSTE 95

Funcion de contorno

Ajuste articulacion 1

Ajuste articulacion 2

Ajuste articulacion 3

Ajuste articulacion 4

Ajuste articulacion 5

Ajuste articulacion 6

1

2

3

4

5

6

Figura 5.8: Propagación del algoritmo de ajuste

Page 112: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 5. GUSANO TRANSVERSAL: ALGORITMO DE AJUSTE 96

A i-1A i

Funcion de contorno

Rotacion de la articulacion hasta queel error alcance un minimo

Figura 5.9: Algoritmo de ajuste

Cuando menor sea el incremento angular, mayor será la precisión en el ajuste, pero mástiempo se tardará en ajustar (Fig 5.9).

Utilizando una búsqueda binaría el tiempo será mucho menor. Sin embargo en los casos enlos que se aplica el algoritmo de ajuste, las articulaciones se encuentran muy cerca del puntofinal por lo que es bastante rápido y no hace falta complicar el software implementando unabúsqueda binaria. El valor de 4θ tomado es de 1o consiguiéndose un compromiso entre velocidady precisión muy bueno.

5.4.3. Sentido de rotación inicial

Para aplicar el algoritmo correctamente, hay que saber a priori hacia qué dirección hay querotar la articulación para que el error disminuya. Eso se calcula fácilmente mediante la función“sentido”:

S = F (x) − y (5.5)

Si S > 0 hay que incrementar el ángulo θ, de manera que la articulación se aproxime a lafunción de contorno por abajo y si S < 0 hay que decrementarlo y entonces la aproximación espor arriba.

5.4.4. El ángulo inicial de ataque

Cuanto menores sean los incrementos del ángulo, mejor será el ajuste, es decir, que menorserá el error pero sin embargo más calculos habrá que realizar y mayor será el tiempo de ajuste.El tema se agrava si el ángulo final de ajuste es muy diferente del que tiene la articulación, y por

Page 113: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 5. GUSANO TRANSVERSAL: ALGORITMO DE AJUSTE 97

B F(x)

a i-1a i

x

Angulo inicial

Figura 5.10: Ángulo inicial

tanto hay que avanzar un ángulo muy grande en incrementos muy pequeños, calculando en todomomento la función de error.

Para solucionar esto se puede partir de un ángulo inicial de ataque diferente al que tiene laarticulación. En la figura 5.10 se muestra un ejemplo. La articulación ai se encuentra en unaposición inicial (x, y) conocida. Teniendo en cuenta el triángulo formado por los puntos B, ai−1

y ai, un ángulo inicial de ataque muy bueno es:

Tg(θ) =F (x)

x⇒ θ = arctan

(

F (x)

x

)

(5.6)

que está mucho más cercano al ángulo final de ajuste.

5.4.5. Pasos del algoritmo

A continuación se describen los pasos del algoritmo final para lograr el ajuste del gusano.

Estado inicial: La articulación 1 se encuentra situada sobre la función de contorno

Repetir los siguientes pasos para cada articulación i ∈ {2..N − 1}

1. Calcular el ángulo de inicio, mediante la ecuación 5.6

2. Situar la articulación i en ese ángulo, rotando la articulación i − 1

3. Determinar el sentido de incremento mediante la ecuación 5.5. Eso fija el signo de4θ

4. Calcular el error actual ε

5. θ′ = θ + 4θ

6. Calcular el nuevo error ε′

7. ¿ε′ > ε?

Page 114: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 5. GUSANO TRANSVERSAL: ALGORITMO DE AJUSTE 98

a) Sí, el nuevo error es mayor, θ es el ángulo que minimiza.

1) Guardar el valor de θ

2) La articulación i está ajustada. Incrementar i

3) Volver al punto 1 si i < N

b) No, θ′ reduce el error. Hacer θ = θ′ y pasar al punto 5

El valor de 4θ tomado en la implementación es de 1o.

5.5. Resumen

Para generar secuencias de estados internos se parte de un estado inicial E(t1), se desplazala función de contorno y se obtiene el siguiente estado E(t2). El proceso se repite hasta llegarnuevamente al estado inical.

El calcular el nuevo estado a partir del anterior y de la función de contorno recibe el nombrede problema de ajuste. Este problema se puede simplificar resolviéndolo sólo para un segmentoy aplicándolo al resto.

Se han estudiado dos alternativas para solucionar el problema de ajuste, una analítica y unanumérica. Sin embargo es más intuitivo emplear el algoritmo de ajuste, mediante el cual sevaría el ángulo de la articulación i hasta que se minimiza la función de error y la articulacióni + 1 queda ajustada. Esto se repite con todas las articulaciones.

Page 115: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Capítulo 6

Mecanismos de movimiento III:giros

6.1. Introducción

Hasta ahora se ha hablado de gusanos unidimensionales, que sólo se pueden desplazar a lolargo del eje x. En la realidad, los gusanos se pueden desplazar también por planos, cambiandode dirección. En este capítulo se presenta un modelo de gusano, al que denominaremos gusanotridimensional, con el que se aborda el problema. Se analizan sus parámetros, se caracterizay finalmente se diseña un algoritmo para permitir el giro. Antes de presentar el gusano tridi-mensional es útil tener en la cabeza los modelos ya vistos, ya que el tridimensional se puededescomponer en otros más sencillos con los que es más fácil trabajar.

6.2. Gusano plano rígido

6.2.1. Introducción

Definimos gusano plano rígido como un gusano que tiene N articulaciones y N − 1 seg-mentos rígidos, de longitud L0, que está situado sobre el plano xy. Las articulaciones se muevende manera que el gusano siempre permanece dentro del plano. El modelo es similar al de ungusano transversal, con la diferencia de que está en el plano xy. Las articulaciones, iguales quelas presentadas en el apartado 4.2.1.1, están colocadas de manera que los segmentos interior yexterior se mueven permaneciendo siempre en el plano xy (ver figura 6.1).

6.2.2. Parámetros

Los parámetros de modelado son los mismos que los de un gusano transversal (apartado4.2.1):

N: Número de articulaciones, denotadas como a1 hasta aN .

99

Page 116: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 6. MECANISMOS DE MOVIMIENTO III: GIROS 100

a1 a2 a3 a4 a6a5

L 0

Segmentosrigidos

Articulaciones

Eje x

Eje y

Figura 6.1: Un gusano plano rígido

LT : Longitud del gusano.

θi: Estado de orientación de la articulación i. Ángulo en el que se encuentra la articulacióni. El convenio de signos es el mismo que el utilizado para el ángulo ϕ (apartado 4.2.1.1)

El resto de parámetros, como la longitud proyección LP o la contracción C(t) no son de interés.

6.2.3. Caracterización

Cada articulación queda caracterizada por su ángulo de orientación θi(t) y el gusano com-pleto por el vector de orientación, Eo(t), que tiene N componentes que indican los estados deorientación de cada articulación:

Eo(t) = (θ1(t), ..., θN(t))

Las articulaciones a1 y aN , cabeza y cola, son ficticias y no se implementan en el gusanoreal. La articulación aN indica el estado de orientación de algún tipo de sensor que se sitúe en lacabeza y la a1 refleja la orientación del gusano entero dentro del plano xy, con respecto al eje y.

Para θN siempre tomaremos el valor cero. El vector de orientación cuando se encuentra elgusano en reposo es: Eo(t) = (0, ..., 0), con todas sus componentes a cero. Se corresponde conun gusano que está orientado en dirección del eje y, dentro del plano z = 0. En la figura 6.2 semuestran dos gusanos, uno en estado de reposo y otro en el estado Eo(t) = (0, 0,−45, 0, 0, 0).

En la figura 6.3 se ha dibujado un gusano en reposo y uno en el estado Eo1(t) = (−45, 0, 0, 0, 0, 0).

Sólo se diferencian en el estado de la articulación a1. En el estado Eo1(t), la componente θ1 = 30

está determinando la orientación en el plano xy de todo el gusano. El estado de orientación setoma con respecto a un eje paralelo al y.

Page 117: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 6. MECANISMOS DE MOVIMIENTO III: GIROS 101

a1 a2 a3 a4 a6a5

a1 a2 a3

a6

a5

E o(t)=(0,0,0,0,0,0)

Estado de reposo

Eje x

Eje y

a4

Estado de orientacion

E o(t)=(0,0,-45,0,0,0)

Figura 6.2: Un gusano plano rígidos en diferentes estados

a1 a2 a3 a4 a6a5

E o(t)=(0,0,0,0,0,0)

Estado de reposo

a3

a6

a5

a2

a1

Eje x

Eje y

a4

-45E o(t)=(-45,0,0,0,0,0)

Estado de orientacion

Figura 6.3: Gusano plano rígido con un estado diferente de la articulación de la cola

Page 118: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 6. MECANISMOS DE MOVIMIENTO III: GIROS 102

Funcion de trayectoriaGusano

v 1

2

3

4

5

6

7

Figura 6.4: Gusano avanzando por una función de trayectoria

6.2.4. Función de trayectoria

La función de trayectoria es a los gusanos planos lo que la función de contorno a los trans-versales. Es la función que determina los estados futuros de evolución. Supondremos que elgusano plano es capaz de desplazarse a una velocidad v por la superficie, por ejemplo porqueesté dotado de ruedas motrices.

En la figura 6.4 se muestra un gusano plano continuo (N muy grande y L0 → 0), que estásiguiendo el camino descrito por una función de trayectoria.

La función de trayectoria indica las posiciones dentro del plano xy que deben cumplir todaslas articulaciones del gusano. Es decir, el gusano debe estar “ajustado” a la función de trayectoriaen todo momento. La forma de estas trayectorias puede ser cualquiera, no obstante trabajaremoscon trayectorias simples, constituidas por dos segmentos que forman un determinado ángulo.

Page 119: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 6. MECANISMOS DE MOVIMIENTO III: GIROS 103

1

2

3

4

5

6

7

Gusano

Funcion de trayectoriav

Figura 6.5: Función trayectoria propagándose por un gusano

6.2.5. Evolución de los estados de orientación

Usemos como ejemplo el gusano de la figura 6.4. El estado de este gusano está determinadopor los ángulos en los que se encuentran estas articulaciones. Fijémonos en el estado interno,¿Cómo es la evolución?. El estado inicial es exactamente igual al final, pero entre medias hahabido un cambio. Imaginemos que antes de realizar el ’giro’ se encuentra en el estado (0,...,0).En cuanto la articulación de la cabeza realiza el giro (articulación N ), y suponiendo que cam-bie al estado α, el nuevo estado es (0,...,0,α). Según va avanzando el gusano, el estado se estaarticulación se va propagando hacia las articulaciones de la cola, de manera que la evolución deestados sería en ciertos instantes: (0,...,α,0), (0,..0,α,0,0), ... (0,α,0,..0), (α,0,..,0), (0,..,0).

Se vé claro que se puede expresar la evolución interna mediante una función de trayectoriaque se propaga desde la cabeza hasta la cola y a la que el gusano se va ajustando. En la figura6.5 se muestra el mismo gusano que en la figura 6.4, pero con una diferencia: ahora el gusanoestá quieto y lo que se propaga es la función de trayectoria. Los estados internos del gusano sonexactamente los mismos.

Para calcular los estados internos se hace exactamente igual que en el caso del gusano trans-

Page 120: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 6. MECANISMOS DE MOVIMIENTO III: GIROS 104

a1a2 a3 a4 a5

Articulaciones

segmentoscontractiles

Eje x

Eje y

Figura 6.6: Gusano plano contráctil de 5 articulaciones y 4 segmentos

versal. Se aplica el algoritmo de ajuste con respecto a la función de trayectoria, empezando porla articulación de la cola, donde está situado el origen, y avanzando hasta tener el gusano com-pletamente ajustado. El siguiente estado se obtiene desplazando hacia la izquierda la función detransferencia y volviendo a aplicar el algoritmo de ajuste. Si la función de trayectoria es T (x), lafunción desplazada es:

P (x, t) = T (x + vt)

siendo v la velocidad con la que el gusano avanza.

6.3. Gusano plano contráctil

6.3.1. Introducción

Llamaremos gusano plano contráctil a un gusano plano cuyos segmentos son contráctiles,en vez de ser rígidos y con una longitud fija. De ahora en adelante los denominaremos simple-mente como gusanos planos. En la figura 6.6 se muestra un gusano plano de cinco articulacionesy cuatro segmentos.

6.3.2. Parámetros

Los parámetros son los mismos que para el gusano plano rígido, además de los necesariospara los segmentos:

L0: Longitud natural o de reposo. Es la longitud que tienen los segmentos cuando noestán contraidos ni expandidos.

li(t): Longitud del segmento i

Page 121: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 6. MECANISMOS DE MOVIMIENTO III: GIROS 105

a2 a3

a4

a5

a1

Eje x

Eje y

Figura 6.7: Un gusano plano con un vector de estado de [(A,0,0,0),(0,0,30,0,0)]

ci(t): Contracción del segmento i, definida como la diferencia entre la longitud natural yla longitud del segmento:

ci(t) = L0 − li(t)

LT0: Longitud total natural o de reposo. Es la longitud del gusano plano cuando todos

los segmentos están en reposo.

LT (t): Longitud total del gusano. Para las longitudes despreciaremos el tamaño de lasarticulaciones considerándolas puntuales.

C(t) : Contracción total, calculada como la diferencia entre la longitud total de reposo yla longitud total:

C(t) = LT0− LT (t)

6.3.3. Caracterización

Las articulaciones se caracterizan por el ángulo de orientación θi(t) y los segmentos por lacontracción ci(t). Por ello son precisos dos tipos de vectores diferentes para caracterizar el estadode un gusano plano:

Vector de orientación: Eo(t) = (θ1, ..., θN)

Vector de contracción: Ec(t) = (c1(t), ..., cN−1(t))

Estos dos vectores forman el vector de estado del gusano plano: E(t) = [Ec(t), Eo(t)]. Enla figura 6.7 se ha dibujado un gusano plano que está en un estado caracterizado por E(t) =[(A, 0, 0, 0), (0, 0, 30, 0, 0)].

Page 122: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 6. MECANISMOS DE MOVIMIENTO III: GIROS 106

a1

a5

a3 a4a2

t1Instante

t2Instante

Trayectoria

Figura 6.8: Un gusano plano describiendo una función de trayectoria

6.3.4. Avance y coordinación

¿Cómo se mueve un gusano plano? El movimiento se consigue por tener segmentos contrác-tiles, igual que si fuese un gusano longitudinal. Si el gusano tiene un vector de orientación deltipo Eo(t) = (θ1, 0, 0, ..., 0), es decir, que todas sus articulaciones están en línea, el movimientode avance es el mismo que el de un gusano longitudinal. Para generar los estados internos seutiliza una función de contorno que vaya propagando los estados de contracción desde la colahasta la cabeza.

Los problemas surgen cuando el gusano está en un estado de orientación diferente, no estandotodas las articulaciones alineadas. En este caso no sólo basta con que se propaguen los estadosde contracción sino que tienen que propagarse también los estados de orientación de manera quesiempre se ajusten a la función de trayectoria. Podemos hacer la siguiente pregunta:

¿Cómo realizar la coordinación entre ambas evoluciones para obtener la secuen-cia de movimiento correcta que hace que un gusano plano pueda seguir una fun-ción de trayectoria?

En la figura 6.8 aparece un gusano plano en dos intantes de tiempo diferentes t1 y t2 en loscuales se está ajustando a la función de trayectoria mientras avanza. En el instante t1 el vector decontracción es Ec(t1) = (A, 0, 0, 0) y en el t2 es E(t2) = (0, 0, 0, A). La contracción de la colase ha propagado a la cabeza y entre medias el estado de orientación ha cambiado.

Los pasos para lograr la coordinación y que el gusano evolucione de un estado E(t1) a otroE(t2) son los siguientes:

1. Desplazar la función de contorno para obtener el vector de contracción Ec(t2).

2. Calcular las nuevas coordenadas de las articulaciones, respecto a un eje paralelo al y

Page 123: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 6. MECANISMOS DE MOVIMIENTO III: GIROS 107

3. Aplicar el algoritmo de ajuste respecto de la función de trayectoria para obtener los estadosde orientación Eo(t2)

4. Volver al punto 1.

En la figura 6.9 se muestra un ejemplo aplicado para un gusano de cinco articulaciones y cuatrosegmentos.

6.4. Gusano tridimensional

6.4.1. Introducción

Entenderemos por gusano tridimensional un gusano constituido por N articulaciones dedoble estado y N − 1 segmentos rígidos. Estas articulaciones permiten orientar un segmento encualquier dirección del espacio. De esta forma, el gusano tridimensional puede tener partes queestén fuera del plano xy, a diferencia de los gusanos planos. La proyección de estos gusano sobreel plano xy es un gusano plano.

6.4.2. Articulaciones de doble estado

Son articulaciones que tienen dos grados de libertad, todo ello en un único “encapsulado”.Obviamente son articulaciones ficticias, no existen en la realidad, pero son muy útiles para mo-delar. Supondremos que son “puntos gordos” con dos segmentos conectados. Los segmentos sepueden orientar en cualquier dirección del espacio. En la figura 6.10 se ha dibujado una de estasarticulaciones con un segmento. Los ángulos que definen su estado son ϕ, ángulo de elevación yθ, ángulo de orientación.

6.4.3. Parámetros

N: Número de articulaciones de doble estado

ϕi: Ángulo de elevación de la articulación i

θi: Ángulo de orientación de la articulación i

L: Longitud de los segmentos

LT : Longitud total del gusano

LP (t) : Longitud proyección. Es la longitud del gusano plano proyección del gusano tridi-mensional.

Page 124: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 6. MECANISMOS DE MOVIMIENTO III: GIROS 108

t1E c )=(0,0,A,0)( t1

t2E c )=(0,0,0,A)(

1

2

3

t2E c )=(0,0,0,A)( t2

t2E ( )o

Figura 6.9: Ejemplo de generación de los vectores de estado Ec(t) y Eo(t)

Page 125: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 6. MECANISMOS DE MOVIMIENTO III: GIROS 109

Z

YX

Elevacion

YZ

X

Orientacion

Articulacion Segmento

Figura 6.10: Articulacion de doble estado

6.4.4. Caracterización

Las articulaciones se caracterizan por el ángulo de orientación θi(t) y el de elevación ϕi(t).Necesitamos dos vectores de N componentes para caracterizar el gusano tridimensional:

Vector de orientación: Eo(t) = (θ1(t), ..., θN(t))

Vector de elevación: Ee(t) = (ϕ1(t), ..., ϕN−1(t))

Estos dos vectores forman el vector de estado del gusano tridimensional: E(t) = [Ee(t), Eo(t)].

6.4.5. Relación con el gusano plano

Si nos fijamos en la proyección del gusano sobre el plano xy, se trata de un gusano plano.La longitud de los segmentos del gusano plano depende de los estados de elevación. El estadode orientación del gusano tridimensional y del gusano plano es el mismo en todo momento. Porello es más sencillo trabajar con la proyección para determinar estos estados. En la figura 6.11aparece un gusano tridimensional, en un cierto estado de elevación y un estado de orientación.

6.5. Algoritmo de giro

6.5.1. Planteamiento del problema

La pregunta que nos hacemos es:

Page 126: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 6. MECANISMOS DE MOVIMIENTO III: GIROS 110

Z

X

Y

Gusano Plano Funcion de

trayectoria

Gusano 3D Articulacionesdoble estado

Figura 6.11: Gusano tridimensional y su proyección

¿Cómo conseguir que un gusano tridimensional gire mientras se desplaza segúnuna función de contorno y una función de trayectoria?

El gusano tridimensional está caracterizado por su estado interno, constituido por los vectores deelevación y por los vectores de orientación. Para conseguir movimiento es necesario coordinarestos estados. En la figura 6.12 se resume el proceso. Existen dos entradas muy importantes: lafunción de contorno que determina la evolución de los estados de elevación y la función detrayectoria que determina la de los estados de orientación. Para obtener el estado final hay quecoordinar estas dos evoluciones.

6.5.2. Pasos del algoritmo

Supondremos que la función de contorno no varía sus parámetros durante el avance del gu-sano (no cambia ni la amplitud, ni la longitud de onda, ni la velocidad de propagación). Estasuposición permite que el algoritmo de avance sea más sencillo pero no implica ninguna limita-ción.

El estado interno del gusano tridimensional está determinado por el vector de estado, consti-tuido por los vectores de elevación y de orientación. Para que avance tendremos que determinaruna secuencia constituida por S vectores de estado.

Haremos las siguientes suposiciones:

1. La secuencia de elevación está constituida por M vectores: {Ee1,...,EeM

}

2. Esta secuencia se calcula a partir del gusano tridimensional cuando está en reposo y esrecorrido por la función de contorno. En este estado el gusano tridimensional es similar auno transversal.

Page 127: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 6. MECANISMOS DE MOVIMIENTO III: GIROS 111

ONDASTRANSVERSALES

AmplitudVelocidadLongitud de onda V

E

VO

SECUENCIA DE ORIENTACION

Vectores de estado de orientacion

COORDINACIONAVANCE SOBRE

PLANO XY

FUNCION DE TRAYECTORIA

Algoritmo de ajuste

Vectores de estado de elevacion

SECUENCIA DE ELEVACION

Algoritmo de ajuste

Figura 6.12: Etapas para la generación de secuencias de movimiento de un gusano tridimensio-nalo sobre plano xy

3. Supondremos que la trayectoria es simple, constituida por dos segmentos que forman unángulo α. Lo que se quiere es que el gusano gire un ángulo α.

4. El estado de orientación inicial es Eo1= (0, ..., 0) y el final EoS

= (α, 0, ..., 0). En lafigura 6.13 se muestra la función de trayectoria empleada y el gusano plano, proyeccióndel tridimensional en los estados inicial y final.

El algoritmo de giro es el siguiente:

1. Dado el gusano tridimensional en reposo, y dada la función de contorno, obtener la se-cuencia de estados para que éste avance como si fuese un gusano transversal. Obtenemosuna secuencia de M vectores de estado de elevación {Eei

}.

2. Inicializar j = 1, que indica el vector de orientación

3. Repetir cíclicamente desde i = 1 hasta i = M

a) Situar el gusano en estado de elevación Eeicon un estado de orientación de reposo,

respetando el valor de orientación θ1 de la articulación 1 que determina hacia dóndeestá orientado. Inicialmente θ1 = 0.

b) Obtener las coordenadas (x, y) de las articulaciones del gusano plano resultante.

c) Aplicar el algoritmo de ajuste con respecto a la función de trayectoria. Con ello seobtiene el vector de orientación Eoj

.

Page 128: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 6. MECANISMOS DE MOVIMIENTO III: GIROS 112

Funcion de trayectoria simple

E o=(0,0,0,0,0)E e=(0,0,0,0,0)

Estado inicial:

E o

Estado final:

=(E e

,0,0,0,0)=(0,0,0,0,0)

Figura 6.13: Función de trayectoria simple y gusano en estado inicial y final

d) Si Eoj= (α, 0, 0, ..., 0) ya se ha completado el giro. Longitud de la secuencia: S =

j.FIN

e) El vector de estado es E = [Eei, Eoj

], que se añade a la secuencia.

f ) j = j + 1. Volver al punto 3.

En la figura 6.14 se ha representado gráficamente el algoritmo de giro.

6.6. Implementación de gusanos tridimensionales

El problema que presentan estos gusanos es el de la articulación de doble estado. Este tipode articulaciones no se encuentran en el mercado y se han de implementar a partir de dos servos,uno para la orientación y otro para la elevación. La mecánica se complica, dejando de tenerseun gusano simple, alejándose de los objetivos del proyecto. No obstante, como se ha demostradoen este capítulo, el control mediante propagación de ondas es viable pudiéndose conseguir queademás de avanzar, el gusano realice giros.

6.7. Resumen

Para abordar el problema del giro se utiliza un modelo de gusano tridimensional. Para com-prender bien este modelo primero se han presentado otros gusanos que están relacionados. Enprimer lugar se ha estudiado un gusano plano rígido, constituido por N articulaciones y porN − 1 segmentos rígidos, que se puede ajustar a una función de trayectoria obteniéndose unos

Page 129: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 6. MECANISMOS DE MOVIMIENTO III: GIROS 113

{E e1,...,EeM}

Inicio

E oj

E oj=( ,0,...,0)? FIN

E e i E ojE=[ , ]

j=j+1

E e i E o=(0,...,0)

Obtener secuencia vectores de elevacion:j=1

Inicializacion

Repetir desde i=1 hasta M

Ajustar gusano plano

S=jSi

No

Siguiente i

Obtener gusano plano a partir de un gusano tridimensional que seencuentre en el estado: ,

Figura 6.14: Algoritmo de avance para una trayectoria simple

Page 130: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 6. MECANISMOS DE MOVIMIENTO III: GIROS 114

estados de orientación. Este modelo se ha complicado un poco haciendo que los segmentos ade-más sean contráctiles. Es el gusano plano contráctil. Con este gusano se ha estudiado cómoconseguir que se ajuste a una función de trayectoria mientras avanza como si fuese un gusanolongitudinal normal.

Finalmente se ha presentado el modelo de gusano tridimensional, cuya proyección en elplano xy es un gusano plano contráctil. Se ha presentado un algoritmo de giro para este gusano,basado en la función de contorno de un gusano transversal y en la función de trayectoria a la quese ajusta el gusano plano.

Page 131: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Parte II

Implementación de un gusano transversal

115

Page 132: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Capítulo 7

Software: modelo virtual

7.1. Introducción

Antes de pasar a la construcción de un robot gusano, es necesario probar las indeas introdu-cidas en la parte teórica. Para ello se ha construido un modelo de gusano virtual, con 6 articula-ciones y 5 segmentos, pero que está pensado trabajar con gusanos de cualquier longitud.

Este programa permite probar el algoritmo de ajuste, experimentar con diferentes funcio-nes de contorno, ver los vectores de estado y generar secuencias de movimiento a partir de lapropagación de la función de contorno.

Además de ser una herramienta para la investigación a nivel teórico, es el programa encargadode generar un fichero con las secuencias que se enviarán al prototipo mecánico.

El emplear un programa virtual permite desligarse del gusano físico. Es decir, las secuenciasgeneradas son válidas para cualquier gusano, puesto que no dependen de ninguno en concreto.Tiene la limitación de 6 articulaciones, puesto que el interfaz está diseñado para 6 articulaciones,sin embargo el diseño interno está pensado para ser muy facilmente ampliable a cualquier númerode articulaciones.

Para más información sobre la programación de interfaces gráficos usando GTK+ consultar[29]. Un manual bastante bueno para la programación en C es [30] y para la programación bajoLinux/Unix [31].

7.2. Herramientas software

El entorno de desarrollo creado para Cube está constituido por dos aplicaciones (ver figura7.1), cada una asociada a un tipo de gusano diferente, virtual y real:

1. Cube-virtual. Entre otras muchas funciones que se describen con más detalle en estecapítulo, permite actuar sobre un gusano transversal virtual, estableciendo el estado de susarticulaciones y generando secuencias a partir de funciones de contorno parametrizadas.

2. Cube-fisico. Permite controlar directamente los servos que componen el gusano real,así como generar secuencias creadas por el usuario y leer secuencias del gusano virtual.

116

Page 133: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 117

FICHEROAplicacion:

CUBE-FISICO

Grabacion desecuencias

Lectura desecuencias

Gusanovirtual

Gusanoreal

Control de servosReproduccion de secuencias

AplicacionCUBE-VIRTUAL

ManipulacionGeneracion secuencias

Figura 7.1: Entorno software desarrollado para cube

Para el estudio del avance de un gusano transversal se utiliza la aplicación cube-virtual.Mediante ella se pueden establecer los parámetros de la función de contorno: amplitud, longitudde onda y velocidad de propagación que modelan el avance del gusano. En la pantalla se puedever cómo evolucionan los estados internos para comprender mejor los mecanismos de movi-miento. Una vez que se tiene una función de contorno apropiada, el diseñador puede grabar lasecuencia en un fichero para luego envíaserla al gusano y reproducirla empleando el programacube-físico, descrito con más detalla en el capítulo 10.

Todo el software se ha desarrollado bajo Linux, y utilizando un interfaz gráfico basado en lalibrería GTK+. El lenguaje de programación empleado es el C y el compilador usado es el GCC(GNU Cross Compiler).

7.3. Descripción de la aplicación cube-virtual

El programa cube-virtual permite realizar las siguientes tareas, sobre un gusano transversalde 6 articulaciones y 5 segmentos:

1. Obtener el vector de estado E(t) del gusano, en un instante

2. Mover individualmente cualquiera de las articulaciones, reflejándose los cambios en elvector de estado

3. Mostrar tres funciones de contorno diferentes y cambiar sus parámetros: amplitud, longitudde onda y velocidad de propagación.

Page 134: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 118

4. Aplicar el algoritmo de ajuste a todo el gusano o a ciertas articulaciones particulares

5. Calcular el error de una articulación así como su ángulo inicial

6. Opción de reproducción play para mover la función de contorno.

7. Opción de enganche del gusano a la función de contorno, de manera que cada vez quevaríen los parámetros de la función de contorno o que ésta se desplace, el gusano virtuallo hará de la misma manera. Esto permite calcular secuencias de vectores de estado.

8. Opción de grabación de una secuencia en un fichero, de manera que pueda ser leída por laaplicación cube-físico, presentada en capítulos posteriores, para mover el gusano.

En la figura 7.3 se muestra la apariencia del programa cube-virtual. En la pantalla apareceuna función de contorno sinusoidal y el gusano está ajustado a ella.

7.4. Arquitectura software

El programa cube-virtual está constituido por 7 módulos, relacionados como se muestra enla figura 7.3. Los módulos son:

Interfaz: Dibujo del interfaz

Vectores: Operaciones con vectores de estado

Calc: Operaciones con puntos en dos dimensiones

Func: Manipulación e implementación de las funciones de contorno

Cube: Manipulación de Cube

Cube-virtual: Programa principal y funciones asociadas (callback) a los botones dela interfaz

A continuación se presentan los módulos con más detalle.

7.4.1. Módulo calc

Este módulo realiza operaciones con puntos en dos dimensiones. En él se define el tipocalc_punto2d_t y funciones para realizar operaciones con él. Este tipo se define a continuación:

typedef struct calc_punto2d_s {double x;double y;

} calc_punto2d_t;

Page 135: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 119

Figura 7.2: Aspecto del programa cube-virtual

Page 136: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 120

VIDEOCUBE INTERFAZ

FUNCCALC

USUARIO

CUBE-VIRTUAL

VECTORES

DISCO

Figura 7.3: Módulos del programa cube-virtual

Lo que está definiendo son las coordenadas (x, y) de cada punto. Las operaciones permitidassobre este tipo vienen definidas por la interfaz del módulo:

double calc_angulo(calc_punto2d_t centro, calc_punto2d_t extremo);

Calcular el ángulo que forma el segmento que une los dos puntos con la horizontal.

double calc_angulo_aprox(calc_punto2d_t centro, calc_punto2d_t extremo, double

(*func_contorno)(double));

Calcular el ángulo de aproximación de un punto con respecto a un centro y una función decontorno.

double calc_angulo_ajuste(calc_punto2d_t centro, calc_punto2d_t extremo,double (*func_contorno)(double));

Calcular el ángulo que hay que rotar el punto indicado, con respecto al centro, para quese ajuste a la función de contorno. Esta función es donde se implementa el algoritmo deajuste para una articulación.

double calc_distancia(calc_punto2d_t p1, calc_punto2d_t p2);

Calcular la distancia entre dos puntos

void calc_rotar_punto(calc_punto2d_t centro, calc_punto2d_t extremo, doubleang, calc_punto2d_t *rotado);

Obtener un nuevo punto a partir de la rotación del extremo con respecto a un centro unángulo determinado.

Page 137: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 121

double calc_error_ajuste(calc_punto2d_t centro, calc_punto2d_t extremo, double(*funcion)(double));

Calcular el error de ajuste de un punto con respecto a un extremo y una función de contor-no.

7.4.2. Módulo func

En este módulo se definen las funciones de contorno de interés y funciones para poder mani-pular los diferentes parámetros: amplitud, longitud de onda, frecuencia e instante de tiempo. Lainterfaz del módulo es:

void func_amplitud_set(double amp);

Establecer el parámetro amplitud

void func_long_onda_set(double lamda);

Establecer el parámetro longitud de onda

void func_tiempo_set(double time);

Establecer el instante de tiempo

void func_frec_set(double frecuencia);

Establecer el parámetro frecuencia

double func_periodo_get();

Obtener el valor del periodo, que se calcula a partir de los parámetros anteriores

double func_onda_sinusoidal(double x);

Implementación de una función sinusoidal genérica. A partir del valor x se devuelve elvalor de y, pero en función de los parámetros establecidos.

double func_nula(double x);

Función nula, que devuelve 0 para cualquier valor de x

double func_recta(double x);

Función recta, con una pendiente de 1

double func_ventana(double x);

Esta función devuelve el propio valor de x si se encuentra dentro de una ventana defini-da mediante parámetros y 0 en el caso contrario. Se emplea para generar funciones noperiódicas, como por ejemplo un sólo lóbulo de una función sinusoidal.

De todas las funciones de contorno definidas en este módulo, la que es de interés es la ondasinusoidal, que permite modelar los estados internos del gusano.

Page 138: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 122

Art1

Art Art2 3

COLA

Art4

Puntero inicial

Resto dearticulaciones

LISTA DOBLEMENTE ENLAZADA

Figura 7.4: Estructura de datos empleada para modelar el gusano

7.4.3. Módulo cube

El módulo cube trabaja con otro tipo abstracto de datos: la articulación. La definición deltipo es la siguiente:

typedef struct articulacion_s {gint _numero;gint fi;calc_punto2d_t coord;gint sentido;

} articulacion_t;

Los campos de los que consta son:

numero: Número de la articulación

fi: Ángulo de estado de la articulación ϕ

coord: Coordenadas (x, y)

sentido: Sentido de colocación de la articulación. Este parámetro influye en el signo delángulo ϕ, y depende de cómo se haya implementado el gusano físicamente y de la orien-tación de la articulación (ver apartado 7.6).

El gusano virtual se define como una lista doblemente encadenada de articulaciones, de maneraque para trabajar con un gusano más largo sólo hay que añadir un nuevo nodo a la lista. Lalista comienza por la cola, que es la información que almacena el módulo. También se encuentradefinida la articulación activa, que es la que el usuario tiene seleccionada para poder moverse.

En la figura 7.4 se muestra gráficamente la estructura de datos empleada para modelar elgusano virtual.

El resto de funciones de interfaz nos permiten realizar diferentes operaciones sobre las arti-culaciones, olvidándonos de los detalles internos.

Page 139: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 123

void cube_init();

Inicialización del módulo y de todas las estructuras de datos asociadas. Se crea la lista conlas articulaciones y se inicializa.

void cube_inicializar_gusano();

Inicializacion de la lista encadenada. Se utiliza para hacer un ’reset’ y volver al estadoinicial. La función cube_init() llama a esta función, pero antes crea todas las estructuras dedatos necesarias. Cube_inicializar_gusano() sólo establece los valores iniciales sobre lasestructuras ya creadas.

int cube_long_get();

Devolver la longitud del gusano. Esta función se emplea para poder independizar el restode módulos de la longitud real del gusano, de manera que sólo cambiando la longitud eneste módulo no haya que modificar el resto.

void cube_cola_get_xy(double *x,double *y);

Devolver las coordenadas (x, y) de la articulación de la cola

void cube_cola_set_xy(double x,double y);

Establecer las coordenadas (x, y) de la cola. Se recalculan las coordenadas del resto dearticulaciones. Esta función sirve para situar el gusano en cualquier posición de la pantalla,manteniendo las articulaciones en el mismo estado.

void cube_func_contorno_set(double (*func_contorno)(double));

Establecer la función de contorno activa. Se pasa como parámetro un puntero a la funciónde contorno a emplear. Estas funciones se encuentran definidas en el módulo func.c.

void cube_rotar(int centro, int ang, int sentido);

Rotar el gusano respecto de una articulación centro. La rotación se realiza desde la articu-lación centro hacia la derecha o la izquierda, según cómo se especifique en el parámetrosentido. El funcionamiento normal es que se rote siempre la parte derecha de la articulacióncentro. El valor de este parámetro puede ser DERECHA o IZQUIERDA

void cube_info_art(int num_art);

Obtener información sobre la articulación indicada. Esta información se imprime en laconsola. El propósito de esta función es la depuración del código.

double cube_error_get(int nart);

Devolver el error de aproximación de la articulación especificada. Se devuelve en tanto porciento.

void cube_ajustar_art(int num_art);

Aplicar el algoritmo de ajuste a la articulación especificada, utilizando como función decontorno la activa. Se aplica el algoritmo sin calcular el ángulo inicial, es decir, se aplica a

Page 140: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 124

partir del estado en el que se encuentra la articulación. Es responsabilidad del que llama aesta función el establecer el ángulo inicial para mejorar la velocidad del algoritmo.

void cube_rotar_aprox(int nart);

Situar la articulación indicada en el ángulo inicial de aproximación con respecto a la fun-ción de contorno activa.

void cube_rotar_aprox_rep(int nart);

Esta función es igual que la anterior pero se realiza más de una pasada, de manera que elangulo todavía está más próximo al final. El objetivo de esta función es realizar pruebassobre el tiempo de convergencia.

void cube_ajustar(int nart);

Ajustar el gusano a la función de contorno activa. Primero se calcula el ángulo inicial ydespués se aplica el algoritmo de ajuste.

double cube_articulacion_get_pos(int nart);

Obtener el ángulo de estado ϕ de la articulación especificada

void cube_articulacion_set_pos(int nart, double pos, int sentido);

Establecer el ángulo de estado de una articulación y propagar en el sentido indicado

void cube_articulacion_get_xy(int nart, double *x, double *y);

Obtener las coordenadas (x, y) de una articulación.

7.4.4. Módulo vectores

Este módulo trabaja con vectores de estado del gusano. La información sobre el estado seencuentra en la estructura de datos del gusano, en el módulo cube, pero este módulo permitetrabajar con vectores de estado ya formados, a partir de la información del gusano.

La estructura de datos empleada es:

typedef struct vector_pos_s {double pos[NUM_ART];unsigned int te;

} vector_pos_t;

Los campos son los siguientes:

pos: Vector con los ángulos de estado ϕ.

te: Tiempo de espera

Page 141: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 125

El campo de tiempo de espera permite definir el tiempo que debe permanecer el gusano en eseestado, antes de pasar al siguiente. Con ello se pueden definir secuencias de movimiento, queserán enviadas al gusano físico.

El interfaz del módulo es:

double vector_distancia(vector_pos_t *v1, vector_pos_t *v2);

Calcular la distancia entre dos vectores. La distancia se define como:

d(v, w) = MAX{|w1 − v1| , |w2 − v2| , ..., |wN − vN |}

siendo w = (w1, w2, ..., wN) y v = (v1, v2, ..., vN ) los vectores de estado. Esta distancianos da una idea de cúal es la articulación que está más alejada del estado final w.

unsigned long vector_tiempo_trans(vector_pos_t *v1, vector_pos_t *v2, doublect);

Calcular el tiempo de tránsito entre dos estados, empleando una constante de tiempo. Estafunción no se utiliza en el programa cube-virtual y se explicará más adelante.

void vector_suma(vector_pos_t *v1, vector_pos_t *v2, vector_pos_t *suma);

Calcular la suma de dos vectores de estado. La suma se define como:

v + w = (v1 + w1, v2 + w2, ..., vN + wN)

void vector_producto(vector_pos_t *v1, vector_pos_t *v2, vector_pos_t *prod);

Calcular el producto de dos vectores, definido como:

v.w = (v1w1, ..., vNwN)

vector_pos_t *vector_new();

Crear un vector nuevo, inicializado a cero

vector_pos_t *vector_crear(double a1, double a2, double a3, double a4, unsignedint te);

Crear un vector con los valores indicados

void vector_free(vector_pos_t *vector);

Liberar la memoria tomada por un vector

int vector_save(FILE *f, vector_pos_t *v);

Almacenar el vector en un fichero. Se almacena en una línea ASCII, con la siguiente codi-ficación: [v1, v2, v3, v4], te. Donde v1 − v4 son los estados de las articulaciones 1-4 y teel tiempo de espera asociado a ese estado. Los estados de la cabeza y la cola no se grabanpuesto que son articulaciones “virtuales” que en el gusano real no existen.

Page 142: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 126

int vector_load(FILE *f, vector_pos_t *v);

Leer un vector de un fichero y devolverlo. Esta función no se usa en cube-virtual, pero síen los programas que se presentan más adelante.

void vector_print(vector_pos_t *v);

Función de depuración para imprimir un vector de estado en la consola

7.4.5. Módulo video

Este es el módulo encargado de dibujar el gusano virtual, en una pantalla gráfica situadaencima de los botones. Además permite variar parámetros de dibujo, como por ejemplo si hayque mostrar el eje x o la función de contorno.

GtkWidget *video_init();

Inicialización de la pantalla de video. Se crea el área de dibujo, se configura y se asignanlos eventos necesarios. Todas las variables locales del módulos también se inicializan

void video_origenx_inc(int inc);

Incrementar coordenada x del origen de coordenadas

void video_origeny_inc(int inc);

Incrementar coordenada y del origen de coordenadas

void video_origen_reset();

Llevar el origen a su situación inicial

void video_refrescar();

Redibujar toda la información de la pantalla, en función del nuevo estado del gusano y delinterfaz

void video_set_func_draw(double (*func)(double));

Establecer la función de contorno que se dibujará

void video_set_art_activa(int nart);

Indicar cuál es la articulación activa. Se pinta con otro color

void video_show_ejex(gboolean dibujar);

Mostrar/ocultar el eje x

void video_show_func(gboolean dibujar);

Mostrar/ocultar la función de contorno

void video_show_cube(gboolean dibujar);

Mostrar/ocultar el gusano virtual

Page 143: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 127

7.4.6. Módulo interfaz

Este módulo crea y dibuja el interfaz que el usuario puede ver. Todo el estado interno delinterfaz: estado de los botones, contenido de los cuadros de datos,etc. se sitúa dentro de unavariable del tipo main_state_t:

typedef struct main_state_s {GtkWidget *win_main; /* Ventana principal */GtkTooltips *sugerencias; /* Sugerencias */GtkAccelGroup *accel_group; /* Teclas aceleracion */GtkObject *adj1; /* Valor asociado al potenciometro */

/*-- Valores de los diferentes parametros de la onda -- */GtkObject *amp_adj; /* Amplitud */GtkObject *lamda_adj; /* Longitud de onda */GtkObject *time_adj; /* Tiempo */GtkObject *frec_adj; /* Frecuencia */

/* ---- Botones Toggle ----- */GtkWidget *toggle_ejex;GtkWidget *toggle_func;GtkWidget *toggle_cube;GtkWidget *toggle_enganche;

/* --- LCD’s ---- */GtkWidget *lcd_grados[6];GtkWidget *lcd_x[6];GtkWidget *lcd_y[6];

/*--- Valores para el vector de offset ---*/GtkObject *a_adj[4];

/*--- Lcd para vectores fisicos ----*/GtkWidget *vector_lcd[4];

/*--- Valores para los botones de sentido --*/GtkWidget *sentido[4];

} main_state_t;

Sólo existe una función de interfaz, que lo construye, lo dibuja y devuelve el estado en unavariable del tipo anterior.

void create_window1(main_state_t *estado);

7.4.7. Programa principal: cube_virtual

Este módulo realiza todas las inicializaciones de los módulos anteriores, llama a create_window1()para dibujar el interfaz, inicializa su propio estado interno y le pasa el control al motor de GTK+,que gestiona las señales y eventos producidos.

Page 144: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 128

Cada vez que ocurre algún evento, como la pulsación de un botón, se llama a la función deretrollamada correspondiente, implementada en el módulo principal. La función asociada a unevento (callback function) determina, según el estado del programa, qué acciones hay que tomar.

7.5. Manejo del programa

7.5.1. Descripción del interfaz

En el interfaz se pueden distinguir 4 partes, que se muestran en la figura 7.5:

1. Pantalla de vídeo. Zona donde se representa el gusano virtual y la función de contorno

2. Botones de interfaz. Conjunto de botones, barras de desplazamiento y entrada de paráme-tros que permiten realizar operaciones sobre el gusano virtual o la función de contorno.

3. Estado de las articulaciones. Se muestra el ángulo de estado de cada articulación ϕ asícomo las coordenadas x, y.

4. Conversiones. Conversiones que se aplican para obtener el vector de estado físico.

En las siguientes secciones se explica en detalle cada una de estas partes.

7.5.2. La pantalla de vídeo

La figura 7.6 muestra el aspecto de la pantalla de vídeo. En ella podemos ver las tres compo-nentes que se visualizan:

Eje X

Función de contorno

Gusano virtual

Cada una de estas partes se puede visualizar u ocultar, según que los botones Eje x, Func y Cubeestén o no activados (definidos en la página 133).

Las articulaciones se visualizan como círculos rojos, con su número asociado. La articulaciónactiva se muestra con un círculo verde y es sobre la que actúan ciertas partes del interfaz, comola barra de posicionamiento.

La articulación número 1 se encuentra situada en la coordenada x = 0, y = 0. Inicialmenteel gusano se encuentra situado sobre el eje x.

Page 145: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 129

PANTALLA DEVIDEO

BOTONES

INTERFAZDE

Estado de lasarticulaciones

Conversionesa aplicar

Figura 7.5: Diferentes partes del interfaz del programa cube_virtual

Page 146: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 130

Funcionde contorno

Articulacionactiva Eje x

Gusano virtual

Articulaciones

Figura 7.6: La pantalla de vídeo

Coordenadas (x,y) deposicion de lasarticulaciones

1 65432

Vector de estado

Figura 7.7: Estado de las articulaciones

Page 147: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 131

Grupo 7 Grupo 8 Grupo 9Grupo 10

Grupo 11

Grupo 5

Grupo 1

Grupo 2 Grupo 3 Grupo 4

Grupo 6

Figura 7.8: Grupos de botones en el interfaz

7.5.3. Estado de las articulaciones

La parte del interfaz que muestra el estado de cada una de las articulaciones aparece en lafigura 7.7. El vector de estado está en grados sexagesimales, y cada componente representa elángulo de estado ϕ en el que se encuentra cada articulación.

Además del estado se representa también un vector X , que contiene todas las coordenadas xde las articulaciones y un vector Y con las coordenadas y. Mirando estos vectores transversal-mente, componente a componente, se obtienen los pares (x, y) de coordenadas de cada articula-ción.

Es muy interesante conocer las coordenadas de las articulaciones, sobre todo las coordenas xpara saber en todo momento la longitud del gusano longitudinal asociado y si se está cumpliendoo no la condición de que la longitud permanezca constante mientra la función de contorno sedesplaza. Cuanto más constante sea esta longitud, mejor avanzará el gusano.

La mejor manera de conocer la longitud es fijándose en la coordenada x de la articulación 6,cuando se encuentra apoyada sobre el suelo (esto es, que y=0). La teoría dice que esta coordenadax debería ser constante siempre que y=0, es decir, siempre que no esté siendo atravesada por lafunción de contorno.

7.5.4. Botones del interfaz

Existen muchos botones en el interfaz, clasificados en diferentes grupos según su funcionali-dad, como se muestra en la figura 7.8. En total hay 11 grupos, pero el grupo 11 está constituidopor un único botón.

1. Grupo 1: Desplazamiento del origen de coordenadas.

El origen de coordenadas está situado sobre la articulación 1, cuando se encuentra enreposo. Mediante estos botones se cambia el origen, desplazándose todos los elementos

Page 148: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 132

que se dibujan en la pantalla: gusano, eje x y función de contorno. Con ello podemoscentrar en la pantalla la información que nos interese ver. Normalmente estos botones nose usarán.

2. Grupo 2: Selección de la articulación activa.

De este grupo de botones sólo uno puede estar activo cada vez. Permiten seleccionar cuáles la articulación activa, que se dibuja en la pantalla como un círculo verde en vez de rojo.Sobre la articulación activa actúan botones de otros grupos.

3. Grupo 3: Desplazamiento del gusano

Este grupo permite mover el gusano, variando las coordenadas (x, y) de todas las articula-ciones de manera que el estado permanece inalterado, pero la posición varía.

4. Grupo 4: Información y Reset

Formado por dos botones, uno de reset (R) y otro de información (I):

Reset: Llevar el gusano al estado inicial, con la articulación 1 situada en el origen decoordenadas y asignando el estado (0,0,0,0,0,0). El origen de coordenadas se sitúa ensu posición inicial en la pantalla.

Info: Devuelve información sobre la articulación activa. La información se imprimeen la consola. Es un botón de depuración. La información se presenta como en elejemplo siguiente:

[2] (46.359,18.730) pos: -57Ángulo con eje x: 22.000

Donde [2] indica que la articulación activa es la dos. La información entre paréntesisson las coordenadas (x, y), y pos es el ángulo de estado ϕ. También se indica elángulo que forma con el eje x (θ)

5. Grupo 5: Parámetros del algoritmo de ajuste

Este grupo está relacionado con el algoritmo de ajuste. Está constituido por 4 botones,pensados sobre todo para hacer pruebas con los conceptos teóricos.

Error: Imprime en la consola el error de aproximación de la articulación activa,expresado en tanto por ciento. Este error nos indica cómo de bien está ajustada esaarticulación a la función contorno. Un ejemplo es:

[2]: 12.00%

Donde el parámetro entre corchetes es la articulación activa y el otro es el error.

Aprox: Aproximar la articulación activa a la función de contorno. Se aplica el algo-ritmo de ajuste sólo para la articulación activa. Esta opción es muy útil para ver cómoevoluciona el algoritmo cuando se aplica a las diferentes articulaciones, desde la 1hasta la 6.

Page 149: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 133

Ang ini: Situar la articulación anterior a la activa en el ángulo inicial de aproxima-ción, de manera que la articulación activa se encuentra más cerca de la función decontorno. Esto permite evaluar cuánto de bueno es el algoritmo de calculo de la pri-mera aproximación, antes de empezar a iterar.

Ajustar: Aplicar el algoritmo de ajuste completo, desde la articulación activa hasta lacabeza del gusano (articulación 6). Si la articulación activa es la 1 el gusano completose ajusta a la función de contorno.

6. Grupo 6: Selección de los elementos a visualizar

Estos botones permiten elegir cuáles de los tres elementos que se pueden representar en lapantalla se quieren visualizar:

Eje x: Visualizar o no el eje x. Se visualiza como una línea azul

Func: Función de contorno

Cube: Gusano virtual

Se trata de botones independientes que pueden estar en cualquiera de los dos estadosON/OFF por lo que se pueden presentar en cualquiera de las 8 combinaciones: desde novisualizar nada hasta visualizarlo todo (opción por omisión).

7. Grupo 7: Selección de la función de contorno

Permite seleccionar entre tres funciones de contorno diferentes. Por omisión se han imple-mentado tres tipos de funciones de contorno, pero es muy fácil representar cualquier otrasin más que añadirla en el módulo func.c.

F1: Función sinusoidal completa

F2: Función sinusoidal rectificada, sólo con parte positiva

F3: Función sinusoidal multiplicada por una ventana de una cierta anchura, de maneraque sólo se muestra un “trozo” de la señal, como por ejemplo un lóbulo positivo.

Las funciones de contorno que se emplean se muestran en la figura 7.9.

8. Grupo 8: Parámetros de la función de contorno

En los cuadros de este grupo se muestran los 4 parámetros de las funciones de contornoque se pueden variar. Afectan a las tres funciones definidas: F1, F2 y F3. Los parámetrosson, por orden de izquierda a derecha:

Amplitud (A)

Longitud de onda (λ)

Instante de tiempo (t)

Velocidad de propagacion (v)

Page 150: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 134

F1

F2

F3

Figura 7.9: Las tres funciones de contorno empleadas

Cuanto menor sea la longitud de onda, más “lóbulos” sinusoidales recorrerán el gusano.Cuanto mayor sea, mejor se ajusta el gusano a la función de contorno y más se cumple lacondición de que la longitud del gusano longitudinal asociado permanezca constante.

El parámetro tiempo nos define el instante en el que se encuentra la onda, ya que se vapropagando. Inicialmente se toma t = 0. Al aumentar este parámetro puede verse cómo laonda “avanza”.

La velocidad de propagación nos da una idea del número de instantes de tiempo que tardala onda en recorrer una longitud igual a la longitud de onda λ.

v =λ

T

Fijada una λ y dos velocidades v1 y v2, con v1 < v2, en el instante t = 0 las ondas soniguales pero en el instante t = 1, la onda con velocidad v2 ha avanzado más que la ondacon velocidad v1.

Por ello, el parámetro velocidad, nos está indicando cuántos estados diferentes va a tener elgusano al recorrer una longitud igual a λ. Si v es alto, se generan pocos estados intermediosy si es bajo muchos. Para poner un ejemplo, con un valor fijo de λ = 150, que es la longitudde onda que se tiene por defecto y con v1 = 5 y v2 = 10, se obtienen en el primer caso 30estados diferentes y 15 en el segundo. Esto es porque en el primer caso la distancia igual aλ se recorre en 30 instantes de tiempo y en 15 en el segundo caso.

Page 151: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 135

A menor velocidad de propagación, mayor número de estados internos y portanto mayor es la resolución temporal, es decir, tenemos más “fotogramas”del avance del gusano.

9. Grupo 9: Generación de secuencias

Este grupo comprende dos botones relacionados con la evolución temporal del gusano.

Play: Realizar una “reproducción” de la evolución de los estados internos del gusano,con la función de contorno activa y con sus parámetros establecidos. Se entiende porreproducción la siguiente secuencia de acciones:

a) Aplicar el algoritmo de ajuste al gusano, con respecto de la función de contornoestablecida

b) Incrementar el parámetro tiempo

c) Recalcular la nueva función de contorno para el nuevo instante temporal

d) Volver al punto (a)

Grabar: Realizar una reproducción sólo hasta que la onda avance una distancia iguala la longitud de onda, de manera que el estado inicial es igual al estado final, y grabarlos vectores de estado en un fichero.

En la figura 7.10 se muestran un gusano ajustado a una función de contorno en diferentesinstantes.

10. Grupo 10: Movimiento de las articulaciones

Este grupo comprende dos botones de dirección, izquierda y derecha y una barra de des-plazamiento.

Barra de desplazamiento: Permite establecer el ángulo de estado de la articulaciónactiva. De esta manera podemos situar manualmente el gusano en cualquier estado

Botón derecha: Establecer el sentido de propagación del giro de la articulación acti-va. Por defecto siempre es el derecho. Esto quiere decir que al mover una articulación,las articulaciones del lado izquierdo quedarán fijas y sólo se mueven las del lado de-recho.

Botón izquierda: Establecer el sentido de propagación hacia la izquierda.

En la figura 7.11 se ha dibujado un ejemplo para comprender mejor el fenómeno de lapropagación hacia la derecha o hacia la izquierda. Se parte del gusano que está en el estadodel dibujo superior. El dibujo que está debajo muestra lo que ocurre cuando se cambia elángulo de la articulación 3 dejando fijo el lado izquierdo y sólo moviendo el derecho. Enel dibujo de la parte inferior aparece lo que ocurre si la propagación es hacia la izquierda.El resultado es que el gusano se encuentra en el mismo estado (la forma es la misma) perola posición ha variado.

Page 152: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 136

1

2

3

4

Figura 7.10: Secuencia de 4 estados

Page 153: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 137

Propagacion hacia la derecha

Propagacion hacia la izquierda

Figura 7.11: Propagación del estado hacia la ezquierda y la derecha

Figura 7.12: Gusano en un estado alcanzado “manualmente”

Page 154: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 138

En la figura 7.12 se ha situado manualmente el gusano virtual en un estado, moviendo cadauna de las articulaciones mediante la barra de desplazamiento.

11. Grupo 11: Botón de enganche

Denominaremos enganche a la asociación de los estados internos del gusano con el estadode la función de contorno. La función de contorno está caracterizada por los parámetrosdescritos anteriormente: amplitud, longitud de onda, tiempo y velocidad. Tanto los estadosde la función de contorno como los del gusano interno se pueden alterar individualmentesin que afecten uno al otro. Sin embargo al apretar el estado de enganche, se asocian ambosestados, de manera que al cambiar el estado de la función de contorno se cambia el estadodel gusano.

Una vez que el gusano está enganchado a la función de contorno, podemos emplear losbotones del grupo 8 para actuar sobre el gusano. Aumentando el parámetro tiempo, elestado interno avanza. Los botones del grupo 9, play y grabar, lo que hacen es primero“enganchar” el gusano y luego variar el parámetro tiempo. El “enganche” no sólo es a niveltemporal sino que funciona con cualquiera de los otros parametros: amplitud y longitud deonda.

En la figura 7.13 se muestra un gusano que está enganchado a una función de contornosinusoidal y cómo al variar la amplitud el gusano va modificando su estado.

7.5.5. Interfaz para conversiones

Este interfaz se utiliza para relacionar el modelo virtual de gusano con el modelo físico. Losconceptos se tratan en la sección 7.6. Está constituido por tres partes:

Correccion de offset: Este grupo permite establecer las correcciones de offset necesariaspara las articulaciones reales (articulaciones números 2-5).

Corrección de sentido: Botones de estado para corregir el sentido de la articulación

Vector de estado físico: Presenta el estado del vector físico real, de aplicación para elgusano físico concreto.

7.5.6. Generación de secuencias

Para generar una secuencia de movimiento en el gusano virtual para luego ser grabada en unfichero y leida por la aplicación cube-físico hay que seguir los siguientes pasos:

1. Seleccionar la función de contorno, utilizando los botones F1, F2 ó F3. Normalmente seutilizará la que viene por omisión que es una onda sinusoidal.

2. Establecer los parámetros de la onda: amplitud, longitud de onda y velocidad de propaga-ción. Para ello se utiliza el grupo 8 de los botones de interfaz

Page 155: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 139

Amplitud 1

Amplitud 2

Amplitud 3

Figura 7.13: Gusano enganchado a una función de contorno a la que se le varía la amplitud

Correccion de offset Correccion de sentido

Vector de estado fisico

Figura 7.14: Interfaz para las correcciones del estado

Page 156: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 140

3. Probar la secuencia en el gusano virtual, bien automáticamente pulsando el botón de playo bien manualmente, incrementando el tiempo usando el grupo 8.

4. Pulsar el botón de grabación “grabar”. A continuación se indica el fichero en el que sequiere grabar la secuencia. Se grabará un periodo de la misma.

7.6. Gusano virtual y gusano físico

Entendemos por gusano virtual el modelo de gusano transversal y su simulación, y porgusano físico la implementación en un gusano real. Los cálculos de los estados internos serealizan sobre el gusano virtual para luego ser llevados al gusano físico. Por ello es necesarioestablecer la relación entre los dos modelos.

7.6.1. El estado del gusano virtual

El estado del gusano virtual queda caracterizado por el vector de estado (E), que tiene comocomponentes los angulos de todas las articulaciones. El modelo virtual presentado en el softwarecube-virtual está constituido por 6 articulaciones y 5 segmentos. Sin embargo, dos de las articu-laciones, la 1 y la 6 son virtuales, puesto que en el modelo físico no existen. Estas articulacionessirven para determinar la posición del gusano virtual con respecto al eje x, para un mismo estado,pero realmente no están definiendo un estado interno, sino una orientación.

El conocer las coordenadas (x, y) de las articulaciones del gusano virtual es interesante paraevaluar las diferentes funciones de contorno que se emplean para generar el movimiento. Nospermite por ejemplo conocer la longitud del gusano longitudinal asociado, observando la coor-denada x de la articulación 6, cuando se encuentra sobre el eje x. Para un correcto avance estalongitud debe permanecer constante.

En la figura 7.15 se muestran dos gusanos en los que lo único en que difieren es en el estadode la articulación virtual 1.

7.6.2. El estado del gusano físico

El estado del gusano físico viene determinado por los ángulos de sus servomecanismos, o desus articulaciones “reales”. En este caso son 4, por lo que el vector de estado físico (E’) tienesólo 4 componentes. Para el gusano físico no nos interesan las coordenadas (x, y), puesto queno podemos actuar sobre ellas, ni tampoco determinarlas. Sólo disponemos del vector de estadofísico.

7.6.3. Conversiones entre los estados

De nada serviría el modelo virtual si no se pudiese aplicar a un gusano físico. Para ello esnecesario hacer una serie de conversiones. La primera conversión es una proyección, parapasar de un vector de estado de 6 componentes a otro de 4. Recordemos que las articulaciones de

Page 157: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 141

Figura 7.15: Gusanos con diferente estado de la articulacion 1

los extremos (la 1 y la 6) son “virtuales” y que no tienen sentido en un gusano físico. Se utilizanen el modelo virtual para facilitar los cálculos. Esta proyección la definimos por la función Π(E).De esta manera, dado un vector E = (v1, v2, v3, v4, v5, v6), se obtiene el vector físico E ′ =(v2, v3, v4, v5):

E ′ = Π(E)

Sin embargo es necesario hacer más conversiones. El gusano virtual es perfecto, pero elfísico hay que “calibrarlo”. Por imprecisiones mecánicas, el estado físico (0,0,0,0) puede nocorresponderse exactamente con el estado (0,0,0,0,0,0). Para que la correspondencia sea lo másprecisa posible, hay que aplicar un vector que compense las imprecisiones mecáncias. Este vectorlo denominaremos vector de offset O. Si la calibración mecánica fuese perfecta, el vector deoffset sería O=(0,0,0,0). De esta manera, el vector de estado físico lo obtenemos aplicando unasegunda conversión, sumando el vector de offset:

E ′ = Π(E) + O

Pero queda una tercera conversión. El gusano físico se puede implementar de muchas formas.Los servos pueden estar orientados con el eje de salida apuntando hacia un lado o hacia otro,dependiendo de cómo se construya. En el gusano virtual se supone que todos los servos estánorientados de la misma manera, pero en el real no tiene por qué cumplirse. Si la orientación delservo es la contraria que la de la articulación virtual, hay que cambiar el signo del ángulo al hacerla conversión.

En la figura 7.16 se muestra una articulación virtual en un estado ϕ y dos servos en el mismoestado. El de la izquierda tiene la misma orientación que la articulación virtual, por lo que se

Page 158: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 142

Articulacion virtual

Servo con distinta orientacionServo con misma orientacion

Figura 7.16: Articulaciones virtuales y servos reales

encuentran en la misma posición. Sin embargo el de la derecha está en la otra orientación porlo que al aplicarle el mismo ángulo ϕ el segmento izquierdo baja en vez de subir. Para quese encontrase en la misma posición que la articulación virtual habría que situarlo en el ángulo−ϕ. Por este motivo es necesario realizar una tercera conversión cambiando el signo de algunascomponentes del vector de estado físico. Esta conversión viene determinada por la función S(E ′),que toma un vector físico y devuelve otro aplicando las correcciones de signo pertinentes. De estamanera, la conversión final entre los vectores de estado virtuales y físicos es la siguiente:

E ′ = S(O + Π(E)) (7.1)

donde:

E ′: es el vector físico que determina el estado del gusano físico

E: Es el estado del gusano virtual

O: Es la corrección de offset

S: Es la corrección del sentido

Π: Es la función de proyección para pasar de 6 a 4 componentes.

Cuando se “graba” una secuencia de estados en un fichero, con la opción “grabar” del grupo 9, seestán grabando los estados físicos, con las correcciones aplicadas. Estas correcciones se definenen la parte del interfaz conversiones, como se explicó en la sección 7.5.5.

Page 159: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 143

Gusano fisico

Primer nivel: Estado fisico

Segundo nivel: Estado interno

Tercer nivel: Funcion de contorno

SERVOS

GUSANO VIRTUAL

PROPAGACION DE ONDAS

NIVELES DE CONTROL

Figura 7.17: Los tres niveles de control del gusano

7.7. Estados y niveles de control

Imaginemos que partimos ahora de un gusano físico que queremos controlar. El primernivel de control, el más bajo o más asociado al gusano físico, está constituido por secuencias devectores de estado físicos, que le indican al gusano en qué estado establecer sus articulaciones.En este nivel, hay que especificar las posiciones de cada servo. Para generar una secuencia hayque utilizar algún tipo de software que permita situar los servos en un estado, grabar ese estado,obtener el siguiente estado, grabarlo, etc. Una vez grabados todos los estados, al reproducirlos segenera el movimiento deseado.

A este nivel no se tiene información sobre la coordinación de los diferentes servos. Generaruna secuencia nueva es un proceso que requiere paciencia. Y el autor lo sabe bien puesto que laprimera versión que se hizo de Cube no pasaba de este primer nivel de control. El movimientoconseguido no era malo, pero como no se satisfacía correctamente la propiedad de que se man-tuviese constante la longitud del gusano longitudinal asociado, los servos sufrían mucho y elmovimiento no era uniforme y dependía mucho de la superficie, ya que al no cumplirse dichacondición había puntos que se tenían que arrastrar.

El segundo nivel viene representado por el gusano virtual y la asociación entre su estadoy el estado físico. En este nivel es posible situar, también a mano, las articulaciones del gusanovirtual y generar el vector físico asociado. Pero al disponer de información sobre las coordenadas(x, y) de las articulaciones se pueden tener en cuenta otros factores, como la longitud del gusanolongitudinal asociado. El resultado es una mejor coordinación entre todas las articulaciones yel independizarse del gusano físico: ahora para generar una secuencia no es necesario tener ungusano físico, sino que se trabaja con el virtual y finalmente se prueba con el real.

Hay un tercer nivel, representado por la función de contorno y el gusano virtual “engan-chado”. Ahora para generar una secuencia no nos importa el estado del gusano porque se generaautomáticamente. Sólo hay que preocuparse de qué parametros emplear para definir la funciónde contorno: Amplitud, longitud de onda, velocidad y tiempo. La Amplitud y la longitud de on-

Page 160: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 7. SOFTWARE: MODELO VIRTUAL 144

da determinan la contracción del gusano, y por tanto la velocidad de avance. También se puedecontrolar la áltura máxima y mínima alcanzada por el gusano.

Fijados unos parámetros de amplitud, longitud de onda y velocidad, con sólo variar el factortiempo, se generan automáticamente los estados internos del movimiento y a partir de éstos losestados físicos que hay que aplicar al gusano real. El resultado es que estamos a otro nivel deabstracción. Un nivel en el que no importan los estados internos, pues se generan automática-mente.

7.8. Resumen

Existen dos herramientas software para manejar a Cube: cube-virtual que manje un gusanovirtual y cube-fisico que maneja uno real. Las secuencias generadas por el gusano virtual puedenser cargadas en la aplicación cube-fisico y que el gusano real las reproduzca.

Este capítulo se centra en la aplicación cube-virtual, que permite manipular el modelo virtualy generar secuencias a partir de diferentes funciones de contorno. Se ha mostrado la arquitecturasoftware, con todos los módulos software desarrollados y cómo se han combiando para lograrla aplicación final. También se ha mostrado con detalle cómo funciona el programa, para que eldiseñador lo pueda utilizar para sus propósitos.

El gusano virtual y el físico son diferentes, y aunque las secuencias de uno valen para el otro,es necesario realizar una serie de conversiones. A partir de los vectores de estado virtuales seobtienen los vectores de estado físicos, que se graban en un fichero se pueden ser leídos por laaplicación cube-físico.

Finalmente se ha hecho una reflexión sobre los diferentes niveles de abstracción del gusano ycómo con este programa se puede llegar al nivel superior: controlar el gusano mediante funcionesde contorno y sus parámetros asociados, haciendo abstracción de todos los detalles intermediosy de bajo nivel.

Page 161: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Capítulo 8

Estructura mecánica

8.1. Introducción

En este capítulo se aborda la construcción mecánica de un gusano transversal, sobre el quese pueda aplicar el modelo de gusano virtual presentado en el capítulo 7. La estructura mecánicadebe cumplir los siguientes requisitos:

1. Modularidad. El gusano se debe construir mediante módulos iguales, de manera que seamuy fácil su ampliación.

2. Simplicidad. Que las piezas sean sencillas y fáciles de obtener y que exista el menornúmero posible de piezas diferentes.

3. Economía. Las piezas deben ser lo más baratas posibles y los materiales fáciles de encon-trar en el mercado.

4. Robustez. Buscar que la estructura sea lo más resistente posible y que las piezas se acoplensólidamente.

Un libro muy bueno de robótica en general, más orientado hacia temas prácticos que teóricos es[28].

8.2. Descripción de los prototipos

8.2.1. Primer prototipo: cube-1.0

El primer diseño, Cube 1.0, se realizó en madera de 2mm y 3mm de espesor. Este materiales muy bueno para cortar y taladrar, pero tiene un inconveniente que no se había previsto en unprincipio: se ensucia mucho y no es posible lavarlo, salvo que las piezas se barnicen. Esta primeraversión, además, no era modulable. Se pensó sólo para cuatro articulaciones. Si se querían añadirmás, había que diseñar piezas nuevas.

145

Page 162: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 8. ESTRUCTURA MECÁNICA 146

COLA

CABEZA

Figura 8.1: Primera version del gusano: cube-1.0

Este primer prototipo permitió comprobar la viabilidad mecánica del proyecto, así comoencontrar fallos para ser mejorados en la versión 2.0, que es la que se presenta en este proyecto.

En la figura 8.1 se muestra cube-1.0, al lado de un disquete de 3.5” para apreciar su tamañoreal. Se han señalado con flechas la cola y la cabeza.

8.2.2. Segundo prototipo: cube-2.0

Para construir las diferentes piezas de Cube 2.0, se ha empleado un material plástico, trans-parente, que se corta muy fácilmente con una segueta, los taladros se realizan con facilidad yes lo suficientemente robusto. Estas mismas piezas se pueden realizar en aluminio, pero en esecaso no se cumple el requisito de la simplicidad, puesto que es necesario disponer de una sierraespecial para cortarlas, y taladrarlas no es tan sencillo.

En la foto de la figura 8.3 se muestran las dos estructuras. Aparentemente son muy parecidas,pero la versión en plástico está mucho más elaborada. Cube 2.0 está pensado para ser clonado yampliado fácilmente. Se puede ver en la figura 8.2.

A lo largo de este capítulo se hará referencia a Cube 2.0, salvo que se indique lo contrario.

8.3. Servomecanismo futaba 3003

El gusano está diseñado basado en los servomecanismos Futaba 3003, por lo que siempreque se haga referencia a la palabra servo o servomecanismo hay que tener en mente este modelo.

Page 163: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 8. ESTRUCTURA MECÁNICA 147

CABEZA

COLA

Figura 8.2: Foto de Cube 2.0

CUBE 1.0

CUBE 2.0

Figura 8.3: Foto con las estructuras mecánicas de Cube 1.0 y Cube 2.0

Page 164: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 8. ESTRUCTURA MECÁNICA 148

RUEDA

CUERPO

CABLE DE CONEXION

TALADROS

LENGUETA

Figura 8.4: Foto de un servo modelo futaba 3003

En la figura 8.4 se muestra una foto, tomada junto a un disquete de 3.5 pulgadas, donde se puedeapreciar el reducido tamaño del servo.

Estos servos tienen un cuerpo y un eje de salida con una rueda atornillada a él, de tal maneraque el cuerpo y la rueda rotan uno respecto del otro. Dentro del cuerpo se encuentran los engra-najes, el circuito de control y el motor. La rueda es extraible, quitando el tornillo que lo sujeta aleje. En ella se realizan los taladros necesarios para unirse al resto de las piezas, como se explicamás adelante.

En el cuerpo existen dos lengüetas que sobresalen, con dos taladros cada una. Esto permiteatornillarlo a cualquier estructura.

.

8.4. Modelo mecánico

CUBE está constituido por tres partes: cabeza, cuerpo y cola. La cabeza y la cola son laspartes terminales del gusano, mientras que el cuerpo puede crecer cuanto se quiera, ya que estácompuesto por módulos iguales que se repiten. En la figura 8.5 se muestran todas las partes. Sóloexisten tres tipos de piezas diferentes, denominadas piezas de tipo A, B y C.

8.4.1. Cabeza

La cabeza está formada por dos piezas de tipo C, unidas a la base rectangular por medio decuatro escuadras metálicas y al cuerpo del futaba por dos varillas roscadas de 9.5cm de longitud.

Page 165: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 8. ESTRUCTURA MECÁNICA 149

COLA CUERPO CABEZA

Pieza tipo B Pieza tipo CPiezas tipo A

Figura 8.5: Planta y alzado de Cube

Cola Cuerpo Cabeza

Piezas tipo A Modulo basicoPieza tipo B Pieza tipo C

Servos

Figura 8.6: Foto de la estructura de cube

Page 166: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 8. ESTRUCTURA MECÁNICA 150

Escuadras

Base de la cabeza

PLANTA

VISTA FRONTAL

Piezas tipo C

VISTA LATERAL

Figura 8.7: Diferentes vistas de la cabeza de Cube

En la figura 8.7 se muestran las diferentes vistas y en la 8.8 aparece en perspectiva. En ambasfiguras no se muestras las varillas roscadas, pero sí sus taladros

8.4.2. Cola

La cola es muy similar a la cabeza, pero es más pequeña y está unida al eje de salida delfutaba, en vez de a su cuerpo, como lo está la cabeza. Las piezas de tipo B se unen a la base pormedio de dos escuadras y al eje de la articulación mediante cuatro tornillos. Ver figuras 8.9 y8.10.

8.4.3. Cuerpo

El cuerpo es la parte más importante de Cube. Se caracteriza por estár formado por módulosiguales, denominados módulos básicos, lo que permite que sea extensible. Cada módulo básicoestá constituido por una articulación de doble eje y dos piezas de tipo A, que se emplean paraunirse al siguiente módulo.

8.4.3.1. Módulos básicos

El módulo básico está formado por una articulación de doble eje y dos piezas de tipo Aatornilladas a cada eje de salida de la articulación, como se muestra en las figuras 8.11 y 8.12.

Page 167: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 8. ESTRUCTURA MECÁNICA 151

Figura 8.8: La cabeza vista en perspectiva

Pieza tipo B

Base de la cola

VISTA LATERALVISTA FRONTAL

PLANTA

Figura 8.9: Diferentes vistas de la cola de Cube

Page 168: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 8. ESTRUCTURA MECÁNICA 152

Figura 8.10: La cola de Cube vista en perspectiva

VISTA FRONTAL

PLANTA

VISTA LATERAL

Ejes de salida

Varillas roscadas

Piezas tipo A

Futaba 3003

Figura 8.11: Módulo básico, en diferentes vistas

Page 169: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 8. ESTRUCTURA MECÁNICA 153

Figura 8.12: Módulo básico visto en perspectiva

Estos módulos se pueden unir unos a otros formando el cuerpo entero del gusano. Las piezasde tipo A se unen al cuerpo del siguiente módulo mediante dos varillas roscadas de 7.5cm.

8.4.3.2. Articulaciones de doble eje

Para la realización de Cube, como también de otros ingenios articulados, es muy útil el dis-poner de una articulación con doble eje. Uno de los ejes es el que está conectado al servo y elotro es un falso eje, que no ejerce fuerza pero permite que la articulación sea simétrica y queel peso que soporta la articulación se reparta de igual manera entre ambos ejes, mejorándose laestabilidad mecánica (Ver figura 8.13). Para construir una articulación de estas con un servo detipo futaba 3003, que sólo posee un eje de salida, es necesario añadir una pieza con el falso eje.Esta pieza se puede construir a partir de los elementos que componen el propio futaba 3003.

El servo 3003 está constituido por un motor de corriente continua, un circuito de control,engranajes, una carcasa que lo soporta, una tapa superior donde se encuentra el eje de salida, unarueda que se adapta al eje de salida y una tapa inferior.

Tanto la carcasa, como las tapas superior e inferior y los engranajes se pueden conseguir enel mercado por separado. Para construir la pieza del falso eje es necesaria la tapa superior, lainferior, un engranaje con el eje de salida, la rueda y un tornillo de 4mm de diámetro y 2cmde longitud (Figura 8.14). El tornillo es necesario para que el engranaje se apoye sobre la tapainferior y que el eje de salida no se pueda desplazar verticalmente. Una vez que se tiene estapieza montada, hay que utilizar cinta aislante para unir la tapa inferior y la superior. Por mediode las varillas roscadas se une el servo con la pieza, consiguiéndose una articulación de soble ejemuy sólida y muy sencilla de construir.

Page 170: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 8. ESTRUCTURA MECÁNICA 154

Futaba3003

Eje Real

Falso eje

Varilla roscada

Figura 8.13: Diferentes vistas de una articulación con doble eje

Engranaje coneje de salida

Tapa superior

Rueda

Tornillo

Tapa inferior

PIEZA CON FALSO EJE

Figura 8.14: Construcción de la pieza con falso eje

Page 171: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 8. ESTRUCTURA MECÁNICA 155

8.5. Construcción de Cube

A continuación se listan todos los pasos que hay que seguir para construir la estructura me-cánica de cube 2.0. Para la colocación de la electrónica en la estructura, consultar el capiítulo 9.En el apéndice A hay un listado completo de todas las piezas y materiales necesarios.

1. Construir todas las piezas de plástico y hacer los taladros correspondientes. Para ello to-mar como plantillas los planos de las piezas adjuntos a esta memoria. Las piezas necesariasson:

a) Seis piezas de tipo A, para la unión de los módulos básicos

b) Dos de tipo B, para la cola

c) Dos de tipo C para la cabeza

d) Base de la cabeza

e) Base de la cola

2. Cortar las varillas roscadas para obtener:

a) Ocho de 4.6cm, para construir las articulaciones de doble eje

b) Seis de 7.5cm, para la unión de los módulos básicos

c) Dos de 9.5cm, para unir el cuerpo con la cabeza

En la figura 8.15 se muestran todas las piezas necesarias.

3. Construir las articulaciones de doble eje. Para ello seguir los siguientes pasos:

a) Montar la pieza con falso eje (apartado 8.4.3.2 y figura 8.14). Las piezas necesarias sepueden conseguir en una tienda de aeromodelismo donde vendan los servos Futaba.Las piezas necesarias son:

1) Rueda del servo2) Tapa superior3) Engranaje con eje de salida4) Tapa inferior5) Tornillo de 4mm de diametro y 2cm de longitud

b) Colocar cinta aislante negra rodeando la tapa superior y la inferior para que quedensujetas. Esta unión es provisional, nos sirve para que no se desmonte la pieza mientrasla unimos al servo mediante las varillas roscadas.

c) Unir el servo y la pieza con falso eje. Son necesarias dos varillas de 4.6cm y dos de7.5cm. Para el futaba que se une con la cabeza son necesarias dos varillas de 9.5cm,en vez de las de 7.5cm. Por cada varilla corta hay que emplear cuatro tuercas, dosen la parte interior y dos en la exterior como se muestra en la figura 8.16. Por cadavarilla larga se emplean seis tuercas.

Page 172: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 8. ESTRUCTURA MECÁNICA 156

Base de la cabeza

Base de la cola

Pieza tipo A

Pieza tipo C

Varillas roscadas:

4.5cm

7.5cm

9.5cm

x6

x2

x6

x6

x2Pieza tipo B

x2

x1

x1

Figura 8.15: Todas las piezas necesarias para construir Cube-2.0

Page 173: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 8. ESTRUCTURA MECÁNICA 157

Futaba3003

Tuercas

Varillas de 7.5cmVarillas de 4.5cm

Tuercas

Figura 8.16: Aspecto de la articulación de doble eje una vez montada

4. Realizar los taladros en las ruedas de los servos. Para ello utilizar la plantilla de las piezasde tipo A, a las que irán atornillas las ruedas. Hay que realizar 4 taladros para el anclaje alas piezas de tipo A y uno mayor para insertar el tornillo que une la rueda con el eje delservo. También hay que limar el saliente que hay para que se puedan colocar las piezastipo A en el siguiente paso (ver figura 8.17)

5. Atornillar las piezas de tipo A a las ruedas de los futabas. Para ello es preciso limar elsaliente que hay en la cara exterior de las ruedas. Hay que atornillar las seis piezas de tipoA y las dos de tipo B.

6. Calibrar el gusano. Colocar cuatro ruedas en los falsos ejes, tres ruedas, con sus piezasA enganchadas en los servos 2, 3 y 4, y una rueda con la pieza B al servo 1 (ver figura8.18). Con el programa cube-fisico situar todas las articulaciones en el estado dereposo (cero grados). Este estado se corresponde con el del gusano en posición horizontal.Asegurarse de que el falso eje se sitúa en el mismo estado que el eje normal y que elrecorrido que realizan es el mismo. Atornillar las ruedas a los servos.

7. Unir todos los módulos del cuerpo, mediante las piezas tipo A. Apretar bien las tuercas.El servo 1 debe llevar atornilladas las dos piezas de tipo B. En la figura 8.19 sólo se handibujado las tuercas necesarias para la unión.

8. Montar la base de la cola, usando las escuadras para su unión a las piezas de tipo B.

Page 174: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 8. ESTRUCTURA MECÁNICA 158

Taladro de 4mm

Taladro de 6mm

Saliente que hay que limar

eje del servoEnganche para el

Figura 8.17: Rueda del futaba, con los taladros que hay que realizar

Pieza tipo B

Piezas tipo AVisto desde arriba

Servo 1 Servo 2 Servo 3 Servo 4

Figura 8.18: Paso 6 del montaje

Page 175: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 8. ESTRUCTURA MECÁNICA 159

1 2 3 4

Tuercas de union

Figura 8.19: Paso 7: Unión de los módulos básicos.

9. Montar la cabeza, uniéndola a las piezas de tipo C mediante cuatro escuadras.

10. Atornillar la cabeza al cuerpo.

11. Pegar los rectángulos de alfombrilla de ratón dos a dos, de manera que se obtengan 4bloques más gordos.

12. Unir los bloques de las alfombrillas a los módulos básicos mediante velcro, de maneraque se puedan poner y quitar. Estos bloques sirven de base al gusano, para que se apoyecorrectamente sobre la superficie. En la figura 8.20 se muestra la estructura terminada, sinla electrónica.

8.6. Resumen

Se han desarrollado dos prototipos. El primero, Cube-1.0, estaba realizado en madera y noera ampliable, sin embargo fue muy útil para determinar la viabilidad del proyecto. El segundoprototipo, Cube-2.0, que es el que se presenta en este proyecto, está realizado en piezas deplástico transparente de 2mm de grosor, que se corta y taladra muy facilmente. Está diseñadopara ser ampliable a cualquier número de servos puesto que está compuesto por la unión de unosmódulos básicos que son iguales.

La estructura del gusano está formada por tres partes diferentes: cabeza, cuerpo y cola. Lacabeza está pensada para llevar la electrónica y por ello es más grande que la cola. El cuerpo estáconstituido por módulos iguales que se interconectan mediante piezas de tipo A. Los módulosestán construidos a partir de servos con doble eje, que se construyen uniendo un servo del tipoFutaba 3003 con una pieza con falso eje. Esta pieza se puede construir a partir de las propiaspiezas que componen el servo y se pueden conseguir en cualquier tienda especializada.

Con todas estas piezas se ha mostrado cómo hay que construir el gusano. Especial cuidadohay que tener en la calibración, de manera que cuando el software le indique al gusano que sesitúe en la posición de reposo, el gusano se encuentre en posición horizontal.

Page 176: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 8. ESTRUCTURA MECÁNICA 160

Cabeza Cola

Piezas tipo B Piezas tipo A Piezas tipo C

Figura 8.20: Estructura final de Cube-2.0, sin la electrónica

Page 177: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Capítulo 9

Electrónica

9.1. Introducción

La parte mecánica ya está resuelta en el capítulo 8. Ahora es necesario añadir una electrónicaque pueda mover los servos y que se pueda comunicar con el PC para recibir órdenes. En estecapítulo se presenta una electrónica que cubre esos dos aspectos.

El gusano tienen una serie de particularidades que hacen que la electrónica tenga que cumpliruna serie de requisitos. Con ellos se plantearán las alternativas de diseño, justificándose la solu-ción adoptada. Esta solución está basada en redes de microcontroladores. La electrónica, además,se tiene que adaptar correctamente a la estructura mecánica del gusano.

En [19] se encuentran los esquemas de las tarjetas empleadas en Cube, así como los manu-ales de usuario. En [16] se emplean estas mismas tarjetas para controlar un perro robot. Para laprogramación del 68hc11 se puede consultar [21] y finalmente se puede encontrar informaciónmuy útil en [28].

9.2. Requisitos

Hay una serie de requisitos que debe cumplir la electrónica integrada en Cube:

1. Debe poder controlar gusanos de cualquier longitud. Cuantas menos limitaciones mejor.

2. Debe permitir que el gusano sea autónomo, aunque en este proyecto se utilice el PC paraimplementar todos los cálculos.

3. Debe poder conectarse al PC, para utilizar software de calibrado, carga de programas,prueba de secuencias, etc, aunque también pueda ser autónomo.

4. Debe ser fácil de conseguir en el mercado.

5. Debe ser muy flexible y modular, de modo que permita incorporar mejoras futuras.

161

Page 178: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 9. ELECTRÓNICA 162

Gusano

Electronica

Puertoparalelo

paraleloCable

����������

�������������������������������������������������������������������������������������������� ��������������������������������

Figura 9.1: Alternativa 1: PC + electrónica por el puerto paralelo

9.3. Alternativas de diseño

Son muchas las alternativas que se pueden tomar a la hora de implementar un robot. Laempleada por el autor está basada en la experiencia adquirida durante estos últimos 5 años y entoda la electrónica y software que ya han sido diseñados y probados con éxito en otros robots1.No obstante es bueno presentar otras alternativas.

1. Para controlar un robot, más o menos complejo, se puede pensar en utilizar el PC conec-tado por el puerto paralelo. En este caso la electrónica del robot sólo está constituidapor la etapa de potencia de los servos y la necesaria para adaptar niveles. Esta solución essencilla, pero no cumple con todos los requisistos del apartado 9.2:

a) Los pines de salida del puerto paralelo son pocos. Por cada pin se puede controlarun servo mediante PWM, por lo que en total podríamos controlar unos 15 servos. Elgusano en este caso tiene una limitación electrónica en la longitud que puede llegar atener.

b) El sistema nunca podrá ser autónomo. Siempre será necesario disponer de un PC.

c) Hay que emplear un cable de puerto paralelo estándar, que tiene muchos hilos (25),que es pesado, caro y no puede ser muy largo (unos 4m como máximo)

2. Otra solución es utilizar un microcontrolador que se comunique con el PC por mediodel puerto serie. Ésta opción ofrece más ventajas que la del puerto paralelo:

1Toda esta tecnología ha sido desarrollada por los miembros de Microbótica, S.L, en su etapa de estudiantes, delos que el autor forma parte.

Page 179: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 9. ELECTRÓNICA 163

Gusano

Sistema microcontrolador

Cable serie

�����

�����

���������������������������������������������� ��������������������������������

Figura 9.2: Alternativa 2: PC + microcontrolador por puerto serie

a) Sólo son necesarios tres hilos para realizar la comunicación (Tx, Rx y GND).

b) El PC envía la información de control al microcontrolador y es éste el que genera lasseñales de PWM. Los microcontroladores disponen de recursos para poder generarestas señales de forma fácil y precisa. El PC se hace así independiente de los servos.Si estos cambian por otros, sólo hay que modificar el programa del microcontrolador,pero el PC sigue “viendo” el mismo sistema. No es necesario modificar el software.

c) Es posible hacer que el propio micro gobierne el gusano, de forma que sea autónomo.

d) La longitud del cable de conexión entre el PC y el microcontrolador puede ser mayor(la norma RS232 especifica un máximo de 12m)

Sin embargo, el sistema todavía está limitado a los servos que se puedan controlar con elmicrocontrolador y por tanto no escala bien. Esta es la solución que se empleó en Cube1.0, que si bien funciona muy bien, no permite insertar muchas más articulaciones. Parapoder ampliarlo había que rehacer toda la electrónica.

3. La alternativa empleada en Cube 2.0 se basa en una red de microcontroladores, que hasido desarrollada en el PFC de D. Andrés Prieto-Moreno Torres[16] e implementada conéxito en la construcción de Puchobot, un perro robot. La ventaja de esta alternativa es laescalabilidad. Si se añaden más articulaciones al gusano sólo hay que añadir más nodos ala red de control. El número todal de servos que se pueden tener vendrá determinado porla velocidad de la red y el tráfico que en ella se genere. Utilizando direcciones de nodos de

Page 180: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 9. ELECTRÓNICA 164

Nodoesclavo 1

Nodoesclavo 1

Nodoesclavo 1

Gusano

Cable serie

Red de microcontroladoresMaestroNodo

����������

�������������������������������������������������������������������������������������������� ��������������������������������

Figura 9.3: Alternativa 3: Red de microntroladores, conectada al PC por puerto serie

la red de 8 bits, se pueden conectar hasta 256 nodos y cada nodo es capaz de controlar 4servos, por lo que en teoría se podrían conectar hasta ¡¡256*4=1024 servos!!.

9.4. Arquitectura hardware

La red de microcontroladores es del tipo maestro-esclavo. Existe un nodo más importante(nodo maestro) que es el que envía las distintas órdenes a los demás nodos (nodos esclavos). Laconexión entre los nodos es serie síncrona.

El nodo maestro, además, es el que se conecta al PC vía interfaz serie asíncrono, según lanorma RS-232. Si se quiere trabajar en modo autónomo, el programa se ejecuta en el maestro,actuando sobre los diferentes servos. Si lo que se quiere es un modo no autónomo, el maestrosimplemente hace de puente entre el PC y el resto de nodos, pasando la información de un lugara otro.

Para el nodo maestro se utiliza la tarjeta CT6811, basada en el microcontrolador 68hc11de Motorola. Los nodos esclavos se implementan con la tarjeta BT6811, que permite contro-lar hasta 4 servos del tipo Futaba 3003. Se puede encontrar abundante información sobre estas

Page 181: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 9. ELECTRÓNICA 165

Nodo esclavo

Nodo esclavo

Nodo esclavo

Nodo esclavo

Bus serie sincrono

RS-232Nodomaestro

� �� �� �� �

����

����������������������������������������������������������������

��������������������

Figura 9.4: Arquitectura hardware

tarjetas en [16] y [19], así como en el CD que acompaña al proyecto.Puesto que en la implementación del gusano se han utilizado cuatro articulaciones, sólo hace

falta una BT6811 para los servos y una CT6811 para el nodo maestro.

9.5. Tarjetas CT6811 y BT6811

9.5.1. Características

Ambas tarjetas utilizan el microcontrolador 68hc11E2 de motorola, que tiene las siguientescaracterísticas:

CPU de 8bits. Capaz de direccionar hasta 64Kbytes

Reloj: 8Mhz

Velocidad de bus: 2Mhz

Memoria RAM: 256bytes

Memoria EEPROM: 2Kbytes

Temporizador de 16bits

5 Comparadores con salida hardware (Con los que es muy sencillo generar una señalPWM para el control de los servos)

3 capturadores de entrada

Un puerto serie asíncrono (SCI)

Page 182: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 9. ELECTRÓNICA 166

BT6811CT6811

Figura 9.5: Las tarjetas CT6811 y BT6811

Un puerto serie síncrono (SPI)

8 canales A/D

5 puertos de entrada/salida: A, B, C, D y E.

La tarjeta CT6811 viene ya preparada para ser conectada directamente a un PC, incorporando loscircuitos de adaptación entre niveles TTL/RS232. Puede funcionar como una tarjeta entrenadora,en la que se puede cargar un programa en la memoria RAM o bien como un sistema autónomo,ejecutando el programa que tiene grabado en la memoria EEPROM.

La tarjeta BT6811 está pensada fundamentalmente para funcionar como un sistema autóno-mo. Tiene dos entradas para la alimentación, una para los servos y otra TTL para la electrónica.

Ambas tarjetas se alimentan con una tensión continua entre 4.5 y 6 voltios. En la figura 9.5se muestra una foto. El tamaño de la BT6811 es aproximadamente la mitad que el de la CT6811.

9.5.2. Descripción

En la figura 9.6 se muestran todos los elementos del interfaz de la tarjeta CT6811. Disponede 6 conectores acodados, de 10 pines, desde los que se puede acceder a los puertos de E/S del68hc11. Especial interés tiene el puerto D que es donde se encuentran los pines del SPI, quepermiten conectar la tarjeta a la red de microcontroladores. La alimentación se puede realizarbien por clemas o bien por un conector de tipo jack. Para la conexión al PC se utiliza un conectorhembra teléfonico, de cuatro vías. El cable es similar al de los teléfonos. Tiene la ventaja de quees muy ligero y muy fácil de construir. Para la conexión al puerto serie del PC se emplea unadaptador DB9 a teléfono.

Existen unos microinterruptores para configurar el modo de arranque del microcontrolador.Para el gusano se empleará el modo bootstrap, situando todos los switches hacia abajo. La con-figuración de los jumpers es la siguientes:

Page 183: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 9. ELECTRÓNICA 167

Conexion al PC

Boton dereset

switchesde configuracionPuerto de

control

Led para pruebas

Jumpers deconfiguracion

Alimentacion

Puerto APuerto DPuerto B

Puerto C

Puerto E

Figura 9.6: Elementos de la tarjeta CT6811

Page 184: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 9. ELECTRÓNICA 168

Clemas de alimentacionde los servos

Led de pruebas

Jumpers deconfiguracion

Puerto A

Puerto D

Puerto x

AlimentacionTTL

boton deReset

Conexion de los servos

Servo 2Servo 1Servo 4

Servo 3

Figura 9.7: Elementos de la tarjeta BT6811

Los Jumpers JP3, JP8, JP2, JP1, JP7 deben estar puestos

Los jumpers JP5 y JP6 quitados

El jumper JP7 en posición ON

El jumper JP4 en posición RST

El botón de reset permite reinicializar la placa. Esta operación también la puede realizar el soft-ware que corre en el PC, activando la señal DTR de la norma RS232. La CT6811 dispone tambiende un led conectado al bit 6 del puerto A para realizar pruebas y depurar el software.

En la figura 9.7 están los elementos de interés de la tarjeta BT6811. Dispone también de unbotón de reset para reinicialización del software, pero a diferencia de la CT6811, este reset debeser manual y no se puede hacer por software. Hay dos clemas para la alimentación: una para la dela circuitería y otra para la de los servos. Es posible alimentar tanto los servos como la electrónicaa partir de las mismas clemas, sin embargo es recomendable separar ambas alimentaciones paraevitar ruido en la del micro.

En el puerto D se encuentran los pines del SPI y es donde se conecta la CT6811 maestra y elresto de BT6811 esclavas.

Page 185: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 9. ELECTRÓNICA 169

Servo 4

Servo 3

Servo 2

Servo 1

Pilas 6v

Cab

le d

e tlf

.

Puerto D

Puerto D

Alimentacion TTL

Tarjeta CT6811 Tarjeta BT6811

Cable planode bus

Par de cables

Par de cables

Alimentacionservos. 5v

� �� �� �� �� �� �

�������������������������� ��������

Figura 9.8: Interconexión de las tarjetas CT6811 y BT6811 en Cube

La configuración de los jumpers para trabajar con el gusano debe ser:

Jumper JP6 activado (colocado)

El resto deben estar desactivados

9.5.3. Interconexión de las tarjetas

En la figura 9.8 se han representado las conexiones entre ambas tarjetas, así como las conexio-nes con el resto de partes de Cube. Los servos se conectan a los conectores F1-F4 de la BT6811.La alimentación TTL se toma de la propia CT6811, mediante un par de cables, que unen ambasclemas. La CT6811 la toma de las pilas, a través de un cable que termina en un conector de tipojack macho. La alimentación de los servos se obtiene de una fuente de alimentación externa.

Mediante un cable plano de bus, de 10 hilos, se conectan los puertos D de ambas tarjetas,quedando conectadas a la misma red. A través de un cable de teléfono se conecta la CT6811 al

Page 186: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 9. ELECTRÓNICA 170

Cliente

PC

Programamaestro

CT6811

Programaesclavo

BT6811

Servo 1

Servo 2

Servo 3

Servo 4

RS232

SPI

Nodo a

Figura 9.9: Arquitectura software de la spinet

PC.

9.6. Red de microcontroladores: spinet

9.6.1. Arquitectura software

Puesto que los microcontroladores de la red se encuentran conectados por el SPI (SerialPeripheral Interface), que es un bus serie síncrono, la red se ha denominado spinet.

En la figura 9.9 se muestra la arquitectura software empleada con la spinet de Cube. Esta redestá constituida por un nodo maestro y uno esclavo. En cada nodo se está ejecutando un softwarediferente:

1. Nodo esclavo: Programa futA.asm. Se encarga de la recepción de paquetes por la red y deejecutar los comandos que recibe. Mediante interrupciones se generan las señales PWM delos servos activos que está controlando. Este programa se encuentra grabado en la memoriaEEPROM del 68hc11.

2. Nodo maestro: Programa maestro.asm. Es un programa que hace de puente entre los nodosde la red y el cliente en el PC, pasando la información recibida por la norma RS232 yenviándosela a los nodos de la red, a través de bus SPI. Este programa lo carga el clientedel PC en la RAM del 68hc11.

Page 187: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 9. ELECTRÓNICA 171

Los listados de ambos programas se incluyen en el apéndice C.En el PC se ejecuta un programa cliente que carga el programa maestro en la ram del nodo

maestro y a través del cual accede a todos los servicios que le ofrece la spinet.

9.6.2. Servicios ofrecidos por la spinet

Los servicios que ofrece la spinet son:

1. Test. Cambiar el estado del led del nodo indicado. Es muy útil para comprobar si la redestá funcionando y para depurar el software.

2. Activar. Activar o desactivar los servos indicados de cualquier nodo.

3. Control. Enviar un valor a los puertos C de los nodos esclavos. Esto permite que cada nodoesclavo se puede conectar a un periférico al que puede mandar información de control.

4. Posicionamiento. Posicionar cualquier servo de un nodo.

Estos servicios se implementan mediante tramas que se envían desde el PC al nodo maestro yéste a su vez las reenvía al resto de los nodos.

Para acceder a estos servicios hay que especificar el nodo esclavo y el servo dentro del nodosobre el que se quiere actuar, para el caso del servicio 4. Cada nodo esclavo tiene una direcciónen la spinet. En el caso de Cube sólo existe un nodo que tiene la dirección 61h2. Los servosestán numerados desde el 1 hasta el 4.

9.7. Adaptación a la estructura mecánica

La electrónica que se tiene es:

Tarjeta CT6811

Tarjeta BT6811

Cables de interconexión

y hay que acoplarla a Cube. En la figura 9.10 aparece la estructura mecánica junto con la elec-trónica y las pilas, sin colocar en el gusano. Un problema importante es que el gusano estáconstituido por partes móviles por lo que hay muy poco espacio. La CT6811 se ha situado enla cabeza del gusano, encima de su base. La sujección se puede realizar con gomas elásticas omejor haciendo una base de plástico de las mismas dimensiones que la CT6811, atornillarla aella y la base unirla a la cabeza mediante velcro. Este enganche es muy robusto y permite quitary poner la tarjeta cuantas veces se quiera.

2El valor hexadecimal 61h se corresponde con el carácter ascii ’a’. Con esto se indica que es el nodo ’a’.

Page 188: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 9. ELECTRÓNICA 172

Estructura mecanica

Tarjeta BT6811Tarjeta CT6811 Pilas

Cable de interconexion

entre las tarjetas

CT6811 y BT6811

Figura 9.10: La estructura mecánica y la electrónica de cube.

Page 189: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 9. ELECTRÓNICA 173

Tar

jeta

CT

6811

Bases de losservos

BT6811

Tarjeta Pilas

Figura 9.11: Situación de la electrónica y las pilas en Cube

Para la BT6811 se hace algo parecido. Se construye la base de plástico y se atornilla a ella.Esta base se adhiere al futaba 4 mediante velcro. El futaba 4 es el que se encuentra más cerca dela cabeza, de esta manera los cables de interconexión entre las tarjetas pueden ser muy cortos.

Para la alimentación de la electrónica se emplean cuatro pilas de tipo AA, de 1.5v, consiguién-dose en total 6v. El portapilas empleado tiene las medidas justas para situarse sobre cualquierade los cuatro servos. Se ha empleado el número 1, el más cercano a la cola, para contrarrestar elpeso de la CT6811 y la BT6811 que están más cerca de la cabeza. Del portapilas salen los cablesde alimentación que terminan en un conector jack macho. Este conector es el que se conecta a latarjeta CT6811.

La alimentación de los servos se obtiene de una fuente de alimentación externa, o una batería.Tiene que ser externa porque no hay sitio para colocarla dentro de la estructura del gusano.

Los cables de los futabas se conectan a la BT6811 y para evitar enredos se llevan por la parteinferior de cube, introduciéndose entre las bases de los servos. En la figura 9.11 se muestra unesquema de la situación de toda la electrónica y las pilas. Y en la figura 9.12 se presenta el gusanofinal en el que se identifican los elementos y se dibujan las conexiones principales.

9.8. Alimentación

La alimentación completa del gusano es la siguiente:

Electrónica

◦ Voltaje: 6v (Pilas)

◦ Consumo: 40mA

Page 190: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 9. ELECTRÓNICA 174

TTL (6v)

Alimentacionelectronica

Alimentacionservos

CT6811BT6811Pilas

Cab

le s

erie

Fuente de alimentacion

5V

����

����

������������������������������������������������������������������������

������������������������

Figura 9.12: Gusano final, con las principales interconexiones

Page 191: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 9. ELECTRÓNICA 175

Servos:

◦ Voltaje: 5v (Fuente de alimentacion externa)

◦ Concumo: unos 200mA por servo. En total 800mA.

9.9. Resumen

Para cumplir con los requisitos de que el gusano sea ampliable, autónomo, conectable al PC,electrónica fácil de conseguir y económica se ha elegido la alternativa de emplear una red demicrocontroladores, muy probada en otros robots. La electrónica está constituida por un nodomaestro, la tarjeta CT6811 y un nodo esclavo, tarjeta BT6811, que puede controlar los cuatroservos de las cuatro articulaciones. Al tratarse de una red es muy fácilmente ampliable, se puedenimplementar gusanos de mayor número de articulaciones.

Esta red, denominada, spinet, ofrece una serie de servicios a un cliente que se ejecute en elPC de manera que este software hace abstracción de los detalles del moviento de los servos y selimita a establecer la posición en la que deben situarse.

Esta electrónica se tiene que adaptar a la estructura del gusano. Para ello se han se empleanunas bases de plástico que se enganchan al gusano utilizando velcro. De esta forma es muyfácil quitar y poner las placas. La alimentación es doble: son necesarias pilas para la electrónica,que van en el propio gusano, enganchadas también con velcro, y una fuente de alimentaciónexterna para los servos, puesto que las baterías no caben físicamente en el gusano.

Page 192: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Capítulo 10

Software: gusano físico

10.1. Introducción

El software que se describe en este capítulo es el que se utiliza en el PC para acceder algusano físico y mover sus diferentes servos. Nos permite realizar calibraciones mecánicas y lomás importante, reproducir secuencias creadas, bien por el software del gusano virtual o biensecuencias manuales.

Información sobre la programación en C se puede encontrar en [30] y para el desarrollo deinterfaces gráficos con GTK+ es muy útil [29].

10.2. Descripción

El programa creado se denomina cube-físico, en oposición al software cube-virtual,que controla un gusano virtualo, presentado en el capítulo 7. Está diseñado para controlar ungusano real, al que denominaremos gusano físico. En la figura 10.1 se muestra el aspecto delprograma. Permite realizar las siguientes operaciones:

1. Mover los servos independientemente, mediante barras de desplazamiento.

2. Establecer el estado de los servos especificando su vector de estado físico.

3. Generar secuencias de movimiento manuales, que se puedan reproducir, grabar y cargar.

4. Lectura de secuencias de movimientos de un fichero, bien generadas por el propio pro-grama o por la aplicación cube-virtual.

5. Editar secuencias ya creadas, insertando o eliminando estados.

En realidad este programa sirve para manejar cuatro servos aislados, independientemente de quese encuentren en un gusano. Es posible generar secuencias para cualquier otro robot, que estéconstituido por 4 servos. Si además se cargan las secuencias generadas por el gusano virtual, seconsigue el movimiento en el gusano físico, y se pueden analizar los diferentes estados interme-dios.

176

Page 193: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 10. SOFTWARE: GUSANO FÍSICO 177

Figura 10.1: Aspecto del programa cube-fisico

Page 194: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 10. SOFTWARE: GUSANO FÍSICO 178

Grados Futaba

Grados-90 90

115

230

0

Figura 10.2: Gráfica de conversión entre grados y grados futaba

10.3. Servos y secuencias

10.3.1. Control de los servos

El control local de cada servo se realiza en los nodos esclavos de la spinet. La informaciónde control la envía el PC a la tarjeta maestra y ésta lo reenvía a los notos esclavos. Los serviciosa los que tenemos acceso son los que se especificaron en el apartado 9.6.2.

A estos servicios se accede mediante las funciones del módulo spinet, descrito más adelante.Las tramas se generan y se envían al nodo maestro, por el puerto serie.

El servicio de posicionamiento ofrecido por la red utiliza grados futaba. El rango total degiro del servo, 180 grados, se divide en 230 partes. Cada parte es un grado futaba.

En los programas cube-físico y cube-virtual se trabaja con grados sexagesimales1 que sonmás intuitivos. El módulo spinet tiene una función para realizar la conversión. En la figura 10.2se muestra la gráfica de conversión. La relación es:

gf =115

90grados + 115 (10.1)

en donde gf son los grados futaba.

10.3.2. Secuencias

10.3.2.1. Parámetros temporales

El estado de los servos queda determinado en un instante de tiempo por el vector de estadofísico, que tiene cuatro componentes, una para cada articulación, expresadas en grados:

E(t) = (ϕ1, ϕ2, ϕ3, ϕ4)

1A partir de ahora, cada vez que se escriba grados se entenderá que se trate de grados sexagesimales, salvo quese indique expresamente lo contrario.

Page 195: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 10. SOFTWARE: GUSANO FÍSICO 179

45 45

Tiempo detransito

Tiempode espera

90 90

Tiempo detransito

Tiempode espera

t0E( ) E(t1)E(t1) E(t2) E(t2)

Servo

Figura 10.3: Ejemplo de tiempo de tránsito y de tiempo de espera en la evolución de un servo

Una secuencia es una serie de vectores de estado, cada uno de los cuales define el estado enun instante ti:

Sec = {E(t1), E(t2), ..., E(ti), E(tj), ...., E(tM)}

Los intervalos de tiempo tj − ti están constituidos por dos componentes:

tt: Tiempo de tránsito. Tiempo que tarda el conjunto de servos en alcanzar el estadodefinido por E(tj).

te: Tiempo de espera. Tiempo que debe permanecer el sistema en el estado E(tj), antesde pasar al estado E(tj+1).

En la figura 10.3 se ha dibujado un ejemplo de una secuencia para un servo en la que se puedenver las componentes tt y te. La secuencia está compuesta por tres estados diferentes:

sec = {E(t0), E(t1), E(t2)}

Los estados son E(t0) = 0, E(t1) = 45, E(t2) = 90. El tiempo de espera se puede hacerdiferente para cada estado, de manera que por ejemplo permanezca 2 segundos en el estadoE(t1) y 3 en el E(t2).

El tiempo de espera es un parámetro determinado por el usuario. Si te = 0, se obtienenmovimientos continuos, es decir, que no hay esperas en cada estado, sino que se va evolucionandocontinuamente de un estado hasta otro.

El tiempo de tránsito es una característica del futaba, que depende de su velocidad y delángulo girado:

tt = τ.4ϕ (10.2)

siendo:

τ : Constante de tiempo del futaba. Es el tiempo que tarda el futaba en recorrer un grado.Se expresa en mseg.

4ϕ: Ángulo que debe recorrer el servo. Se expresa en grados.

Page 196: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 10. SOFTWARE: GUSANO FÍSICO 180

Por las características dadas por el fabricante, se tiene que para un servo futaba, τ = 3,8mseg.La constante de tiempo τ es un parámetro estadístico que depende de la carga del servo,

de la alimentación, etc. Por ello hay que estimarlo, llamando al valor estimado τe. El fabricanteproporciona un valor nominal cuando el servo no está cargado y se alimenta con la tensiónnominal. Suponiendo que te = 0, es decir, que se quiere una trayectoria continua, puede ocurrirlo siguiente:

1. τe >> τ . Se está sobreestimando la constante de tiempo. El tiempo de tránsito estimadoes mayor de lo que debería ser. El servo alcanza la posición final antes de lo que hemosprevisto, por lo que se para en ese estado antes de pasar al siguiente. El resultado es que latrayectoria no es continua sino que se realiza a “saltos”.

2. τe << τ . Se está subestimando la constante de tiempo. El tiempo de tránsito estimadoes menor de lo que debería ser. Antes de alcanzar la posición final se le está indicando alservo que pase a la siguiente. La articulación no se llega a posicionar en los estados que sele indican. El movimiento es continuo pero diferente del que se le ha especificado, ya quehay posiciones que no se alcanzan nunca.

Se llega a la siguiente conclusión:

Hay que buscar un compromiso entre la exactitud y la continuidad del movimien-to.

Cuanto mayor sea la exactitud, la continuidad será peor y cuanto mayor continuidad en el movi-mimento menor será la exactitud.

El parámetro τe es fijable por el usuario, de manera que busque el compromiso entre exactitudy continuidad que más se ajuste a su aplicación. Esto también es muy útil para la depuración desecuencias, ya que fijando un τe grande, se puede ir viendo la trayectoria paso a paso y analizarlos problemas.

10.3.2.2. Estimación del tiempo de tránsito

Para un sistema con más de una articulación, el tiempo de tránsito estimado viene determi-nado por el incremento de ángulo 4ϕ más grande. Puesto que la constante de tiempo se estimaigual para todos los servos, el tiempo de tránsito mayor es debido al incremento de ángulo másgrande.

Se define la distancia entre dos vectoes de estado físico como el mayor de los incrementosangulares, en valor absoluto. Sean E1(ti) y E2(tj) dos vectores físicos de cuatro componentes,definidos de la forma:

E1 = {α1, α2, α3, α4}

E2 = {β1, β2, β3, β4}

la distancia se define como:

d(E1, E2) = Max {|α1 − β1| , |α2 − β2| , |α3 − β3| , |α4 − β4|}

Page 197: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 10. SOFTWARE: GUSANO FÍSICO 181

USUARIO

DISCO

INTERFACE

PUERTOSERIE

CUBE-FISICO

VECTORES

SECUENCIAS

SPINET

Gusano

Figura 10.4: cf_arquitectura

De esta forma, el tiempo de tránsito estimado entre los estados E1 y E2 es:

tte = τe.d(E1, E2) (10.3)

que está estimando el tiempo que tarda el gusano en alcanzar el estado E2 a partir del estadoE1. El valor por omisión empleado en el programa cube-fisico para el parámetro τe es de3.8ms, pero puede ser modificado por el usuario.

10.4. Arquitectura software

La aplicación cube-físico está formado por los siguientes módulos:

interface: Dibujo del interfaz

spinet: Acceso a la red de microcontroladores

secuencias: Gestión de secuencias

vectores: Operaciones con vectores de estado. Es el mismo módulo que el empleadoen cube-virtual, pero con funcionalidad añadida.

Page 198: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 10. SOFTWARE: GUSANO FÍSICO 182

cube-fisico: Programa principal

En la figura 10.4 se muestra la relación entre todos los módulos. Los módulos software se re-presentan con un rectángulo. De ellos parten unas flechas que indican los módulos que estánhaciendo uso de sus funciones de interfaz.

10.4.1. Módulo spinet

Este módulo implementa todos los servicios ofrecidos por la red de microcontroladores (spi-net). En todas las llamadas a su interfaz hay que especificar la dirección del nodo de la red. Detodos los servicios ofrecidos, en el programa cube-fisico sólo se utilizan los que permitenposicionar los servos, especificando la posición en grados. El módulo vectores es el único querealiza llamadas a este módulo:

void spinet_cambiar_led(byte dir);

Servicio de cambio del estado del led.

void spinet_activar(byte dir, byte mask);

Activar los servos indicados en la máscara.

void spinet_puertoc(byte dir, byte valor);

Enviar un valor al puerto C. Esta función se utiliza para acceder a través de la red a recursosque no sean leds.

void spinet_posicionar(byte dir, byte motor, byte pos);

Posicionar el servo en la posición indicada. Las posiciones vienen indicadas en gradosfutaba.

void spinet_pos_sistema(byte dir, byte fut1, byte fut2, bytefut3, byte fut4);

Posicionar los 4 servos en las posiciones indicadas. Esta función se utiliza para no tenerque llamar 4 veces seguidas a la función spinet_posicionar(). Las posiciones se especificanen grados futaba.

void spinet_set_pos_grados(byte dir,byte fut, double pos);

Establecer la posición de un servo, en grados.

void spinet_set_pos_sistema_grados(byte dir,double fut1, doublefut2, double fut3, double f4);

Establecer la posicion de los cuatro servos, en grados.

double spinet_to_grados_fut(double grados);

Convertir de grados a grados futaba.

Page 199: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 10. SOFTWARE: GUSANO FÍSICO 183

10.4.2. Módulo vectores

Este es el mísmo módulo que el realizado para la aplicación cube-virtual. Sin embargo,el interfaz está ampliado, puesto que incluye funciones para posicionar los servos a partir de unvector de estado físico. Se trabaja con el tipo abstracto de datos vector_pos_t, que representavectores de estados físicos y el tiempo de espera.

typedef struct vector_pos_s {double pos[NUM_ART];unsigned int te;

} vector_pos_t;

La descripción de este tipo de datos así como del interfaz se encuentra en la sección 7.4.4. Lanueva función de interfaz incorporada es:

void vector_posicionar(vector_pos_t *v);

Enviar el vector de posición especificado a la red de microcontroladores para que se posi-cionen los servos.

10.4.3. Módulo secuencias

Este módulo nos permite trabajar con secuencias. Una secuencia es una lista de vectores deestado, con un tiempo de espera asociado. Este módulo nos permite anadir vectores, eliminarlos,grabar secuencias a disco, etc. Las secuencias se almacenan en una lista doblemente encadenada,gestionada por el propio módulo y que es transparente al módulo que lo usa.

void sec_init();

Inicialización del módulo. Se crea la lista y se inicializan las variables internas. Es obliga-torio que se llame a esta función antes de utilizar cualquier otra. En cualquier momento sepuede volver a llamar a esta función para volver al estado inicial.

int sec_num_vectores();

Devolver el número de vectores de estado que hay en la secuencia.

vector_pos_t *sec_get_vector(int numvect);

Devolver un puntero al vector solicitado. El vector se identifica mediante un número enterocomprendido entre 0 y el mayor número, devuelto por sec_get_vector().

void sec_anadir_vector(vector_pos_t *v);

Añadir un vector al final de la lista.

void sec_situar_vector(int numvect, vector_pos_t *v);

Situar un vector en la posición indicada. El vector que ocupaba esa posición se elimina.

Page 200: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 10. SOFTWARE: GUSANO FÍSICO 184

void sec_insertar_vector(int numvect, vector_pos_t *v);

Insertar un vector en la posición indicada. La secuencia aumenta en un vector.

void sec_delete_vector(int numvect);

Borrar un vector. La secuencia se reduce en un vector.

void sec_grabar_vectores(FILE *f);

Grabar la secuencia de vectores de un fichero.

int sec_load_vectores(FILE *f);

Leer la secuencia de vectores de un fichero.

10.4.4. Módulo interface

Este módulo se encarga de crear y visualizar todo el interfaz. Solo tiene una función en elinterfaz. La función devuelve una estructura con información sobre el interfaz: puntero a losbotones, a los cuadros de diálogo, etc.

void create_window1 (main_state_t *estado);

10.4.5. Programa principal cube-fisico

Este es el programa principal que implementa toda la funcionalidad y que se encarga dellamar al resto de módulos. Todo el control del interfaz, las funciones de evento asociadas a losbotones (callbacks), se encuentran implementados en este módulo.

10.5. Manejo del programa

10.5.1. Descripción del interfaz de usuario

En el interfaz hay 5 partes, mostradas en la figura 10.5:

1. Menú. En esta parte se encuentra el menu File y una pantalla para mostrar información alusuario.

2. Movimiento de los servos: Posicionamiento independiente de los servos

3. Vector de estado físico: Establecer un vector de estado que deben cumplir los servos

4. Control de sucuencias: Interfaz para trabajar con secuencias de estados

5. General: Funciones generales

Page 201: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 10. SOFTWARE: GUSANO FÍSICO 185

Movimientode losservos

Vector deestadofisico

Controlde

secuencias

Menu

General

Figura 10.5: Diferentes partes del interfaz

Page 202: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 10. SOFTWARE: GUSANO FÍSICO 186

LCD Descripcion y version

Menu desplegable

Figura 10.6: Parte superior del interfaz

10.5.2. Menú

Los diferentes elementos de esta parte del interfaz se presentan en la figura 10.6. Son:

Menú desplegable (Menú File). Dispone de las siguientes opciones:

◦ New: Crear una secuencia nueva. Se establece el nombre noname.f4 por defecto.

◦ Open: Abrir una secuencia nueva y cargarla en memoria.

◦ Save: Grabar la secuencia actual, con el nombre asignado.

◦ Save as: Grabar la secuencia con un nombre nuevo.

◦ Quit: Salir del programa.

La extensión por defecto para los ficheros de secuencias es .f4, haciéndose referencia a quelos vectores de estado que se están manejando tienen 4 componentes y están pensados paralos servos Futaba.

Descripción y versión del programa.

Pantalla donde se presentan mensajes al usuario. Inicialmente contiene el número de ver-sión. Aqui se presentan mensajes de error que puedan ocurrir durante la ejecución.

10.5.3. Movimiento de los servos

Todos los elementos se muestran en la figura 10.7. Esta parte del interfaz permite controlar losservos por separado y visualizar su estado, tanto en grados como en grados futaba. Los diferenteselementos son:

Barras de desplazamiento. Permiten situar cada servo en cualquiera de sus posiciones.Se puede desplazar el cursor con el ratón o se puede pinchar sobre las flechas para mayorprecisión.

Page 203: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 10. SOFTWARE: GUSANO FÍSICO 187

Barras de desplazamiento parael posicionamiento de los servos

Posicionen grados

Posicion engrados Futaba

Botones de inicializacion

Figura 10.7: Posicionamiento de los servos

Vector de estado fisico

Tiempos

Botones

Figura 10.8: Parte del interfaz relacionada con los vectores de estado físicos

Visualización en grados. Se muestra el estado de cada servo en grados

Visualización en grados futaba. Idem pero en grados futaba

Botones de inicialización. Llevan cada servo a su estado 0.

Esta parte del interfaz es la más “vistosa” porque resulta curioso el ver moverse los servos alactuar sobre las barras de desplazamiento. También es una forma de llevar el gusano a un estadoextraño, adoptando formas diferentes y viendo qué estados son inestables.

10.5.4. Vector de estado físico

Esta parte permite la entrada de vectores de estado y controla los tiempos y parámetros aso-ciados a la reproducción de secuencias. Las partes son (figura 10.8):

Page 204: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 10. SOFTWARE: GUSANO FÍSICO 188

Secuencias

Grupo de botonesNombre del fichero

Figura 10.9: El interfaz para el control de las secuencias

Vector de estado: Aquí se introduce el estado para cada servo, especificándolo en grados.Se queda introducido, pero no se hace nada con él. Para enviárselo al gusano hay que pulsarel botón de OK.

Botones:

◦ Boton de OK: Se utiliza para enviar el vector de estado actual al gusano físico.

◦ Botón Leer: Se lee el vector de estado de las barras de desplazamiento y se visualiza.

Tiempos.

◦ Establecer el tiempo de espera, en milisegundos, para el vector de estado actual

◦ Establecer la constante de tiempo τ , en centésimas de segundo2.

10.5.5. Control de secuencias

Esta es la parte que nos permite generar, editar y reproducir secuencias. Está constituido portres partes:

Nombre del fichero actual, con el que estamos trabajando. En caso de no haber definidoninguno, se toma por defecto noname.f4, en el directorio desde donde se haya ejecutado laaplicación.

Navegación por los vectores:

2Se utiliza centésimas de segundo para que el número sea entero. El valor por omisión es de 3.8ms = 38 centési-mas.

Page 205: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 10. SOFTWARE: GUSANO FÍSICO 189

Botones

Barra de progreso

Figura 10.10: Botones generales

◦ La barra de desplazamiento nos permite navegar por los vectores que componen lasecuencia: ir hacia adelante, hacia atras, etc. Cada vez que se cambia la posición deesta barra, se actualizan las barras de desplazamiento que indican la posición de losservos de acuerdo con el nuevo vector y se envían al gusano físico.

◦ Número de vector actual: Indica el vector de estado en el que nos encontramos.

◦ Botón de inicio: Permite ir directamente al vector de estado 0.

Grupo de botones:

◦ Insert: Insertar en la secuencia el vector determinado por las barras de desplazamien-to. Se inserta en la posición actual, desplazando los vectores a posiciones superiores.

◦ Borrar: Eliminar el vector actual.

◦ Grab: Añadir un vector en la posición actual y avanzar. Cuando se está creando unasecuencia manual es el botón que más se emplea.

◦ Play: Reproducir la secuencia actual. Se comienza por el vector 0 y cuando se llegaal último se vuelve a comenzar.

◦ Play #: Reproducir sólo una vez. Se comienza por el vector 0 y se reproduce hastallegar al último.

10.5.6. General

Esta parte del interfaz está formada por (figura 10.10)

Barra de progreso: Indica el estado de carga del programa servidor para el micro maestrode la red.

Botones:

◦ Quit: Salir del programa

◦ Reset 6811: Hacer un reset de la placa maestra.

Page 206: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 10. SOFTWARE: GUSANO FÍSICO 190

◦ Load: Cargar el programa maestro en la placa maestra

◦ Reset Pos: Ir al estado (0,0,0,0).

10.5.7. Manejando las articulaciones

Para probar el gusano lo primero es mover individualmente los servos. Para ellos hacemos losiguiente:

1. Alimentar la electrónica con las pilas y los servos mediante una fuente externa.

2. Conectar el gusano al PC.

3. Apretar el botón de reset de la tarjeta BT6811. Se debe encender el led verde.

4. Apretamos el botón de LOAD, para cargar el programa maestro en la RAM de la CT6811y tener acceso a la spinet.

5. Mediante las barras de desplazamiento se podrán mover los servos.

10.5.8. Reproducción de secuencias

Para reproducir una secuencia previamente generada, bien por el programa cube-fisico o porcube-virtual, hay que hacer lo siguiente:

1. Seguir los pasos 1-4 del apartado 10.5.7.

2. Seleccionar la opción OPEN del menú File.

3. Seleccionar la secuencia que se quiere reproducir.

4. Apretar el botón de play para una reproducción continua o el de play # para sólo una vez.

10.5.9. Generación de secuencias

1. Seguir los pasos 1-4 del apartado 10.5.7.

2. Seleccionar el estado en el primer instante, bien mediante las barras de desplazamiento oescribiendo el vector de estado físico.

3. Introduccir el valor del tiempo de espera. Por defecto es cero.

4. Pulsar el botón grab para grabar el estado en la secuencia.

5. Volver al paso 2.

Mediante la barra de desplazamiento de las secuencias se puede navegar por los diferentes esta-dos, insertando nuevas posiciones o cambiando los datos.

Page 207: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 10. SOFTWARE: GUSANO FÍSICO 191

10.6. Resumen

Para controlar el gusano físico es necesario un software que envíe la información sobre laposición de los servos a la red de microcontroladores. Esta información la puede introducir direc-tamente el usuario, mediante un interfaz amigable, para hacer calibraciones o generar secuenciasde movimiento manuales. Las secuencias también se pueden cargar desde un fichero externo,generado por la aplicación cube-virtual.

Para la reproducción de las secuencias hay que tener en cuenta dos parámetros muy impor-tantes, el tiempo de tránsito y el tiempo de espera. El tiempo de espera lo define el usuario, ynos está indicando el tiempo que queremos que el gusano permanezca en un estado determinado.El tiempo de tránsito depende del servo y mide el tiempo que tardan los sevos en posicionarseen un nuevo estado. Este parámetro es estadístico y hay que estimarlo a partir de la constante detiempo del servo y de la distancia entre los vectores de estado físicos. Existe un compromisoentre continuidad del movimiento y exactitud en las posiciones. El diseñador debe seleccionar elvalor de la constante de tiempo estimada que más se ajuste a su aplicación.

El programa cube-fisico dispone de un interfaz muy sencillo que permite cargar, generar,reproducir y manipular las secuencias que se envían al gusano físico.

Page 208: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Capítulo 11

Conclusiones y líneas futuras

11.1. Conclusiones

En este apartado analizaremos todo lo que se ha conseguido en relación con los objetivosplanteados inicialmente, que fueron:

1. Diseño y construcción de un robot tipo gusano, que se desplace horizontalmente y enlínea recta de forma análoga a como lo hacen los gusanos, mediante ondas transversalesque se propagan desde la cola hasta la cabeza.

2. Desarrollo del cálculo automático de las secuencias de movimiento necesarias para quese desplace en función de la onda aplicada.

3. Diseño de un software de alto nivel, para un ordenador PC, que pueda generar las se-cuencias de movimiento del gusano según cómo sea la forma de la onda que lo recorra, superiodo y su amplitud.

4. Estudio de alternativas para la incorporación de mecanismos de giro.

Este proyecto nació como un reto personal del autor. Junto con mis compañeros de Microbótica1,desarrollamos una electrónica y mecánica que nos permitió construir microbots móviles y conpatas. Sin embargo no se tenía experiencia en el campo de los ápodos, o robots sin patas.

Para comprobar la viabilidad del proyecto, se desarrolló un primer prototipo, Cube-1.0, con 4articulaciones y la electrónica necesaria. Se implementó un software para reproducir una secuen-cia generada manualmente, que hacía que el gusano se desplazase. Primer objetivo cumplido.

Se empezó a estudiar la manera de generar las secuencias automáticamente, obteniéndose unaprimera versión del algoritmo de ajuste, que permite que el gusano adopte la forma de cualquierfunción. Desplazando esta función, conocida como función de contorno, y ajustando el gusano aella, se conseguía obtener los diferentes estados que permitían que el gusano avanzace. Segundoobjetivo cumplido. Se implementó en un software que calculaba las secuencias y las enviaba algusano. Tercer objetivo cumplido.

1Más conocidos en la ETSI telecomunicación de la UPM como Grupo J&J: Andrés, Juanjo, Cristina y Juan.

192

Page 209: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 11. CONCLUSIONES Y LÍNEAS FUTURAS 193

Finalmente se realizó un estudio sobre los mecanismos de giro. Cuarto y último objetivocumplido.

En la versión final de este proyecto, los objetivos no sólo se han cumplido sino que se hangenerado unos resultados intermedios que abren unas líneas de trabajo muy interesantes enel campo de los ápodos:

1. La estructura mecánica de Cube-1.0 era muy artesanal y estaba orientada sólo a un gu-sano de 4 articulaciones. Este prototipo se modificó para obtener un diseño modular, quepermitiese construir gusanos de cualquier longitud, utilizando muy pocas piezas diferentes,sencillas de realizar y muy económicas. El prototipo final, Cube-2.0, tiene 4 articulacio-nes, las mismas que Cube-1.0, sin embargo el no tener más articulaciones es ahora unacuestión puramente económica: sólo hay que comprar más servos y clonar las piezas yaexistentes. No hay que rediseñar la estructura, aunque sí hay que modificar el interfaz deusuario del software.

2. La electrónica de Cube-1.0 permitía mover los 4 servos a través de un microcontrola-dor, además de facilitar el control desde un PC. Para conseguir un prototipo ampliable,se introdujo una red de microcontroladores de manera que la electrónica fuese tambiénampliable para poder mover un número mucho mayor de servos y poder construir gusanosde mucha mayor longitud. Igual que la ampliación mecánica, la ampliación electrónica esahora un problema puramente económico, pero no técnico.

3. Para programar el software e implementar los algoritmos de movimiento se desarrolló unmodelo de gusano transversal. Este modelo se fue simplificando hasta llegar a las ideasbásicas que permitieron comprender mejor los mecanismos de movimiento y dieron pie aldesarrollo de un modelo virtual de gusano, en el PC, sobre el que se puede interactuar,hacer cálculos, obtener los vectores de estado de las articulaciones y generar secuenciasautomáticas de movimiento, en función de los parámetros de las funciones de contorno.Sobre este modelo fue posible aplicar todos los algoritmos de avance, así como deducirotras propiedas muy importantes de estos robots.

4. No sólo se ha desarrollado un modelo detallado de los gusanos transversales de cualquierlongitud, sino también se ha hecho para los gusanos longitudinales, sobre el que es másfácil trabajar a nivel teórico. Ambos modelos se han relacionado y se han obtenido losparámetros fundamentales que los caracterizan, así como las reglas que se deben cumplirpara que se desplacen.

5. Para el estudio de los mecanismos de giro se ha desarrollado un modelo de gusano tridi-mensional que se ha relacionado con los dos modelos anteriores y lo que ha permitdo nosólo obtener las ideas para que gire, sino para que describa cualquier trayectoria indicada.La implementación de estas ideas implica el rediseño de la estructura mecánica, por lo queno se ha llevado a la práctica, pero abre una nueva vía de trabajo en la realización de ungusano tridimensional virtual.

Page 210: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 11. CONCLUSIONES Y LÍNEAS FUTURAS 194

Figura 11.1: Prototipo final, Cube-2.0

6. Para la calibración y las pruebas mecánicas y eletrónicas, se ha diseñado un softwareque permite mover directamente los servos, a través de un interfaz gráfico amigable, demanera que se pueden generar secuencias manuales que no sólo sean de desplazamiento.Este mismo programa lee las secuencias generadas automáticamente por el gusano virtual.

Lo obtenido finalmente, a modo de resumen es lo siguiente:

1. Un gusano físico, de cuatro articulaciones, que se desplaza en línea recta y que es total-mente ampliable, tanto a nivel mecánico como a nivel electrónico (ver figura 11.1).

2. Un software que permite controlar los servos desde el PC, generando secuencias manuales,que se pueden grabar en ficheros y cargarlas para su posterior reproducción(ver figura11.2).

3. Un entorno de trabajo virtual para profundizar en los mecanismos de movimiento sinnecesidad de tener el gusano físico. Se generan secuencias automáticas de moviento quese pueden probar en el propio robot virtual o se pueden grabar en un fichero para su repro-ducción por el software del punto 2.

4. Un modelo detallado de los gusanos transversales, longitudinales y tridimensionales,obteniéndose ecuaciones y propiedades muy importantes.

El movimiento de avance logrado, calculado con el gusano virtual y ejecutado por el gusanofísico, es muy bueno. Se pueden ver perfectamente las ondas que lo recorren y cómo va avanzan-do sin apenas arrastrarse, lo que le permite desplazarse por cualquier tipo de superficie. Puedesuperar obstáculos que no sean de demasiada altura y subir por superficies inclinadas.

Page 211: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 11. CONCLUSIONES Y LÍNEAS FUTURAS 195

Figura 11.2: Programa cube-fisico para el control del gusano físico

Page 212: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 11. CONCLUSIONES Y LÍNEAS FUTURAS 196

Figura 11.3: Entorno de trabajo virtual, para un gusano transversal

Page 213: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

CAPÍTULO 11. CONCLUSIONES Y LÍNEAS FUTURAS 197

11.2. Líneas futuras

El proyecto abre nuevas líneas de trabajo, en diferentes niveles:

1. Mecánica: Desarrollar una estructura modulable para los gusanos tridimensionales. Losmódulos básicos deben ser sencillos e iguales, constituidos por dos servos que permitanla orientación del módulo en cualquier dirección del espacio. La misma electrónica desa-rrollada sirve para estos módulos. En la nasa están trabajando en este tipo de estructuras[18].

2. Electrónica: Dotar al nodo maestro de mayor potencia de cálculo para que no haga fal-ta disponer de un PC para el movimiento del gusano físico. Para este propósito puedenutilizarse placas microcontroladores con Linux empotrado, que además permiten adaptarcasi directamente el software desarrollado en el PC al propio sistema empotrado. Para másinformación consultar [32].

3. Software:

a) Unificación de los programas cube-fisico y cube-virtual en un único en-torno que permita acceder al gusano físico a partir del virtual.

b) Entorno de trabajo virtual para gusanos tridimensionales, que permita generarsecuencias de movimiento que sean reproducidas en el gusano físico.

c) Interfaz web, para cambiar los parámetros de movimiento del gusano a través deun navegador. Esto es posible si se utiliza para el nodo maestro un sistema empo-trado como el indicado en el punto 2. Conectando el gusano a una red Ethernet de10Mbits, y desde un ordenador de esa red, que se puedan cambiar los parámeros demovimiento. Se puede encontrar más información en [33].

4. Nivel teórico: Hacer un estudio para que el gusano tridimensional puede seguir trayec-torias no sólo en el plano xy, sino también en un espacio tridimensional, realizando tra-yectorias más complejas como por ejemplo helicoidales que le permitan trepar o avanzarpor cilindros de un diámetro determinado.

El trabajar con sistemas empotrados con un sistema operativo dentro es fundamental para desa-rrollar robots autónomos complejos donde la coordinación de los servos no es trivial y se necesitaun software más potente que genere las secuencias.

El construir un gusano tridimensional es muy útil no sólo en el campo de los ápodos. Enrealidad se trata de un “segmento orientable” que puede tener muchas otras aplicaciones comopor ejemplo introducir una cámara en rincones poco accesibles o construir robots con miembrosde este tipo, como pulpos o calamares. En ellos los miembros no sólo sirven para desplazarsesino para otras funciones: reconocimiento del terreno, arragarse a objetos, trepar, etc.

Este proyecto pretende dejar establecidas las bases para trabajar con este tipo de robots,partiendo de uno más simple y que se ha implementado con éxito.

Page 214: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Apéndice A

Listado de piezas y materiales de Cube-2.0

Todas las piezas que componen a CUBE-2.0 se listan a continuación:

4 servomecanismos modelo Futaba 3003.

4 carcasas del servo, con sus correspondientes engranajes1. Estas piezas, junto con losservos permiten contruir una articulación con doble eje.

Varillas roscadas de 4mm de diámtro:2

◦ 8 de 4.6cm, para la unión de los servos con las carcasas del doble eje.

◦ 8 de 7.5cm, para la unión del cuerpo de servo con el resto de piezas.

◦ 2 varillas de 9.5cm para unir un servo con la pieza de la cabeza.

96 tuercas para las varillas roscadas (24 para cada servo).

Piezas de plástico transparente de 2mm de grosos:

◦ 6 de tipo A.

◦ 2 de tipo B.

◦ 2 de tipo C.

◦ 1 base de la cola.

◦ 1 base de la cabeza.

◦ 1 base para la tarjeta CT6811.

◦ 1 base para la tarjeta BT6811.

64 tornillos de 3mm de diámetro y 1cm de longitud con sus tuercas correspondientes:

1El servomecanismo Futaba 3003 es desmontable y se pueden comprar sus piezas por separado: engranajes,carcasas, tornillos,etc.

2En total son necesarios 116cm. Estas varillas se suelen vender en unidades de 1 metro

198

Page 215: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

APÉNDICE A. LISTADO DE PIEZAS Y MATERIALES DE CUBE-2.0 199

◦ 4 por cada pieza tipo A. En total: 6x4 = 24.

◦ 6 por cada pieza tipo B: 2x6 = 12.

◦ 6 por cada pieza tipo C: 2x6 = 12.

◦ 4 para cada una de las dos bases: 2x4 = 8.

◦ 4 para la base de la CT6811.

◦ 4 para la base de la BT6811.

8 escuadras de 1x1.5cm, para la unión de las bases de la cola y la cabeza.

1 tarjeta CT6811, basada en el microcontrolador 68hc11 de Motorola.

1 tarjeta BT6811, basada en el mismo microcontrolador.

50cm de velcro adhesido, para unir los servos a las almohadillas y las tarjetas BT6811 yCT6811 a la estructura mecánica.

Una almohadilla de ratón, cortada en cuadrados de 4x5cm.

◦ Son necesarios 8 cuadrados de este tipo.

Page 216: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Apéndice B

Características de Cube-2.0

Todas las medidas se han realizado sobre el prototipo final, con toda la electrónica y pilasacopladas.

Dimensiones en estado de reposo:

◦ Longitud: 38cm

◦ Anchura: 7.5cm

◦ Altura: 6cm

Peso: 700gr

Alimentación:

◦ Electrónica: 4.5-6v

◦ Servos: 5-6v

Consumo:

◦ Electrónica: 40mA

◦ Servos: 800mA

Velocidad, en varias condiciones:

◦ Para A = 20, λ = 150, v = 5:VG = 3,2

cm

s

◦ Para A = 10, λ = 150, v = 5:VG = 1,7

cm

s

◦ Para A = 10, λ = 120, v = 5:VG = 1,3

cm

s

200

Page 217: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Apéndice C

Programas para el 68hc11

C.1. Programa maestro*************************************************************** Programa para el módulo maestro **************************************************************** Version para la RAM interna ***************************************************************

* --- Puertos de entrada y salida

PORTA EQU $0PORTB EQU $04PORTC EQU $03DDRC EQU $07

* --- Registros del SCI

BAUD EQU $2BSCCR1 EQU $2CSCCR2 EQU $2DSCSR EQU $2ESCDR EQU $2F

* --- Registros del SPI

PORTD EQU $08DDRD EQU $09SPCR EQU $28SPDR EQU $2ASPSR EQU $29

ORG $0000 * Dirección de comienzo del programa

inicio

201

Page 218: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

APÉNDICE C. PROGRAMAS PARA EL 68HC11 202

LDX #$1000 * Para acceder a los registros de control

* ---- Configuración del SCI ----

wait BRCLR SCSR,X $40 wait * espero a que se estabilice el SCI

LDAA #$22 * Poner 22 para velocidad de 7812 baudiosSTAA BAUD,X * Poner 30 para velocidad de 9600 baudios

* ---- Configuración del SPI (como maestro) ----

LDAA #$3CSTAA DDRD,X * El SPI configura las salidas automáticamente

* El maestro lo ponemos con colector cerrado.

LDAA #$50 * Colector cerradoSTAA SPCR,X * Activa en modo maestro el SPI

* El puerto C tienen que ser de entradaCLRASTAA DDRC,X * Puerto C de entrada

mainJSR leer_car * leo carácter por el puerto serieJSR enviar_spi * mando la orden a la BT6811BRA main

*.................................*. Rutina que recibe un caracter .*. por el puerto serie .*.................................

leer_carBRCLR SCSR,X $20 leer_carLDAA SCDR,XRTS

*.................................*. Rutina que envia un caracter .*. por el puerto serie .*.................................

enviar_carBRCLR SCSR,X $80 enviar_carSTAA SCDR,XRTS

*.......................................

Page 219: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

APÉNDICE C. PROGRAMAS PARA EL 68HC11 203

*. Rutina que envía un dato por el SPI .*.......................................*. Si se quiere pausa entre datos .*. enviados llamar a: enviar_spi_pausa .*. .*. Si no se quiere pausa entre datos .*. envados llamar a: enviar_spi .*.......................................

enviar_spi_pausaPSHY * pausa entre datosLDY #$18 * valor de 150 microseg

pausa DEYCPY #$0BNE pausaPULY

enviar_spiLDAB PORTD,XANDB #$DFSTAB PORTD,X * Mandamos activarse al esclavo

STAA SPDR,X * introduzco el dato a mandarespera BRCLR SPSR,X $80 espera * ¿transmisión efectuada?

LDAB PORTD,XORB #$20STAB PORTD,X * Desactivamos al esclavo

RTS

*.........................*. Rutina de pausa .*.........................

esperarPSHYLDY #$C400

sigue DEYCPY #$0BNE siguePULYRTS

END

Page 220: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

APÉNDICE C. PROGRAMAS PARA EL 68HC11 204

C.2. Programa esclavo

*...........................................................................* . FUTABA. Version 1.0 .* ..........................................................................* . Programa para la gestion de 4 servomecanismos Futaba S3003 .* ..........................................................................

*************************************************** Identificador del módulo esclavo ***************************************************

M_ES equ ’a’

************************************************************************ Registros y Puertos del 68hc11 ************************************************************************

* Puertos del 68hc11

PORTA equ $00PORTB equ $04PORTC equ $03DDRC equ $07

* Registros del SPI

PORTD EQU $08DDRD EQU $09SPCR EQU $28SPDR EQU $2ASPSR EQU $29

* Registros de los comparadores

TCNT equ $0E ; valor del temporizador principalTMSK1 equ $22TFLG1 equ $23TCTL1 equ $20TOC1 equ $16 ; este registro es de 16 bitsTOC2 equ $18 ; este registro es de 16 bitsTOC3 equ $1A ; este registro es de 16 bitsTOC4 equ $1C ; este registro es de 16 bitsTOC5 equ $1E ; este registro es de 16 bits

************************************************************************ Constantes del programa ************************************************************************

Page 221: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

APÉNDICE C. PROGRAMAS PARA EL 68HC11 205

PERIODO EQU 42000 ; Periodo de la señal cuadrada 21 msegEXTREMO1 EQU 600CENTRO EQU 2600EXTREMO2 EQU 4300

************************************************************************ Máscaras de acceso ************************************************************************

OC1 equ $80 ; Comparador 1OC2 equ $40 ; Comparador 2OC3 equ $20 ; Comparador 3OC4 equ $10 ; Comparador 4OC5 equ $08 ; Comparador 5

FUT1 equ $01 ; Bit donde se encuentra el FUTABA 1FUT2 equ $02 ; Bit donde se encuentra el FUTABA 2FUT3 equ $04 ; Bit donde se encuentra el FUTABA 3FUT4 equ $08 ; Bit donde se encuentra el FUTABA 4LED equ $10 ; Bit donde se encuentra el LED

************************************************************************ Variables del programa ************************************************************************

ORG $0

posi1 RMB 2posi2 RMB 2posi3 RMB 2posi4 RMB 2salidas RMB 1 ; máscara que indica las salidas hardware activas

*********************************************************************** ------------------------------------------------------------------ ** | PROGRAMA PRINCIPAL | ** ------------------------------------------------------------------ ***********************************************************************

ORG $F800 ; Programa para el microcontrolador E2

************************************************************************ Inicialización del programa ************************************************************************

inicializarLDS #$FF ; inicializo el puntero de pilaLDX #$1000 ; para acceder a los registros de control internos

Page 222: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

APÉNDICE C. PROGRAMAS PARA EL 68HC11 206

* --- Configuración del SPI (como esclavo) ----

LDAA #$3C * SS de entradaSTAA DDRD,X * El SPI configura las salidas automáticamente

LDAA #$40 * Colector cerradoSTAA SPCR,X * Activa en modo esclavo el SPI

* --- Configuración del Puerto C como salida

LDAA #$FFSTAA DDRC,X

* --- Configuración de los comparadores ---

CLRASTAA TCTL1,X ; Comparadores sin salida hardwareLDAA #OC1 ; Activo el comparador 1STAA TMSK1,X

* --- Configuración de las salidas ---

LDD #2000STD posi1STD posi2STD posi3STD posi4

CLRA ; indico que todos los motores activosSTAA salidas

CLI ; permito las interrupciones

LDAA #$FF ; @@STAA PORTB,X ; @@

************************************************************************** BUCLE PRINCIPAL **************************************************************************

inicioBSR recibir_spiCMPA #M_ES ; verifica que la trama sea para élBEQ analizarBSR recibir_spiBSR recibir_spiBSR recibir_spiBRA inicio

analizar BSR recibir_spi ; leo dos carácteres por el puerto serie SPICMPA #’l’

Page 223: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

APÉNDICE C. PROGRAMAS PARA EL 68HC11 207

BEQ cambia_ledCMPA #’e’BEQ servicio_activaCMPA #’p’BEQ servicio_posicionarCMPA #’c’BEQ salida_puertocBRA inicio

************************************************************************** SUBRUTINAS DEL PROGRAMA **************************************************************************

* ...........................................................* . Rutina que cambia el estado del LED .* ...........................................................

cambia_ledBSR recibir_spiBSR recibir_spiLDAB PORTB,XEORB #$10STAB PORTB,XBRA inicio

* ...........................................................* . Rutina que activa o desactiva los motores .* ...........................................................

servicio_activaBSR recibir_spiSTAA salidasBSR recibir_spiBRA inicio

* ...........................................................* . Rutina que envia un byte al puerto de salida C .* ...........................................................

salida_puertocBSR recibir_spiSTAA PORTC,XBSR recibir_spiBRA inicio

* ...........................................................* . Servicio posicionar motor .* ...........................................................

servicio_posicionar

Page 224: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

APÉNDICE C. PROGRAMAS PARA EL 68HC11 208

BSR recibir_spi ; Leer nomotor ( $1, $2, $3, $4 )

* Si se llega aqui es que se ha solicitado servicio de posicionamiento* Meter en Y el numero (motor-1)*2

DECA ; A=motor-1LSLA ; A=(motor-1)*2TABCLRAXGDY ; Y=(motor-1)*2

BSR recibir_spi ; Leer posicion (0-255)CLRBLSRDLSRDLSRDLSRDADDD #EXTREMO1 * D=(posicion*16+EXTREMO1)SEISTD 0,Y * Almacenar posicionCLIBRA inicio

* ...........................................................* . Rutina que recibe un dato por el SPI .* . La rutina espera hasta recibir el dato .* . Entradas: Ninguna .* . Salidas: El acumulador A contiene el dato .* ...........................................................

recibir_spiespera BRCLR SPSR,X $80 espera ; espero que el dato se haya recibido

LDAA SPDR,XRTS

******************************************************************* Rutinas de interrupcion de los COMPARADORES *******************************************************************

* .........................................................* . Comparador 1: Establece el principio de los pulsos .* .........................................................* . Podemos poner BSET porque las interrupciones de los .* . otros comparadores estan desactivadas. En caso .* . contrario habría que utilizar load y store. .* .........................................................

int_oc1BSET TFLG1,X OC1 ; Poner a cero el flag de interrupción

LDD TCNT,X ; Actualizar comparador 1ADDD #PERIODO ; próxima interrupción = ...

Page 225: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

APÉNDICE C. PROGRAMAS PARA EL 68HC11 209

STD TOC1,X ; ... tiempo_actual(TCNT) + Periodo

LDAA PORTB,XORA salidasANDA #$18 ; Si salida 4 habilitada ponerla aSTAA PORTB,X ; nivel altoLDD TCNT,X ; Actualizar comparador 5 (FUTABA 4)ADDD posi4 ; Establecer tiempo anchura del pulsoSTD TOC5,X

LDAA PORTB,XORA salidasANDA #$1C ; Si salida 3 habilitada ponerla aSTAA PORTB,X ; nivel altoLDD TCNT,X ; Actualizar comparador 4 (FUTABA 3)ADDD posi3 ; Establecer tiempo anchura del pulsoSTD TOC4,X

LDAA PORTB,XORA salidasANDA #$1E ; Si salida 2 habilitada ponerla aSTAA PORTB,X ; nivel altoLDD TCNT,X ; Actualizar comparador 3 (FUTABA 2)ADDD posi2 ; Establecer tiempo anchura del pulsoSTD TOC3,X

LDAA PORTB,XORA salidasANDA #$1F ; Si salida 1 habilitada ponerla aSTAA PORTB,X ; nivel altoLDD TCNT,X ; Actualizar comparador 2 (FUTABA 1)ADDD posi1 ; Establecer tiempo anchura del pulsoSTD TOC2,X

* Activar las interrupciones de los comparadores de las salidas

BSET TMSK1,X $78

RTI

* .....................................................................* . ¡OJO¡ No podemos poner BSET porque podria desactivar las otras .* . interrupciones de los comparadores antes de ser atendidas .* .....................................................................* . Rutina de servicio de interrupcion del COMPARADOR 2 .* . POSICION DEL FUTABA 1 .* ................................................................

int_oc2LDAA #OC2 ; pongo a cero el flag de interrupciónSTAA TFLG1,X

Page 226: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

APÉNDICE C. PROGRAMAS PARA EL 68HC11 210

BCLR PORTB,X FUT1 ; pongo a cero la salida hardware correspondienteBCLR TMSK1,X OC2 ; Deshabilitar interrupción del comparadorRTI

* ................................................................* . Rutina de servicio de interrupcion del COMPARADOR 3 .* . POSICION DEL FUTABA 2 .* ................................................................

int_oc3LDAA #OC3 ; pongo a cero el flag de interrupciónSTAA TFLG1,X

BCLR PORTB,X FUT2 ; pongo a cero la salida hardware correspondienteBCLR TMSK1,X OC3 ; Deshabilitar interrupción del comparadorRTI

* ................................................................* . Rutina de servicio de interrupcion del COMPARADOR 4 .* . POSICION DEL FUTABA 3 .* ................................................................

int_oc4LDAA #OC4 ; pongo a cero el flag de interrupciónSTAA TFLG1,X

BCLR PORTB,X FUT3 ; pongo a cero la salida hardware correspondienteBCLR TMSK1,X OC4 ; Deshabilitar interrupción del comparadorRTI

* ................................................................* . Rutina de servicio de interrupcion del COMPARADOR 5 .* . POSICION DEL FUTABA 4 .* ................................................................

int_oc5LDAA #OC5 ; pongo a cero el flag de interrupciónSTAA TFLG1,X

BCLR PORTB,X FUT4 ; pongo a cero la salida hardware correspondienteBCLR TMSK1,X OC5 ; Deshabilitar interrupción del comparadorRTI

**************************************************************************** Inicializacion de los vectores de interrupcion ****************************************************************************

ORG $FFE0 * coloco vector de interrupcion del comparador 5v_comp5 FDB #int_oc5 * FUTABA 4

Page 227: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

APÉNDICE C. PROGRAMAS PARA EL 68HC11 211

ORG $FFE2 * coloco vector de interrupcion del comparador 4v_comp4 FDB #int_oc4 * FUTABA 3

ORG $FFE4 * coloco vector de interrupcion del comparador 3v_comp3 FDB #int_oc3 * FUTABA 2

ORG $FFE6 * coloco vector de interrupcion del comparador 2v_comp2 FDB #int_oc2 * FUTABA 1

ORG $FFE8 * coloco vector de interrupcion del comparador 1v_comp1 FDB #int_oc1

ORG $FFFE * coloco vector de interrupcion del resetv_reset FDB #inicializar

END

Page 228: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Apéndice D

Álbum de fotos

CUBE-1.0

Foto 1: Cube-1.0 sobre una mesa

Foto 3: Cube 1.0 desplazandose por otra superficie Foto 4: Cube 1.0 junto a la hormiga

Foto 2: Cube 1.0 desplazandose sobre el suelo

212

Page 229: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

APÉNDICE D. ÁLBUM DE FOTOS 213

Foto 6: La granja de microbotica Foto 7: Cube 2.0 desplazandose sobre el suelo

Foto 8: Cube 2.0 visto desde el otro lado Foto 9: Estructura mecanica de Cube 2.0

Foto 10: Detalle de la estructura mecanica Foto 11: Estructura y electronica de cube 2.0

Page 230: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

APÉNDICE D. ÁLBUM DE FOTOS 214

Foto 13: Cube al lado de Curro

Foto 14: Cube quiere jugar con Curro

Foto 16: Comparacion entre Cube y el rabo de Curro

Foto 12: Entorno de trabajo: portatil, Cube y gato

Foto 15: Cube sobrepasa a Curro, sin que se inmute

Foto 17: Curro olfateando a Cube. ¡Que bicho tan raro!

Page 231: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

Bibliografía

[1] S.J Industries inc [en línea]. http://sjindustriesinc.com/ROBOTS/IRB90.htm. [Consulta: 20feb. 2001].

[2] “An introduction to ROBOT technology”. Philippe Coiffet, Michael Chirouze. Ed. KoganPage. 1983.

[3] “Robótica industrial. Tecnología, programación y aplicaciones”. Mikell P. Groover, Mit-chell Weiss. Ed. Mc Graw Hill. 1989.

[4] “Robótica práctica”. Jose Ma Angulo. Ed. Paraninfo. 1986.

[5] “R.U.R”, Son las siglas de “Rossum’s Universal Robots”.Karel Capek. 1917

[6] “Sueños de Robot”. Isaac Asimov. Ed. P&J. 1992.

[7] Robot humaniforme desarrollado por Honda [en línea]. http://world.honda.com/robot.[Consulta: 25 feb. 2001].

[8] COG [en línea]. http://caes.mit.edu/mup/html/cog.html. [Consulta: 28 feb. 2001].

[9] Robocup [en línea]. http://www.robocup.org. [Consulta: 2 mar. 2001].

[10] Concurso de luchadores de sumo organizado por la AESS [en línea].http://www.aess.upc.es. [Consulta: 2 mar. 2001].

[11] Concurso luchadores de sumo organizado por el grupo de robótica de la EUPMT [en línea].http://www.eupmt.es/cra. [consulta: 4 mar. 2001].

[12] Alcabot 2000 [en línea]. http://www.depeca.alcala.es/alcabot2000. [Consulta: 6 mar. 2001].

[13] Alcabot 2001 [en línea]. http://www.alcabot.uah.es. [Consulta: 6 mar. 2001].

[14] Vehículo espacial enviado a marte [en línea]. http://mpfwww.jpl.nasa.gov/MPF/rovercom/rovcom.html.[Consulta: 8 mar. 2001].

[15] AIBO [en línea]. http://www.aibo.com/ers_210. [Consulta: 9 mar. 2001].

[16] “Diseño, construcción y control de un robot articulado mediante una red de microcontrola-dores”. Proyecto Fin de Carrera de D. Andrés Prieto-Moreno Torres. ETSIT-UPM. 2001.

215

Page 232: Diseño y construcción de un robot articulado que emula modelos animales: aplicación a un gusano

BIBLIOGRAFÍA 216

[17] UIUC Hexapod Project. Beckman institute for Advanced Science andTechnology. University of Illinois at Urbana-Champaign [en línea].http://soma.npa.uiuc.edu/labs/nelson/hexapod.html. [Consulta: 9 mar. 2001].

[18] Robot Snake, en la Nasa [en línea]. http://ic-www.arc.nasa.gov/ic/snakebot/hello.html.[Consulta: 9 ene. 2001].

[19] Empresa Microbótica, S.L [en línea]. http://www.microbotica.es. [Consulta: 5 sep. 2000].

[20] “Microbótica”. Jose MaAngulo Usategui. Ed. Paraninfo. 2000.

[21] “Microcontrolador 68HC11: Fundamentos, recursos y programacion”. C. Doblado, A.Prieto-Moreno, J. San Martín, J. González. Servicio de publicaciones de la ETSIT. 1998.

[22] GMD [en línea]. http://ais.gmd.de/BAR/snake.html. [Consulta: 10 mar. 2001].

[23] Dr. Gavin Miller [en línea]. http://snakerobots.com. [Consulta: 10 mar. 2001].

[24] Mita Laboratory. Http://www.ctrl.titech.ac.jp/ctrl-labs/mita-lab/snake/home.html

[25] Página índice con muchos enlaces a proyectos de serpientes robóticas [en línea].http://ais.gmd.de/~worst/snake-collection.html. [Consulta: 8 ene. 2001].

[26] Talleres y concursos impartidos por Microbótica, S.L [en línea].http://www.microbotica.es/taller.htm. [Consulta: 5 sep. 2000].

[27] “Física general 1”. José M. de Juana. Ed. Alhambra Universidad. 1990.

[28] “Mobile Robots. Inspiration to implementation”. Joseph L. Jones. Bruce A. Seiger. AnitaM.Flynn. Ed. A.K Peters. 1999.

[29] “Desarrollo de aplicaciones Linux con GTK+ y GDK”. Eric Harlow. Prentice-Hall. 1999.

[30] “Manual de referencia de C”. Herbert Schildt. Mc Graw Hill. 1989.

[31] “Unix, programación avanzada”. Fco. Manuel Márquez. Ed. Ra-ma. 1996.

[32] “Microlinux empotrado en arquitecturas digitales basadas en microcontroladores y lógicaprogramable”. Borrador de PFC de D. Juan José San Martín Mazzucconi. ETSIT. UPM.2001.

[33] “Control de sistema empotrado basado en uClinux a través de http: desarrollo de servidorweb e interfaces gráficas”. Borrador de PFC de Da. Cristina Doblado Alcázar. ETSIT. UPM.2001.