Está en la página 1de 181

Centro de Investigación y de Estudios Avanzados

del Instituto Politécnico Nacional

Laboratorio de Tecnologı́as de la Información

Diseño e implementación de un
robot cuadrúpedo para el estudio
de algoritmos para generación de
ciclos de marcha

Tesis que presenta:

Benjamı́n Dı́az Santiago

Para obtener el grado de:

Maestro en Ciencias
en Computación

Director de la Tesis:
Dr. José Gabriel Ramı́rez Torres

Cd. Victoria, Tamaulipas, México Febrero, 2012


c Derechos reservados por
Benjamı́n Dı́az Santiago
2012
Esta investigación fue parcialmente financiada mediante el proyecto No. 51623 del Fondo Mixto
Conacyt-Gobierno del Estado de Tamaulipas.

This research was partially funded by project number 51623 from “Fondo Mixto Conacyt-Gobierno
del Estado de Tamaulipas”
La tesis presentada por Benjamı́n Dı́az Santiago fue aprobada por:

Dr. Eduardo Arturo Rodrı́guez Tello

Dr. Gregorio Toscano Pulido

Dr. José Gabriel Ramı́rez Torres, Director

Cd. Victoria, Tamaulipas, México, 21 de Febrero de 2012


A mis padres, quienes me han instruido por el mundo del conocimiento.
Agradecimientos

Primeramente agradezco a Dios, mi creador, mi salvador y sustentador que me proveyó en


todo momento de lo necesario, fuerza, esperanza, recursos, entendimiento y amistades, entre
otros. Gracias a Él.

Gracias a mi familia que me apoyó, a pesar de la distancia, confió y me inspiró para seguir
adelante.

Gracias a mi asesor Dr. José Gabriel Ramı́rez Torres por los consejos, atención y apoyo, que
me permitieron concluir la tesis.

Un agradecimiento a mis amigos y compañeros de la iglesia y de la escuela, que me dieron


palabras de aliento y consejos en momentos difı́ciles.

También un agradecimiento al apoyo económico otorgado por CONACyT.


Índice General

Índice General I

Índice de Figuras V

Índice de Tablas IX

Índice de Algoritmos XI

Resumen XIII

1. Introducción 1
1.1. Historia de los robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Robots de servicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Locomoción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4. Robots cuadrúpedos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5. Ciclos de marcha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.6. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.7. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.7.1. Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.7.2. Objetivos especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.8. Organización de la tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2. Estado del arte 27


2.1. Generador central de patrones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.1.1. Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.1.2. Algunos trabajos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2. Robots cuadrúpedos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2.1. AIBO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.2. SILO4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.2.3. TEKKEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.2.4. PUCHOBOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.2.5. ARAMIES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.2.6. BIGDOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2.7. LITTLEDOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.8. ROBOQUAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.2.9. CHEETAH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.2.10. R4P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.2.11. LEBREL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.2.12. LS3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

i
2.3. Tabla comparativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

3. Marco teórico 63
3.1. Modelos cinemáticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.1.1. Sistema vectorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.1.2. Cadena cinemática y grados de libertad . . . . . . . . . . . . . . . . . . . . 65
3.2. Generador Central de patrones (Central Pattern Generator-CPG) . . . . . . . . . . . 65
3.3. Matriz de compuertas programables (FPGAs) . . . . . . . . . . . . . . . . . . . . . 70
3.4. Actuadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

4. Desarrollo de Robocan 79
4.1. Componentes del robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.1.1. Estructura mecánica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.1.2. Actuadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.1.3. Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.1.4. Potencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.1.5. Arquitectura de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.1.6. Comunicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.2. Diseño del robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.2.1. Distribución de los grados de libertad (GDL) . . . . . . . . . . . . . . . . . 90
4.2.2. Diseño de la estructura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.2.2.1. Diseño de las patas . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.2.2.2. Diseño de la cabeza . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.2.2.3. Diseño del cuerpo . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.3. Cinemática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

5. Implementación y resultados 107


5.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.2. Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.3. Ciclo de marcha con valores predefinidos . . . . . . . . . . . . . . . . . . . . . . . 110
5.3.1. Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5.3.2. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.4. Ciclos de marcha usando una onda sinusoidal . . . . . . . . . . . . . . . . . . . . . 113
5.4.1. Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.4.2. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

6. Conclusiones y trabajo futuro 123


6.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
6.2. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

ii
A. Cinemática 127
A.0.1. Cinemática directa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
A.0.1.1. Análisis geométrico . . . . . . . . . . . . . . . . . . . . . . . . . 128
A.0.1.2. Matrices de transformación homogénea . . . . . . . . . . . . . . . 128
A.0.1.3. Método Denavit-Hantemberg (DH) . . . . . . . . . . . . . . . . . 133
A.0.2. Cinemática inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
A.1. Cinemática directa de Robocan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
A.2. Cinemática inversa de Robocan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
A.2.1. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
A.3. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

Bibliografı́a 149

iii
Índice de Figuras

1.1. Gallo de Estrasburgo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2


1.2. Pato de Vaucanson. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Diversidad de robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4. Componentes de un robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5. Robot aspiradora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.6. Robotet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.7. Robot submarino: Remo I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.8. Robot volador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.9. Robot tipo oruga. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.10. Robot espacial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.11. Robot con ruedas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.12. Robots con patas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.13. Movilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.14. Superación de obstáculos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.15. Suspensión activa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.16. Acceso a terreno discontinuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.17. Deslizamientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.18. Velocidad media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.19. Robots con patas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.20. Comparación de robots con patas . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.21. Tipos de ciclo de marcha [Fuentes, 2006]. . . . . . . . . . . . . . . . . . . . . . . . 18
1.22. Equilibrio estático de un robot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.23. Robot subiendo un obstáculo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.1. Localización de la medula espinal, donde se encuentra el CPG . . . . . . . . . . . . 28


2.2. Comparación de la RNCA con el modelo de referencia humano. . . . . . . . . . . . 31
2.3. Prototipo 2 del robot AIBO [Dedo and Garcı́a, 2008] . . . . . . . . . . . . . . . . . 32
2.4. Robot AIBO modelo ER7-EM3, año 2006 [Dedo and Garcı́a, 2008] . . . . . . . . . 34
2.5. Competencia de Robocup [Kim and Uther, 2003] . . . . . . . . . . . . . . . . . . . 35
2.6. Movimiento de las patas de aibo [Kim and Uther, 2003] . . . . . . . . . . . . . . . 36
2.7. Red neuronal Klopf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.8. Gen de algoritmo genético [Suzuki, 2007] . . . . . . . . . . . . . . . . . . . . . . . 37
2.9. Parámetros θ1 , θ2 , rt [Suzuki, 2007] . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.10. Caminado de AIBO basado en el caminado de un animal. . . . . . . . . . . . . . . 38
2.11. Árbol de decisiones [Hau, 2006] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.12. Robot silo 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.13. Estructura de la pata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.14. Robot Tekken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

v
2.15. Oscilador neuronal como modelo de CPG. . . . . . . . . . . . . . . . . . . . . . . . 43
2.16. Terreno irregular para pruebas de Tekken . . . . . . . . . . . . . . . . . . . . . . . 44
2.17. Robot puchobot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.18. Robot aramies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.19. Consumo de energı́a en el cambio de ángulos . . . . . . . . . . . . . . . . . . . . . 46
2.20. Robot BigDog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.21. Arquitectura de control de BigDog . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.22. Robot LittleDog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.23. Control jerárquico en LittleDog [Zico et al., 2008] . . . . . . . . . . . . . . . . . . 50
2.24. Planeador del centro de masa para la secuencia de dos pasos [Zico et al., 2008] . . . 51
2.25. LittleDog caminando en un terreno rocoso [Zico et al., 2008] . . . . . . . . . . . . 51
2.26. Robot Roboquad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.27. Robot cheetat y el diseño de su pata. . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.28. Matrices de acoplamiento y generación para 4 ciclos de marcha . . . . . . . . . . . 55
2.29. Transiciones suaves de las trayectorias generadas por la red CPG . . . . . . . . . . . 56
2.30. Caminado del robot Cheetah. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.31. Robot R4P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.32. Robot lebrel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.33. Robot LS3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

3.1. Componentes de una cadena cinemática. . . . . . . . . . . . . . . . . . . . . . . . 66


3.2. Red general de CPG para locomoción de un cuadrúpedo . . . . . . . . . . . . . . . 67
3.3. Modelo neuronal Amari Hopfield. . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.4. Los patrones rı́tmicos de las neuronas excitadoras e inhibidoras, arriba y abajo
respectivamente, generados por el GPC, integrados en un FPGA. . . . . . . . . . . 70
3.5. Composición de un FPGA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.6. Flexibilidad de un FPGA [Huitzil, 2010]. . . . . . . . . . . . . . . . . . . . . . . . . 72
3.7. Arquitectura del sistema de visión estéreo. . . . . . . . . . . . . . . . . . . . . . . 73
3.8. Robot Kephera. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.9. Robot Atron. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.10. Componentes de un servomotor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.11. Ancho de pulso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.12. Posición de un servo con el ancho de pulso. . . . . . . . . . . . . . . . . . . . . . . 77

4.1. Diseño fı́sico del robot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81


4.2. Tipos de estructuras mecánicas en robots con patas [Fuentes, 2006]. . . . . . . . . 82
4.3. Servomotor BlueBird 380-MG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.4. Tarjeta SSC-32 para el control de los servomotores. . . . . . . . . . . . . . . . . . 84
4.5. Módulo de cámara estéreo VmodCAM. . . . . . . . . . . . . . . . . . . . . . . . . 86
4.6. Paquete de baterı́as de 4.8 voltios y 5 A/h. . . . . . . . . . . . . . . . . . . . . . . 87
4.7. Arquitectura de control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.8. Comunicación de los componentes. . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.9. Configuración de los grados de libertad. . . . . . . . . . . . . . . . . . . . . . . . . 90

vi
4.10. Rango de los movimientos de las patas. . . . . . . . . . . . . . . . . . . . . . . . . 91
4.11. a)Diseño final del robot en CAD b)Versión final del robot. . . . . . . . . . . . . . . 98
4.12. Diseño de la pata versión 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.13. Robocan versión 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.14. Diseño de la pata versión 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.15. Robocan versión 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.16. Diseño de la pata versión 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.17. Robocan versión 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.18. Diseño de la pata versión 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
4.19. Robocan versión 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
4.20. Diseño de la pierna del robot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.21. Diseño de la rodilla del robot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.22. Diseño de la cabeza del robot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.23. Diseño del cuerpo del robot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.24. Sistema vectorial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

5.1. Movimientos en una pata, usando el enfoque con valores predefinidos. . . . . . . . . 111
5.2. Ciclo de marcha generado por los valores predefinidos (vista superior). . . . . . . . . 112
5.3. Ciclo de marcha implementado en el robot. . . . . . . . . . . . . . . . . . . . . . . 113
5.4. Gráfica de 10 pruebas del ciclo de marcha, usando valores predefinidos. . . . . . . . 114
5.5. Generación de una onda sinusoidal, con sus respectivos parámetros. . . . . . . . . . 115
5.6. Movimientos en una pata, usando un oscilador. . . . . . . . . . . . . . . . . . . . . 116
5.7. Ciclo completo de una pata, usando un oscilador. . . . . . . . . . . . . . . . . . . . 118
5.8. Onda generada para la articulación 2. . . . . . . . . . . . . . . . . . . . . . . . . . 118
5.9. Onda generada para la articulación 3. . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.10. Ciclo de marcha usando una onda sinusoidal en el robot. . . . . . . . . . . . . . . . 120
5.11. Gráfica de 10 pruebas del ciclo de marcha, usando una onda sinusoidal. . . . . . . . 121

A.1. Sistema de vectores con 1 grado de libertad. . . . . . . . . . . . . . . . . . . . . . 128


A.2. Representación de un vector en un sistema O′ U V W , con respecto a un sistema OXY Z.131
A.3. Rotación del sistema O′ U V W con respecto al sistema OXY Z. . . . . . . . . . . . 131
A.4. Traslación y rotación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
A.5. Obtener los sistemas de cada eslabón (pasos del 1 al 9 de DH). . . . . . . . . . . . 134
A.6. Parámetros de D-H (pasos del 10 al 13). . . . . . . . . . . . . . . . . . . . . . . . 134
A.7. Problema cinemático inverso. a) Solución múltiple, b) codo abajo [Juan, 2006]. . . . 136
A.8. Cinemática inversa para subir un escalón. . . . . . . . . . . . . . . . . . . . . . . . 136
A.9. Las 4 posibles soluciones a la cinemática inversa. . . . . . . . . . . . . . . . . . . . 145

vii
Índice de Tablas

2.1. Tabla comparativa de una mula, Bigdog y LS3 . . . . . . . . . . . . . . . . . . . . 58


2.2. Tabla comparativa de robots cuadrúpedos . . . . . . . . . . . . . . . . . . . . . . . 59

3.1. Medición de profundidad para 5 puntos. . . . . . . . . . . . . . . . . . . . . . . . . 72

4.1. Valores de los parámetros de cada pata del robot. . . . . . . . . . . . . . . . . . . 95


4.2. Costo económico de los materiales, para la construcción del robot. . . . . . . . . . . 97

5.1. Valores de los ángulos para el ciclo de caminado con valores predeterminados. . . . . 112
5.2. Parámetros de los ángulos, aplicando una onda sinusoidal. . . . . . . . . . . . . . . 114

A.1. Distancia de las patas del robot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147


A.2. Ángulos de entrada para la cinemática directa. . . . . . . . . . . . . . . . . . . . . 148
A.3. Coordenadas obtenidas por la cinemática directa. . . . . . . . . . . . . . . . . . . . 148
A.4. Ángulos obtenidos de la cinemática inversa. . . . . . . . . . . . . . . . . . . . . . . 148

ix
Índice de Algoritmos

1. Generador de ciclos de marcha. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108


2. Convertir θ a PWM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
3. Generar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4. Controlador de movimientos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5. Ciclo de marcha con valores predefinidos. . . . . . . . . . . . . . . . . . . . . . . . 111
6. Ciclo de marcha con una onda sinosuidal. . . . . . . . . . . . . . . . . . . . . . . . 117
7. Método de Denavit-Hartenberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

xi
Resumen

Diseño e implementación de un robot cuadrúpedo para el


estudio de algoritmos para generación de ciclos de marcha
por

Benjamı́n Dı́az Santiago


Maestro en Ciencias del Laboratorio de Tecnologı́as de la Información
Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional, 2012
Dr. José Gabriel Ramı́rez Torres, Director

El problema de la locomoción en los robots ha generado varios estudios, por lo que hay una gran
variedad de enfoques propuestos. En esta tesis se presenta el diseño y el desarrollo de un robot
cuadrúpedo que tiene como finalidad proveer de una plataforma fı́sica para el estudio de ciclos de
marcha. Este robot cuenta con 14 grados de libertad (GDL), 3 en cada pata para caminar sobre
terrenos irregulares y 2 GDL en la cabeza, los cuales generan un movimiento pan and tilt. Este
robot está formado por una estructura fı́sica de acrı́lico con una altura de 36cm. El control del
robot es implementado en un FPGA, encargado de generar 2 ciclos de marcha y enviar los comandos
correspondientes a una tarjeta de control de servomotores, la cual genera las señales PWM para cada
servomotor.

xiii
Introducción
1
En este capı́tulo se describirá una breve historia de los robots, su evolución, el problema
de locomoción que se ha generado entre ellos y algunas soluciones que se han propuesto.
También se describirá el planteamiento del problema y los objetivos para dar solución.

1.1 Historia de los robots

Para mejorar sus condiciones de vida y hacer más sencillas sus tareas cotidianas, el hombre ha
desarrollado a través de la historia una gran variedad de máquinas y herramientas. En la actualidad,
una herramienta muy importante en constante desarrollo es el robot, entendido como un sistema
electromecánico que, por su apariencia o sus movimientos, ofrece la sensación de tener un propósito
propio.

Los griegos llamaron autómatas a las máquinas que eran capaces de imitar las funciones
y movimientos de los seres vivos. Algunos de los primeros mecanismos, atribuidos a Herón de
Alejandrı́a (85 d.C.), eran máquinas construidas con dispositivos hidráulicos, poleas y palancas.

1
2 1.1. Historia de los robots

Estos mecanismos no tenı́an una aplicación directa y fueron construidos únicamente con propósitos
de entretenimiento.

Existen algunos autómatas a los que únicamente se hace referencia de manera vaga en algunos
textos, por lo que no podemos saber cuál era su aspecto o manera de funcionar, como el hombre
de hierro de Alberto Magno (1204-1282) o la cabeza parlante de Roger Bacon (1214-1294). El
autómata más antiguo que se conserva hasta nuestros dı́as es el Gallo de Estrasburgo (Figura 1.1),
el cual formaba parte del reloj de la Catedral de Estrasburgo y al dar las horas movı́a el pico y las
alas.

Figura 1.1: Gallo de Estrasburgo.

Otro de los autómatas más destacados de la antigüedad es el pato de Vaucanson (Figura 1.2), el
cual era un pato mecánico que alargaba su cuello para tomar un grano de la mano y tragarlo, para
después evacuarlo; este pato también podı́a beber, chapotear y graznar.

La palabra robot fue usada por primera vez en 1921 por el escritor Karel Capek, en su obra de
teatro Rossum’s Universal Robots. En esta obra los robots servı́an a los humanos en trabajos fı́sicos,
1. Introducción 3

Figura 1.2: Pato de Vaucanson.

hasta que se rebelaron, matando a todos los humanos con excepción de uno de sus creadores, con
la esperanza de que pudieran reproducirse. Este término fue empleado en más trabajos de ciencia
ficción, pero recibió un gran impulso a través del escritor Isaac Asimov. Este autor fue quién acuñó el
término de Robótica como la ciencia del estudio y desarrollo de los robots y estableció, con sus
relatos, las muy conocidas Tres Leyes de la Robótica:

Primera Ley. Un robot no puede perjudicar a un ser humano, ni con su inacción permitir que
un ser humano sufra daño.

Segunda Ley. Un robot debe obedecer toda orden recibida de un ser humano, excepto si tales
órdenes entran en conflicto con la Primera Ley.

Tercera Ley. Un robot debe proteger su propia existencia mientras tal protección no entre en
conflicto con la Primera o la Segunda ley.

En la actualidad, los robots han conocido un gran auge en la industria pues son de gran ayuda en
las tareas repetitivas. La mayorı́a de estos robots se encuentran fijos en un ambiente controlado, por
lo cual no necesitan desplazarse. Sin embargo, con el tiempo, el desarrollo de los robots ha alcanzado
4 1.1. Historia de los robots

otras áreas como la medicina, la milicia, la educación, la diversión y la investigación, donde la


movilidad es uno de los retos principales. Algunos ejemplos se pueden apreciar en el desarrollo de
robots para la exploración de otros planetas, el apoyo para operaciones de pacientes en algunos
hospitales, en la limpieza de los hogares, o sólo para probar teorı́as sobre el comportamiento de los
animales.

Figura 1.3: Diversidad de robots

Es posible ver entonces que el propósito y la forma de los robots ha ido evolucionado junto
con el tipo de tecnologı́a disponible para su desarrollo. Esta evolución constante obliga a que la
definición de qué es un robot también tenga que adaptarse continuamente. En 1979, el Instituto de
Robótica de América lo definı́a como “un manipulador multifuncional reprogramable, capaz de mover
materias, piezas, herramientas o dispositivos especiales, según trayectorias variables, programadas
para realizar tareas diversas” [Barrientos et al., 2007]. Sin embargo, actualmente esta definición
no es suficientemente especı́fica, ya que existen otras máquinas que entran en esta definición
y no son robots, por lo que en una definición más reciente, propuesta por Russel y Norving
[Russell and Norvig, 1996], se le defina como “un agente activo artificial cuyo ambiente es el mundo
fı́sico”. Esta definición incluye cuatro elementos importantes que son:

Agente. Actúa de manera relativamente autónoma, tomando decisiones propias de acuerdo a


la tarea que le ha sido confiada.
1. Introducción 5

Activo. Implica que se mueve y al mismo tiempo que modifica su entorno.

Artificial. Indica que es creado por el hombre.

Fı́sico. No es un programa, sino algo tangible en el mundo real.

Este conjunto de caracterı́sticas destacan a los robots del resto de las máquinas construidas por
el hombre.

1.2 Robots de servicio

Con el paso del tiempo se han encontrado nuevas áreas de aplicación para los robots, fuera
de las lı́neas de producción en las fábricas. A estos robots se les conoce como robots de servicio.
La Federación Internacional de Robótica define un robot de servicio como: un robot que opera de
manera automática o semiautomática para realizar servicios útiles al bienestar de los humanos o a
su equipamiento, excluyendo las operaciones de fabricación [Aracil et al., 2008].

Una caracterı́stica importante de estos robots es que tienen que trabajar en ambientes no
estructurados, en ambientes dinámicos y/o con una estrecha interacción con los humanos. El
comité Technical Committee on Service Robots de la IEEE Robotics and Automation Society
definió en el año 2000 las áreas de aplicación de los robots de servicios, que se pueden dividir
en dos grandes grupos:

1. Sectores productivos no manufactureros tales como edificación, agricultura, naval, minerı́a,


medicina, etc.

2. Sectores de servicios propiamente dichos: asistencia personal, limpieza, vigilancia, educación,


entretenimiento, etc.

Algunas de las caracterı́sticas principales de los robots de servicio que los diferencian de los robots
industriales son:
6 1.2. Robots de servicio

No se trata de simples brazos mecánicos, y poseen una estructura mecánica más compleja que
puede tener más extremidades u otros dispositivos.

En general los robots de servicio poseen dispositivos que les permiten desplazarse en los
diferentes medios en los que se desenvuelven.

Poseen un gran sistema sensorial, para manipular los objetos o desplazarse adecuadamente.

Ası́, un robot de servicio está compuesto por distintos elementos, como se muestra en la Figura
1.4, y que se describen a continuación:

Figura 1.4: Componentes de un robot

Sensores. Le ayudan al robot a conocer el medio que lo rodea. Pueden ser cámaras, aceleró-
metros, sensores ultrasónicos, etc.

Inteligencia artificial. Procesa la información que es tomada del medio, para integrarla en su
representación espacial y tomar las decisiones que lo acerquen a su objetivo.

Control. Es la interacción de hardware (actuadores y sensores) con el software de bajo nivel.


1. Introducción 7

Comunicación. Es el medio necesario para la transmisión de la información, ya sea con otros


robots, computadoras o el ser humano.

Potencia. Se encarga del almacenamiento y distribución de la energı́a requerida por los otros
componentes.

Actuadores. Son los dispositivos electromecánicos que permiten al robot desplazarse y modificar
el medio que lo rodea.

Arquitectura mecánica. Es la estructura sobre la cual se unen todos los componentes de manera
fı́sica de tal forma que realicen la actividad para la que fueron creados.

Existe una gran variedad de robots de servicios, y algunos de los más desarrollados los encontramos
en el área doméstica, como el robot aspiradora (Figura 1.5). Éstos están programados para cubrir
todo el suelo del espacio a limpiar, se desplazan siguiendo las paredes y muebles, además de tener la
capacidad de buscar una fuente de alimentación cuando sus baterı́as están bajas.

Figura 1.5: Robot aspiradora


8 1.3. Locomoción

Otro ejemplo de esta clase de robots es el robot Robotet (Figura 1.6), utilizado para dar
mantenimiento a las lı́neas de alta tensión. Con sus brazos mecánicos, este robot permite la
intervención en un área que serı́a potencialmente peligrosa para un humano.

Figura 1.6: Robotet

1.3 Locomoción
La locomoción es una parte fundamental en los robots de servicio, ya que les permite desplazarse
en ambientes no estructurados y desenvolverse con los humanos. Por este motivo la locomoción es
un campo muy importante en el área de la robótica de servicios. La Real Academia Española define
la locomoción como Traslación de un lugar a otro.

Los robots se pueden clasificar según el principio mecánico que utilizan para su locomoción, el
cual está fuertemente ligado al tipo de entorno en que deben de realizar sus tareas. Una posible
clasificación de los robots de servicio puede ser la siguiente:

Robots submarinos. Son especı́ficos para trabajar bajo el agua, donde a los humanos se les
dificulta el acceso. Un ejemplo es el robot Remo I [Álvarez et al., 2009](Figura 1.7) el cual es un robot
1. Introducción 9

1
teleoperado cuyo cuerpo principal es una estructura paralela tipo Stewart-Gough lo que le permite
realizar una gran variedad de movimientos con sólo modificar la orientación y el desplazamiento del
impulsor, permitiéndole el acceso a lugares de difı́ciles.

Figura 1.7: Robot submarino: Remo I

Robots voladores. Se trata de un área de desarrollo bastante reciente, pues involucra el control
de un sistema altamente dinámico. El robot se encuentra constantemente compensando la acción
de la gravedad y se ha perdido el contacto directo con el medio ambiente, lo que lo hace altamente
sensible a perturbaciones externas. Para mantenerse en vuelo se utilizan hélices, alas y/o turbinas. Las
aplicaciones actuales están encaminadas hacia la exploración, la inspección y la vigilancia. Un ejemplo
tı́pico sobre trabajos desarrollados con robots voladores es el propuesto en [Wood et al., 2005], en
el cual se hacen investigaciones del vuelo a partir de un robot volador de 10 cm (Figura 1.8).

Robots tipo serpiente (Figura 1.9). En este caso el cuerpo del robot es una larga cadena cinemática
articulada, de tal manera que se pueden tener múltiples contactos entre el robot y el suelo. El
1
Un tipo de robot paralelo que tiene 6 actuadores prismáticos.
10 1.3. Locomoción

Figura 1.8: Robot volador.

robot puede utilizar entonces estos contactos para levantar una parte de su cuerpo por encima
de los obstáculos, ası́ como empujarse y arrastrarse a través de espacios reducidos. En general, el
movimiento de estos robots es lento e implica una coordinación compleja del gran número de motores
que componen al robot.

Figura 1.9: Robot tipo oruga.

Robots espaciales. Son principalmente utilizados para la exploración de la superficie de otros


planetas, al igual que el ensamblaje y mantenimiento de satélites artificiales. Este tipo de robots
trabajan bajo condiciones extremas: deben ser capaces de soportar las grandes aceleraciones
requeridas en los viajes espaciales, las temperaturas extremas, los cambios brutales de presión, además
1. Introducción 11

de soportar las radiaciones cósmicas. Por otra parte, en el caso de los robots de exploración planetaria,
los grandes intervalos de tiempo requeridos para la comunicación entre la Tierra y el robot, imponen
que el robot sea lo suficientemente autónomo, no sólo en la administración de energı́a, sino en
la toma de decisiones, para lograr completar sus misiones con el mı́nimo de intervención humana
requerida. Algunos de los robots más conocidos son el Spirit (Figura 1.10) y el Opportunity, que
fueron enviados a Marte a finales del 2003 y del 2004.

Figura 1.10: Robot espacial

Robots con ruedas. Se trata de los robots móviles con mayor existencia, ya que su control tiene
menor complejidad y utiliza menos componentes mecánicos y electrónicos para su construcción en
comparación con los demás medios de locomoción. Son además muy factibles económicamente, pero
sus aplicaciones están generalmente limitadas a ambientes controlados, como habitaciones, oficinas
y lugares donde el suelo es continuo (Figura 1.11).

Robots con patas. Los robots con patas están inspirados directamente de la naturaleza, pues la
mayorı́a de los seres vivos capaces de desplazarse lo hacen por medio de extremidades articuladas.
Estas extremidades les permiten tener un mejor desempeño al moverse en ambientes no estructurados,
donde el terreno ya no es plano y puede presentar grandes discontinuidades, como obstáculos,
12 1.3. Locomoción

Figura 1.11: Robot con ruedas

depresiones o elevaciones. A su vez, estos robots se clasifican generalmente por el número de


patas que poseen, pudiendo ser bı́pedos, cuadrúpedos, hexápodos, etc., como los mostrados en
la Figura 1.12. Entre más patas tenga un robot, el problema de mantener el equilibrio es menor,
pues pueden mantener múltiples puntos de contacto con el piso mientras se desplazan, y son capaces
de transportar un peso mayor. Sin embargo, con el número de patas se incrementa el consumo de
energı́a y el problema de control y coordinación del robot, por lo que en su conjunto aumenta en
complejidad.

Figura 1.12: Robots con patas.


1. Introducción 13

Por tratarse de dispositivos terrestres, los robots con ruedas y los robots con patas son los
más adecuados para desplazarse en ambientes donde se desenvuelve el ser humano. Mientras que
los primeros se pueden desplazar en lugares cerrados, los segundos tienen una mayor ventaja sobre
terrenos irregulares. Algunas ventajas relevantes de los robots con patas son:

Movilidad. Tienen una estructura mecánica que les permite tener una movilidad omnidireccional
en cualquier momento. Pueden además realizar movimientos sobre su cuerpo sin necesidad de
levantar sus patas, como inclinar, rotar y cambiar de posición (Figura 1.13).

Figura 1.13: Movilidad

Superación de obstáculos. Pueden superar obstáculos, donde los robots con ruedas ya no
podrı́an acceder (Figura 1.14).

Figura 1.14: Superación de obstáculos

Suspensión activa. Muchas veces el robot necesita permanecer de manera horizontal mientras se
desplaza sobre un terreno irregular. Mientras que la inclinación de los robots con ruedas cambia
con las irregularidades del terreno, los robots con patas pueden usar sus extremidades como
una suspensión activa para adaptarse a las variaciones de altura, generando un movimiento
más suave durante el desplazamiento, como se muestra en la Figura 1.15.

Acceso a terreno discontinuo. Otra ventaja de los robots con patas es que pueden acceder a
terrenos discontinuos como se puede apreciar en la Figura 1.16, mientras que los robots con
14 1.3. Locomoción

Figura 1.15: Suspensión activa

ruedas tienen mayor complejidad para avanzar o simplemente no pueden pasar en superficies
que no sean continuas.

Figura 1.16: Acceso a terreno discontinuo

Deslizamientos. Los robots con ruedas tienen el problema de que pueden tener deslizamientos
o derrapes no deseados, como se observa en la Figura 1.17. Los robots con patas, por otra
parte, tienen un contacto casi puntual con el suelo, por lo que los derrapes no deseados son
reducidos.

Figura 1.17: Deslizamientos

Velocidad media. La ventaja de acceder más fácilmente a terrenos irregulares también se


manifiesta en un movimiento a velocidad constante. En los robots con ruedas, la velocidad
de avance está fuertemente ligada con las irregularidades del terreno, como se muestra en la
Figura 1.18.
1. Introducción 15

Figura 1.18: Velocidad media

Sin embargo, al desplazarse sobre extremidades articuladas, los robots con patas presentan algunas
desventajas que deben ser consideradas:

Mecánica. La rueda siempre ha sido más fácil de implementar que las articulaciones sobre un
robot. Además, un robot con patas necesita de al menos 2 (idealmente 3) articulaciones en
cada pata, para poder desplazar la pata libremente a diferentes posiciones. Si deseamos que
el robot pueda mantener un equilibrio estático durante su caminado, entonces debe mantener
3 patas en contacto con el suelo y mientras las otras patas se desplazan para caminar, por lo
que el diseño mecánico es considerablemente más complejo que un robot con ruedas.

Electrónica. Se debe controlar independientemente cada una de las articulaciones, por lo que
necesita de un mayor número de componentes electrónicos. Además, serán necesarios sensores
que permitan al robot conocer el contacto de las patas con la superficie.

Algoritmos de control. Para administrar cada uno de los actuadores se deben generar algoritmos
que requieran mayor procesamiento computacional, puesto que necesitan controlar todas las
articulaciones al mismo tiempo.

Velocidad máxima. En superficies planas los robots con ruedas son más rápidos que los robots
con patas y esto lo podemos ver con los automóviles que alcanzan una gran velocidad, mientras
que el mecanismo con patas más rápido que se conoce es el guepardo, el cual obviamente es
superado por uno de ruedas.

Costo. Frecuentemente podemos observar que el costo es directamente proporcional a la


complejidad del robot, por lo que un mecanismo con patas tendrá un mayor costo. Prueba
de ello lo podemos ver en el precio y la cantidad de las articulaciones de un robot con patas,
respecto a un robot con ruedas.
16 1.4. Robots cuadrúpedos

Puesto que la principal motivación de nuestro trabajo es el desarrollo de una plataforma para el
estudio de distintos generadores de ciclos de marcha, queda determinado de manera natural el diseño
y construcción de un robot con patas.

1.4 Robots cuadrúpedos

Anteriormente se mencionaron las ventajas y desventajas de los robots con patas, al compararlos
con otros medios de locomoción. Ası́ mismo, estos robots pueden a su vez clasificarse por el número
de patas que poseen. En general, los robots más populares son los robots bı́pedos, los cuadrúpedos
y los hexápodos.

Figura 1.19: Robots con patas

Los robot bı́pedos son muy interesantes desde el punto de vista tecnológico, puesto que están
diseñados con una morfologı́a similar a la de los humanos para que se puedan desenvolver en el mismo
ambiente que ellos. Este diseño resulta ser entonces muy apropiado para un robot de servicio, ya que
puede interactuar directamente con las personas de una forma más amigable. Por otro lado involucra
también importantes retos tecnológicos: un gran número de grados de libertad, una velocidad de
desplazamiento relativamente baja y un sistema de control complejo para mantenerlo estable, ya
que durante el desplazamiento existen momentos en los cuales el robot no se encuentra en equilibrio
estático.
1. Introducción 17

Los robots cuadrúpedos se encuentran en un punto intermedio entre los bı́pedos y los hexápodos,
ya que tienen una cantidad de patas que les permite desplazarse manteniendo tres patas en el suelo,
mientras mueven la cuarta pata en la dirección de movimiento. De esta manera pueden asegurar el
equilibrio estático durante el desplazamiento, con una velocidad mayor a la de los robots bı́pedos.

Los robots hexápodos tienen más patas que los anteriores, lo que tiene como ventajas una mayor
velocidad, una mejor estabilidad en su caminado y poder cargar objetos más pesados. Sin embargo,
son más costosos en su control, en sus componentes, en el consumo de energı́a y en el aspecto
económico.

Un resumen de las ventajas entre estos robots se puede apreciar en la Figura 1.20.

Figura 1.20: Comparación de robots con patas


18 1.5. Ciclos de marcha

1.5 Ciclos de marcha


El desplazamiento de los robots con patas se logra coordinando los distintos motores en un ciclo
de marcha. Un ciclo de marcha es la secuencia de movimientos rı́tmicos alternados de las patas (de
un animal o de un mecanismo) para lograr el desplazamiento del centro de gravedad hacia adelante.

La Figura 1.21 muestra un ejemplo de distintos ciclos de marcha que pueden utilizarse en un
robot cuadrúpedo. La gráfica muestra los momentos en que las patas se mantienen en contacto con
el suelo (en gris oscuro) y los momentos en que las patas se desplazan hacia adelante (gris claro).
El valor β indica la relación entre el tiempo que la pata permanece en contacto con el suelo con
respecto al tiempo total del ciclo de marcha.

Figura 1.21: Tipos de ciclo de marcha [Fuentes, 2006].

En un ciclo de marcha hay una variedad de problemas a considerar, pues se deben cumplir
diferentes restricciones para generar un ciclo de marcha adecuado. Algunas de estas restricciones
son: lograr el desplazamiento del cuerpo a velocidad constante, mantener el equilibrio durante el
1. Introducción 19

desplazamiento y buscar un consumo eficiente de la energı́a.

Los ciclos de marcha pueden clasificarse en: estáticos, cuasiestáticos o dinámicos, dependiendo
del equilibrio estático que mantiene el cuerpo del robot durante el ciclo de marcha.

Estáticos. El caminado estático es aquel donde el robot en todo momento se encuentra estable.
Esto significa que si en cualquier instante el movimiento es detenido, el robot estará en una
posición estable indefinidamente. Esto se logra manteniendo la proyección vertical del centro
de masa del robot dentro del polı́gono de soporte, formado por los puntos de apoyo de las
patas con el suelo como lo muestra la Figura 1.22. Un ejemplo de este tipo de ciclos es el de
Caminado, con β = 75 mostrado en la Figura 1.21, pues siempre existen tres patas en contacto
con el suelo. En general, al utilizar un caminado estático se logra un alto grado de estabilidad
durante el movimiento, en detrimento de la velocidad de desplazamiento. Este tipo de caminado
es implementado para lugares con terreno escabroso [Pongas, 2007], [Fuentes, 2006].

p3
p4

p1 p2

Figura 1.22: Equilibrio estático de un robot.

Cuasiestáticos. En el caminado cuasiestático la proyección del centro de masa puede no


encontrarse dentro del polı́gono de sustentación. Sin embargo, el punto donde los momentos
horizontales totales del robot son nulos sı́ se encuentra dentro del polı́gono de sustentación.
Esta proyección cinemática (toma en cuenta la velocidad) del centro de gravedad del robot se
denomina ZMP (Zero Moment Point - Punto de momento cero) y es el principio básico de la
20 1.5. Ciclos de marcha

mayorı́a de los robots bı́pedos, desde los primeros diseños [Li et al., 1992], como los actuales,
[Sardain and Bessonne, 2004], [Contreras, 2008].

Un ejemplo del caminado cuasiestático lo vemos en el trote de los cuadrúpedos. En este ciclo
de marcha existe en todo momento al menos una pata en contacto con el suelo, como se puede
apreciar en la Figura 1.21. Las patas se encuentran la mitad del tiempo en el suelo, pisando de
manera alternada para generar un movimiento más rápido, con un equilibrio menos estable.

Dinámicos. El caminado dinámico se distingue porque existen momentos durante la marcha


en que ni el centro de masa ni el ZMP se encuentran dentro del polı́gono de apoyo. Existen
incluso instantes donde ninguna pata está en apoyo en el piso. Estos ciclos se caracterizan
por alternar fases de apoyo simple con el piso, fases de apoyo con contacto múltiple y fases
balı́sticas (sin contacto con el suelo). Este caso se puede apreciar en los cuadrúpedos cuando
galopan, como lo muestra la Figura 1.21, dado que cada pata toca el suelo una cuarta parte
del ciclo, y la mitad del tiempo el robot se encuentra suspendido en el aire. Uno de los trabajos
en la literatura explica como implementar este caminado, para hacer que el robot pueda correr
[Hiroshi et al., 1989].

Para realizar los ciclos de marcha existen diversas estrategias. Una de ellas es utilizar una secuencia
de valores predefinidos de cada una de las articulaciones del robot, generados fuera de lı́nea y
almacenados en la memoria para su posterior uso. Esta estrategia también es útil cuando se requiere
resolver una situación imprevista, como evadir o subir un obstáculo, como se muestra en la Figura
1.23. Para ello se resuelve el problema de la cinemática inversa determinando los puntos donde debe
colocarse cada pata.

Otra estrategia para generar los ciclos de marcha es por medio de métodos de optimización sobre
algunos parámetros de desempeño, como puede ser el consumo de energı́a [Roussel et al., 1998],
[Channon et al., 1990] durante el movimiento.
1. Introducción 21

Figura 1.23: Robot subiendo un obstáculo.

También pueden utilizarse técnicas de interpolación entre puntos, como pueden ser los splines.
Los splines son fáciles de representar y requieren un proceso de cómputo simple, por lo que son
utilizados para generar curvas que representan el desplazamiento de las patas. Algunos ejemplos de
este tipo de enfoque los podemos encontrar en los robots industriales [Thompson and Patel, 1987].

Finalmente, un método más reciente para generar los ciclos de marcha es el uso de
un generador central de patrones (Central Pattern Generator-CPG, por sus siglas en inglés
[Huitzil and Girau, 2008]). Se trata de una técnica bioinspirada, que trata de replicar los centros
neurales, situados en la espina dorsal de los vertebrados, encargados de generar patrones rı́tmicos en
el organismo, aún con la ausencia de un estimulo. Ası́, los CPGs son los responsables de generar los
estı́mulos nerviosos hacia los músculos para diferentes funciones, como la respiración, la digestión y
la locomoción. En la robótica se utiliza el CPG para generar la locomoción de los robots, haciendo
uso de osciladores los cuales producen patrones rı́tmicos para el movimiento de las articulaciones.

Algunas formas de implementar el CPG es utilizar un oscilador para producir el patrón rı́tmico.
22 1.6. Planteamiento del problema

Los osciladores difieren en la complejidad de su implementación, desde el más sencillo que genera
una onda sinusoidal, hasta osciladores más complejos como los osciladores caóticos acoplados
[Castellini et al., 2004] o basados en el método Van der Pol [Barrón, 2009]. El oscilador sinusoidal
genera una onda representada por la siguiente fórmula:


ϕ(t) = A sin( φ)
T

Donde:
A: Es la amplitud de la onda.
T: Es el periodo (frecuencia del oscilador).
φ: Es el ángulo inicial.

Cada onda generada es implementada en cada pata del robot, para producir un movimiento y
ası́ generar la locomoción.

1.6 Planteamiento del problema

Como se ha visto, los robots con patas sobresalen dentro de la categorı́a de robots de servicio,
debido a que tienen un mejor desenvolvimiento en ambientes dinámicos, permitiendo una interacción
directa con los humanos. Por otro lado, el estudio de los robots con patas también trae consigo
algunos problemas, siendo uno de los principales la locomoción. En el intento de resolver este
problema se han generado varias propuestas utilizando varios enfoques, la mayorı́a inspirados en
la naturaleza.

Para el estudio de la locomoción es necesario realizar pruebas, algunos centros de investigación


utilizan simuladores, ya que les permiten emular los ciclos de marcha. Sin embargo, los simuladores
carecen de total fiabilidad en los resultados, pues no presentan un modelo exacto del entorno real.
1. Introducción 23

Por esta razón se requiere de una plataforma fı́sica en la cual implementar las pruebas, para asegurar
que los datos sean válidos. Algunas caracterı́sticas importantes que debe poseer la plataforma son:

Un robot de bajo costo. El robot debe realizarse con el menor costo posible, que permita
ser accesible para su reproducción en otras instituciones, sin que la construcción del robot
represente un gasto económico mayor. También debe utilizar la menor cantidad en el consumo
de energı́a, para sus movimientos.

Capacidad para desarrollar varios tipos de ciclos de marcha y acceder a terrenos irregulares. La
configuración de las patas, debe ser adecuada para generar ciclos de marcha, con diversos
enfoques como los splines o los CPGs. También debe ser una configuración que permita
desplazar al robot en ambientes donde existen obstáculos y el terreno sea irregular.

Retroalimentación del medio para generar la locomoción de acuerdo con las condiciones
externas. Se requiere de sensores que puedan representar el medio ambiente donde se mueve
el robot, para generar de manera adecuada el ciclo de marcha que requiera.

Ser lo más autónomo posible, esto es que no dependa de estar conectado por medio de cables.
Una caracterı́stica principal de un robot móvil, es su autonomı́a, ya que no está en un lugar
fijo, dependiendo de una fuente de electricidad, para su funcionamiento.

Capacidad de realizar operaciones aritméticas en una representación de punto fijo, como


cálculos neuronales [Huitzil and Girau, 2008], ya que proporcionan menor coste.

Realizar tareas de manera distribuida. Algunas actividades que realiza deben ejecutarse en
paralelo, algunas con diferentes requerimientos, por ejemplo sensar el medio y analizarlo para
la toma de decisiones, mientras el robot está caminando, por esta razón debe poder realizar
tareas en diferentes módulos de manera distribuida.

Considerando estas caracterı́sticas necesarias para la construcción del robot, el contexto del
trabajo y la descripción del problema, se generan las siguientes preguntas de investigación:
24 1.7. Objetivos

1. ¿Será el diseño final adecuado para implementar ciclos de marcha?

2. ¿Será la arquitectura de control adecuada para satisfacer las necesidades de las tareas?

3. ¿Se podrán implementar sobre el robot más de un enfoque para generar ciclos de marcha?

1.7 Objetivos
Conocido el problema, es necesario establecer los objetivos para darle solución. Estos objetivos
abarcan desde la recopilación de la información más relevante, hasta la implementación y pruebas de
la plataforma establecida, pasando por la creación de herramientas como el diseño del robot y los
modelos matemáticos.

1.7.1 Objetivo general

Diseñar e implementar un robot cuadrúpedo de bajo costo, que pueda ser útil al desarrollo de
algoritmos para generación de ciclos de marcha.

1.7.2 Objetivos especı́ficos

Diseñar y desarrollar un robot cuadrúpedo con las siguientes caracterı́sticas:

• 3 grados de libertad por cada pata. En nuestro estudio del estado del arte pudimos
observar que la mayorı́a de los robots actuales poseen 3 GDL en cada pata, ya que esto
permite posicionar el extremo de la pata en cualquier lugar en el espacio de 3 dimensiones
debajo del cuerpo del robot.

• Tarjetas de control basadas en FPGA, ya que tienen ciertas caracterı́sticas como:

◦ Proporcionan autonomı́a. Dado que puede programarse un sistema completo dentro


de un FPGA, no es necesario que exista una conexión fı́sica con alguna computadora
externa. Con eso se consigue que el robot sea realmente autónomo, pues puede
desplazarse libremente, ya que su control no requiere de otra computadora.
1. Introducción 25

◦ Permite realizar operaciones aritméticas de gran precisión. El uso del FPGA permite
programar directamente el hardware para realizar operaciones que requieren de una
mayor precisión.

◦ Realizar tareas de manera paralela. En un FPGA es posible programar módulos


diferentes en áreas distintas del dispositivo, con lo que se logra un verdadero cómputo
en paralelo entre las distintas tareas que debe desarrollar el robot.

◦ Es flexible al programar directamente en hardware. Esta es una caracterı́stica muy


importante de los FPGAs, puesto que se pueden reprogramar, permitiendo que
puedan expandirse y adaptarse para posibles nuevos componentes.

• Visión estereoscópica, con movimiento pan and tilt. La visión estereoscópica permite
obtener una representación del medio ambiente en tres dimensiones, y el movimiento pan
and tilt, amplia el rango de visión del sistema.

• Buen compromiso entre costo y desempeño. Un robot que sea viable económicamente para
su construcción en varias instituciones, de tal manera que sea una plataforma atractiva
para realizar experimentación de ciclos de marcha.

Validar el diseño con la implementación de algunos algoritmos para la generación de ciclos de


marcha.

1.8 Organización de la tesis

La tesis está organizada en 6 capı́tulos de la siguiente manera: en el capı́tulo 1 se describió la


historia y la importancia de los robots de servicio, haciendo un énfasis particular en los robots
cuadrúpedos, también se mencionó el problema que se desea resolver y los objetivos que se plantearon
para dar una solución. En el capı́tulo 2 se menciona brevemente acerca de los CPG (Generadores
centrales de patrones), también se describe el estado del arte de los robots cuadrúpedos más
sobresalientes, ası́ como algunos trabajos que se han realizado sobre estos robots referentes a los
ciclos de marcha. El capı́tulo 3 está compuesto por una descripción amplia de conceptos y ejemplos
26 1.8. Organización de la tesis

para el trabajo, como los modelos cinemáticos y los CPG. También se describen algunos componentes
como los FPGA (Matriz de compuertas programables) y los actuadores. En el capı́tulo 4 se menciona
el enfoque propuesto, detallando los componentes del robot y su diseño. El capı́tulo 5 contiene la
implementación de 2 ciclos de marcha y los resultados obtenidos en cada enfoque. En el capı́tulo 6
contiene las conclusiones obtenidas en todo el trabajo y los posibles trabajos que se pueden desarrollar
con el robot. Además de estos capı́tulos se agrega una sección de anexos, donde se describen los
modelos cinemáticos del robot.
Estado del arte
2
En los últimos años hemos sido testigos del desarrollo de una gran cantidad de robots
cuadrúpedos, con aplicaciones en muy diversas áreas y con objetivos muy distintos, pero
en su mayorı́a realizados para el estudio de la locomoción autónoma. En este capı́tulo
mencionaremos los robots cuadrúpedos más representativos en diferentes áreas, como
entretenimiento, investigación y el área militar. También se describirán algunos trabajos
sobresalientes sobre ciclos de marcha, haciendo un especial énfasis en los generadores
centrales de patrones (CPG).

2.1 Generador central de patrones

Un Generador Central de Patrones (CPG por sus siglas en inglés) es una red neuronal que se
encuentra en el ganglio o médula espinal de los seres vivos (Figura 2.1). El CPG es el encargado de
generar ritmos repetitivos como respirar, digerir, nadar o caminar [Huitzil and Girau, 2008].

Su funcionamiento consiste en recibir un comando neuronal y a partir de ahı́ producir patrones

27
28 2.1. Generador central de patrones

Figura 2.1: Localización de la medula espinal, donde se encuentra el CPG

rı́tmicos por medio de osciladores. Estos patrones son enviados a las neuronas motoras, encargadas de
generar los movimientos en los sistemas correspondientes. Cabe destacar que los CPG no requieren
de un sistema de retroalimentación para su funcionamiento.

2.1.1 Implementación

En la robótica se han desarrollado varias soluciones para el problema de la locomoción, muchas


de ellas inspiradas en la naturaleza. Cuando se descubrió la existencia de los CPG se implementaron
algunas soluciones utilizando este enfoque. En estas propuestas se crea un generador a partir
de osciladores, las cuales no requieren de un sistema de retroalimentación. Esto puede resultar
favorable para los robots que no cuentan con un sistema de sensores. Sin embargo, un mecanismo de
retroalimentación puede ser muy importante ya que regula la frecuencia y la fase de los osciladores,
permitiendo cambiar los patrones de locomoción de acuerdo con el medio ambiente o las necesidades
que requiera.

La inspiración biológica es una base fundamental que se puede considerar como ventaja, ya que
nos permite observar una diversidad de movimientos generados de manera eficiente. El CPG, al ser
una red neuronal independiente de otras actividades, muestra una descentralización que permite
2. Estado del arte 29

realizar procesos especializados de manera separada, lo cual se puede representar en un modelo


computacional como un módulo encargado de generar patrones.

Aunque este enfoque parece ser una buena solución, aún hay muchas investigaciones que realizar
en este campo, pues no existe una metodologı́a formal a seguir para obtener resultados comparables
a los observados en la naturaleza.

2.1.2 Algunos trabajos

En estos años se han elaborado algunas pruebas para implementar un CPG como modelo
computacional, para dar solución a la locomoción de los robots. Entre estos trabajos podemos
mencionar:

Uso del robot “Tekken” para la adaptación de un caminado dinámico. En este trabajo se
realizaron pruebas sobre el robot Tekken, del cual hablaremos más adelante, usando CPG en
terrenos irregulares con bordes de 2.1 cm de alto y 4 cm de largo [Fukuoka et al., 2003a].

Osciladores acoplados caóticos [Castellini et al., 2004]. En este artı́culo se utilizan osciladores
acoplados por el método de Pyragas para dar solución a la locomoción. Se utilizan los CPG y
un método de sincronización con un retardo que varı́a entre 0 y 40 u.t. (unidades de tiempo).
Para su representación se utiliza una matriz binaria de 2 × 2, donde se le asigna el valor de
1 a la extremidad apoyada, y un valor de 0 a la extremidad en movimiento no apoyada. Los
valores de la matriz corresponden a las extremidades que se muestran:

 
DelanteraIzquierda DelanteraDerecha
C= 
T raseraIzquierda T raseraDerecha

Ası́, el andar es una concatenación de matrices del CPG. Por ejemplo la secuencia periódica
correspondiente al pronk 1 es:
1
Un tipo de ciclo de marcha donde las cuatro extremidades se mueven en fase y se asemeja al saltar de los bı́pedos
[Castellini et al., 2004].
30 2.1. Generador central de patrones

   
 1 1 0 0 
 ; 
 1 1 0 0 

Esto permite visualizar mejor las simetrı́as del andar primario, aunque se pierde la noción de
los intervalos de tiempos entre patrones. Por ello se usa un oscilador caótico, el cual genera
los intervalos de tiempos por medio de una variable aleatoria.

Implementación de un CPG en Cheetah [Rutishauser et al., 2008b]. En este artı́culo se describe


como implementan un CPG, para generar 3 tipos de ciclos de marcha, (sólo 2 fueron
estudiados), obteniendo como resultado un caminado estable con una velocidad máxima de 25
cm/seg en el caminado, y 11 cm/seg en el caminado a paso.

El movimiento de un brazo robótico usando CPG [Peña, 2008]. Este trabajo se desarrolló en
una tesis, en la cual implementan un modelo en base a las redes neuronales celulares analógicas
(RNCA) las cuales están basadas en redes neuronales artificiales [Jiménez and Ramı́rez, 2005].
El modelo de las RNCA permite generar un movimiento en un brazo robótico de 3 GDL, de
tal manera que emula el movimiento de un brazo real cuando una persona está caminando. El
modelo que se implementó se describe en las ecuaciones 2.1, 2.2 y 2.3.

dx1
= −x1 + αy1 − βy2 + i1 (2.1)
dt
dx2
= −x2 + αy2 − βy2 + i2 (2.2)
dt
1
yi = (|xi + 1| − |xi − 1|) para i = 1, 2 (2.3)
2

Estos modelos se implementaron en amplificadores operacionales y después de realizar una


búsqueda de parámetros se encontraron que los valores de α = 1.5, β = 1, i1 = −0.0005 e
i2 = −0.0019 dieron como resultado un movimiento similar al de un brazo humano, como se
2. Estado del arte 31

muestra en la gráfica 2.2.

Figura 2.2: Comparación de la RNCA con el modelo de referencia humano.

“Los resultados nos indican que es posible llevar a cabo el control de posición del brazo robot
utilizando amplificadores operacionales organizados bajo la estructura de las redes neuronales
celulares” [Peña, 2008].

2.2 Robots cuadrúpedos

A lo largo de la historia se han diseñado y desarrollado una amplia variedad de robots: desde
los robots fijos para la industria, hasta los robots móviles para el servicio y la exploración. Muchos
de los diseños de los robots móviles están inspirados en la naturaleza, por lo que es muy común
encontrar robots cuadrúpedos con forma de perro o de mula. En esta sección se describirá de forma
cronológica una serie de robots cuadrúpedos que se han desarrollado con diferentes propósitos, como
el entretenimiento, la investigación y el uso militar. Al final se muestra una Tabla comparativa con
algunas caracterı́sticas relevantes de estos robots.
32 2.2. Robots cuadrúpedos

2.2.1 AIBO

La compañı́a Sony ha desarrollado una variedad de robots, entre ellos el robot cuadrúpedo AIBO,
creado en Japón para comercializarse como un robot de compañı́a. Su evolución a través de los años
mejoró su robustez y permitió ser una plataforma adecuada para la investigación. Algunos trabajos
representativos ([Hornby, 2000], [Kim and Uther, 2003], [Seiji and Tomohiro, 2004], [Hau, 2006],
[Suzuki, 2007]) son detallados en los párrafos siguientes.

El primer prototipo de AIBO fue creado en 1990, el cual siguió desarrollándose hasta llegar a su
versión final ERS-7M3 en el 2005. A pesar de contar con un gran éxito entre la población mundial
y cientı́fica, en el año 2006 se canceló su comercialización. Durante sus 15 años de evolución, se
pueden notar grandes cambios tanto en su hardware como en su diseño: como puede apreciarse entre
el prototipo 2 (Figura 2.3) y su última versión (Figura 2.4).

Figura 2.3: Prototipo 2 del robot AIBO [Dedo and Garcı́a, 2008]

Algunas de las caracterı́sticas más relevantes de AIBO, es la capacidad de reconocer gestos,


generar respuestas a las caricias, una gran flexibilidad en sus movimientos y la capacidad de
“aprender”. AIBO responde dependiendo de la interacción con el usuario, esto es, si recibe
atención o no, generando un comportamiento distinto para distintos propietarios y adquiriendo cierta
2. Estado del arte 33

“personalidad”.

La versión final de AIBO cuenta, entre otras caracterı́sticas, con lo siguiente:

3 grados de libertad por cada pata, lo que le confiere la capacidad de realizar gestos muy
suaves y naturales.

Conexión inalámbrica.

Variedad de sensores, en particular en las almohadillas de las patas para detectar las patas en
apoyo con el suelo, ası́ como varios sensores táctiles en el cuerpo para reconocer las caricias
del propietario.

Por tratarse de un robot de compañı́a, se diseñó con dimensiones muy pequeñas: 18 cm de


ancho, 31.9 cm de largo y 27.8 cm de alto.

Un peso de 1.6 Kg.

Un procesador RISC de 64 bits a 576 MHz.

Lenguaje de programación Mind3, creado por Sony.

Sistema operativo OPEN-R, que permite al propietario la creación de sus propias secuencias
de movimientos y de interacción con el robot.

Este robot posee caracterı́sticas relevantes que le permiten realizar diferentes actividades,
principalmente encaminadas a la interacción con humanos, como reconocer mandos vocales y
reaccionar a las caricias, pero también permite desarrollar aplicaciones propias escritas en su lenguaje
de programación. Sin embargo, su principal inconveniente es que ya no se encuentra disponible
comercialmente, pues Sony descontentó su fabricación, y los pocos ejemplares a la venta tienen un
precio muy alto.

Algunos de los trabajos publicados utilizando esta plataforma son:


34 2.2. Robots cuadrúpedos

Figura 2.4: Robot AIBO modelo ER7-EM3, año 2006 [Dedo and Garcı́a, 2008]

En el año 2000 se realizó un trabajo [Hornby, 2000], en el cual se utilizan algoritmos evolutivos
para la mejorar el caminado del robot, realizando pruebas sobre diferentes superficies para
mejorar su robustez. Al final se concluye que este enfoque es más rápido que los caminados que
se generan de manera manual, que el robot utilizaba en esas fechas. La función de evaluación
que se utilizó está descrita por las ecuaciones 2.4, 2.5, 2.6 y 2.7:

score = v(dstart , dstop , time) × s(θ, dstop ) (2.4)

dstart − dstop
v(dstart , dstop , time) = (2.5)
time
dstop (f (θ) − 1) + 80 − 10f (θ)
s(θ, dstop ) = (2.6)
70
|θ|
f (θ) = 1 − (2.7)
900

Donde:

dstop y dstart son las distancias iniciales y finales


80 y 10 son constantes del valor mı́nimo y máximo de los sensores
2. Estado del arte 35

θ es el ángulo que se forma entre la dirección actual a la dirección objetivo.

Después de aplicar el algoritmo evolutivo se obtuvo una velocidad máxima de 600 cm/min
en una superficie plana, mejorando el caminado que estaba preprogramado de fábrica
(450 cm/min).

En el 2003 [Kim and Uther, 2003], se utilizó al robot AIBO como plataforma para la
competencia RoboCup 2 (Figura 2.5), se mejoró su desempeño para incrementar su estabilidad
y su velocidad, de tal forma que le permitiera correr en esta competencia.

Figura 2.5: Competencia de Robocup [Kim and Uther, 2003]

El problema consiste en obtener velocidad y estabilidad en el caminado del robot, lo cual genera
un impacto significativo en la eficiencia del equipo robótico, para jugar fútbol. Ası́, el problema
se modeló como un problema de optimización multidimensional, donde la mayor restricción
es la información del gradiente de la función objetivo, la cual no está disponible, por lo que
se utilizó el método de minimización de Powell. El método de minimización de Powell usa un
conjunto de direcciones en un espacio multidimensional, minimizando la distancia de cada una
de las direcciones, buscando la dirección que minimice la función. Uno de los movimientos que
se sintetizaron se muestran en la Figura 2.6.

En otro trabajo realizado en el 2004 [Seiji and Tomohiro, 2004], se realizó una experimentación
donde se busca estudiar la adaptación de un humano hacia el robot. En dicho trabajo el robot
2
Competencia de fútbol para robots.
36 2.2. Robots cuadrúpedos

Figura 2.6: Movimiento de las patas de aibo [Kim and Uther, 2003]

recibe estimulación por parte de la persona y ejecuta los comandos al mismo tiempo que va
aprendiendo. Para esto, se realiza un modelo usando una red neuronal Klopf (Figura 2.7), la
cual recibe varias entradas y genera una sola salida a otra neurona. Cada entrada tiene un
peso que es modificado por aprendizaje y el valor de la salida es determinado por la función
de entrada.

Para la experimentación se utilizaron 3 entradas, una asociada con las caricias en el pecho, otra
asociada con las caricias en la espalda y una última asociada con la observación de una pelota
rosa. Las posibles salidas del sistema neuronal eran que el robot caminara adelante, hacia atrás
2. Estado del arte 37

Figura 2.7: Red neuronal Klopf

o se sentara. Como resultado se obtuvo un aprendizaje del robot en un tiempo promedio de


40.88 segundos en un ambiente natural y 28.34 segundos en un ambiente controlado.

También sobresalen otros trabajos de AIBO en el área de locomoción. Existe un trabajo


desarrollado en el 2006 [Suzuki, 2007] en el cual simulan el caminado natural de los animales,
optimizando el movimiento de una pata por medio de algoritmos genéticos. El algoritmo
genético está compuesto por una cadena binaria que representa los dos ángulos de la pata
del robot y la distancia de desplazamiento, como se muestra en las Figuras 2.8 y 2.9.

Figura 2.8: Gen de algoritmo genético [Suzuki, 2007]

Después de implementar un algoritmo genético, buscando generar las posiciones que realiza un
perro al caminar, se obtuvo un caminado como se muestra en la Figura 2.10, el cual es más
rápido que el que se encuentra preprogramado en el robot AIBO.
38 2.2. Robots cuadrúpedos

Figura 2.9: Parámetros θ1 , θ2 , rt [Suzuki, 2007]

Figura 2.10: Caminado de AIBO basado en el caminado de un animal.

En su tesis, Hau aprovecha algunas de las caracterı́sticas de AIBO, como la cámara de video,
la comunicación inalámbrica, la habilidad de desplazamiento y la inteligencia para la toma de
decisiones, para desarrollar una aplicación de un robot de seguridad [Hau, 2006]. A diferencia
de las cámaras clásicas de vigilancia, este robot puede vigilar una área mayor al desplazarse en
diferentes lugares e informar de manera inalámbrica a una estación fija de vigilancia. El árbol de
decisiones que utilizan en este trabajo se puede apreciar en la Figura 2.11 donde primeramente
se distingue si es una persona, si es un vidrio roto, si es fuego o si hay humo, permitiendo
prevenir accidentes o informar el acceso de personas desconocidas.
2. Estado del arte 39

Figura 2.11: Árbol de decisiones [Hau, 2006]

2.2.2 SILO4

El robot SILO4 (Sistema Locomotor de 4 patas), diseñado por el Instituto de Automática


Industrial del CSIC (Consejo Superior de Investigaciones Cientı́ficas) en España, es una plataforma
creada con fines de investigación y educación [Avila and Zambrano, 2007]. Existe un trabajo que
referencia a este robot, el cual es del año 2000 [de Santos et al., 2000], por lo que se puede considerar
que este robot también ya tiene tiempo desde que fue creado.

SILO 4 tiene una dimensión de 31×31×30 cm, con un peso aproximado de 30 kg, y su diseño
ayuda a distribuir de manera uniforme su peso entre sus 4 patas. Cabe destacar que está construido
sobre una estructura de aluminio, lo cual hace al robot tanto resistente como ligero.

La estructura mecánica y la manera en que están dispuestas las patas alrededor del cuerpo del
robot, lo convierten en un robot omnidireccional en cualquier momento, esto es, que puede cambiar
inmediatamente la dirección de movimiento sin tener que girar sobre sı́ mismo. También puede superar
obstáculos de hasta 25 cm de alto, cargando un peso de 15 Kg, con una velocidad de 1.5m/min.

El robot SILO4 es capaz de acceder a terrenos irregulares, ya que cuenta con unas patas en forma
40 2.2. Robots cuadrúpedos

Figura 2.12: Robot silo 4

de insecto con 3 grados de libertad en cada una. En cada pata hay una separación de 240 mm entre
las articulaciones, donde la primer articulación es perpendicular al suelo y las otras dos son paralelas,
como se muestra en la Figura 2.13. Estas articulaciones están equipadas de motores de corriente
continua, localizados en el interior de sus patas, con engranes de metal para permitir la transmisión
de movimiento.

Figura 2.13: Estructura de la pata

Un punto muy favorable de este robot es que detalla como se puede realizar una réplica, pues
los diseños de cada componente del robot se encuentran en Internet3 . Por otro lado su control se
3
http://www.iai.csic.es/users/silo4/ 15/02/12
2. Estado del arte 41

encuentra en una computadora, lo que limita la autonomı́a en el desplazamiento.

2.2.3 TEKKEN

Tekken es un robot creado en el año 2000, por la compañı́a Fukuokalab, en Japón. Este robot fue
creado para investigación y cuenta con 3 grados de libertad en cada pata. Algunas especificaciones
son:

Dimensiones: 400 × 210 × 120 mm.

Peso: 3.1 kg.

Control: radio frecuencia desde una computadora personal.

Figura 2.14: Robot Tekken

Los autores de este robot han realizado varios trabajos que están disponibles en su página web4 .
Entre estos trabajos resalta la implementación de un CPG para la locomoción del robot Tekken,
haciendo uso de un oscilador neuronal [Fukuoka et al., 2003b]. Para verificar la funcionalidad de su
propuesta, reportaron los resultados del caminado dinámico en terrenos con un nivel de irregularidad
medio.

4
http://robotics.mech.kit.ac.jp/kimura/research/Quadruped/paper-list-e.html 15/02/12
42 2.2. Robots cuadrúpedos

El modelo del CPG utilizado está compuesto por dos neuronas, denominadas flexor y extensor,
representadas por los subfijos f y e respectivamente. En la Figura 2.15 se muestra el modelo del
oscilador, el cual corresponde a las ecuaciones que se muestran a continuación.

n
X
τ û{e,f }i = −u{e,f }i + ωf e y{f,e }i − βv{f,e }i + u0 + F eed{f,e }i + ωij y{e,f }j (2.8)
j=1

y{e,f }i = max(u{e,f }i , 0) (2.9)

τ 1 v̂{e,f }i = −v{e,f }i + y{e,f }i (2.10)

Donde:

e, f hacen referencia a la neurona flexor o la neurona extensor según el caso.

i es la iteración del oscilador.

u{e,f }i es uei o uf i depende del estado en la i-esima iteración. Representa el estado interno
de la neurona.

v{e,f }i representa el grado de auto inhibición de la neurona.

yei y yf i son salidas del flexor y extensor del la neurona.

u0 es una constante externa con una velocidad constante.

F eed{e,f }i es la retroalimentación del robot, esto es, el ángulo y la velocidad de la articulación.

β es una constante que representa el grado de auto inhibición, influenciado por el estado
interno.

τ y τ 1 son las constantes de tiempo de u{e,f }i y v{e,f }i .


2. Estado del arte 43

ωf e es la conexión de pesos entre la neurona flexor y la neurona extensor.

ωij conecta los pesos entre neuronas de la i-esima y la j-esima iteración.

Figura 2.15: Oscilador neuronal como modelo de CPG.

Desafortunadamente en este artı́culo no se muestra la onda generada por el oscilador y las gráficas
sobre la búsqueda de parámetros que tiene no son legibles. Sin embargo, tras realizar algunas pruebas
se concluyó que τ debe tener un valor pequeño, para generar un caminado estable en un terreno
irregular (Figura 2.16), ası́ que se obtuvieron buenos resultados cuando τ = 0.005.

2.2.4 PUCHOBOT

El robot Puchobot fue desarrollado por la Universidad Politécnica de Madrid en el 2001


[Moreno and Macı́as, 2001]. El propósito del robot fue la investigación de la generación automática
44 2.2. Robots cuadrúpedos

Figura 2.16: Terreno irregular para pruebas de Tekken

de movimientos, tales como avanzar, girar y retroceder. Algunas de las caracterı́sticas más relevantes
en su diseño son:

3 grados de libertad en cada pata.

Tarjetas CT6811 y BT6811, para el control de los servomotores.

Comunicación con una PC.

Figura 2.17: Robot puchobot

Mientras los 3 GDL le proveen una gran flexibilidad en sus movimientos, el control de los procesos
se lleva a cabo en una computadora personal, limitando la autonomı́a en su desplazamiento y
reduciendo la velocidad de respuesta al utilizar un procesador de propósito general, en lugar de
un procesador especı́fico. Otra desventaja que cuenta el robot es que no tiene sensores, impidiendo
obtener una representación del medio que lo rodea y actuar conforme a las circunstancias.
2. Estado del arte 45

Una caracterı́stica importante de este robot es que esta basado en la idea de software y hardware
libre, esto es, que tanto los programas como los diseños de hardware totalmente están disponibles
para implementarse. Aunque hasta el momento sólo existe un trabajo [Moreno, 2007] en el cual se
trabaja implementando un CPG, no se describe el procedimiento de la implementación.

2.2.5 ARAMIES

Aramies (Figura 2.18) es un robot que fue creado en el año 2004, por Robotics Lab
[Hilljegeders et al., 2005] en Alemania, y está constituido por 20 motores de corriente directa, los
cuales son controlados por el microcontrolador MPC565 y un módulo basado en un FPGA XCV600.
Los 5 GDL por pata que tiene le proveen de una gran movilidad en terrenos poco accesibles, además
de permitir la orientación del eslabón final (pie) con respecto al cuerpo del robot, lo que le permite
realizar movimientos más suaves al cambiar de dirección de desplazamiento. Aramies mide 700 mm
largo, 600 mm de alto y 450 de ancho, con un peso de 28 kg.

Figura 2.18: Robot aramies

Aramies ha sido una plataforma para implementar pruebas sobre de ciclos de marcha
[Spenneberg et al., 2005] utilizando un enfoque con CPG, en el cual modulan la fase y la frecuencia
para generar los patrones rı́tmicos. El control está compuesto por un sistema operativo en tiempo
real y programación basada en comportamiento.
46 2.2. Robots cuadrúpedos

Sobre este robot se han realizado estudios sobre el consumo de energı́a durante el movimiento
[Hilljegeders et al., 2005], en los cuales se ha determinado la corriente solicitada a las baterı́as durante
el cambio de posición en los motores (Figura 2.19). En esa gráfica se observa cómo utiliza más
amperaje cuando la diferencia de los ángulos es mayor, es decir, cuando el movimiento solicitado al
motor es más amplio y los pasos son más largos. Este resultado es importante pues el consumo de
energı́a es uno de los aspectos importantes en la generación de ciclos de marcha, lo cual proporciona
una idea de buscar movimientos en los cuales los motores deban generar un movimiento menor o en
otro caso dividir un movimiento grande, en varios pequeños.

Figura 2.19: Consumo de energı́a en el cambio de ángulos

En otro trabajo basado en esta plataforma [Spenneberg et al., 2006], se concluyó que la mecánica
y la electrónica son muy estables y robustas, pues realizaron pruebas con los sensores en diferentes
terrenos, permitiendo que el robot pudiera caminar en un terreno áspero. También se concluyó que
es una plataforma viable para realizar caminados estables, giros con diferente velocidad y superar
algunos obstáculos.
2. Estado del arte 47

2.2.6 BIGDOG

El robot más avanzado a la fecha es el robot BigDog, creado en el 2005 para uso militar en los
E. U. A., por las compañı́as Boston Dynamics y Foster-Miller [Raibert et al., 2008]. Este robot cuenta
con un motor de gasolina y sistema de locomoción hidráulico. Su sistema de equilibrio está compuesto
por un láser giroscópico y un sistema de visión estéreo. Para su control utiliza una placa base PC/104
modificada, con un procesador Pentium 45 .

Figura 2.20: Robot BigDog

BigDog sobresale por su gran equilibrio dinámico y su acceso a terrenos difı́ciles, como la nieve,
lugares rocosos, terrenos con pendiente, entre otros. Fue creado para llevar el cargamento de los
militares, por lo que puede soportar una carga de hasta 54 Kg.

Cabe destacar que cuenta con 4 grados de libertad por cada pata. La desventaja que presenta
esta plataforma es el costo económico para reproducirlo. Por otro lado no es posible acceder al
robot, pues su uso está restringido para uso militar, limitando el número de referencias disponibles
sobre este robot. Sin embargo, en un artı́culo escrito por la compañı́a que desarrolló al robot
[Raibert et al., 2008], se comparte su arquitectura de control (Figura 2.21).
5
http://www.bostondynamics.com/img/BigDog Overview.pdf 20/02/12
48 2.2. Robots cuadrúpedos

Figura 2.21: Arquitectura de control de BigDog

2.2.7 LITTLEDOG

Fue creado por la compañı́a estadounidense Boston Dynamics, siguiendo la lı́nea del robot BigDog,
también con fines militares. Algunas de sus caracterı́sticas es que puede ser teleoperado de manera
inalámbrica, usa el equilibrio estático y puede acceder a terrenos irregulares.

Una de las principales diferencias con BigDog es que LittleDog fue diseñado para la investigación
en el aprendizaje de la locomoción, por lo que tiene un tamaño más pequeño y en lugar de contar con
4 GDL por pata como BigDog, LittleDog sólo cuenta con 3. Su control se realiza en un procesador
Intel Xeon.

Un prototipo de este robot fue entregado a distintas universidades6 para su estudio. Un trabajo
6
Massachusetts Institute of Technology(MIT), Stanford, Carnegie Mellon, University of Southern California (USC),
University of Pennsylvania y Florida Institute for Human and Machine Cognition (IHMC)
2. Estado del arte 49

Figura 2.22: Robot LittleDog

de los que se han realizado se presenta en un artı́culo [Zico et al., 2008], en el cual utilizan una
arquitectura de control jerárquico para generar un caminado en terrenos irregulares. El control
está dividido en un nivel alto y un nivel bajo, donde el primero tiene una subdivisión de planeador de
alto y bajo nivel, como se muestra en la Figura 2.23.

El planeador de alto nivel está compuesto por 3 módulos, el primero se encarga de reconocer
el terreno y extraer las caracterı́sticas, como el tipo de terreno, la altura de los desniveles, etc. El
segundo genera un ruta para el cuerpo del robot y el tercero, busca puntos donde puede colocar cada
una de las patas, para recorrer la ruta del módulo anterior.

El planeador de bajo nivel genera la trayectoria de centro de gravedad (CG) y la trayectoria del
movimiento de las patas, para que el robot permanezca en equilibrio, con los 3 puntos de apoyo,
como se muestra en la Figura 2.24.

Por otra parte, el control de bajo nivel está compuesto por cuatro módulos distintos. El primero
es un control proporcional-diferencial (PD), el cual permite retroalimentar el control en base al error
y obtener una mayor exactitud en el caminado. El segundo se encarga de la detección de estabilidad
y su corrección, con lo cual se asegura de que el CG siempre se encuentre dentro del polı́gono de
apoyo, o bien ejecutar nuevamente el planeador de bajo nivel. El tercer módulo se encarga de ajustar
50 2.2. Robots cuadrúpedos

Figura 2.23: Control jerárquico en LittleDog [Zico et al., 2008]

las posiciones de las patas para que el CG siempre se encuentre en el polı́gono de apoyo, haciendo
uso de la multiplicación de matrices homogéneas. El cuarto módulo usa la cinemática inversa para
generar los ángulos y ası́ seguir la trayectoria global de las patas.

Este enfoque se utilizó para caminar en un terreno rocoso (Figura 2.25), obteniendo como
resultado una velocidad promedio de 3.28 cm/seg. y un máximo de 3.63 cm/seg.

Es importante resaltar que éste es uno de los robots que se tomaron como inspiración para el
desarrollo de este trabajo, puesto que cuenta con las dimensiones y una estructura similar a la deseada.
Las caracterı́sticas más importantes que nos interesan de este trabajo son el diseño mecánico de las
2. Estado del arte 51

Figura 2.24: Planeador del centro de masa para la secuencia de dos pasos [Zico et al., 2008]

Figura 2.25: LittleDog caminando en un terreno rocoso [Zico et al., 2008]

patas y la distribución de las articulaciones en cada una de ellas: la primera articulación realiza un
movimiento perpendicular al cuerpo y las otras dos son paralelas al cuerpo. Esta distribución permite
una amplia gama de movimientos. Esta plataforma es un poco más abierta para investigación, sin
embargo su acceso aún sigue siendo restringido para la mayorı́a de las instituciones.

2.2.8 ROBOQUAD

Roboquad es un robot comercialmente disponible, desarrollado por la empresa WowWee, en Hong


Kong en el año 2007 con fines de entretenimiento. Su estructura es muy simple y posee sólo un grado
de libertad en cada pata y algunos sensores como:

1 micrófono. Sirve para detectar sonidos y reaccionar dependiendo de la configuración.

1 sensor de luz. Determina el estado de ánimo que genera el robot

1 control remoto. Para generar los movimientos y elegir el estado del robot.

1 procesador PC1, incrustado en una tarjeta pequeña.


52 2.2. Robots cuadrúpedos

Figura 2.26: Robot Roboquad

Es capaz de expresar “sentimientos” y está construido con componentes sencillos y baratos, lo


que lo hace un robot muy rentable. Para su manejo, el robot cuenta con 5 estados:

Modo de control directo. El usuario controla los movimientos por medio del control remoto.

Modo autónomo. Sus movimientos dependen de la interacción con el medio que lo rodea.

Modo guardián. Reacciona a los ruidos generados en el medio.

Modo dormido. Se duerme después de 5 minutos y se apaga después de 24 horas.

Modo demo. Cuenta con una rutina de baile.

Sus movimientos son programados de fábrica y algunas funciones preprogramadas le permiten


controlar el movimiento y ajustar las personalidades que muestra.

La desventaja más importante de este robot es que no se pueden implementar algoritmos de


ciclos de marcha, pues no cuenta con los recursos apropiados para ello, como cámaras o el poder
desplazar las patas a posiciones deseadas, ya que sólo cuenta con un grado de libertad en cada pata.

2.2.9 CHEETAH

Cheetah es un robot desarrollado en el año 2008 en la Escuela Politécnica Federal de Lausana,


Suiza, por Rutishauser y Spröwitz [Rutishauser et al., 2008a]. Este robot fue creado para trabajos
2. Estado del arte 53

de investigación y cuenta con 2 grados de libertad en cada pata. A diferencia de los otros robots,
su segundo grado de libertad no sólo está compuesto de un servomotor, sino de un resorte que le
proporciona una flexibilidad pasiva al punto de contacto con el piso, como se muestra en la Figura
2.27. Para el control de este robot se utiliza una computadora personal.

Figura 2.27: Robot cheetat y el diseño de su pata.

En el trabajo [Rutishauser et al., 2008b] describe cómo se generan diferentes ciclos de marcha
usando un enfoque basado en los CPGs y se implementa en el robot Cheetah. En dicho trabajo se
utiliza un par de osciladores para generar las ecuaciones 2.11, 2.12 y 3.1.

xi = α(µ − ri2 )xi − ωi yi (2.11)

X
yi = β(µ − ri2 )yi − ωi xi + kij yi (2.12)

ωposi ωosci
ωi = ωi + (2.13)
e +
−by 1 eby+1

Donde:
p
ri = x2i + yi2

α y β son constantes positivas que definen el tiempo de convergencia


54 2.2. Robots cuadrúpedos

b es una constante positiva.

kij son constantes de acoplamiento de los osciladores desde j hasta i.

µ determina la amplitud de oscilación.

ωi define la frecuencia de oscilación.

ωstance y ωswing expresan la duración ascendente y descendente de las fases de la oscilación.


xi y yi son variables que oscilan con una amplitud de µ.

Se utilizó este modelo ya que provee de ciertas caracterı́sticas, como el cambio de ciclo de marcha
de manera suave, al remplazar la matriz de valores. La duración del ciclo de oscilación ası́ como las
pendientes de subida y de bajada pueden ser modificados de manera independiente. Por último, este
esquema permite la integración de sensores para la retroalimentación de una manera sencilla. En la
Figura 2.28 se puede observar la implementación del modelo, generando 4 tipos de ciclos de marcha
al cambiar la matriz de entrada. También se puede observar en la Figura 2.29 el cambio suave que
genera el modelo, al modificar los parámetros.

A pesar de que se generaron las ondas para 4 ciclos de marcha, sólo se implementaron la marcha
y el caminado a paso en el robot Cheetah, los cuales mostraron un buen desempeño en cuanto a
velocidad y estabilidad, logrando una velocidad máxima de 25 cm/s en la marcha y 11 cm/s en el
caminado a paso. Su caminado se aprecia en la Figura 2.30.

2.2.10 R4P

El robot R4P fue desarrollado con fines de investigación por la Universidad Europea de Madrid
en el año 2008 [Dedo and Garcı́a, 2008]. Uno de los propósitos de este robot es tener una plataforma
de desarrollo de bajo costo económico, por lo cual su estructura se desarrolló en acrı́lico. Cada pata
2. Estado del arte 55

Figura 2.28: Matrices de acoplamiento y generación para 4 ciclos de marcha. ωstance =2ωswing para
trote (trot) y caminado a paso (pace). ωstance =4ωswing para la marcha (walk) y ωswing =2ωstance
para paso unido (bound). Las variables X1 hasta la X4 corresponden a las patas frontal izquierda,
frontal derecha, trasera izquierda y trasera derecha, respectivamente [Rutishauser et al., 2008b].

contiene 3 GDL y su control es administrado por una PC, la cual se comunica vı́a Bluetooth. También
cuenta con algunos sensores tales como:

1 cámara. Para obtención de imágenes con el objetivo de dar a conocer la situación del entorno
al usuario.

1 sensor de brújula. La brújula permite identificar variaciones en la dirección del robot durante
un desplazamiento, por lo tanto podrá corregir su trayectoria.

1 sensor de inclinación. Este sensor podrı́a ser útil para conseguir mantener el robot en equilibrio.
56 2.2. Robots cuadrúpedos

Figura 2.29: Transiciones suaves de las trayectorias generadas por la red CPG: (a) entre marcha y a
paso en t = 2s y (b) incremento de ωswing para las articulaciones de cadera (hip) y rodilla (knee) en
t = 10s [Rutishauser et al., 2008b].

Figura 2.30: Caminado del robot Cheetah.

1 sensor de distancia. Este sensor podrı́a ser utilizado para detectar obstáculos enfrente del
robot.

Figura 2.31: Robot R4P


2. Estado del arte 57

2.2.11 LEBREL

Es un robot que fue creado por la Universidad de Castilla-La Mancha en el año 2009
[González and González, 2010], y uno de sus principales objetivos es que el diseño de cada pata
tenga un esquema cinemático sencillo, lo que permita un rápido control del punto de apoyo. Este
robot contiene 3 GDL en cada pata, con una plataforma construida sobre aluminio y un control desde
una computadora. Por la fecha en que se desarrolló el robot, no existe mucha información aún sobre
desarrollos en ciclos de marcha.

Figura 2.32: Robot lebrel

2.2.12 LS3

El robot LS37 es un proyecto financiado por DARPA8 y que se desarrolla por Boston Dynamics.
Este proyecto está planeado con $32 millones de dólares para un periodo de 30 meses y estará listo
para el año 2012.

Algunas comparaciones que se realizaron entre una mula biológica, el robot existente BigDog y
lo que se espera del robot LS3, se muestran en la Tabla 2.1.

7
http://www.bostondynamics.com 15/02/12
8
Defense Advanced Research Projects Agency. Es una agencia del Departamento de Defensa del gobierno de los
Estados Unidos, responsable del desarrollo de nuevas tecnologı́as usadas en el área militar.
58 2.3. Tabla comparativa

Figura 2.33: Robot LS3

Caracterı́sticas Mula Big Dog LS3


Carga 68 Kg 36 Kg 180 Kg
Peso total 450 Kg 160 Kg 570 Kg
Rango 30 Km 8 Km 32 Km
Resistencia 8 horas 2 horas 24 horas
Velocidad 4 Km/h, 8 Km/h al trote 3 a 5 Km/h al trote 5 Km/h, 8 Km/h trotando,
por perı́odos muy cortos 16 Km/h carrera
Autonomı́a Después de 5 a 6 meses puede GPS Seguir a un guı́a
cubrir la distancia entre a una distancia de 100 m,
campamentos sin escolta. GPS
Terreno Cuestas de 25o Cuestas de 25o Cuestas de 25o
Terreno escarpado con Terreno escarpado con Terreno escarpado con
escalones de 30 cm escalones de 15 cm escalones de 30 cm

Tabla 2.1: Tabla comparativa de una mula, Bigdog y LS3

Este proyecto promete varias ventajas sobre el robot BigDog y la mula de carga, como transportar
hasta 180 Kg, una autonomı́a para caminar hasta 24 horas, entre otras. Como se puede apreciar,
este proyecto será un gran avance en el estado del arte para los robots cuadrúpedos. Por otro lado,
también se puede apreciar que este proyecto será financiado con bastantes recursos económicos y
humanos. Estas restricciones impiden que se pueda desarrollar en otros lugares.

2.3 Tabla comparativa

Resumiendo, podemos presentar algunos aspectos relevantes de los robots cuadrúpedos actuales
en la Tabla 2.2. A partir de esta Tabla comparativa podemos concluir que existe un gran desarrollo
de robots cuadrúpedos para la investigación, donde la gran mayorı́a de ellos cuenta con 3 grados de
2. Estado del arte 59

libertad en cada pata. La razón principal de este hecho es que se requieren al menos 3 grados de
libertad para desplazar el extremo de la pata a cualquier punto del espacio por debajo del vientre del
robot, lo que es un requisito indispensable para generar ciclos de marcha, con un compromiso entre
control y libertad para la generación de movimientos. Otro aspecto muy importante en esta Tabla
son los paı́ses que desarrollan investigación en este tema: España, E.U.A. y Japón son los paı́ses que
cuentan con un mayor desarrollo, teniendo más de un robot construido, y dejando a México fuera de
la lista, por lo que se puede deducir la falta de investigación en el área de robots cuadrúpedos.

Es importante destacar la importancia que están adquiriendo los robots de servicios, esto es,
los robots aplicados en áreas externas a la industria manufacturera, y que esta importancia sólo
seguirá creciendo dentro de los próximos años, por lo que es necesario desarrollar investigación
propia en estas áreas. El estudio de la locomoción de robots cuadrúpedos es un tema central en este
contexto.

Nombre Fecha GDL Propósito Creador Paı́s Procesador CPG


de creación
AIBO 1990 3 Entretenimiento Sony Japón RISC No
e investigación
TEKKEN 2000 3 Investigación Fukuoka lab Japón PC Si
SILO 4 2000 3 Investigación CSIC España PC No
PUCHOBOT 2001 3 Investigación UPM España PC Si
ARAMIES 2004 5 Investigación Robotics Labs Alemania FPGA Si
BIGDOG 2005 4 Militar Boston Dynamics E.U.A. Pentium 4 No
LITTLEDOG 2005 3 Investigación Boston Dynamics E.U.A. Intel Xeon No
ROBOQUAD 2007 1 Entretenimiento WOOWWEE Japón PC1 No
CHEETAH 2008 1 Investigación Escuela Politécnica Suiza PC Si
federal de Lausana
R4P 2008 3 Investigación UEM España PC No
LEBREL 2009 3 Investigación UCM España PC No
LS3 2012 Militar Boston Dynamics E.U.A. - -

Tabla 2.2: Tabla comparativa de robots cuadrúpedos


60 2.4. Conclusiones

2.4 Conclusiones

Los robots han tomado una gran importancia en la sociedad y lo podemos observar en el
incremento del número de aplicaciones no industriales que involucran el uso de robots, no solamente
en el área de investigación y militar, sino también en el área de entretenimiento y servicio en el hogar.

Los robots con patas han demostrado ser los más adecuados para desenvolverse en ambientes no
estructurados, ya que cuentan con la capacidad de acceder a lugares donde otro tipo de robot no
podrı́a, por ejemplo el subir escalones o desplazarse en jardines, donde el terreno tiene desniveles.

Para que los robots con patas puedan caminar y acceder a terrenos irregulares, se han realizado
diversos estudios sobre la locomoción autónoma, donde la mayorı́a de estos trabajos se basan
en un enfoque de optimización de los movimientos de las articulaciones, por medio de diferentes
técnicas. Sin embargo, cuando se descubrió que en el sistema nervioso de los animales existı́a un
generador central de patrones (CPG siglas en inglés), se propusieron diversos modelos a partir de este
enfoque para dar solución a la locomoción en los robots. Algunos de estos modelos están basados
en osciladores, los cuales generan el ciclo de marcha. Una de las principales caracterı́sticas de estos
osciladores es que al modificar ciertos parámetros (fase, amplitud, periodo), se pueden crear una
diversidad de ciclos de marcha. Estas caracterı́sticas deben ser consideradas en la implementación de
un oscilador como CPG.

En el estado del arte observamos que algunos de los robots presentados se utilizan actualmente
como plataformas para investigación de la problemática de la locomoción. Estos robots presentan
varias caracterı́sticas que describen la amplia gama de aplicaciones que, a fin de cuentas, los hacen
diferentes: la disponibilidad de la plataforma, el costo económico del desarrollo y el diseño especı́fico
para determinados estudios. El diseño del robot va acorde a ciertas caracterı́sticas requeridas para
una apropiada implementación de los algoritmos de locomoción, lo que hace que el hardware sea
muy especı́fico para determinados trabajos y no se puedan utilizar para otras investigaciones.
2. Estado del arte 61

Por otra parte, el estudio realizado sobre la literatura cientı́fica contribuyó para establecer las
bases necesarias para el diseño de un robot cuadrúpedo para el estudio de ciclos de marcha. Entre
los puntos relevantes se observó que el número mı́nimo de GDL que debe poseer cada pata del robot
para generar los movimientos necesarios y permitir el desplazamiento en terrenos irregulares son 3.
En el aspecto del material para la construcción del robot, se observó que el acrı́lico tiene un costo
económico bajo, además de tener cierta flexibilidad y resistencia para trabajar con él. Otro punto
importante fue el determinar qué tipo de sensores se utilizan comúnmente para que el robot sea
capaz de establecer una representación del medio que lo rodea, donde las cámaras fueron las más
utilizadas. Por último, el diseño del control que se presentó en algunos trabajos, permitió establecer
un diseño para distribuir las tareas en una arquitectura de control.
Marco teórico
3
En este capı́tulo se describen algunos conceptos necesarios para conocer y comprender el
contexto del trabajo, tales como conceptos de cinemática y los generadores de patrones
centrales. También se hará una revisión del uso de FPGAs y el funcionamiento de los
servomotores.

3.1 Modelos cinemáticos

Para hablar de modelos cinemáticos, comenzaremos por establecer qué es un modelo. La


Real Academia Española lo define como: “un esquema teórico, descrito generalmente en forma
matemática, de un sistema o de una realidad compleja (por ejemplo, la evolución económica
de un paı́s), que se elabora para facilitar su comprensión y el estudio de su comportamiento”
[Ramos et al., 2010]. Otra definición es: “una manera de proceder cuando tratamos de comprender
las realidades del mundo que nos rodea ”[Sánchez, 2011].

La cinemática es la rama de la mecánica clásica que estudia las leyes del movimiento de los

63
64 3.1. Modelos cinemáticos

cuerpos, sin considerar las fuerzas que lo provocan, y se limita esencialmente al estudio de la
trayectoria en función del tiempo. A partir de estas definiciones, podemos entender un modelo
cinemático como la descripción matemática para estudiar las trayectorias generadas por un cuerpo
en movimiento, y en nuestro caso particular, las trayectorias generadas por el movimiento de las
articulaciones del robot.

3.1.1 Sistema vectorial

Para establecer el modelo del robot, se requiere de un sistema de referencia que lo describa con
respecto a un punto origen. Los sistemas de referencia más utilizados son:

Coordenadas cartesianas. Un sistema de coordenadas cartesianas se define por dos ejes


(x, y) o tres ejes (x, y, z) ortogonales igualmente escalados, dependiendo de si es un espacio
bidimensional o tridimensional. Este tipo de sistema de referencia puede generalizarse para un
espacio Rn .

Coordenadas esféricas. Un sistema de coordenadas esféricas es un sistema para describir un


espacio tridimensional, y está formado por tres ejes mutuamente perpendiculares que se cortan
en el origen. Cada punto del espacio está descrito por una distancia y dos ángulos, denominados
radio, ángulo polar y azimut.

Coordenadas cilı́ndricas. Es un sistema de coordenadas tridimensional donde cada punto se


describe con dos distancias y un ángulo. La primera coordenada es la distancia existente entre
el origen y un eje, la segunda es el ángulo que forman el eje y la recta que pasa por ambos
puntos, mientras que la tercera es un desplazamiento a lo largo del eje.

Coordenadas polares. El sistema de coordenadas polares es un sistema de coordenadas


bidimensional en el cual cada punto o posición del plano se determina por un ángulo y una
distancia.

En robótica, los modelos cinemáticos generalmente están expresados utilizando sistemas


en coordenadas cartesianas, y describen la relación que guardan estas coordenadas con los
3. Marco teórico 65

desplazamientos articulares del cuerpo del robot.

3.1.2 Cadena cinemática y grados de libertad

Una máquina es un conjunto de cuerpos dispuestos de tal manera que son capaces de producir
un trabajo o una tarea. Cada uno de los cuerpos de una máquina se denomina elemento o eslabón,
y las uniones que existen entre los elementos de una máquina se denominan pares cinemáticos o
articulaciones.

Las articulaciones permiten algunos movimientos relativos entre los elementos, e impiden otros.
Por ejemplo, una bisagra en una puerta permite una rotación alrededor de un eje fijo, pero impide
los demás desplazamientos. Los valores que reflejan el movimiento generado por las articulaciones se
denominan parámetros articulares.

Una cadena cinemática puede definirse como el conjunto varios elementos o eslabones rı́gidos
unidos mediante articulaciones. El número de grados de libertad (GDL) de una cadena cinemática
es el número de parámetros necesarios para definir completamente la posición relativa entre sus
elementos. Las coordenadas (generalmente cartesianas) que describen la posición de algún eslabón
en particular con respecto al origen del sistema coordenado principal se denominan coordenadas
operacionales de dicho eslabón. En robótica, el último eslabón de la cadena cinemática se denomina
efector final (cf. Figura 3.1).

3.2 Generador Central de patrones (Central Pattern


Generator-CPG)

La generación de ciclos de marcha, es decir, las secuencias de movimientos articulares que


permiten a un robot con patas desplazarse en su medio ambiente, no es una tarea sencilla. Se
66 3.2. Generador Central de patrones (Central Pattern Generator-CPG)

Articulaciones
Efector final

Eslabones

Base

Figura 3.1: Componentes de una cadena cinemática.

requiere de la coordinación temporal de un gran número de grados de libertad para lograr una
marcha coherente del robot. En los seres vivos, el encargado de generar las señales nerviosas de
sincronı́a hacia los músculos del cuerpo es el generador central de patrones. Un Generador Central
de Patrones (CPG), biológicamente, es un circuito neuronal localizado en la espina dorsal de los
vertebrados, encargado de reproducir los patrones rı́tmicos necesarios para realizar ciertas funciones,
como caminar, respirar y digerir. Este enfoque sirve como propuesta para resolver el problema de
locomoción en los robots.

En la robótica, un CPG es modelado por medio de una red de osciladores acoplados (Figura
3.2(a)), los cuales han sido utilizados de manera exitosa para generar trayectorias en el control
de locomoción [Rutishauser et al., 2008b]. Estos CPG presentan varias propiedades útiles, como la
capacidad de sincronización para crear diversos ciclos de marcha, logrando una coordinación natural
entre los diferentes grados de libertad del robot. También reduce la dimensión del problema de
control, ya que la modulación de la locomoción se logra con el cambio de pocos parámetros de
control [Rutishauser et al., 2008b].

En la actualidad no existe una metodologı́a solida para el desarrollo y la implementación de CPGs


dentro de sistemas robóticos [Barrón, 2009], de tal forma se pueden encontrar una amplia variedad
de implementaciones en trabajos recientes. Algunos de los modelos de osciladores más utilizados para
el diseño de CPGs encontrados en la literatura son lo siguientes:
3. Marco teórico 67

Figura 3.2: (a) Red general de CPG para locomoción de un cuadrúpedo. (b)-(c) ConFiguraciones
correspondientes para caminar y trotar. Los puntos negros y blancos representan conexiones
excitatorias e inhibitorias, respectivamente.

Oscilador Hopf [Rutishauser et al., 2008b]. Este artı́culo fue descrito en el capı́tulo del estado
del arte. Para este trabajo se utilizó el siguiente conjunto de ecuaciones:

xi = α(µ − ri2 )xi − ωi yi (3.1)

ωposi ωosci
ωi = ωi + (3.2)
e +
−by 1 eby
+1
X
yi = β(µ − ri2 )yi − ωi xi + kij yi (3.3)

Con este modelo de oscilador se obtuvieron resultados para 4 tipos de ciclos de marcha distintos
(trote, caminado al paso, marcha y paso unido), de los cuales se probaron 2 en el robot (marcha
y caminado al paso). Utilizando estos ciclos de marcha, el robot logró avanzar a una velocidad
25 cm/s en la marcha y 11 cm/s en el caminado a paso.

Oscilador Rösler [Castellini et al., 2004]. Este tipo de osciladores, denominados caóticos, fueron
utilizados para controlar un robot del tipo brazo industrial. Las ecuaciones del oscilador,
descritas en 3.4, 3.5 y 3.6, fueron implementadas utilizando circuitos de amplificadores
operacionales, que simulaban redes neuronales. Los autores al final del trabajo llegaron a la
conclusión de que “los resultados nos indican que es posible llevar a cabo el control de posición
del brazo robot utilizando amplificadores operacionales organizados bajo la estructura de las
68 3.2. Generador Central de patrones (Central Pattern Generator-CPG)

redes neuronales celulares” [Peña, 2008].

dx1
= −x1 + αy1 − βy2 + i1 (3.4)
dt

dx2
= −x2 + αy2 − βy2 + i2 (3.5)
dt
1
yi = (|xi + 1| − |xi − 1|) para i = 1, 2 (3.6)
2

Osciladores neuronales [Fukuoka et al., 2003b]. Un ejemplo del uso de este tipo de osciladores
es el trabajo desarrollado en el robot Tekken. Como se describió en estado del arte, este
oscilador está basado en las ecuaciones siguientes:

n
X
τ û{e,f }i = −u{e,f }i + ωf e y{f,e }i − βv{f,e }i + u0 + F eed{f,e }i + ωij y{e,f }j (3.7)
j=1

y{e,f }i = max(u{e,f }i , 0) (3.8)

τ 1 v̂{e,f }i = −v{e,f }i + y{e,f }i (3.9)

Oscilador Amari-Hopfield. Este tipo de oscilador fue propuesto en el trabajo de Huitzil y Girau
1
[Huitzil and Girau, 2008], con una implementación en un dispositivo FPGA . El oscilador
está conformado por 2 neuronas, como se muestra en la Figura 3.3, las cuales funcionan como
el oscilador base para el CPG. Este modelo se representa por medio de las ecuaciones 3.10 y
3.11.

du
= −u + Afµ (v) − Cfµ (v) + Su (t) (3.10)
dt
dv
= −v + Bfµ (v) − Dfµ (v) + Sv (t) (3.11)
dt
1
Matriz de compuertas programables (FPGA = Field Programmable Gate Array).
3. Marco teórico 69

Figura 3.3: Modelo neuronal Amari Hopfield.

Donde:

• u y v representan el estado interno excitatorio e inhibitorio de las neuronas.

• A, B, C, y D son los parámetros de sintonización que determinan la dinámica del sistema.

• Su (t) y Sv (t) son entradas externas.

• µ es el parámetro independiente de control.

La función de activación de las neuronas fµ (x) está descrita por la función:

1 + tanh(µx)
fµ (x) =
2

Este modelo se implementó en un dispositivo FPGA tipo Spartan 3E, con los valores de
Su = −0.3, Sv = 0.3, A = 1.5, B = 1.5 , C = 1.0 y D = 0, obteniendo una onda
sinusoidal como se muestra en la Figura 3.4.

En el trabajo se concluye que el uso de un FPGA provee un buen desempeño y una gran
flexibilidad para generar patrones rı́tmicos, adecuados para aplicaciones de robots móviles.
70 3.3. Matriz de compuertas programables (FPGAs)

Figura 3.4: Los patrones rı́tmicos de las neuronas excitadoras e inhibidoras, arriba y abajo
respectivamente, generados por el GPC, integrados en un FPGA.

3.3 Matriz de compuertas programables (FPGAs)

Los FPGAs 2 son tarjetas compuestas por bloques lógicos interconectados que forman una matriz
(Figura 3.5), cuya interconexión y lógica de funcionamiento puede ser programada in situ mediante
un lenguaje de descripción especializado, permitiendo generar funciones sencillas como compuertas
lógicas, hasta funciones más complejas como operaciones con punto fijo, algoritmos de compresión
de datos y de criptografı́a.

Los FPGAs tienen aplicaciones similares a los ASICs3 , aunque son más lentas y tienen un mayor
consumo de potencia. Sin embargo, tienen varias caracterı́sticas que las hacen muy útiles en algunos
2
Matriz de compuertas programables (FPGA = Field Programmable Gate Array)
3
Circuito Integrado para Aplicaciones Especı́ficas (ASIC = Application Specific Integrated Circuit).
3. Marco teórico 71

Figura 3.5: Composición de un FPGA.

desarrollos, sobre todo durante la fase de diseño de una aplicación. Una de ellas es la capacidad
de programarse, lo que les otorga una gran flexibilidad. Al programar directamente la conectividad
del hardware, se logra un mejor desempeño que al utilizar un microprocesador de propósito general.
Asimismo, son capaces de realizar procesos en paralelo, realizando los cálculos en bloques fı́sicamente
distintos, aumentando aún más la velocidad. Los FPGAs mantienen un buen compromiso entre costo
y desempeño, en comparación con otros dispositivos. En la Figura 3.6 se muestra al FPGA en una
posición media de una lista, al evaluar su flexibilidad, esto es gracias a la capacidad de reprogramarse.
En esta figura se indica que el FPGA es menos flexible que los dispositivos de función fija, los cuales
se pueden adaptar con mayor facilidad a diversas funciones. Por otro lado el FPGA es más flexible
que los ASIC, los cuales están diseñados para una tarea especı́fica.
Algunos ejemplos de trabajos desarrollados utilizando FPGAs, que son muy afines con el presente
trabajo de tesis, son:

Implementación de CPGs en un FPGA [Huitzil and Girau, 2008]. Este trabajo, descrito en la
sección anterior, utilizó una tarjeta Spartan 3e, para la implementación de un CPG, usando un
oscilador Amari-Hopfield.

Procesamiento de imágenes [Darabiha et al., 2003]. En este artı́culo se lleva a cabo la


72 3.3. Matriz de compuertas programables (FPGAs)

Figura 3.6: Flexibilidad de un FPGA [Huitzil, 2010].

implementación de un algoritmo de medición de profundidad estéreo en un FPGA. Los


resultados de este trabajo muestran un desempeño 300 veces más veloz que su implementación
equivalente en software. La arquitectura de diseño de esta aplicación se muestra en la Figura
3.7.

Algunos resultados que se obtuvieron se muestran en la Tabla 3.1. Ası́, en este artı́culo
se concluyó la factibilidad de implementar aplicaciones de visión utilizando FPGAs, con un
excelente desempeño en tiempo real.

Número de punto 1 2 3 4 5
Profundidad real 300 315 320 354 396
Profundidad del
sistema estéreo 309 320 276 355 402

Tabla 3.1: Medición de profundidad para 5 puntos.

Navegación evolutiva usando un FPGA para el control de un robot [Krohling et al., 2002]. En
este trabajo se desarrolló un algoritmo evolutivo, haciendo uso de un FPGA. Este algoritmo
3. Marco teórico 73

Figura 3.7: Arquitectura del sistema de visión estéreo.

se implementó para la navegación de un robot Kephera (Figura 3.8) a fin de que pudiera
desplazarse en un ambiente desconocido, evitando colisiones. En este artı́culo no se describe
la función de aptitud utilizada en el algoritmo evolutivo, pero se menciona que el algoritmo se
implementó en una computadora personal, la cual envı́a el genotipo al FPGA para su evaluación,
reduciendo considerablemente la carga computacional de la computadora.

FPGA para la electrónica de un robot modular [Brandt et al., 2008]. En este artı́culo se hace
uso de un FPGA para el control del robot auto-reconFigurable Atron (el cual puede observarse
en la Figura 3.9), por lo que aprovechan ciertas caracterı́sticas provistas por los FPGA. Una
ventaja es el manejo de módulos en el FPGA permite su replicación sencilla. Por otra parte, el
control de bajo nivel del robot se mantiene fuera del procesador principal, por lo que no existen
interrupciones que interfieran con el esquema de control de alto nivel.

Control de un robot cuadrúpedo utilizando un FPGA [Hilljegeders et al., 2005]. En el estado


del arte se describió el uso de un FPGA XCV600, para generar los ciclos de marcha del robot
74 3.4. Actuadores

Figura 3.8: Robot Kephera.

Aramies. En este trabajo se utiliza el FPGA para realizar tareas de muy bajo nivel para el
control de los periféricos del robot, como la generación de las señales PWM 4 para los motores
y las operaciones ADC5 de los sensores.

3.4 Actuadores

Un actuador es un dispositivo capaz de transformar algún tipo de energı́a (eléctrica, hidráulica


o neumática) en un efecto sobre un proceso automatizado. En un robot, los actuadores son los
elementos encargados de la interacción del robot hacia el medio ambiente que lo rodea, ya sea para
desplazarse dentro de él o para modificarlo o manipularlo.

En nuestro robot cuadrúpedo, los actuadores serán los dispositivos que permitirán el movimiento
del robot. En la actualidad, dentro de la robótica, existe una gran variedad de mecanismos utilizados
como actuadores, como los motores de corriente directa, los motores a paso y los servomotores.

4
Ancho de pulso
5
Conversión de señales analógicas a digitales
3. Marco teórico 75

Figura 3.9: Robot Atron.

Un servomotor (o servo) es un motor de corriente continua que tiene la capacidad de ser


controlado en posición. Es capaz de ubicarse en cualquier posición dentro de un rango de operación
(generalmente de 180◦ ) y mantenerse estable en dicha posición. Los servos se utilizan frecuentemente
en robótica, automática y modelismo (vehı́culos por radio-control, RC) debido a su gran precisión
en el posicionamiento [Francisco et al., 2007].

Mientras que los motores de corriente directa son ampliamente usados en robots industriales, los
servomotores son muy utilizados en robots de pequeña escala, por la caracterı́stica de que integran
tanto el motor como la electrónica de control y la mecánica de reducción en un solo paquete.

En general, los servos suelen estar compuestos por 4 elementos fundamentales (cf. Figura 3.10):

Motor de corriente continua: Es el elemento que brinda movilidad al servo.

Engranajes reductores: Es una caja de reducción que contiene un tren de engranajes que reduce
la velocidad de salida del eje del motor, aumentado proporcionalmente el torque de salida.

Sensor de desplazamiento: Suele ser un potenciómetro colocado en el eje de salida de la caja


de reducción, que se utiliza para conocer la posición angular de dicho eje.
76 3.4. Actuadores

Circuito de control: Es una placa electrónica que implementa una estrategia de control de la
posición por retroalimentación, entre la posición actual del eje (medida con el potenciómetro)
y una señal de control de posición, recibida en ancho de pulso (PWM).

Figura 3.10: Componentes de un servomotor.

La modulación en ancho de pulso (PWM) es una técnica en la cual cambia el ciclo en una señal
periódica, su representación matemática es:

τ
D=
T
Donde:
D es el ciclo de trabajo.
τ es el tiempo en que la
función es positiva (ancho del
pulso).
T es el perı́odo de la función. Figura 3.11: Ancho de pulso

Cada modelo de servomotor tiene diferente rango en su ancho de pulso. Sin embargo, es el mismo
funcionamiento, ası́ un ancho de pulso durante un lapso de tiempo corresponde a una posición en el
servomotor, como se muestra en la Figura 3.12.
3. Marco teórico 77

Figura 3.12: Posición de un servo con el ancho de pulso.

3.5 Conclusiones
En este capı́tulo se describieron alguno de los componentes lógicos y fı́sicos que son necesarios
para el desarrollo del robot. En los componentes lógicos, el análisis cinemática provee los modelos
necesarios para describir la relación entre los parámetros articulares del robot y los parámetros
operacionales de las patas del robot. Los CPGs proveen un nuevo enfoque para generar los ciclos de
marcha, al utilizar un conjunto de osciladores acoplados, de los cuales se describieron brevemente
algunos trabajos con diferentes osciladores.

En los componentes fı́sicos se describieron el FPGA y los actuadores: el primero para la


implementación del control y el segundo para la generación de movimientos en las articulaciones.
Los FPGAs tienen varias caracterı́sticas favorables que se han considerado en algunos trabajos, como
la flexibilidad para programar el hardware y el procesamiento en paralelo, razón por la cual se han
utilizado para el control de varios robots. En los actuadores se describió el funcionamiento de los
servomotores, los cuales son muy utilizados en la robótica, por generar una fuerza de torsión y un
control relativamente sencillo.
Desarrollo de Robocan
4
Tanto la estructura mecánica como lógica de un robot, son piezas fundamentales en
su construcción. En este capı́tulo se detallarán los diseños en hardware y en software
propuestos para dar solución al problema planteado.

4.1 Componentes del robot

El objetivo es la construcción de un robot cuadrúpedo, con tres grados de libertad en cada pata
para realizar ciclos de marcha complejos, con una cabeza con movimientos de pan and tilt en la
que se montarán un par de cámaras que proporcionarán visión estereoscópica, y con una tarjeta de
hardware reconfigurable que aportará la flexibilidad requerida para programar diferentes esquemas de
control y de generación de ciclos de marcha. Hemos decidido bautizar este diseño como Robocan.

El diseño se divide en dos partes principales: el diseño fı́sico (hardware) y el diseño lógico
(software). El hardware está compuesto por distintos elementos, cada uno de ellos asignado a una
tarea en particular (Figura 1.4). Ası́ unos elementos del robot están destinados a obtener información

79
80 4.1. Componentes del robot

(sensores y comunicación), otros al procesamiento (inteligencia artificial y control) y otros más a


generar respuestas en el medio (estructura mecánica y actuadores). Los componentes que se utilizaron
para la construcción del robot son:

Estructura mecánica. Es el esqueleto del diseño mecánico, pues sostiene y une a todos los otros
componentes fı́sicos, ası́ como define los grados de libertad del robot en su conjunto. Para su
construcción, se eligió el acrı́lico como material principal, por su ligereza, resistencia y por ser
un material aislante eléctrico.

Actuadores. Proveen la capacidad de movimiento. Se utilizaron los servomotores Blue-Bird


MG-380.

Sensores. Para este diseño se utilizó un módulo estéreo VmodCAM, que tiene 2 cámaras
pequeñas, para proporcionar al robot con un sistema de visión que le permita reconocer los
obstáculos y el terreno alrededor del robot.

Tarjeta de procesamiento. Es un FPGA1 Spartan 3E, en el que se encuentran almacenadas


las instrucciones que permiten la comunicación y el control del robot. Se eligió este
dispositivo porque tiene un costo económico bajo y se han realizado trabajos sobre CPGs
[Huitzil and Girau, 2008], mostrando un buen comportamiento.

Fuente de energı́a. Es el conjunto de dispositivos que permiten proveer corriente para el


funcionamiento de los componentes. En nuestro diseño utilizamos dos baterı́as recargables.

El software, por otra parte, es el conjunto de funcionalidades que definen el comportamiento


o comportamientos del robot, y está encargado de generar las respuestas esperadas bajo ciertas
circunstancias, cubriendo las siguientes tareas:

Comunicación. En este trabajo la comunicación abarca el flujo de información desde la


computadora hacia el FPGA y de éste hacia los actuadores.
1
Field Programmable Gate Array
4. Desarrollo de Robocan 81

Figura 4.1: Diseño fı́sico del robot.

Módulos de control. Estos módulos están encargados de generar los ciclos de marcha, ası́ como
las funciones necesarias para convertir los valores de los ciclos de marcha, en señales que sean
interpretadas por los servomotores.

4.1.1 Estructura mecánica

Como se ha descrito anteriormente, la estructura mecánica da soporte a todos los elementos del
robot y define los movimientos que el robot podrá realizar. Los robots de cuatro patas muestran
varias caracterı́sticas favorables para desenvolverse en un medio ambiente dinámico junto con los
humanos. También lo hemos comprobado en el estado del arte al observar el gran desarrollo de
estos robots tanto en la investigación como en aplicaciones reales. Aunque se ha fijado la cantidad
de patas que debe tener el robot, se debe considerar la cantidad de grados de libertad (GDL) que
contendrá cada pata, ası́ como la distribución y orientación de cada uno de ellos a lo largo de la
estructura mecánica.

El primer aspecto es la cantidad de GDL en cada pata. Si la pata posee sólo dos grados de
libertad, el extremo de la misma sólo podrı́a desplazarse sobre un plano. Si la pata posee más grados
de libertad, aumenta la cantidad de movimientos que la misma puede realizar, pero se generan
82 4.1. Componentes del robot

redundancias (más de una manera de alcanzar un punto determinado), lo que provoca una mayor
complejidad para realizar el control de los motores. Por esta razón se eligieron 3 GDL.

Para considerar la orientación de las articulaciones a lo largo de la estructura mecánica de la pata,


encontramos en la literatura [Fuentes, 2006] dos tipos que sobresalen: el tipo reptil y tipo mamı́fero,
como se muestra en la Figura 4.2.

Figura 4.2: Tipos de estructuras mecánicas en robots con patas [Fuentes, 2006].

Para nuestro trabajo, se optó por el diseño basado en mamı́feros puesto que es más similar a los
perros y caballos, en los cuales se puede observar una variedad de ciclos de marcha como el caminado,
el trote y el galope, entre otros. Establecido el diseño la estructura mecánica es necesario determinar
el tipo de actuadores que serán utilizados para la construcción del robot, que sean acordes con las
caracterı́sticas y objetivos de este robot, lo cual se detalla en la siguiente sección.
4. Desarrollo de Robocan 83

4.1.2 Actuadores

Para la construcción del robot se utilizaron los servomotores BlueBird 380-MG, cuyas
caracterı́sticas principales se resumen en la Figura 4.3. Este servomotor tiene un rango de giro
1700 , con un control de posición por modulación de ancho de pulso (PWM), por lo que se debe
generar un pulso alto que dure en un rango de 800 µs (para 00 ) a 2400 µs (para 1700 ) cada 200
ms. Ası́, para lograr desplazar el motor hasta un ángulo θ, el ancho de pulso a enviar cada 200 ms
al motor se obtiene a través de la siguiente formula:
 
θ
P W M = tm + (tM − tm )
φ

Donde:

θ es el ángulo deseado.

φ es el ángulo máximo que puede girar el servomotor (para este caso 1700 ).

P W M es el ancho de pulso en µs que se debe generar para posicionarse en un ángulo θ.

tm es el ancho de pulso mı́nimo que acepta el servomotor (en este caso 800).

tM es el ancho de pulso máximo que acepta el servomotor (en este caso 2400).

Peso : 15.6 gramos.

Dimensiones: 26 × 13 × 26 mm

Torque con 4.8V: 3.6 kg/cm.

Velocidad con 4.8V: 0.15 s/60o

Engranes de metal : sı́


Figura 4.3: Servomotor BlueBird 380-MG

Cada servomotor requiere de tres lı́neas fı́sicas de control, por lo que para controlar los 14 motores
que constituyen nuestro robot es necesario contar con un dispositivo de control que contenga 42
84 4.1. Componentes del robot

terminales dedicados a este fin. El FPGA que se considera para este trabajo, no contiene 42 pines
independientes, para el control directo de servomotores, por lo que se decidió utilizar una tarjeta
de control separada, dedicada únicamente al manejo de los servomotores. De manera general, estas
tarjetas de control de servomotores se comunican a través de comandos sencillos enviados en formato
texto a través de una interfaz serial con otra computadora.

Algunos de los controladores de servos más populares son la tarjeta Arduino, la tarjeta ARC-32 y
la tarjeta SSC-32. El primero de ellos sólo tiene la conexión del ancho de pulso, sin tener terminales
para la distribución de energı́a, además de sólo poder controlar 14 servomotores lo cual impedirı́a, en
un futuro, agregar más motores al diseño. El segundo puede controlar 32 servomotores, además de
distribuir la corriente eléctrica, tener una conexión USB y la capacidad de ser programada en lenguaje
C, pero con la desventaja de que al aumentar las funcionalidades de la tarjeta se incrementa también
su costo económico. La tercer tarjeta, en cambio, puede controlar hasta 32 servomotores y distribuir
la energı́a para los mismos, por un precio menor. Tiene diversas caracterı́sticas interesantes, como un
control de servos por tiempo/velocidad/posición, movimiento sı́ncrono de varios servos, consulta de
posición de los servos y utilización de los pines de control de los servos como salidas digitales TTL.

Figura 4.4: Tarjeta SSC-32 para el control de los servomotores.

Esta tarjeta utiliza dos fuentes de energı́a distintas: una para el control del circuito y otra
independiente para los servomotores, aislando ası́ los problemas causados por interferencias debidas
a las conmutaciones de los motores a corriente continua de los servomotores. La tarjeta puede
4. Desarrollo de Robocan 85

comunicar por interfaz tipo serie hasta una velocidad de 115.2 Kbps, lo que permite controlar todos
los motores en una ventana de tiempo de respuesta muy aceptable.

4.1.3 Sensores

Uno de los objetivos de este trabajo es que el robot sea capaz de adaptar su ciclo de marcha de
acuerdo al tipo de terreno sobre el que se desplaza, ası́ como que pueda tomar decisiones sobre las
acciones a realizar de acuerdo a los obstáculos que encuentre durante su trayectoria. Para ello, se
ha integrado en el diseño del robot un módulo de visión estéreo, que por la separación de 63 mm
que hay entre las cámaras, genera una vista binocular similar a la de algunos animales. Este tipo
de visión, además de proveer una retroalimentación de información al sistema, permitirá desarrollar
métodos de reconstrucción tridimensional para futuras aplicaciones.

El sistema de visión se encuentra localizado en la “cabeza”del robot, y posee un movimiento


“pan and tilt”2 , permitiendo tener una vista más amplia del medio que lo rodea. El módulo estéreo
VmodCAM cuenta con las caracterı́sticas descritas en la Figura 4.5.

Se eligió este módulo por tener un tamaño pequeño además de tener una captura de imágenes
con buena resolución y en un tiempo aceptable, lo que permitirá realizar el procesamiento de las
imágenes dentro del FPGAs.

4.1.4 Potencia

La administración de la potencia es un aspecto importante del diseño, ya que existen algunos


problemas que se deben resolver como:

Proveer de energı́a a todos los dispositivos

No todos los dispositivos usan el mismo voltaje para su funcionamiento


2
Movimiento Horizontal-Vertical
86 4.1. Componentes del robot

2 cámaras independientes Aptina MT9D112


de 2 megapixel cada una.

1600 x 1200 pı́xeles.

15 imágenes por segundo.

Base estéreo con 63 mm de separación entre


las cámaras.

Bus de control I 2 C.

Formatos de salida Bayer, RGB y YCrCb.

Conector hembra VHDCI de 68 pines.

Dimensiones de 5 mm x 50 mm x 95 mm. Un
tamaño pequeño para implementarse dentro
del robot.
Figura 4.5: Módulo de cámara estéreo VmodCAM.

La administración de energı́a no debe quitarle la autonomı́a al robot para su desplazamiento

Un exceso de baterı́as aumenta el peso del robot

Las baterı́as se desgastan y requieren recambio, lo que se refleja en un impacto económico

Para la solución de estos problemas se utilizaron 2 tipos de baterı́as: el primero es una baterı́a de 9
voltios a 400 mA/h, recargable, la cual provee de energı́a a la tarjeta SSC-32, mientras que el segundo
es un paquete de 8 baterı́as recargables con 1.2 voltios a 2500 mA/h cada una. Conectando 2 filas
en paralelo donde cada fila tiene 4 baterı́as en serie, se genera un total de 4.8 voltios a 5000 mA/h,
con los que se puede administrar energı́a para el FPGA y los servomotores. La configuración de las
baterı́as se muestra en la Figura 4.6.

4.1.5 Arquitectura de control

Para el desarrollo de la arquitectura de control se determinó implementarla en un dispositivo


FPGA, ya que poseen ciertas caracterı́sticas muy afines a los objetivos y requerimientos iniciales de
este proyecto. El uso de un FPGA provee un compromiso entre flexibilidad y costo, ya que puede
4. Desarrollo de Robocan 87

Figura 4.6: Paquete de baterı́as de 4.8 voltios y 5 A/h.

reprogramarse el funcionamiento del hardware, permitiendo una velocidad de procesamiento mayor a


la de una computadora de propósito general como una PC, pero sin llegar a los costos económicos que
representarı́a un ASIC (Circuito Integrado para Aplicaciones Especı́ficas) dedicado que no se pueda
adaptar a posibles cambios. Otra caracterı́stica que tienen los FPGAs es el proceso en paralelo que
se realiza en los pequeños bloques que tiene. Por estas caracterı́sticas los FPGAs han sido utilizadas
en numerosos trabajos, como se ha descrito en el marco teórico.

Para el control del robot se propone una arquitectura de control compuesta por varios módulos
distintos, como se muestra en la Figura 4.7. Esta propuesta de control se divide en dos niveles,
dependiendo del nivel de abstracción de la información con la que se trabaja. El nivel superior se
dedica a las tareas que requieren un mayor tiempo de procesamiento, como la toma de decisiones,
la planeación de tareas, la visión, la generación de mapas y la interacción con el usuario. Por otro
lado, el control de bajo nivel se encarga de las tareas que requieren de un tiempo de respuesta muy
corto, con una comunicación directa con los actuadores, todas ellas tareas con un nivel muy bajo de
abstracción de la información.

Para los fines de este trabajo de tesis, de los módulos que se muestran en la Figura 4.7, sólo
se implementaron los que están marcados en el recuadro rojo, pues son los que permiten probar
directamente el movimiento de las 14 articulaciones del robot. Sin embargo, el esquema completo
mostrado en la Figura 4.7 puede servir de guı́a para cualquier implementación futura de distintos
88 4.1. Componentes del robot

Figura 4.7: Arquitectura de control.

esquemas de control autónomo.

Los módulos que se implementaron de esta arquitectura son:

Generador de movimientos. Este módulo genera los ángulos que debe tener cada articulación
y los convierte en un ancho de pulso que pueda interpretar el servomotor. El desarrollo e
implementación de este módulo se detallan en el capı́tulo de implementación y resultados.

Controlador de servomotores. El controlador de servomotores recibe un ancho de pulso y el


canal al que debe ser enviado, transformándolo en un formato que pueda interpretar la tarjeta
controladora de servomotores. Al igual que el módulo anterior, este módulo también se describe
en el capı́tulo de implementación y resultados.

Actuadores. En esta sección de la arquitectura se implementan los servomotores de manera


4. Desarrollo de Robocan 89

fı́sica en la estructura, para generar los movimientos del ciclo de marcha.

4.1.6 Comunicación

La comunicación entre el robot y el usuario se encuentra en el nivel alto, por medio del módulo
encargado de la interfaz de usuario. El desarrollo de este módulo se encuentra más allá del alcance
buscado en este trabajo de tesis, por lo que en el estado actual de este desarrollo se usa una interfaz
en la PC para programar directamente el FPGA y posteriormente enviar los datos por medio de un
cable USB. El esquema de comunicación actual se puede apreciar en la Figura 4.8, donde el FPGA es
programado en una computadora, después se descarga y ésta es la que envı́a comandos a la tarjeta
de control SSC-32, que interpreta y envı́a el ancho de pulso correspondiente a cada motor.

Figura 4.8: Comunicación de los componentes.

4.2 Diseño del robot

El diseño del robot es una representación gráfica de cada uno de los componentes que integran al
robot, que al unirse dan una forma especı́fica a dicho robot. Para el diseño del robot se consideró la
configuración de los GDL y la morfologı́a de un perro. En base a estos criterios se creó un diseño
con acrı́lico, pues es un material resistente y flexible, a un precio económico. También se consideró el
tamaño, que es un factor importante, puesto que un robot pequeño utiliza menos material para su
90 4.2. Diseño del robot

construcción y un consumo menor en la energı́a para desplazarse.

4.2.1 Distribución de los grados de libertad (GDL)

En la sección anterior se definió que tres GDL proveen de una buena solución para obtener
una gran movilidad en las patas de los robots. Ası́, se distribuyeron dos GDL en los “hombros” y
“cadera” del robot, para proveer los movimientos de abducción-aducción; y el tercer GDL se localiza
en los “codos” y “rodillas” para proveer los movimientos de flexión-extensión. El diseño de la cabeza
está formado por dos GDL que generan un movimiento pan and tilt. La configuración de todos los
GDL en el robot se muestran en la Figura 4.9.

Figura 4.9: Configuración de los grados de libertad.

La configuración de los GDL en patas es muy importante, ya que en conjunto con el resto del
diseño y el rango de movimiento de los servomotores, determina los posibles movimientos que puede
generar cada pata. El rango total de los movimientos de las patas se puede apreciar en la Figura
4.10, donde la configuración para las patas traseras es inversa.
4. Desarrollo de Robocan 91

Figura 4.10: Rango de los movimientos de las patas.

4.2.2 Diseño de la estructura

Para el diseño del robot se utilizó una herramienta de diseño asistido por computadora
(Computer Aided Design-CAD), ya que facilita el modelado de componentes con las medidas
correspondientes, permitiendo un ahorro en recursos, tanto económicos como en tiempo. En la
actualidad existe una gran variedad de herramientas CAD, las cuales se pueden elegir dependiendo
de las necesidades y los recursos disponibles. En este caso se utilizó Blender 2.5 ya que es un software
libre, disponible para varios sistemas operativos, lo que lo convierte en una herramienta accesible.
Además, está ampliamente documentado en su sitio web3 . Algunas funcionalidades de este software
permitieron copiar piezas de manera simétrica, ahorrando tiempo en el diseño total del robot.

Las medidas en el diseño se consideraron en base al tamaño del servomotor Blue-Bird MG-380,
tratando de copiar la morfologı́a de un perro pequeño. Ası́, se propuso una distancia de 8 cm desde
el suelo hasta la “rodilla” del robot, y 10 cm desde la “rodilla” a la “cadera”.

El diseño del robot se dividió en tres componentes principales: la cabeza, el cuerpo y las patas.
3
http://www.blender.org/download/get-blender/ 21/02/12
92 4.2. Diseño del robot

El diseño de las patas requirió realizar diversas modificaciones durante el desarrollo de este trabajo
de tesis, obteniendo 4 versiones distintas, debido principalmente a que el peso total del robot y
las fuerzas que deben aplicar los motores requerı́an de un diseño más resistente. El diseño final del
robot se muestra en la Figura 4.11. Cada pieza que conforma el robot fue realizada de tal manera
que respetara aproximadamente la morfologı́a de un perro y que también se pudieran ensamblar
entre ellas. Ası́ cada pieza contiene muescas y perforaciones, de manera diferente. Para reforzar la
estructura, las piezas se pegaron con pegamento industrial (Kola-loca).

4.2.2.1. Diseño de las patas

Durante el diseño de las patas del robot debieron realizarse varias versiones. En estos desarrollos
se identificó principalmente el problema de que las fuerzas que debı́an aplicar los motores requerı́an
de una estructura más robusta.

En la primera versión del robot se buscó que el contacto entre la pata y el suelo fuera puntual
en todo momento. Por ello, se consideró utilizar como efector final una esfera, para lo cual se
añadieron pelotas de goma al final de las patas y garantizar también una tracción apropiada
(Figura 4.12). El diseño de esta pata era muy sencillo pues requerı́a de pocas piezas. Sin
embargo, el peso de las pelotas era demasiado importante y provocaba un sobre-esfuerzo de
los motores y una descarga rápida de las baterı́as. La construcción del robot en esta versión se
muestra en la Figura 4.13.

En la versión siguiente, el servomotor que corresponde a la rodilla cambió de orientación para


tener un doble refuerzo de acrı́lico en el efector final, como se muestra en la Figura 4.14. Este
diseño presentó el inconveniente de que todo el peso del robot quedaba sostenido únicamente
por un tornillo en cada articulación de las “rodillas”, lo que terminaba aflojando la base del
servomotor y perdiendo la estabilidad total del robot. El desarrollo de esta versión se muestra
en la Figura 4.15.
4. Desarrollo de Robocan 93

En la tercera versión de las patas (Figuras 4.16 y 4.17 ), se realizó un diseño más complejo
para obtener un doble soporte en cada uno de los servomotores de las articulaciones. También
se modificó la orientación del primer servomotor de cada pata, separándolo del cuerpo e
incorporándolo a la estructura de la pata, con el propósito de tener un doble soporte con
el cuerpo.

En esta versión se implementaron las primeras pruebas de ciclos de marcha. Sin embargo, el
soporte del primer GDL no era totalmente robusto, por lo que se decidió implementar una
última versión.

La última versión del robot es similar a la anterior, con la diferencia que se utiliza una pieza
para hacer el doble soporte en ambas patas delanteras y otra pieza para las patas traseras, en
lugar de una para cada una. Esto proporciona una mayor estabilidad y rigidez en el robot, lo
que se ve reflejado en el ciclo de marcha. La versión final del robot se muestra en las Figuras
4.19 y 4.18.

Para describir la última versión de la pata, se detallan a continuación las dos secciones, “cadera”
y “rodilla”, en las que se divide la estructura completa.

• La “cadera” de la versión final está compuesta por 2 servomotores donde ambos están
en una caja compartida (Figura 4.20), de tal manera que hay una distancia entre los
ejes, 5 cm en el eje x y 2 cm en el eje z. Al estar montados en la misma pieza, se logra
una mayor rigidez en la articulación compuesta, con lo que se mejora el comportamiento
mecánico general del robot. Las distancias entre los ejes de rotación de los servomotores
deben tomarse en cuenta al utilizar los modelos cinemáticos del robot. Los 2 grados de
libertad están sostenidos por en tornillo del servomotor y por otro tornillo en la misma
dirección.

• La “rodilla” de la versión final se encuentra situado a una distancia de 10 cm en el eje


94 4.3. Cinemática

z medidos desde la “cadera” y una distancia de 8 cm con respecto al suelo. Como se


mencionó anteriormente, este diseño incluye un doble soporte para el eslabón final, como
se muestra en la Figura 4.21.

4.2.2.2. Diseño de la cabeza

El diseño de la cabeza está compuesto por dos servomotores colocados en el “cuello” del robot,
que generan un movimiento pan and tilt. Además, la cabeza puede almacenar cámaras hasta de un
tamaño de 5cm x 5cm x 5cm, como se muestra en la Figura 4.22.

4.2.2.3. Diseño del cuerpo

El diseño del cuerpo del robot no incluye servomotores, pero es una parte fundamental, ya que
contiene la unión de todas las patas, la cabeza y debe sostener los componentes extras, como las
baterı́as y las tarjetas. Las baterı́as son las que generan mayor peso, por tal motivo se dejo un espacio
en el centro del cuerpo para localizar allı́ el centro de masa del robot.

La tarjeta FPGA ocupa la mayor parte del cuerpo, por lo que está situada en la parte superior,
mientras que la tarjeta SSC-32 controladora de servomotores se colocó entre las piernas delanteras,
debajo de la cabeza, lo que permite que el cable entre ambas tarjetas sea muy pequeño. Ası́, el diseño
del cuerpo se puede apreciar en la Figura 4.23.

4.3 Cinemática
La cinemática del robot es un aspecto importante en la robótica, ya que permite establecer la
relación entre los parámetros articulares del robot y los parámetros operacionales de las extremidades
del robot. En este trabajo no se implementa el módulo de la cinemática para el control. No obstante,
se establecieron los modelos cinemáticos directo e inverso para su uso futuro en alguna aplicación.
4. Desarrollo de Robocan 95

l0 l1 l2 l3 l4 l5
Pata 1 4.5 cm 7 cm 5 cm -2 cm -10 cm -8 cm
Pata 2 4.5 cm -7 cm 5 cm -2 cm -10 cm -8 cm
Pata 3 -4.5 cm -7 cm -5 cm -2 cm -10 cm -8 cm
Pata 4 -4.5 cm 7 cm -5 cm -2 cm -10 cm -8 cm

Tabla 4.1: Valores de los parámetros de cada pata del robot.

Las ecuaciones finales están basadas en el esquema que se presenta en la Figura 4.24. La cinemática
directa se obtiene por medio de las Ecuaciones 4.1, 4.2 y 4.3, donde los valores de l0,i ... l5,i se
muestran en la Tabla 4.1. Una descripción más detallada sobre la obtención de estas ecuaciones se
muestran en los anexos.

xi = sen θ1,i (l5,i cos(θ2,i + θ3,i ) + l4,i cos θ2,i + l3,i ) + l0,i (4.1)

yi = l5 sen(θ2,i + θ3,i ) + l4,i sen θ2,i + l1,i + l2,i (4.2)

zi = cos θ1,i (l5,i cos(θ2,i + θ3,i ) + l4,i cos θ2,i + l3,i ) (4.3)

El modelo de la cinemática inversa se describe por las Ecuaciones 4.4, 4.5 y ??, que también son
detalladas en los anexos.

  
 tan−1 xi −l0,i Si zi 6= 0
zi
θ1,i = (4.4)
 900 En otro caso
  
xi − l0,i
(l cos(θ3 ) + l4 )yi − l0,i − l1,i + (l5 sen(θ3 )) − l3,i
 5
−1  sen(θ1,i ) 
θ2,i = sen   (4.5)
(l5 cos(θ3 ) + l4 ) + (l5 sen(θ3 ))
2 2 

 
−1
(l5,i (sen(θ2,i + θ3,i ) + l4,i sen(θ2,i ))2 + x2a,i − l5,i
2 2
− l4,i
θ3,i = cos (4.6)
2l4,i l5,i
96 4.4. Conclusiones

4.4 Conclusiones
El diseño propuesto para el robot provee una solución al planteamiento del problema, considerando
cada componente que integra un robot. El control está implementado en un dispositivo FPGA, lo
que proporcionará flexibilidad de desarrollo y verdadero paralelismo para implementaciones tanto de
generadores de ciclo de marcha, por ejemplo a base de CPG [Huitzil and Girau, 2008], como de
procesamiento de imágenes [Darabiha et al., 2003].

Por otro lado, los sensores proveen imágenes que permitirán obtener una representación muy
adecuada del medio ambiente, a una velocidad de transmisión considerable. El diseño de la estructura
fı́sica con 3 grados de libertad en cada pata permite que el robot pueda acceder a terrenos irregulares,
desplazando las patas en las 3 dimensiones. El suministro de energı́a por medio de baterı́as recargables
provee autonomı́a, para desplazarse sin necesidad de cables, con la ventaja de ahorro económico al
reutilizarse.

Uno de los objetivos que nos fijamos en un inicio fue de obtener un desarrollo con un bajo costo
económico. Al final, logramos la construcción del robot por un costo total de $11,231 pesos, lo cual
es relativamente económico con respecto a otros robots de caracterı́sticas similares. La descripción
de los costos de los materiales se puede apreciar en la Tabla 4.2.
4. Desarrollo de Robocan 97

Descripción Precio unitario Cantidad Total


Módulo estéreo VmodCAM $ 1040 1 $ 1040
Servomotor Blue-Bird 380-Mg $ 476 14 $ 6664
FPGA (Spartan 3E) $ 2080 1 $ 2080
Controlador de Servos SSC-232 $ 520 1 $ 520
Baterı́a recargable AA de 1.2 Voltios y 2500 mA $ 52 8 $ 416
Placas de acrı́lico $ 54 6 $ 324
Baterı́a recargable de 9 Voltios y 400 mA $ 99 1 $ 99
Cable serial DB9 $ 40 1 $ 40
Extensión de cables $2 14 $ 28
Paquete de tornillos $ 20 1 $ 20
Total........ $ 11,231

Tabla 4.2: Costo económico de los materiales, para la construcción del robot.
98 4.4. Conclusiones

Figura 4.11: a)Diseño final del robot en CAD b)Versión final del robot.
4. Desarrollo de Robocan 99

Figura 4.12: Diseño de la pata versión 1.

Figura 4.13: Robocan versión 1.


100 4.4. Conclusiones

Figura 4.14: Diseño de la pata versión 2.

Figura 4.15: Robocan versión 2.


4. Desarrollo de Robocan 101

Figura 4.16: Diseño de la pata versión 3.

Figura 4.17: Robocan versión 3.


102 4.4. Conclusiones

Figura 4.18: Diseño de la pata versión 4.

Figura 4.19: Robocan versión 4.


4. Desarrollo de Robocan 103

Figura 4.20: Diseño de la pierna del robot.

Figura 4.21: Diseño de la rodilla del robot.


104 4.4. Conclusiones

Figura 4.22: Diseño de la cabeza del robot.

Figura 4.23: Diseño del cuerpo del robot.


4. Desarrollo de Robocan 105

Figura 4.24: Sistema vectorial.


Implementación y resultados
5
Después de presentar el diseño del robot, es necesario verificar la validez de nuestro
desarrollo, por lo que se realizan pruebas sobre ciclos de marcha. En este capı́tulo se
detalla la implementación y los resultados de dos enfoques de ciclos de marcha.

5.1 Introducción

Como lo hemos mencionado con anterioridad, los ciclos de marcha se pueden implementar a
partir de diversos enfoques, como los valores predefinidos, interpolación de movimientos, splines y
los CPGs. Para validar el funcionamiento del robot en ciclos de marcha se implementaron 2 enfoques.
Aunque el robot está construido con 3 GDL en cada pata, no se utilizó un ciclo de marcha que use
los 3 ya que tienen un control más complejo y la falta de tiempo limitó implementar más enfoques.
El primer enfoque utiliza sólo un grado de libertad en cada pata y el movimiento lo realiza con
valores predefinidos. El segundo enfoque utiliza 2 grados de libertad en cada pata y utiliza una
onda sinusoidal para la generación del ciclo de marcha. En ambos casos, el ciclo de marcha es un
caminado estático y se presentan los resultados de pruebas, valorando la velocidad obtenida en cada

107
108 5.2. Implementación

implementación. En este capı́tulo también hay una sección que describe los módulos del control que
se utilizaron para la implementación de los ciclos de marcha.

5.2 Implementación
Para la programación del dispositivo FPGA (Spartan 3E) se utilizó el programa ISE de la compañı́a
proveedora de la tarjeta Xilinx. En el desarrollo de la aplicación surgieron problemas con la memoria
del FPGA, por lo que sólo fue posible implementar 3 módulos: el generador de ciclos de marcha, el
generador de movimientos y el controlador de servos.

Generador de ciclos de marcha. En este módulo se implementaron los enfoques para generar
los ciclos de marcha. En el enfoque por valores predefinidos, simplemente se asignaron valores
de forma manual para validar el caminado. En el ciclo de marcha con una onda sinusoidal,
el módulo genera los valores de las articulaciones a partir de una función. En ambos casos el
resultado es una serie de valores que corresponden a los ángulos de las articulaciones. Este
módulo esta descrito en el Algoritmo 1.
Algoritmo 1 Generador de ciclos de marcha.
Entrada: Enf oque, V alores, Amplitud, F aseinicial, Incremento
Salida: − −→
ang
si Enf oque = P redef inidos entonces
−−→ = V alores
ang
si no
para i = 1 → V alores hacer
−−→ = Amplitud(sen(F aseinicial + Incremento ∗ i))
ang
fin para
fin si

Generador de movimientos. El generador de movimientos recibe los ángulos y los transforma


en un ancho de pulso (pwm) que puede entender el servomotor. Este módulo está compuesto
por las funciones descritas en los Algoritmos 2 y 3.

Controlador de movimientos. Este módulo está encargado de recibir el valor de ancho de pulso
PWM, el canal correspondiente y la velocidad, para posteriormente unir todos los parámetros
5. Implementación y resultados 109

Algoritmo 2 Convertir θ a PWM.


Entrada: Num Servos , θ, velocidad
Salida: Cadena Salida
Cadena Base =’#’+Num Servos
(1600)θ
P W M = 800 +
170
Cadena P W M = Generar(P W M, 1)
Cadena V elocidad = Generar(velocidad, 2)
Cadena Salida = Cadena Base + Cadena P W M + Cadena V elocidad

Algoritmo 3 Generar.
Entrada: valor, tipo
Salida: Cadena valor
si tipo = 1 entonces
Cadena valor =’P’+valor
si no
Cadena valor =’S’+valor
fin si

y generar una única cadena de comando para enviarla por el puerto serial, como se describe
en el Algoritmo 4. El comando que se envı́a por el puerto serial tiene un formato compuesto
por 4 partes fundamentales:

#NS P 2400 S1000 < CR >


| {z } | {z } | {z } | {z }
A B C D

Donde:
Bloque A = Lleva el sı́mbolo ‘#’ seguido por un número que indica el canal al que hace
referencia (0-31), el cual recibirá el ancho de pulso.
Bloque B = P indica que el siguiente número corresponde al ancho de pulso que se enviará al
canal anterior (800-2400).
Bloque C = La literal S indica la velocidad con la cual se realizará el movimiento en el
servomotor (1-3500).
Bloque D = Indica que la instrucción ha finalizado con un retorno de carro, la sección del
formato se puede repetir de la A a la C, separado por comas, permitiendo que todos los
110 5.3. Ciclo de marcha con valores predefinidos

Algoritmo 4 Controlador de movimientos.


−−−→ −−→
Entrada: Servo, Ang, vel
X~ = ””
para i = 1 → 8 hacer
~ = X+Convertir
X ~ θ a PWM (Servoi , Angi , vel)
fin para
Inicializar puerto
~ hacer
para i = 1 → length(X)
EnviarXi
fin para
Enviar \r
Enviar \n

servomotores se muevan al mismo tiempo.

Durante el desarrollo del programa se presentaron algunas dificultades que, en retrospectiva, eran
bastante simples de resolver, pero que en su momento fueron difı́ciles de detectar y de resolver,
como la manera de enviar el final de una cadena para que la tarjeta controladora de servomotores la
interpretará como retorno de carro, ası́ como coordinar las frecuencias de transferencia entre ambas
tarjetas, ya que la tarjeta controladora de servos tiene un máximo de 115200 KB/s, mientras que el
FPGA tiene configurado por defecto una velocidad mayor.

5.3 Ciclo de marcha con valores predefinidos

5.3.1 Implementación

Este enfoque para generar un ciclo de marcha utiliza sólo un grado de libertad en cada pata,
simulando un péndulo. Las patas tienen un desplazamiento de 20o hacia adelante, seguido de un
desplazamiento de 20o hacia atrás, como se muestra en la Figura 5.1. Al aplicar este movimiento, el
robot se arrastra sobre la superficie. El valor de 20o se eligió para no sobreforzar los motores, pues
deben soportar el peso del robot con esa inclinación. Si el valor del ángulo es muy pequeño, el robot
tendrá un desplazamiento muy corto, pero si es muy grande, los servomotores no soportarı́an el peso,
5. Implementación y resultados 111

generando una caı́da en el robot.

Figura 5.1: Movimientos en una pata, usando el enfoque con valores predefinidos.

Para realizar el ciclo de marcha, se estableció un orden para el desplazamiento de las patas, el
cual se muestra en la Figura 5.2, donde cada circulo representa una pata del robot y el triángulo,
la dirección que tiene el robot. Los valores para los ángulos de las patas están en la Tabla 5.1. La
secuencia del caminado, implementado en el robot se puede apreciar en la Figura 5.3, donde muestra
las fases del ciclo de marcha. La implementación de este enfoque se muestra en el Algoritmo 5.

Algoritmo 5 Ciclo de marcha con valores predefinidos.


Entrada: T abla de valores, −−−−→
servos
para i = 1 → 6 hacer
−−→
Ang =Generador de ciclos de marcha (P redef inidos, F ilai de valores)
Controlador de movimientos (−−−−→ −
servos,
−→
Ang,100)
fin para
112 5.3. Ciclo de marcha con valores predefinidos

Figura 5.2: Ciclo de marcha generado por los valores predefinidos (vista superior).

Movimiento DE-TR DE-FR IZ-FR IZ-TR


1 90 90 90 90
2 90 70 90 90
3 90 70 90 110
4 110 90 70 90
5 70 90 70 90
6 70 90 110 90

Tabla 5.1: Valores de los ángulos para el ciclo de caminado con valores predeterminados.

5.3.2 Resultados

Después de implementar el enfoque por valores predefinidos, se realizaron 10 pruebas, las cuales
consistieron en dejar al robot caminando durante 1 minuto y después de ese tiempo medir la
distancia recorrida. A pesar de que las condiciones iniciales fueron siempre las mismas, se obtuvieron
diferentes resultados, en gran medida debido al consumo de la energı́a. Las pruebas se realizaron
en diferentes momentos con diferentes niveles de carga de la baterı́a. En la prueba 5 se cargó la
baterı́a completamente y se realizaron el resto de las pruebas de manera consecutiva. Tras realizar
las pruebas se mostró que con la baterı́a recién cargada se obtuvieron buenos resultados, mientras
que con el tiempo y consumo de energı́a, el valor recorrido decrementaba. El mejor resultado fueron
45 cm en un minuto y los resultados de las 10 pruebas se muestran en la Figura 5.4.
5. Implementación y resultados 113

Figura 5.3: Ciclo de marcha implementado en el robot.

5.4 Ciclos de marcha usando una onda sinusoidal

5.4.1 Implementación

Como segundo enfoque se implemento un ciclo de marcha a partir de una onda sinusoidal. La onda
sinusoidal está compuesta por tres parámetros, como se muestra en la Ecuación 5.1 y en la Figura
5.5, donde A es la amplitud de la onda (que corresponde en nuestro caso al máximo desplazamiento
articular), ϕ es la fase inicial de la onda (el ángulo inicial de la articulación) y x es la fase de la
oscilación.

f (x) = A sen(ϕ + x) (5.1)

Para la implementación del ciclo de marcha se usaron 2 grados de libertad en cada pata, con una
señal diferente para cada articulación. El rango en el cual se desplaza cada articulación se muestra en
la Figura 5.6. Ası́, al aplicarse la Ecuación 5.1 en cada GDL se obtiene la Tabla 5.2. Para cada variable
x se le asignó una serie de valores que inician desde el 0◦ y terminan en 360◦ con un incremento
114 5.4. Ciclos de marcha usando una onda sinusoidal

Figura 5.4: Gráfica de 10 pruebas del ciclo de marcha, usando valores predefinidos.

de 30◦ , obteniendo las Ecuaciones 5.2 y 5.3. La función seno se implementó en el FPGA con una
lookup table 1 , en donde se almacenan los resultados de la función en formato de punto fijo, en un
rango del 0 al 100, que es divido por 100 cuando se requiere utilizar dicho valor. La implementación
de este ciclo de marcha se muestra en el Algoritmo 6.

Parámetro θ2 θ3
x θ θ
ϕ 0◦ −40◦
A 45◦ 40◦

Tabla 5.2: Parámetros de los ángulos, aplicando una onda sinusoidal.

f (x) = 45 sen(0 + x) (5.2)

1
Tabla de consulta
5. Implementación y resultados 115

Figura 5.5: Generación de una onda sinusoidal, con sus respectivos parámetros.

f (x) = 40 sen(x − 40) (5.3)

Al dividir los 360◦ entre los 30◦ se obtienen 12 valores, que corresponden a las fases que realiza
cada articulación, generando un movimiento similar al de un animal caminando, como se muestra en
la Figura 5.7.

Las ondas que se generaron a partir de la Ecuación 5.1 se muestran en las gráficas 5.8 y 5.9.
La primera gráfica muestra la señal utilizada para la articulación de la “cadera”, que inicia desde
la posición 0◦ y tiene una altura máxima de 45◦ , mientras que la segunda gráfica corresponde a
“rodilla”, e inicia en −30◦ y tiene una altura de 40◦ .
116 5.4. Ciclos de marcha usando una onda sinusoidal

Figura 5.6: Movimientos en una pata, usando un oscilador.

5.4.2 Resultados

Para evaluar los resultados se implementó el mismo método que en el experimento anterior,
dejando que el robot caminara durante 1 minuto y midiendo después la distancia total recorrida. En
este caso el robot realizó un recorrido menor, con una distancia máxima de 14 cm, mientras que la
distancia máxima recorrida con el otro enfoque fueron 45 cm. Esto se debe a que el ciclo de una
pata está compuesto por 12 fases, en lugar de 3 como el caso anterior, lo cual utiliza más tiempo
para el desplazamiento en un ciclo.

Los resultados obtenidos no tienen gran variación entre ellos, lo que muestra la gran estabilidad
de un enfoque como el propuesto con el uso de osciladores. Los resultados se muestran en la Figura
5.11 y la implementación en el robot se muestra en la Figura 5.10.
5. Implementación y resultados 117

Algoritmo 6 Ciclo de marcha con una onda sinosuidal.


Entrada: Incremento, Amplitud, F aseinicial, − −−−→
servos
−−−→
Ang1 =Generador de ciclos de marcha (Sinosuidal, Amplitud, F aseinicial, Incremento,)
−−−→
Ang2 =Generador de ciclos de marcha (Sinosuidal, Amplitud, F aseinicial, Incremento,)
para i = 1 → 4 hacer
para j = 1 → 12 hacer
para k = 1 → 8 hacer
−−→
Ang k =90
fin para
−−→ −−−→
Ang =Ang1
−−→i −−−→
Ang i + 4=Ang2
Controlador de movimientos (−−−−→ −
servos,
−→
Ang,100)
fin para
fin para

5.5 Conclusiones
En este capı́tulo se implementaron 2 ciclos de marcha utilizando diferentes enfoques, el
primero que usa valores predefinidos, y el segundo con valores generados por un oscilador. Con la
implementación de un oscilador en cada pata para generar un ciclo de marcha completo, demuestra la
posibilidad de implementar un caminado usando un CPG como enfoque, ya que éste está compuesto
por osciladores acoplados.

Para validar el funcionamiento se realizaron 10 pruebas en cada uno de los enfoques, y en los
resultados se observó que el primer enfoque genera desplazamientos mayores, pero que dependen del
nivel de carga de la baterı́a. En cambio, el segundo enfoque presenta desplazamientos más lentos,
pero que son independientes del estado de la baterı́a ya que, durante el ciclo de marcha, cada pata
generaba menos fricción con la superficie.
118 5.5. Conclusiones

Figura 5.7: Ciclo completo de una pata, usando un oscilador.

Figura 5.8: Onda generada para la articulación 2.


5. Implementación y resultados 119

Figura 5.9: Onda generada para la articulación 3.


120 5.5. Conclusiones

Figura 5.10: Ciclo de marcha usando una onda sinusoidal en el robot.


5. Implementación y resultados 121

Figura 5.11: Gráfica de 10 pruebas del ciclo de marcha, usando una onda sinusoidal.
Conclusiones y trabajo futuro
6
El estudio de la locomoción, aplicado a los robots con patas, es un área muy importante
en la robótica. Con este trabajo se genera una plataforma para realizar estudios sobre
ciclos de marcha. En este capı́tulo se concluye acerca del trabajo realizado y el trabajo
futuro que se puede realizar sobre este mismo.

6.1 Conclusiones

El diseño del robot está constituido tanto en hardware como en software, permitiendo un diseño
adecuado y portátil. El hardware incluye diversos componentes pequeños como los servomotores y
su tarjeta controladora, que generan un peso pequeño y proporcionan un buen desempeño. El FPGA
permite tener una flexibilidad de desarrollo y un desempeño adecuado, para tareas que requieren
paralelismo. La baterı́a proporciona autonomı́a al robot ya que lo hace independiente de cables
externos.

Los 2 GDL empleados en los ciclos de marcha implementados, mostraron la viabilidad del diseño

123
124 6.1. Conclusiones

mecánico. No obstante, el uso de los 3 GDL con los que ya cuenta la plataforma, le permitirán generar
una variedad de movimientos. Por otro lado, el movimiento pan and tilt de la cabeza permite ampliar
la visión de las cámaras.

La arquitectura de control que se propone, muestra varios módulos que pueden implementarse
posteriormente. La división por módulos permite el uso de distintos enfoques. En este trabajo se
implementaron únicamente los últimos módulos del control de bajo nivel, ya que el objetivo es
proveer una plataforma fı́sica para ciclos de marcha y estos son los módulos básicos requeridos para
hacerlo. El resto de los módulos dependerá del tipo de ciclo de marcha a generar, ası́ como del tipo
de aplicación que se quiera implementar.

Los modelos cinemáticos no fueron implementados, pero se obtuvieron para un uso posterior. Su
desarrollo se describe ampliamente en el apéndice. Estos modelos, al ser complementarios, pueden
proveer al robot de una retroalimentación, obteniendo un sistema de lazo cerrado y generar un control
PID1 , para obtener errores menores.

En las pruebas se lograron implementar 2 enfoques de ciclos de marcha, uno con valores
predeterminados y el segundo con valores generados por un oscilador sinusoidal. De esta manera
se logró verificar el funcionamiento del robot como una plataforma válida para la implementación de
ciclos de marcha.

El desarrollo de varios prototipos del robot, contribuyó para tener una idea más clara de los
aspectos que se deben considerar para la construcción de un robot. El primero de ellos es que el
peso que sostienen las patas debe ser pequeño para no sobrecargar los servomotores. Las bases de
los servomotores, deben estar diseñadas de tal manera que provean de doble soporte para minimizar
el esfuerzo en los servomotores. El último aspecto es el diseño del cuerpo, el cual debe ser adecuado
para que las patas tengan un rango más amplio en sus movimientos.
1
Proporcinal-Integral-Derivativo
6. Conclusiones y trabajo futuro 125

Como conclusión final se puede apreciar que se han cumplido los objetivos establecidos
inicialmente, el compromiso entre costo y desempeño, al construir el robot con un costo muy bajo
(costo total $ 11, 231.00), permitiendo generar más de un enfoque para ciclos de marcha. También
se implementó un oscilador sinusoidal, para generar un ciclo de marcha, el cuál obtuvo una velocidad
máxima de 15 cm/s. Este ciclo de marcha mostró una gran constancia, lo que es una muestra del
éxito de nuestro diseño.

6.2 Trabajo futuro


El objetivo principal de este trabajo ha sido el diseño, la construcción de un robot cuadrúpedo,
ası́ como verificar que puede utilizarse para estudiar la generación de ciclos de marcha. Sin embargo,
aún restan varios trabajos por realizar en el robot. Algunos de los más relevantes pueden ser:

Implementar ciclos de marcha con otros enfoques, y/o con variaciones. El oscilador
implementado muestra que es posible aplicar un enfoque basado en CPGs, ası́ que uno de
los posibles trabajos serı́a la implementación de este enfoque. El CPG es un enfoque reciente,
por lo que se pueden implementar varios generadores de patrones rı́tmicos complejos. También
serı́a muy interesante realizar la implementación de los otros enfoques que se describieron en la
introducción, como los splines o algoritmos de optimización. Además de los diversos enfoques
para generar los ciclos de marcha, también se pueden generar diferentes tipos de caminado,
como trotar o correr.

Añadir más sensores al robot. El FPGA es flexible, permitiendo reconfigurar el hardware y


utilizar las conexiones de entrada y salida para aumentar los componentes. Con esto se pueden
anexar sensores como inclinómetros, sensores de ultrasonido, entre otros, lo que permite generar
un modelo más adecuado del medio que lo rodea.

Implementar enfoques en cada módulo del control, de alto y bajo nivel. El robot hasta el
momento carece de todos los componentes de alto nivel y algunos de bajo nivel, por lo que su
126 6.2. Trabajo futuro

implementación podrı́a generar varios trabajos de investigación.


A
Cinemática

Una de las principales problemáticas que se deben abordar durante el desarrollo de un


robot es la de la cinemática, es decir, la relación que existe entre las coordenadas de
trabajo del robot y las coordenadas articulares de su estructura mecánica. En este anexo
se describe el sistema vectorial aplicado a la estructura del cuerpo del robot, ası́ como las
ecuaciones que permiten obtener su modelo cinemático directo y su modelo cinemático
inverso.

A.0.1 Cinemática directa

La cinemática directa consiste en describir la localización relativa de los eslabones de una


cadena cinemática, a partir de los datos propios de la estructura geométrica del robot y de las
transformaciones provocadas por las articulaciones entre los eslabones [Khatib and Siciliano., 2008].
Algunos métodos utilizados para la obtención de la cinemática directa son:

Análisis geométrico.

Matrices de transformación homogéneas.

127
128

Método Denavit-Hartenberg.

A.0.1.1. Análisis geométrico

En este método se analizan directamente (generalmente de forma gráfica) las relaciones


trigonométricas entre los parámetros articulares del robot y las coordenadas operacionales del eslabón
final. Este método es utilizado cuando la cantidad de parámetros articulares es pequeña.

Figura A.1: Sistema de vectores con 1 grado de libertad.

Un ejemplo sencillo para ilustrar este método lo podemos ver en la Figura A.1, en la cual
conociendo el valor de la variable articular θ1 y la longitud del brazo l1 , se puede determinar la
posición final del punto P (x, y), dada por las expresiones x = l1 cos(θ1 ) y y = l1 sen(θ1 ).

A.0.1.2. Matrices de transformación homogénea

En este método se utiliza la representación homogénea de las coordenadas de un punto. Ası́,


si la dimensión del espacio en estudio es n, su representación en coordenadas homogéneas se hace
utilizando n + 1 dimensiones, de tal forma que un punto tridimensional p(x, y, z) se representa
en coordenadas homogéneas como p(wx , wy , wz , w) donde w es un factor de escala arbitrario (en
A. Cinemática 129

robótica, w = 1).

Utilizando esta representación, es posible expresar la transformación de coordenadas


tridimensionales desde un sistema coordenado homogéneo a otro por medio de una matriz de 4 × 4
elementos. Esta matriz T se denomina matriz de transformación homogénea y está compuesta de 4
submatrices: una matriz R3×3 que expresa la rotación entre los dos sistemas coordenados (en función
de tres ángulos), una matriz p3×1 que expresa la traslación del origen de un sistema coordenado al otro
(en función de tres distancias), una matriz f1×3 que representa una transformación de perspectiva
(en nuestro caso, un vector nulo) y una matriz w1×1 que expresa un factor de escala global (en
nuestro caso, unitario).

   
R3×3 p3×1 Rotación Traslación
T = = 
f1×3 w1×1 Perspectiva Escala

Para realizar el análisis cinemático del robot, a cada uno de los eslabones de la cadena cinemática
se asocia un sistema coordenado que se mueve junto con él. El sistema coordenado puede colocarse
libremente sobre el eslabón, por lo que queda a criterio del diseñador decidir sobre la ubicación del
sistema coordenado para que las expresiones resultantes sean lo más sencillas posible. Ası́, podemos
expresar la posición relativa entre dos eslabones de la cadena cinemática por medio de la matriz de
transformación homogénea entre los sistemas coordenados asociados con ellos.

Cualquier matriz de transformación homogénea se puede descomponer en una combinación de


4 matrices de transformación básicas: una matriz de traslación pura T (p) (EcuaciónA.1), donde px ,
py y pz corresponden a las magnitudes de la traslación según los ejes principales del primer sistema
coordenado; y tres matrices de rotación puras R(X, α), R(Y, φ) y R(Z, θ) (ecuaciones A.2, A.3 y
A.4) alrededor de cada uno de los mismos ejes principales, donde α, φ y θ son los ángulos de rotación
y X, Y y Z son los ejes sobre los cuales se realiza la rotación. Ası́, para describir la transformación de
un sistema coordenado arbitrario a otro son necesarios 6 parámetros: tres distancias y tres ángulos.
130

 
1 0 0 px
 
 
 0 1 0 py 
T (p) = 


 (A.1)
 0 0 1 pz 
 
0 0 0 1
 
1 0 0 0
 
 
 0 cos(α) −sen(α) 0 
R(X, α) = 


 (A.2)
 0 sen(α) cos(α) 0 
 
0 0 0 1
 
cos(φ) 0 sen(φ) 0
 
 
 0 1 0 0 
R(Y, φ) = 


 (A.3)
 −sen(φ) 0 cos(φ) 0 
 
0 0 0 1
 
cos(θ) −sen(θ) 0 0
 
 
 sen(θ) cos(θ) 0 0 
R(Z, θ) = 


 (A.4)
 0 0 1 0 
 
0 0 0 1

Estas transformaciones permiten calcular las coordenadas de un punto descrito en el sistema de


referencia O′ U V W , con respecto al sistema de referencias OXY Z, como se muestra en la Figura
A.2. En este ejemplo, basta multiplicar la matriz de transformación (una traslación pura) desde
el sistema O′ U V W hacia el sistema OXY Z, por las coordenadas del vector r, para obtener sus
coordenadas en el sistema OXY Z.
A. Cinemática 131

Figura A.2: Representación de un vector en un sistema O′ U V W , con respecto a un sistema OXY Z.

      
r 1 0 0 6 −2 4
 x      
      
 ry   0 1 0 −3   7   4 
 =  = 
      
 rz   0 0 1 8   3   11 
      
1 0 0 0 1 1 1

En la Figura A.3 se muestra un ejemplo de una transformación de rotación de −90◦ sobre el eje
Z, entre el sistema O′ U V W y el sistema OXY Z.

Figura A.3: Rotación del sistema O′ U V W con respecto al sistema OXY Z.


132

En este ejemplo, las operaciones a realizar serı́an las siguientes:


      
r 0 1 0 0 4 8
 x      
      
 ry   −1 0 0 0   8   −4 
 =  = 
      
 rz   0 0 1 0   12   12 
      
1 0 0 0 1 1 1

Cabe mencionar que, si bien es posible combinar rotaciones y traslaciones multiplicando las
matrices, las transformaciones homogéneas no son conmutativas, por lo que no es lo mismo aplicar
una rotación seguida de una traslación, que realizar primero la traslación y después la rotación.
Por lo tanto, para realizar una transformación más compleja se debe considerar el orden de las
transformaciones. Un ejemplo donde se utiliza más de una transformación se presenta en la Figura A.4,
en la cual primero se realiza una translación en los tres ejes y después una rotación de 90◦ alrededor
del eje X.

Figura A.4: Traslación y rotación.


A. Cinemática 133

       
rx 1 0 0 8 0 0 0 0 −3 5
       
       
 ry   0 1 0 −12   0 0 −1 0   4   −1 
 =   = 
       
 rz   0 0 1 −4   0 1 0 0   −11   0 
       
1 0 0 0 1 0 0 0 1 1 1

A.0.1.3. Método Denavit-Hantemberg (DH)

Este método, creado por Jacques Denavit y Richar Hartenberg, fue establecido como
una convención para estandarizar el proceso de asignar sistemas coordenados a los eslabones
de una cadena cinemática fija en una base, como es el caso de los robots manipuladores
[Denavit and Hartenberg, 1955]. En esta convención se impone la localización y orientación de los
sistemas coordenados, con el propósito de reducir a 4 el número de parámetros necesarios para
describir la transformación homogénea entre dos eslabones consecutivos, en lugar de los 6 requeridos
en el caso general. Ası́, la matriz de transformación homogénea queda descrita por 2 distancias (d y
a) y 2 ángulos (θ y α). Uno de estos cuatro parámetros coincide también con el parámetro articular
de la unión entre los dos eslabones.

Por tratarse de un método sistemático, puede implementarse fácilmente en un lenguaje de


programación, por lo que el método DH se ha convertido en un estándar dentro de comunidad
cientı́fica e industrial en el campo de la robótica.

En un robot de tipo industrial, la base del robot se considera también como un eslabón de la
cadena cinemática. El robot está compuesto entonces por n + 1 eslabones, donde n es el número
de articulaciones (o grados de libertad) que posee. Para la obtención de la cinemática directa por el
método de DH, se utiliza el procedimiento descrito en el Algoritmo 7. Los pasos 1-9 del algoritmo
se refieren a la colocación de los sistemas sobre cada uno de los eslabones, como se puede ver en la
Figura A.5.
134

Figura A.5: Obtener los sistemas de cada eslabón (pasos del 1 al 9 de DH).

Las consideraciones para obtener los 4 parámetros (θ, d, a y α) que describen la transformación
homogénea, se establecen en los pasos del 10 al 13 y se muestran en la Figura A.6.
i−1
En el paso 14 se construye la matriz de transformación Ai entre cada par de eslabones

Figura A.6: Parámetros de D-H (pasos del 10 al 13).

consecutivos, al componerla con la multiplicación de 4 matrices homogéneas asociadas a los cuatros


parámetros de cada articulación (S y C son abreviaciones de sen() y cos(), respectivamente):
A. Cinemática 135

    
Cθi −Sθi 0 0 1 0 0 0 1 0 0 ai 1 0 0 0
    
    
i−1
 Sθi Cθi 0 0  0 1 0 0  0 1 0 0   0 Cαi −Sαi 0 
Ai = 







=

 0 0 1 0   0 0 1 di   0 0 1 0   0 Sαi Cαi 0 
    
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
 
Cθi −Cαi Sθi Sαi Sθi αCθi
 
 
 Sθi Cαi Cθi −Sαi Cθi αSθi 
 
 
 0 Sαi Cαi di 
 
0 0 0 1

Con la fórmula obtenida, sólo es cuestión de remplazar los valores de los 4 parámetros para
cada eslabón. El modelo cinemático total, que describe la posición del efector final con respecto al
sistema coordenado de la base, se obtiene multiplicando sucesivamente las matrices de transformación
homogénea de las articulaciones que forman la cadena cinemática:
 
R 3×3 p 3×1
0
An =0 A1 1 A2 · · ·i−1 An =  
f1×3 w1×1

La submatriz R3×3 describe la orientación del sistema coordenado del efector final, mientras que
la submatriz p3×1 expresa la posición del efector.

A.0.2 Cinemática inversa

El problema de cinemática inversa consiste en calcular todas las posibles soluciones al conjunto de
parámetros articulares, a partir de la posición y orientación deseada del eslabón final. Este problema es
más complejo que la cinemática directa en cadenas abiertas, ya que las ecuaciones no son lineales, lo
que representa que puede tener más de una solución (Figura A.7) o incluso no tener ninguna solución.
Esto está definido por el área de trabajo: si la posición y orientación deseadas se encuentran fuera
de los rangos permisibles por las articulaciones del robot, entonces no existe solución.
136

Figura A.7: Problema cinemático inverso. a) Solución múltiple, b) codo abajo [Juan, 2006].

Para un robot cuadrúpedo, la cinemática inversa provee las ecuaciones para calcular los valores
de los parámetros articulares que permiten desplazar las extremidades de las patas a posiciones
deseadas. Ası́ por ejemplo, si el robot requiere subir un escalón (como se muestra en la Figura A.8),
puede generar la trayectoria operacional (en coordenadas operacionales) por la que debe moverse la
pata, y resolver el problema de la cinemática inversa para determinar las trayectorias articulares que
deben realizar los motores. De esta manera se impone la trayectoria deseada y se evita la colisión
(lı́nea segmentada).

Figura A.8: Cinemática inversa para subir un escalón.

La cinemática inversa por lo general cuenta con más de una solución y no siempre hay un método
que se pueda seguir, los más utilizados son:
A. Cinemática 137

Análisis trigonométrico. Al igual que en la cinemática directa, si el número de grados de


libertad es pequeño, se puede realizar un análisis geométrico para determinar los parámetros
articulares directamente a partir de las coordenadas operacionales. Algunos trabajos que han
implementado este método son [Nadia et al., 2007], [Reséndiz et al., 2007].

Sistema algebraico. Al igual que el método anterior es útil cuando el número de grados
de libertad es pequeño, y se basa en resolver algebraicamente el sistema de ecuaciones
generadas por la cinemática directa [Calle et al., 2007], [Sánchez and Humberto, 2005]. Este
es el esquema que se utiliza en este trabajo de investigación.

Heurı́sticas. Las heurı́sticas son el método más utilizado cuando el número de grados de
libertad es importante. Generalmente se utilizan esquemas de la computación evolutiva para
calcular la solución. Se pueden citar por ejemplo el uso de algoritmos genéticos en algunos
trabajos [Giraldo et al., 2006] [González, 2009], obteniendo buenos resultados. Este método
tiene algunas ventajas como:

• No requiere de un análisis complejo.

• Se puede implementar para un número importante de articulaciones.

• Sólo se requiere las ecuaciones de la cinemática directa.

Aún cuando el uso de heurı́sticas provee soluciones satisfactorias, es importante señalar los
inconvenientes de estas metodologı́as: en general, no siempre ofrecen la mejor solución y
requieren de un poder de cómputo mayor que las soluciones exactas proveı́das por los métodos
algebraicos.

Para desarrollar los modelos cinemáticos del robot es necesario establecer un marco de referencia
en el cuerpo del robot, y un marco de referencia individual para cada uno de los eslabones de la
cadena cinemática que forman las patas del robot. Posteriormente, se obtienen las transformaciones
necesarias, tanto en traslación como en rotación, para pasar de un marco de referencia al siguiente,
con lo que se obtienen las ecuaciones de la cinemática directa del robot. En nuestro diseño, tomamos
138 A.1. Cinemática directa de Robocan

el marco de referencia en el cuerpo de robot al marco ΣC , como se muestra en la Figura 4.24. La


posición y orientación de cada uno de los ejes de giro de las articulaciones se presentan en la misma
figura.

A.1 Cinemática directa de Robocan

Para la obtención de la cinemática directa se utilizo el método de la multiplicación de matrices


homogéneas, ya que se realiza de manera sistemática y requiere de operaciones simples. Por otro
lado, el análisis trigonométrico directo se complica al utilizar 3 dimensiones con tres articulaciones,
mientras que el método de desarrollo Denavit-Hartenberg requiere una metodologı́a más compleja
que da como ventaja la sistematización de los cálculos, lo cual es relevante cuando existen más
grados de libertad a considerar.

Por su construcción, la manera en cómo están distribuidas las articulaciones de las cuatro patas
del robot es la misma para cada una de ellas, siendo diferentes únicamente en dimensiones y puntos
de enlace entre articulaciones. Podemos entonces establecer un único modelo cinemático directo que
sea aplicable a todas las patas, manejando expresiones paramétricas.

Para cada una de las patas, el primer grado de libertad permite el desplazamiento, a la altura
del “hombro”, de la pata hacia adentro y afuera del cuerpo, de manera transversal (movimiento de
aducción-abducción). El segundo grado de libertad permite el movimiento de flexión-extensión del
“hombro”, mientras que el tercer grado de libertad realiza el movimiento de flexión-extensión de la
“rodilla”.

Ası́, el modelo cinemático directo de cada una de las patas i del robot se puede obtener a partir
de la siguiente fórmula:

6
A0,i = T (l0,i , l1,i , 0)R(Y, θ1,i )T (0, l2,i , l3,i )R(X, θ2,i )T (0, 0, l4,i )R(X, θ3,i )T (0, 0, l5,i )
A. Cinemática 139

Donde:

6
A0,i : Es la matriz homogénea que representa la relación entre el sistema coordenado ΣC en
el centro del robot y hasta el sistema coordenado ΣP,i colocado en el extremo de la pata i.

T (l0,i , l1,i , 0): Es la matriz homogénea que representa la traslación sobre los ejes X y Y, con
las constantes l0,i y l1,i respectivamente, que representan el punto de anclaje de la pata i con
el cuerpo del robot.

R(Y, θ1,i ): Rotación sobre el eje Y, con ángulo θ1,i , de la primera articulación de la pata i.

T (0, l2,i , l3,i ): Traslación en los ejes Y y Z, con las constantes l2,i y l3,i respectivamente,
correspondientes a la separación que existe entre los ejes de rotación de la primera articulación
y la segunda articulación de la pata i.

R(X, θ2,i ): Rotación sobre el eje X, con ángulo θ2,i , de la segunda articulación de la pata i.

T (0, 0, l4,i ): Traslación sobre el eje Z con la constante l4,i , que representa la distancia entre la
segunda articulación y la tercera articulación de la pata i, correspondiente al antebrazo.

R(X, θ3,i ): Rotación sobre el eje X, con ángulo θ3,i , de la tercera articulación de la pata i.

T (0, 0, l4,i ): Traslación sobre el eje Z con la constante l5,i , longitud del brazo en la pata i,
corresponde a la distancia entre la tercera articulación y el extremo P de la pata.

A cada una de estas transformaciones corresponde una matriz homogénea, como se muestra a
continuación:

   
1 0 0 l0,i cos θ1,i 0 sen θ1,i 0
   
   
 0 1 0 l1,i   0 1 0 0 
T (l0,i , l1,i , 0) = 

 Rθ1,i = 
 


 0 0 1 0   − sen θ1,i 0 cos θ1,i 0 
   
0 0 0 1 0 0 0 1
140 A.1. Cinemática directa de Robocan

   
1 0 0 0 1 0 0 0
   
   
 0 1 0 l2,i   0 cos θ2,i − sen θ2,i 0 
T (0, l2,i , l3,i ) = 

 Rθ2,i = 
 


 0 0 1 l3,i   0 sen θ2,i cos θ2,i 0 
   
0 0 0 1 0 0 0 1
   
1 0 0 0 1 0 0 0
   
   
 0 1 0 0   0 cos θ3,i − sen θ3,i 0 
T (0, 0, l4,i ) =  
 Rθ3,i = 
 


 0 0 1 l4,i   0 sen θ3,i cos θ3,i 0 
   
0 0 0 1 0 0 0 1
 
1 0 0 0
 
 
 0 1 0 0 
T (0, 0, l5,i ) = 



 0 0 1 l5,i 
 
0 0 0 1
Los valores de las constantes paramétricas que describen las diferencias entre las patas se muestran
en la Tabla A.1. Estas variables están asociadas con las distancias que se describieron en el diseño.

El modelo cinemático directo se obtiene entonces al realizar la multiplicación explı́cita de todas las
matrices de transformación homogénea, para obtener la matriz 6 A0,i . Las expresiones que describen
la posición del punto extremo de la pata i, es decir el punto Pi (xi , yi , zi ), se obtienen a partir de la
cuarta columna de la matriz 6 A0,i , las cuales se muestran en las ecuaciones A.5, A.6 y A.7.

xi = sen θ1,i (l5,i cos(θ2,i + θ3,i ) + l4,i cos θ2,i + l3,i ) + l0,i (A.5)

yi = l5 sen(θ2,i + θ3,i ) + l4,i sen θ2,i + l1,i + l2,i (A.6)

zi = cos θ1,i (l5,i cos(θ2,i + θ3,i ) + l4,i cos θ2,i + l3,i ) (A.7)

Al remplazar en estas ecuaciones las constantes paramétricas y los valores de las articulaciones
A. Cinemática 141

correspondientes a la pata i, permiten obtener la posición actual de la pata a partir de los ángulos
de las articulaciones en ese instante de tiempo. Estas ecuaciones se pueden utilizar para mejorar la
precisión de los sensores, ası́ como para validar las ecuaciones de la cinemática inversa.

A.2 Cinemática inversa de Robocan

Como se mencionó anteriormente, el problema de la cinemática inversa consiste en determinar


los valores articulares de una cadena cinemática que permitan alcanzar una posición determinada
del eslabón final. En nuestro caso, lo que buscamos es determinar los valores de las articulaciones
que permitan al robot, dada la posición del sistema coordenado de referencia ΣC , poder colocar el
extremo de la pata i en la posición Pi .

Existen diversos métodos para la obtención de la cinemática inversa: por medio del análisis
geométrico, resolución de ecuaciones generadas por la cinemática directa y, en casos más complejos y
con muchos grados de libertad, el uso de heurı́sticas. Para nuestro desarrollo, resolvimos directamente
el sistema de ecuaciones de la cinemática directa, de la manera siguiente:

xi = sen θ1,i (l5,i cos(θ2,i + θ3,i ) + l4,i cos θ2,i + l3,i ) + l0,i (A.8)

yi = l5 sen(θ2,i + θ3,i ) + l4,i sen θ2,i + l1,i + l2,i (A.9)

zi = cos θ1,i (l5,i cos(θ2,i + θ3,i ) + l4,i cos θ2,i + l3,i ) (A.10)

Ası́, es posible obtener θ1,i utilizando las ecuaciones A.8 y A.10.


142 A.2. Cinemática inversa de Robocan

xi − l0,i
sen θ1,i =
(−l5,i cos(θ2,i + θ3,i ) + l4,i cos θ2,i + l3,i )
zi
= −l5,i cos(θ2,i + θ3,i ) + l4,i cos θ2,i + l3,i
cos θ1,i
xi − l0,i
sen θ1,i = zi
cos θ1,i
sen θ1,i xi − l0,i
=
cos θ1,i zi
xi − l0,i
tan(θ1,i ) =
zi

Ası́ tenemos como resultado el valor de θ1,i :

xi − l0,i
θ1,i = tan−1 ( ) (A.11)
zi

Al observar que existe una división en la solución, se aplica una restricción cuando zi tiene un
valor de 0.

  
 tan−1 xi −l0,i Si zi 6= 0
zi
θ1,i = (A.12)
 90◦ En otro caso

Para la obtención de θ3,i se usaron 2 variables intermedias (xa,i , ya,i ), basados en las ecuaciones
A.8 y A.9:

xi − l0,i
xa,i = − l3,i (A.13)
− sen(θ1,i )

ya,i = yi − l1,i − l2,i (A.14)


A. Cinemática 143

Al sustituir xi y yi en las ecuaciones obtenemos:

xa,i = l5,i (cos(θ2,i + θ3,i ) + l4,i cos(θ2,i ) (A.15)

ya,i = l5,i (sen(θ2,i + θ3,i ) + l4,i sen(θ2,i ) (A.16)

Al sumar el cuadrado de ambas ecuaciones obtenemos:

2
ya,i + x2a,i = (l5,i (sen(θ2,i + θ3,i ) + l4,i sen(θ2,i ))2 + (l5,i (cos(θ2,i + θ3,i ) + l4,i cos(θ2,i ))2
2 2
= 2l4,i l5,i (sen(θ2,i ) sen(θ2,i + θ3,i ) + cos(θ2,i ) cos(θ2,i + θ3,i )) + l4,i + l5,i

Obteniendo:  
2
−1
ya,i + x2a,i − l5,i
2 2
− l4,i
θ3,i = cos (A.17)
2l4,i l5,i

La función cos−1 está asociada a dos posibles soluciones, dependiendo si está en los 2 primeros
cuadrantes del plano cartesiano o si se encuentra en los últimos 2.

Para θ2,i se utilizaron las variables A y B con los valores:

A = l5 sen(θ3 )

B = l5 cos(θ3 ) + l4

Ası́ tenemos:
xi − l0,i
− l3,i = −A sen(θ2,i ) + B cos(θ2,i ) (A.18)
sen(θ1,i )

yi − l0,i − l1,i = A cos(θ2,i ) + B sen(θ2,i ) (A.19)


144 A.2. Cinemática inversa de Robocan

Sustituyendo cos(θ2,i ) de la EcuaciónA.18 en la EcuaciónA.19 se obtiene:

 
xi − l0,i
− l3,i ) + A sen(θ2,i )
 sen(θ1,i ) 
yi l0,i − l1,i = A  + B sen(θ2,i )
 B 

 
xi − l0,i
B(yi − l0,i − l1,i ) + A − l3,i
sen(θ1,i )
sen(θ2,i ) =
B 2 + A2

Ası́ el valor de θ2,i está dado por:

  
xi − l0,i
(l cos(θ3 ) + l4 )yi − l0,i − l1,i + (l5 sen(θ3 )) − l3,i
 5
−1  sen(θ1,i ) 
θ2,i = sen   (A.20)
(l5 cos(θ3 ) + l4 ) + (l5 sen(θ3 ))
2 2 

Al igual que θ3,i , θ2,i también tiene 2 posibles soluciones. Mientras que θ1,i gira en el eje y, θ2,i y
θ3,i giran en el eje x, lo que permite obtener un máximo de 4 posibles soluciones, por cada posición
de la pata, como se muestra en la Figura A.9.

Aunque es posible obtener hasta 4 soluciones, algunas de ellos no son factibles ya que fı́sicamente
los servomotores tienen un giro de 180o , y en el caso de θ1,i sólo permite girar la pata en el eje X hasta
el “hombro”, obteniendo entonces únicamente 2 posibles soluciones fı́sicamente. En nuestro caso,
una de las soluciones (denominada “codo bajo”) será utilizada para las patas delanteras, mientras
que la otra solución (denominado “codo alto”) será utilizada para las patas traseras, para dar al
A. Cinemática 145

Figura A.9: Las 4 posibles soluciones a la cinemática inversa.

robot un aspecto más “natural”.

A.2.1 Ejemplos

Para la verificación de las ecuaciones se realizaron tres pruebas con valores aleatorios que se
muestran en las Tablas A.2, A.3 y A.4. En la primer Tabla muestra los valores que se asignaron
a la cinemática directa, la segunda, muestra los ángulos que se obtuvieron de ella, los cuales se
utilizaron como entrada para la cinemática inversa. En la última Tabla se muestran los resultados de
la cinemática inversa, los cuales son muy cercanos a los valores de la Tabla A.2.
146 A.3. Conclusiones

A.3 Conclusiones
Los modelos cinemáticos proveen una forma de modelar al robot y ası́ tener una interacción más
precisa con el medio que la rodea. Mientras que la cinemática inversa indica cuáles deben ser los
ángulos que deben aplicarse a las articulaciones para obtener la colocación de una de sus patas, la
cinemática directa confirma que los valores sean los correctos. Esto es muy útil en donde se utiliza un
esquema de control cerrado, como el control PID1 , lo cual ayuda a disminuir los errores de precisión
que se puedan generar.

1
Control Proporcional-Integral-Derivativo, un esquema clásico de control moderno.
A. Cinemática 147

Algoritmo 7 Método de Denavit-Hartenberg


Entrada: θi , di , ai , αi
Salida: Orientación (submatriz de rotación) y Posición(submatriz de traslación).
1: Numerar los eslabones comenzando con 1 (primer eslabón móvil de la cadena) y acabando con
n (último eslabón móvil). Se numerará como eslabón 0 a la base fija del robot.
2: Numerar cada articulación comenzando por 1 (la correspondiente al primer grado de libertad y
acabando en n).
3: Localizar el eje de cada articulación. Si ésta es rotativa, el eje será su propio eje de giro. Si es
prismática, será el eje a lo largo del cual se produce el desplazamiento.
4: Para i de 0 a n − 1, situar el eje Zi , sobre el eje de la articulación i + 1.
5: Situar el origen del sistema de la base (S0 ) en cualquier punto del eje Z0 . Los ejes X0 e Y0 se
situaran de modo que formen un sistema dextrógiro con Z0 .
6: Para i de 1 a n-1, situar el sistema (Si ) (solidario al eslabón i) en la intersección del eje Zi con la
lı́nea normal común a Zi−1 y Zi . Si ambos ejes se cortasen se situarı́a (Si ) en el punto de corte.
Si fuesen paralelos (Si ) se situarı́a en la articulación i+1.
7: Situar Xi en la lı́nea normal común a Zi−1 y Zi .
8: Situar Yi de modo que forme un sistema dextrógiro con Xi y Zi .
9: Situar el sistema (Sn ) en el extremo del robot de modo que Zn coincida con la dirección de Zn−1
y Xn sea normal a Zn−1 y Zn .
10: Obtener θi como el ángulo que hay que girar en torno a Zi−1 para que Xi−1 y Xi queden
paralelos.
11: Obtener di como la distancia, medida a lo largo de Zi−1 , que habrı́a que desplazar (Si−1 ) para
que Xi y Xi−1 quedasen alineados.
12: Obtener ai como la distancia medida a lo largo de Xi (que ahora coincidirı́a con Xi−1 ) que
habrı́a que desplazar el nuevo (Si−1 ) para que su origen coincidiese con (Si ).
13: Obtener αi como el ángulo que habrı́a que girar entorno a Xi (que ahora coincidirı́a con Xi−1 ),
para que el nuevo (Si−1 ) coincidiese totalmente con (Si ).
14: Obtener las matrices de transformación i−1 Ai .
15: Obtener la matriz de transformación que relaciona el sistema de la base con el del extremo del
robot T =0 A1 ,1 A2 ...n−1 Ai .

l0 l1 l2 l3 l4 l5
Pata 1 4.5 cm 7 cm 5 cm -2 cm -10 cm -8 cm
Pata 2 4.5 cm -7 cm 5 cm -2 cm -10 cm -8 cm
Pata 3 -4.5 cm -7 cm -5 cm -2 cm -10 cm -8 cm
Pata 4 -4.5 cm 7 cm -5 cm -2 cm -10 cm -8 cm

Tabla A.1: Distancia de las patas del robot.


148 A.3. Conclusiones

Variable Prueba 1 Prueba 2 Prueba 3


θ1 30 50 -20
θ2 60 -45 15
θ3 10 12 32

Tabla A.2: Ángulos de entrada para la cinemática directa.

Variable Prueba 1 Prueba 2 Prueba 3


x -0.36 -7.58 10.35
y -4.17 23.42 3.56
z -8.43 -10.14 -16.05

Tabla A.3: Coordenadas obtenidas por la cinemática directa.

Variable Prueba 1 Prueba 2 Prueba 3


θ1 30.00 50.00 -20
θ2 60.00 -44.99 15
θ3 9.99 11.99 31.99

Tabla A.4: Ángulos obtenidos de la cinemática inversa.


Bibliografı́a

[Aracil et al., 2008] Aracil, R., Balaguer, C., and Armada, M. (2008). Robots de servicio. Revista
Iberoamericana de Automática e Informática Industrial, volume:5(number 2):pages:6–11.

[Avila and Zambrano, 2007] Avila, S. and Zambrano, J. (2007). Estudio, diseño y construcción de
un robot cuadrúpedo omnidireccional. Trabajo presentado en: Universidad Politécnica Salesiana.

[Barrientos et al., 2007] Barrientos, A., Peñı́n, L., Balaguer, C., and Aracil, R. (2007). Fundamentos
de robótica. McGraw-Hill, 2da edition.

[Barrón, 2009] Barrón, J. (2009). Generadores de patrones centrales reconfigurables para la


implementación adaptiva de patrones rı́tmicos de locomoción. Protocolo presentado en:
Laboratorio de Tecnologı́as de Información Cinvestav, Unidad Tamaulipas, México.

[Brandt et al., 2008] Brandt, D., Larsen, J., Christensen, D., Gracia, R., Shaikh., D., Schultz, U.,
and stoy, K. (2008). Flexible, FPGA-Based electronics for modular robots. Trabajo presentado
en: The University of New Mexico.

[Calle et al., 2007] Calle, E., Ávila, I., and Zambrano, J. (2007). Diseño e implementación de un
robot móvil cuadrúpedo. Revista Tecnológica ESPOL, 20.

[Castellini et al., 2004] Castellini, H., Cerdeira, H., and Romanelli, L. (2004). Modelizado del
generador central de patrones en animales cuadrúpedos por osciladores acoplados caoticos.
Mecánica computacional, 23:3321–3331.

[Channon et al., 1990] Channon, P., Hopkins, S., and Pham., D. (1990). Simulation and
optimization of gait for a bipedal robot. Mathematical and Computer Modelling, 14:463–467.

[Contreras, 2008] Contreras, J. (2008). Diseño y construcción de un robot bı́pedo. Revista


Internacional de Educación en Ingenierı́a, 1(1).

149
150 BIBLIOGRAFÍA

[Darabiha et al., 2003] Darabiha, A., Rose, J., and MacLean, J. (2003). Video-rate stereo depth
measurement on programmable hardware. Computer Vision and Pattern Recognition, 2003.
Proceedings. 2003 IEEE Computer Society, I:I–203 – I–210.

[de Santos et al., 2000] de Santos, G., Armada, M., Estremera, J., Galvez, J., Garcia, E., Prieto,
M., and Uquillas, M. (2000). Silo 4: A four-legged test-bed for educational and research purposes.
Clawar News, 4:10–12.

[Dedo and Garcı́a, 2008] Dedo, L. D. and Garcı́a, A. (2008). Proyecto r4p. Master’s thesis,
Universidad Europea de Madrid, España.

[Denavit and Hartenberg, 1955] Denavit, J. and Hartenberg, R. (1955). A kinematic notation for
lower-pair mechanisms based on matrices. J. Appl. Mechanics, June 1955, 22:215–221.

[Francisco et al., 2007] Francisco, A., Herı́as, C., and Ramón, J. C. (2007). Servomotores. Trabajo
presentado en: Universidad de Alicante, Alicante, España.

[Fuentes, 2006] Fuentes, J. (2006). Generador de modos de caminado para un robot cuadrúpedo
basado en principios neurofisiológicos. Master’s thesis, Universidad Simon Bolı́var, Decanato de
Estudios de Postgrado Maestrı́a en Ingenierı́a Electrónica.

[Fukuoka et al., 2003a] Fukuoka, Y., Kimura, H., and Cohen, A. H. (2003a). Adaptive dynamic
walking of a quadruped robot on irregular terrain based on biological concepts. The International
Journal of Robotics Research 2003.

[Fukuoka et al., 2003b] Fukuoka, Y., Kimura, H., Hada, Y., and Takase, K. (2003b). Adaptive
dynamic walking of a quadruped robot ’tekken’ on irregular terrain using a neural system model.
Proceedings of the 2003 IEEE International conference on Robotics and Automation.

[Giraldo et al., 2006] Giraldo, L. F., Delgado, E., and Castellanos, G. (2006). Cinemática inversa de
un brazo robot utilizando algoritmos genéticos. Avances en Sistemas e Informática.
BIBLIOGRAFÍA 151

[González and González, 2010] González, I. and González, A. (2010). Estudio de la estabilidad lateral
del robot cuadrúpedo lebrel. XVIII Congreso Nacional de Ingenierı́a mecánica.

[González, 2009] González, V. E. (2009). Diseño y control de kokone, un pequeño robot humanoide.
Master’s thesis, CINVESTAV- Unidad Tamaulipas.

[Hau, 2006] Hau, B. T. (2006). Aibo as an intelligent robot watchdog. Master’s thesis, Delft
University of Technology.

[Hilljegeders et al., 2005] Hilljegeders, J., Spenneberg, D., and Kirchner, F. (2005). The construction
of the four legged prototype robot aramies. CLAWAR.

[Hiroshi et al., 1989] Hiroshi, K., Isao, S., and Hirofumi, M. (1989). Dynamics in the dynamic walk
of a quadruped robot. Advanced Robotics, 4(3):283–301.

[Hornby, 2000] Hornby, G. (2000). Evolving robust gaits with aibo. 2000 IEEE Intemational
Conference on Robotics and Automation San Francisco,CA.

[Huitzil, 2010] Huitzil, C. T. (2010). Introduction to biometric reconigtion. Notas presentandas en:
Cinvestav-LTI, Unidad Tamaulipas, México.

[Huitzil and Girau, 2008] Huitzil, C. T. and Girau, B. (2008). Implementation of central pattern
generator in an fpga-based embedded system. Artificial neural networks -ICANN 2008, 5164:179–
187.

[Jiménez and Ramı́rez, 2005] Jiménez, D. and Ramı́rez, J. (2005). Construcción de un brazo robótico
de tres gdl y su control mediante el núcleo hı́brido de transición de estados. Master’s thesis, Centro
Nacional de Investigación y Desarrollo Tecnológico-Departamento de Mecatrónica, Cuernavaca,
Morelos.

[Juan, 2006] Juan, L. A. (2006). Análisis y control de un efector, reproduciendo un movimiento


circular de una mano. Master’s thesis, Centro Nacional de Investigación y Desarrollo Tecnológico,
Cuernavaca, Morelos, México.
152 BIBLIOGRAFÍA

[Khatib and Siciliano., 2008] Khatib, O. and Siciliano., B. (2008). Handbook of Robotics. Springer.

[Kim and Uther, 2003] Kim, M. S. and Uther, W. (2003). Automatic gait optimisation for quadruped
robots. Australasian Conference on Robotics and automation, Brisbane.

[Krohling et al., 2002] Krohling, R., Zhou, Y., and Tyrrell, A. (2002). Evolving FPGA-based robot
controllers using an evotionary algorithm. Trabajo presentado en: University of York, UK.

[Li et al., 1992] Li, Q., Takanishi, A., and kato, I. (1992). Learning control of compensative trunk
motion for biped walking robot based on zmp stability criterion. 1992 EEERSJ International
Conference on Intelligent Robots and Systems, pages 597–603.

[Moreno, 2007] Moreno, A. (2007). Estudio de la locomoción de un robot cuadrúpedo mediante


la generación de patrones biológicos. Master’s thesis, Escuela Politecnica Superior, Universidad
Autonoma de Madrid.

[Moreno and Macı́as, 2001] Moreno, A. and Macı́as, J. (2001). Diseño, construcción y control de un
robot articulado mediante una red de microcontroladores. Master’s thesis, Universidad Politécnica
de Madrid.

[Nadia et al., 2007] Nadia, N., Sandra, R., and Kurt, P. (2007). Diseño y fabricación de un brazo
robot de cinco grados de libertad articulado verticalmente modelado cinemático y dinámico. 8o
Congreso Iberoamericano de Ingenierı́a Mecánica.

[Peña, 2008] Peña, E. M. (2008). Control de un robot tipo puma utilizando celdas neuronales
analógicas. Master’s thesis, Centro Nacional de Investigación y Desarrollo Tecnológico-
Departamento de Mecatrónica, Cuernavaca, Morelos.

[Pongas, 2007] Pongas, D. (2007). A robust quadruped walking gait for traversing rough terrain.
2007 IEEE International Conference on Robotics and Automation Roma, pages 1474 – 1479.
BIBLIOGRAFÍA 153

[Raibert et al., 2008] Raibert, M., Blankespoor, K., Nelson, G., Playter, R., and the BigDog Team
(2008). Bigdog the rough-terrain quadruped robot. 17th World Congress, The International
Federation of Automatic Control (IFAC).

[Ramos et al., 2010] Ramos, A., Sánchez, P., Ferrer, J. M., and Linares, J. B. P. (2010). Modelos
matemáticos de optimización. Trabajo presentado en: Universidad Pontificia, Comillas, Madrid.

[Reséndiz et al., 2007] Reséndiz, J., Reséndiz, A., Pérez, J., and Suárez, J. (2007). Aplicación y
desarrollo trigonométrico de las ecuaciones del movimiento de un robot paralelo plano de tres
grados de libertad. 8o Congreso Iberoamericano de Ingenierı́a Mecánica.

[Roussel et al., 1998] Roussel, L., Canudas, C., and Goswami, A. (1998). Generation of energy
optimal complete gait cycles for biped robots. IEEE Int. Conf. Robotics and Automation, pages
2036–2041.

[Russell and Norvig, 1996] Russell, S. and Norvig, P. (1996). Inteligencia artificial. Un enfoque
moderno. Prentice Hall, Edo. De Mexico, 1ra edition.

[Rutishauser et al., 2008a] Rutishauser, S., Ijspeert, A., and Spröwitz, A. (2008a). Cheetah -
compliant quadruped robot. Trabajo presentado en: Escuela Politécnica Federal de Lausana.

[Rutishauser et al., 2008b] Rutishauser, S., Spröwitz, A., Righetti, L., and Ijspeert, A. (2008b).
Passive compliant quadruped robot using central pattern generators for locomotion control.
Biomedical Robotics and Biomechatronics, 2008. BioRob 2008. 2nd IEEE RAS and EMBS
International, pages 710–715.

[Sardain and Bessonne, 2004] Sardain, P. and Bessonne, G. (2004). Forces acting on a biped robot.
center of pressure zero moment point. IEEE Transactions on systems, man and cybernetics-part
A:Systems and humans, 34(5).

[Seiji and Tomohiro, 2004] Seiji, Y. and Tomohiro, Y. (2004). Training aibo like a dog -preliminary
results-. Robot and Human Interactive Communication, 2004. ROMAN 2004. 13th IEEE
International Workshop on Tokyo Japan, pages 431–436.
154 BIBLIOGRAFÍA

[Spenneberg et al., 2006] Spenneberg, D., Bosse, S., Hilljegerdes, J., Kirchner, F., Strack, A., and
Zschenker, H. (2006). Control fo a bio-inspired four-legged robot for exploration of uneven terrain.
9th ESA Workshop on Advanced Space Technologies for Robotics and Automation ’ASTRA 2006’
ESTEC.

[Spenneberg et al., 2005] Spenneberg, D., Strack, A., Hilljegerdes, J., Zschenker, H., Albrecht, M.,
Backhaus, T., and Kirchner, F. (2005). Aramies: A four-legged climbing and walking robot.
Bremen, Germany. Trabajo presentado en: University of Bremen, Robotics Lab Faculty of
Mathematics and Computer Science Bibliothekstr, Bremen, Alemania.

[Suzuki, 2007] Suzuki, H. (2007). Animal gait generation for quadrupedal robot. Innovative
Computing, Information and Control, 2007. ICICIC ’07. Second International Conference, pages
20–20.

[Sánchez and Humberto, 2005] Sánchez, C. and Humberto, C. (2005). Estructura básica de un
simulador para la sı́ntesis y el análisis dinémico de manipuladores. Conciencia Tecnológica.

[Sánchez, 2011] Sánchez, J. (2011). Introducción a los modelos. Trabajo presentado en: Universidad
Católica de Valparaı́so, Facultad de Ingenierı́a, Escuela de Ingenierı́a de Transporte.

[Thompson and Patel, 1987] Thompson, S. and Patel, R. (1987). Formulation of joint trajectories
for industrial robots using b-splines. IEEE Transactiones on indutrial electronics, IE-34:192–199.

[Wood et al., 2005] Wood, R., Avadhanula, S., Steltz, E., seeman, M., Entwistle, J., Bachrach, A.,
Barrows, G., Sanders, S., and Fearing, R. (2005). Design, fabrication and initial results of a 2g
autonomous glider. 31st Annual Conference, IEEE Industrial Electronics Society 2005 Meeting.

[Zico et al., 2008] Zico, J., Rodgers, P., and Andrew, Y. (2008). A control architecture for quadruped
locomotion over rough terrain. Robotics and Automation, 2008. ICRA 2008. IEEE International
Conference, pages 811–818.

[Álvarez et al., 2009] Álvarez, C., Saltaren, R., Aracil, R., and Garcı́a, C. (2009). Concepción,
desarrollo y avances en el control de navegación de robots submarinos paralelos: El robot remo-
BIBLIOGRAFÍA 155

i. Revista Iberoamericana de Automática e informática industrial, volume 6(number 3):pages:


92–100.

También podría gustarte