Locomoción bípeda

Embed Size (px)

Citation preview

Locomocin b o peda del robot humanoide Nao

Proyecto Final de Carrera Memoria

Autor Samuel Fernndez Iglesias a Director Josep M. Fuertes i Armengol Noviembre 2009

Escola T`cnica Superior e dEnginyeria Industrial de Barcelona

Universitat Polit`cnica e de Catalunya

ResumenLa locomocin b o peda de robots humanoides, es decir, aquellos que tienen morfolog humana y las articulaciones necesaa rias para realizar movimientos parecidos a los humanos, es un desaf para el desarrollo tecnolgico. Esta faceta de la ingeo o nier agrupa muchas ramas reunidas para un mismo objetivo: a mecnica, automtica, electrnica, informtica, biolog . . a a o a a. Este proyecto de investigacin se propone como objetivo o principal desarrollar un algoritmo de control para conseguir que el robot humanoide Nao camine, mejorando su algoritmo propio. Adems, se crear una interfaz grca de usuario para el a a a control de Nao y las funciones que se desarrollen. Como fuente de inspiracin y para ver el estado del arte se o har un anlisis de otros algoritmos de locomocin existentes a a o en robots, tales como: Generacin de trayectorias imponiendo estabilidad. o Aprovechamiento de dinmicas internas. a Mquinas de estados. a La propia locomocin humana. o El algoritmo propio que se desarrollar, Sammys Walk, aprovechar las oscilaciones proa a pias del sistema para generar la locomocin y as tener una dinmica de locomocin ms o a o a eciente. Esto conllevar hacer estudios de frecuencias de oscilacin del robot y atractores en a o el espacio de fases. Este planteamiento, distante de la mayor de algoritmos de locomocin basados en gea o neracin de trayectorias, es novedoso en su aplicacin para robots con muchos grados de o o libertad activos, y puede sentar una base para investigaciones futuras. El resultado de aprovechar estas dinmicas se traducir en un ahorro energtico, y un a a e estilo de marcha parecido al humano.Figura 1: Robot Nao

1

Indice generalResumen Indice general Indice de guras Indice de tablas Indice de v deos 1. Introduccin o 2. Robots b pedos y algoritmos de control 2.1. Zero-Moment Point (ZMP) . . . . . . . . . . . 2.1.1. Formulacin matemtica . . . . . . . . . o a 2.1.2. Algoritmo . . . . . . . . . . . . . . . . . 2.1.3. ASIMO . . . . . . . . . . . . . . . . . . 2.1.4. Ventajas e inconvenientes . . . . . . . . 2.2. Passive & Dynamic Walking . . . . . . . . . . 2.2.1. Passive Walking . . . . . . . . . . . . . 2.2.2. Dynamic Walking . . . . . . . . . . . . 2.3. BigDog . . . . . . . . . . . . . . . . . . . . . . 2.3.1. Descripcin y morfolog . . . . . . . . . o a 2.3.2. Control . . . . . . . . . . . . . . . . . . 2.4. SIMBICON: Simple Biped Locomotion Control 2.4.1. Algoritmo . . . . . . . . . . . . . . . . . 2.4.2. Resultados . . . . . . . . . . . . . . . . 2.5. Conclusiones . . . . . . . . . . . . . . . . . . . 1 5 8 9 11 13 15 15 16 18 19 20 21 21 22 24 24 25 26 27 29 29 31 32 32 33 34 34 35 35

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

3. Anlisis de la locomocin b a o peda humana 3.1. Descripcin cualitativa . . . . . . . . . . . . . . . . o 3.1.1. Fases de la marcha . . . . . . . . . . . . . . 3.1.2. Desarrollo del pie durante la marcha . . . . 3.1.3. Caracter sticas del paso . . . . . . . . . . . 3.1.4. Brazos y movimiento de torsin transversal o 3.2. Cinemtica . . . . . . . . . . . . . . . . . . . . . . a 3.2.1. Sistema de referencia . . . . . . . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

3

4

Locomocin b o peda del robot humanoide Nao

3.2.2. Movimientos articulares . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. Nao 4.1. Caracter sticas generales . . . 4.2. NaoQi: programacin de Nao o 4.3. Simulador: Webots . . . . . . 4.4. Conclusiones . . . . . . . . .

35 37 39 39 41 41 43 45 46 46 48 49 51 52 54 55 65 69 70 71 73 73 74 77 80 81 81 81 82 85 85 86 86 87 89 91 91 95 96 96 97

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

5. Dise o del algoritmo de locomocin para el robot Nao n o 5.1. ALWalk : Algoritmo de locomocin implementado en Nao . . o 5.1.1. Descripcin de las funciones de locomocin b o o peda . . 5.1.2. Pruebas de funcionamiento . . . . . . . . . . . . . . . 5.1.3. Modicacin del algoritmo ZMP . . . . . . . . . . . . o 5.2. Sammys Walk : Diseo de un algoritmo de locomocin b n o peda 5.2.1. Induccin de un ciclo l o mite . . . . . . . . . . . . . . . 5.2.2. Simulacin con Webots . . . . . . . . . . . . . . . . . o 5.2.3. Oscilacin lateral . . . . . . . . . . . . . . . . . . . . . o 5.2.4. Incremento de la estabilidad del ciclo l mite . . . . . . 5.2.5. Sincronismo con movimiento de avance . . . . . . . . . 5.2.6. Mejoras estil sticas y de estabilidad . . . . . . . . . . . 5.3. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

6. Anlisis de prestaciones a 6.1. Caracter sticas de la locomocin con ALWalk . . . . . . . . . . . . . . . . . . o 6.2. Caracter sticas de la locomocin con Sammys Walk . . . . . . . . . . . . . . o 7. Conclusiones Biblograf a A. Puesta en marcha y programacin de Nao o A.1. Instalacin del robot . . . . . . . . . . . . . . . . . . o A.1.1. Conexin Ethernet . . . . . . . . . . . . . . . o A.2. Instalacin SDK . . . . . . . . . . . . . . . . . . . . o A.3. Programacin . . . . . . . . . . . . . . . . . . . . . . o A.3.1. NaoQi . . . . . . . . . . . . . . . . . . . . . . A.3.2. Caracter sticas y uso de NaoQi . . . . . . . . A.3.3. Mdulos de NaoQi . . . . . . . . . . . . . . . o A.3.4. Ejemplo de programacin en Pyhton . . . . . o A.3.5. URBI . . . . . . . . . . . . . . . . . . . . . . A.3.6. Ejecucin de cdigo en tiempo real . . . . . . o o A.3.7. Compilacin cruzada para librer dinmicas o as a

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

B. Programacin del algoritmo y la interfaz grca o a B.1. Programacin de Sammys Walk . . . . . . . . . . . . . . . . . . . . . . . . . o B.1.1. Principales variables usadas . . . . . . . . . . . . . . . . . . . . . . . . B.1.2. Inicializacin y sincronizacin con DCM . . . . . . . . . . . . . . . . . o o

Indice general

5

B.1.3. Bucle de control . . . . . . B.1.4. Generador de trayectorias . B.1.5. Deteccin de impacto con el o B.1.6. Carga de conguraciones . B.2. GUI . . . . . . . . . . . . . . . . . B.2.1. Programacin . . . . . . . . o B.2.2. Ventana principal . . . . . . B.2.3. Control con Wiimote . . . . B.2.4. Editor de posturas . . . . . B.2.5. Interfaz ALWalk . . . . . . B.2.6. Interfaz Sammys Walk . .

. . . . . . . . suelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

98 98 99 99 100 100 101 101 103 104 105

C. Presupuesto 107 C.1. Anlisis de costes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 a C.2. Benecios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 D. Impacto medioambiental 109 D.1. Proceso de fabricacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 o D.2. Uso diario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 D.3. Fin de la vida util . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Indice de guras1. Robot Nao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 16 16 19 21 22 24 25 25 26 27 27 28 29 32 33 34 34 35 36 36 37 38 39 40 42 42 47 48 48 50 53 54

2.1. Pol gono de soporte segn fase de locomocin . . . . . . . . . . . . . . . . . . u o 2.2. Fuerzas y momentos sobre el pie . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Robot ASIMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4. Copia del mecanismo inventado por McGeer . . . . . . . . . . . . . . . . . . . 2.5. Tres caminadores actuados basados en el mecanismo de locomocin pasivo . . o 2.6. BigDog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7. Descripcin BigDog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 2.8. Principios del control de la locomocin . . . . . . . . . . . . . . . . . . . . . . o 2.9. Diagrama del lazo de control . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.10. Simulaciones de un personaje en 2D con el algoritmo SIMBICON . . . . . . . 2.11. Simulacin en tiempo real de un personaje que camina con el algoritmo SIMo BICON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.12. Mquina de estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 2.13. Elementos de la estrategia de realimentacin para el equilibrio . . . . . . . . . o 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 3.8. 3.9. 4.1. 4.2. 4.3. 4.4. 5.1. 5.2. 5.3. 5.4. 5.5. 5.6. Anlisis del caminar humano . . . . . . . . . . . a Fases de la marcha . . . . . . . . . . . . . . . . . Desarrollo del pie durante a marcha . . . . . . . Caracter sticas del paso . . . . . . . . . . . . . . Movimiento de brazos y hombros al caminar . . . Sistema de referencia . . . . . . . . . . . . . . . . Instantneas de las fases de la marcha [13] . . . . a Instantnea en t = 5s . . . . . . . . . . . . . . . a Angulos articulares de la pierna derecha y fase de Nao Academics Edition . Articulaciones del robot . Webots 6.1.1 . . . . . . . Microsoft Robotics Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . paso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Patrones de locomocin . . . . . . . . . . . . . . . . o Cicloide usada para trayectorias de los pies . . . . . Conguracin de parmetros de Oset del ZMP . . . o a Pantalla de la GUI para la conguracin de ALWalk o Mquina de estados . . . . . . . . . . . . . . . . . . a Respuesta del ltro pasabajos al escaln unitario . . o

7

8

Locomocin b o peda del robot humanoide Nao

5.7. Auto-oscilacin con el robot de pie, apertura de las piernas 0o , altura o 26cm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.8. Frecuencia de oscilacin segn conguracin . . . . . . . . . . . . . . o u o 5.9. Movimiento lateral . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.10. Ciclo l mite lateral . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.11. Oscilaciones laterales inducidas Angulo X respecto la vertical . . . 5.12. Oscilaciones laterales inducidas Velocidad angular X . . . . . . . . 5.13. Intensidad consumida en la oscilacin lateral inducida . . . . . . . . o 5.14. Diagrama de correccin del ancho de paso . . . . . . . . . . . . . . . o 5.15. Oscilacin lateral nominal . . . . . . . . . . . . . . . . . . . . . . . . o 5.16. Espacio de estados ante perturbaciones con correccin velocidad . . o 5.17. Conguracin de las piernas para el avance . . . . . . . . . . . . . . o 6.1. 6.2. 6.3.

caderas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57 59 60 61 62 62 64 66 68 69 70 75 75 76 83 84 84 95 99 101 102 102 103 104 105 106

Consumo de intensidad para la locomocin ZMP low-stiness . . . . . . . . . o Consumo de intensidad para la locomocin Sammys Walk . . . . . . . . . . . o Angulos articulares de la pierna derecha y fase de paso . . . . . . . . . . . . .

A.1. Pgina web de conexin a Nao . . . . . . . . . . . . . . . . . . . . . . . . . . a o A.2. Conguracin de servidor en Nao . . . . . . . . . . . . . . . . . . . . . . . . . o A.3. Contenido de NaoQiAcademics-1.2.0-Linux.tar.gz . . . . . . . . . . . . . . . . B.1. B.2. B.3. B.4. B.5. B.6. B.7. B.8. B.9. Estructura del programa local . . Anlisis de ejecucin del bucle de a o Estructura de la GUI . . . . . . . Ventana principal . . . . . . . . . Ventana principal de NaoGUI . . Mando de la Wii, Wiimote . . . . Ventana del editor de posturas . Ventana ALWalk . . . . . . . . . Ventana Sammys Walk . . . . . . . . . . control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Indice de tablas2.1. Coste energtico espec e co de la locomocin . . . . . . . . . . . . . . . . . . . o 4.1. Lista de articulacines de Nao . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1. 5.2. 5.3. 5.4. Conguracin de Stiness para cada articulacin o o Conguracin de parmetros extra . . . . . . . . o a Frecuencia de oscilacin segn conguracin . . . o u o Valores de la velocidad angular segn el estado . u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 40 50 50 58 67 73 74 74 77

6.1. Conguracin de Stiness para cada articulacin . . . . . . . . . . . . . . . . o o 6.2. Comparacin algoritmos ALWalk y Sammys Walk . . . . . . . . . . . . . . . o 6.3. Coste energtico espec e co de la locomocin Comparativa . . . . . . . . . . o 7.1. Comparacin algoritmos ALWalk y Sammys Walk . . . . . . . . . . . . . . . o

C.1. Presupuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

9

Indice de v deos El siguiente listado muestra todos v deos que se citan a lo largo de la memoria. Estos estn incluidos en el CD adjunto y se han codicado con el cdec libre XVID para mayor a o portabilidad. Adems se indica un enlace para su versin on-line, al que se puede acceder a o directamente desde el documento electrnico de la memoria. En http://www.youtube.com/ o view_play_list?p=BC6A4C9D88DF0431 se encuentra la lista de reproduccin con todos los o v deos recopilados. 2.1.3 ASIMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 http://www.youtube.com/watch?v=Q3C5sc8b3xM 2.2.1 Passive Walker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 http://www.youtube.com/watch?v=cIDkP7atTMM 2.2.2 B pedo Cornell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 http://www.youtube.com/watch?v=e2Q2Lx8O6Cg 2.2.2 B pedo Delft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 http://www.youtube.com/watch?v=2rp2BjqCrFk 2.2.2 B pedo del MIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 http://www.youtube.com/watch?v=ynhqomKwbAE 2.3 BigDog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 http://www.youtube.com/watch?v=cHJJQ0zNNOM&fmt=18 2.4 SIMBICON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 http://www.youtube.com/watch?v=uBQfSBluhFU 3.2.2 Persona caminando a velocidad normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 http://www.youtube.com/watch?v=Lyyxb8uaTNo 4 Presentacin de Nao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 o http://www.youtube.com/watch?v=rSKRgasUEko&fmt=18 5.1.2 ALWalk velocidad baja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 http://www.youtube.com/watch?v=ICcnmpxjRcQ&fmt=18

11

12

Locomocin b o peda del robot humanoide Nao

5.1.2 ALWalk velocidad alta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 http://www.youtube.com/watch?v=WsvSDLvSyso&fmt=18 5.1.3 ALWalk low-stifness, velocidad alta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 http://www.youtube.com/watch?v=MRBFnJs7ZB8&fmt=18 5.2.1 Spring Flamingo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 http://www.youtube.com/watch?v=gWDDUm9R8DI 5.2.2 Simulacin con Webots: Oscilacin lateral estable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 o o http://www.youtube.com/watch?v=AM3bckQ4ujQ 5.2.2 Simulacin con Webots: Marcha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 o http://www.youtube.com/watch?v=0bcNYX5PrJM 5.2.3 Oscilacin lateral propia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 o http://www.youtube.com/watch?v=oNyvn6dL04I&fmt=18 5.2.3 Balanceo lateral estable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 http://www.youtube.com/watch?v=mBUr6-fWJck&fmt=18 5.2.3 Respuesta a perturbaciones externas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63 http://www.youtube.com/watch?v=yegYi-mUO9w&fmt=18 5.2.4 Estabilizacin movimiento lateral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 o http://www.youtube.com/watch?v=YD1bSfUuXOw&fmt=18 5.2.5 Nao caminando con algoritmo Sammys Walk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67 http://www.youtube.com/watch?v=pAhuOHn_bH4&fmt=18 A.3.4 Ejemplo de programacin en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 o http://www.youtube.com/watch?v=ieNhko_8-Us&fmt=18 A.3.5 Ejemplo de programacin en URBI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 o http://www.youtube.com/watch?v=Zo2fHp9ttHU&fmt=18 B.2.3 Nao controlado con mando de la Wii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 http://www.youtube.com/watch?v=1yQMAdktnFg&fmt=18

Cap tulo 1

Introduccin oEl presente proyecto de investigacin plantea el estudio de locomocin b o o peda de robots humanoides, es decir, aquellos que tienen morfolog humana y las articulaciones necesarias a para realizar movimientos parecidos a los humanos. Las investigaciones en este campo ya tienen un amplio desarrollo, y se han logrado resultados muy interesantes. El objetivo central de este proyecto es disear un algoritmo de locomocin b n o peda para que el robot Nao camine, mejorando el propio de Nao. En concreto, se pretende disear n este algoritmo a travs de inducir ciclos l e mites en el movimiento del robot y aprovechar las dinmicas propias del sistema para provocar su avance. A su vez, se plantean los siguientes a subobjetivos, que conforman la estructura de este proyecto: Como fuente de inspiracin y para ver el estado del arte, investigacin de algoritmos o o de locomocin ya existentes y de la locomocin humana. o o Puesta en marcha de Nao, su interfaz con el ordenador, programacin y simulacin en o o realidad virtual. Estudio de ciclos l mites en la oscilacin del robot, y diseo de un algoritmo que los o n aproveche para inducir un movimiento de avance, esto es, hacer que camine. Estabilizacin de las oscilaciones mediante atractores en el espacio de fases. o Anlisis de prestaciones y resultados. a Como objetivo paralelo se desarrollar una interfaz de usuario para poner en uso las funciones a principales de Nao y sus funciones de locomocin. o El enfoque estar orientado al diseo de los algoritmos de control, experimentacin y a n o anlisis de resultados ms que en una formulacin dinmica-mecnica del robot como sistema a a o a a multislido. o La metodolog que se seguir ser principalmente experimental. Como punto de partida a a a se formularn hiptesis a partir de modelos simplicados. Tambin se usarn ideas de la a o e a amplia bibliograf investigada, aunque sta muchas veces no se podr implementar en Nao a e a o no obtendr los resultados esperados. a Por tanto, para alcanzar el objetivo deseado, ste es, lograr que Nao camine, ser necesario e a un desarrollo propio y novedoso. El diseo del algoritmo se har desarrollando diferentes n a metodolog as, sin ser ni mucho menos una bsqueda intuitiva al azar, sino ms bien una u a experimentacin basada en estudios sobre robots e introspeccin en la locomocin humana. o o o Es de esperar que al ser una implementacin novedosa se encuentren problemticas de o a diversa ndole, que se debern ir solucionando con ingenio y los recursos disponibles. a

13

Cap tulo 2

Robots b pedos y algoritmos de controlLa locomocin de robots con piernas, humanoides o similares, no es una novedad para o el desarrollo tecnolgico. Los primeros trabajos se iniciaron hace 40 aos. Por tanto, antes o n de comenzar la aproximacin propia a esta cuestin, es un deber analizar algunas de las o o soluciones y tecnolog que ya se han encontrado e implementado. as Este cap tulo tiene como objetivo ver el estado del arte de la locomocin de robots b o pedos, y a su vez servir de fuente de inspiracin para el posterior diseo de un algoritmo propio. o n Del vasto trabajo de investigacin que se ha realizado en este campo, se estudiarn dio a versos algoritmos de control representativos, as como algunos ejemplos de robots reales y simulaciones interesantes. Slo se har un anlisis descriptivo de los aspectos ms importano a a a tes, sin entrar en demostraciones ni formulaciones complejas del robot como sistema dinmico a multislido. Para ampliar la informacin se puede consultar la bibliograf referenciada. o o a

2.1.

Zero-Moment Point (ZMP)

Esta tcnica de control fue introducida por primera vez hace ms de 35 aos [24], y es e a n actualmente una de las ms extendidas. Establece un criterio de estabilidad dinmica para el a a robot que permite generar patrones de locomocin. Este concepto fue aplicado con xito por o e primera vez en 1984 en Waseda University, Laboratory of Ichiro Kato, en el robot WL-10RD, el primero equilibrado dinmicamente, y desde entonces en otros mltiples robots. a u ZMP (Zero Moment Point, punto de momento nulo) se puede denir como el punto pZM P en el suelo tal que el momento neto de las fuerzas externas no tiene componente sobre los ejes horizontales. Cuando pZM P existe dentro del pol gono de soporte1 , el contacto entre el suelo y el pie es estable. Cuanto ms cercano est p al centro de la supercie de soporte, ms a e a robustez se conseguir. Cuando ZMP est fuera del pol a a gono de soporte, el robot se inclina rotando sobre alguno de los bordes de dicho pol gono. El criterio de que ZMP exista dentro del pol gono de soporte es condicin necesaria y suciente para garantizar la estabilidad dinmica o a del robot. De forma intuitiva, la condicin ZMP asegura que el movimiento del cuerpo ser tal que o a el pie estar plano en el suelo y por tanto no caer. a aArea conexa formada con los puntos de contacto sobre el suelo (ver Figura 2.1). En caso de soporte sobre un unico pie, el pol gono de soporte es este mismo. En caso de soporte con los dos pies, el pol gono de soporte abarca la regin de los pies y el parte del area entre ambos. o 1

15

16

Locomocin b o peda del robot humanoide Nao

(a) Soporte doble (dos pies)

(b) Soporte simple (un pie)

Figura 2.1: Pol gono de soporte segn fase de locomocin u o

2.1.1.

Formulacin matemtica o a

A continuacin se har una demostracin sencilla del criterio ZMP, as como la condicin o a o o que permite generar trayectorias de locomocin estables. o La clave est en suponer que el robot est apoyado sobre un unico pie. Se impone como a a condicin de equilibrio que el pie no est en condiciones de volcada inminente, es decir, que o e la reaccin del suelo est aplicada en el interior del pie, no en uno de sus bordes. o e Si se a el sistema pie, sobre l acta la reaccin del suelo (la fuerza R y el momento sla e u o M), y la de la articulacin del tobillo (la fuerza FT y el momento MT ) (ver Figura 2.2). La o reaccin del suelo sobre el pie, considerado un slido r o o digo, se puede reducir a una fuerza y un momento aplicados en un punto determinado. En general, habr tres componentes de fuera za Rx , Ry , Rz , y un tres componentes de momento Mx , My , Mz . Igualmente en la articulacin o del tobillo habr tres componentes de fuerza FT x , FT x , FT z y de momento MT x , MT x , MT z . a

Figura 2.2: Fuerzas y momentos sobre el pie

Dadas las caracter sticas del enlace pie-suelo, y suponiendo que no hay deslizamiento, se cumplir que las componentes horizontales de FT (FT x , FT y ) siempre se vern compensadas a a por las componentes horizontales de R (Rx , Ry ), esto es, la friccin. Lo mismo pasar con la o a componente vertical del momento MT z y Mz .

2. Robots b pedos y algoritmos de control

17

Por tanto, el problema se reduce a estudiar la componente vertical de las fuerzas (FT z y Rz ) y las componentes horizontales de los momentos (MT x , MT y y Mx , My ). Dado que la fuerza Rz es unidireccional, siempre se puede encontrar un punto p tal que la reaccin del suelo o Rz , Mx , My se reduzca unicamente a una fuerza, Rz , siendo las componentes horizontales del momento compensadas por la ubicacin de la fuerza. Este punto es el Zero-Moment Point o ZMP. Cabe destacar que esta denicin es muy parecida a la de centro de presin (CdP). CdP se o o dene como el punto tal que el efecto de la fuerza y momento de la reaccin del suelo equivale o a unicamente una fuerza aplicada en ese punto. A continuacin se explicar la diferencia o a entre ambos conceptos. Si el pie est en equilibrio, es decir, no est en condiciones de volcada inminente, ZMP a a se encontrar dentro del pol a gono de soporte, y ser coincidente con CdP por denicin. En a o condiciones de volcada inminente, ZMP y CdP estn ubicados sobre un borde del pol a gono de soporte. Cuando el momento externo de la articulacin contine aumentando, se pasar a o u a condiciones de volcada, fuera del equilibrio. CdP continuar estando en el borde del pol a gono de soporte (no puede existir fuera de ste). Sin embargo, existe un momento que est haciendo e a girar el pie. ZMP existir fuera del pol a gono de soporte en un punto tal que el momento neto de todos los enlaces sea nulo. Tambin existe una interpretacin que es la que permite utilizar este concepto en el diseo e o n de trayectorias: CdP se dene en funcin de la interaccin de las fuerzas de reaccin del suelo, o o o ZMP se puede denir en funcin de una trayectoria computada. Para calcular la posicin de o o ZMP a partir de una trayectoria en primer lugar hay que imponer equilibrio esttico de a momentos en el pie, y analizar las componentes horizontales: Fi = 0,i i

MPi = 0

(2.1)

R + FT + mpie g = 0 R = FT mpie g OPZMP R + OG mpie g + MT + M + OT FT = 0

(2.2)

(2.3)

Si se estudian unicamente las componentes horizontales, M no aparece en la ecuacin o al tener unicamente componente vertical. Sustituyendo la ecuacin 2.2 en la ecuacin 2.3, y o o restringindola a las componentes horizontales se obtiene: e (OPZMP (FT mpie g))H + OG mpie g + MH + (OT FT )H = 0 T (2.4)

Para una trayectoria computada, de la cual se conozcan las variables articulares, velocidades y aceleraciones, a travs de una formulacin dinmica inversa (Newton-Euler por e o a ejemplo) se pueden determinar los momentos y fuerzas en cada articulacin, y en concreto o para el tobillo del pie soporte. La ecuacin generalizada para calcularlas es: o = H(q) + C(q, q)q + g(q) + ext q (2.5)

18

Locomocin b o peda del robot humanoide Nao

siendo el vector de fuerzas generalizado, H la matriz de inercia, C incluye los trminos e de coriolis, g los trminos de gravedad y ext las fuerzas externas. Como resultados de esta e ecuacin se pueden encontrar en concreto los valores de MT y FT . Sustituyndolos en la o e ecuacin 2.4 se puede determinar la posicin del punto pZM P . Si este est dentro del pol o o a gono de soporte, la trayectoria es estable. Si est fuera, no se podr cumplir el equilibrio, existir un a a a momento neto y por tanto el pie volcar sobre uno de sus bordes. En este caso ser necesario a a redenir la trayectoria inicial de tal forma que se consiga cumplir la condicin ZMP. Esta o condicin expuesta para el soporte con un solo pie se puede extrapolar para el soporte doble. o La condicin de ZMP impone que el pie est estticamente equilibrado. Pero como para o e a su cmputo se utilizan las dinmicas del resto del cuerpo, se dice que esta condicin es de o a o estabilidad dinmica, ya que las trayectorias de la locomocin son estables. a o

2.1.2.

Algoritmo

El algoritmo que se presentar a continuacin permite generar trayectorias que cumplan a o la condicin ZMP. El procedimiento consta de los siguientes pasos [4]: o 1. Se denen una serie de posiciones de los pasos deseados. 2. Para encontrar las trayectorias de un paso se sigue un proceso de optimizacin. Para pao sar de trayectorias a conguraciones articulares es necesario usar la cinemtica inversa, a y para pasar de movimientos articulares a fuerzas la dinmica inversa. Las restricciones a que debe cumplir la optimizacin deben ser: o Condicin ZMP (equilibrio dinmico). o a Cumplimiento de las posiciones deseadas para cada paso. M nimos y mximos movimientos articulares. a Criterios estil sticos: ya que el modelo a resolver es de dimensin muy elevada, o es necesario denir ms criterios. Estos pueden ser del estilo trayectoria del pie a cicloidal, altura de las caderas dentro de un rango... La funcin a optimizar puede incluir aspectos energticos (minimizar la energ o e a aportada por los actuadores en un ciclo), de robustez (ZMP lo ms cercano posible a al centro del pol gono de soporte), y otros dependientes de cada caso concreto. Adems, la posicin del ZMP puede constituir una variable de control efectiva para asea o gurar estabilidad. Sobre esta base se pueden implementar mejoras, como por ejemplo calcular las trayectorias y el ZMP on-line, o usar informacin de otros medios para calcular trayectorias futuras. o El robot HRP-2 implementa este y otros criterios [23]. Aunque quiz el ejemplo ms reprea a sentativo del algoritmo ZMP es el robot ASIMO de Honda [8].

2. Robots b pedos y algoritmos de control

19

2.1.3.

ASIMO

ASIMO (acrnimo de Advanced Step in Innovative Mobility paso avanzado en movilidad o innovadora), es un robot humanoide creado por la empresa Honda [8], la ultima y novedosa versin se present en el ao 2005 (ver Figura 2.3). Quiz sea uno de los ejemplos ms o o n a a representativos de los robots caminadores b pedos basados en el algoritmo ZMP. El v deo [2.1.3 ASIMO] contiene una demostracin del robot caminando en sus diferentes modos. o

(a) Evolucin de ASIMO (1986 a 2005) o

(b) Versin 2005 o

Figura 2.3: Robot ASIMO

El funcionamiento se basa en generar un patrn de movimiento ideal para las articulao ciones que cumpla la condicin ZMP, y mover las articulaciones segn ste. Cuando hay un o u e desajuste entre el patrn ideal y la realidad (ya sea por perturbaciones o por el terreno) o entran en funcionamiento las siguientes tres estrategias de control para prevenir una ca da, y consecuentemente lograr estabilizar la locomocin: o Control de la reaccin del suelo: se controla la fuerza ejercida en los pies para o detectar las irregularidades en el terreno, las perturbaciones que provocan y as poder corregirlas. Control del ZMP objetivo: Se hacen las correcciones necesarias sobre las articulaciones de tal forma que se site lo ms rpido posible en la posicin ZMP ideal. u a a o Control de la posicin del siguiente paso: Se hacen los ajustes necesarios a la o trayectoria planicada de tal manera que el siguiente paso sea en el sitio ptimo para o compensar la perturbacin. o La ultima versin de ASIMO mide 130 cm, pesa 54 kg, tiene 34 grados de libertad y una o bater que dura aproximadamente 25 min, aparte de todo un arsenal de sensores inerciales, a de presin y de fuerza. Camina de forma normal a 2,7 km/h, y puede alcanzar corriendo (con o fase area) los 6 km/h. Puede correr girando y evitar deslizamiento de los pies. Sin duda, es e uno de los robots ms avanzados que se han diseado en laboratorios de investigacin. a n o

20

Locomocin b o peda del robot humanoide Nao

2.1.4.

Ventajas e inconvenientes

Las ventajas de aplicacin del concepto ZMP y los algoritmos derivados podr ser o an resumidas en: En s mismo ZMP constituye una metodolog sistemtica para la generacin de tra a a o yectorias para la locomocin. o Se asegura que las trayectorias de locomocin sean dinmicamente estables. o a Constituye una variable de control on-line. Aunque las trayectorias se planeen generalmente o-line, lgicamente existen perturbaciones. Se puede establecer un control o articular tal que en caso de que ZMP se desv de su posicin calculada regrese a sta. e o e En caso que la perturbacin no se consiga compensar y ZMP salga del pol o gono de soporte, el clculo del grado de separacin de ZMP permite tener una medida de la a o perturbacin. Esta se puede corregir entonces modicando la trayectoria de tal manera o que el nuevo paso se site de tal forma que el nuevo pol u gono de soporte incluya ZMP, volviendo a recuperar la estabilidad. Los siguientes puntos se plantean como inconvenientes al ZMP, siempre recordando que los mejores robots que caminan usan este mtodo: e La resolucin del algoritmo es de alta complejidad. Con el crecimiento de capacidad de o clculo de los ordenadores no supondr un problema en el futuro. a a El uso de cinemtica inversa tambin comporta problemas. Debido a que se necesita a e gran precisin para tener una trayectoria estable, los errores numricos pueden tener o e implicaciones muy perjudiciales de desequilibrado. El uso cinemtica y dinmica inversas puede tener problemas por singularidades, ya que a a cerca de ellas se producen errores numricos muy importantes. Los ms comunes son e a divisiones por cero que conllevan explosiones numricas, y por tanto comportamientos e bruscos del robot. Dependiendo de la conguracin (articulacin en su l o o mite, soporte sobre un pie, sobre dos, sobre un borde de un pie...) cambian los grados de libertad del sistema, y por tanto deben usarse matrices de dinmica diferentes. Esto eleva la complejidad much a simo. La otra opcin ser evitar conguraciones cercanas a singularidades, pero esto limitar la o a a movilidad natural del robot. Por ultimo, ser interesante reexionar en lo siguiente: ZMP busca que las trayectorias a de locomocin sean dinmicamente estables, es realmente necesario? No se podr buscar o a a un sistema de locomocin tal que el ciclo l o mite de los sucesivos pasos fuera estable, aunque las trayectorias fueran inestables? Efectivamente s se puede y de hecho, tal como se ver, a los humanos no cumplen la condicin ZMP en todas las fases de la marcha. Llegados a este o punto resulta interesante analizar trabajos realizados sobre el denominado caminar pasivo (Passive Walking), y los trabajos que se derivan aplicados a caminadores activos.

2. Robots b pedos y algoritmos de control

21

2.2.2.2.1.

Passive & Dynamic WalkingPassive Walking

El concepto de locomocin pasiva (Passive Walking), es decir, sin actuadores, fue introduo cido por primera vez en 1988 por Tad McGeer [15][18][16][17], quien estudi y construy un o o caminador pasivo (ver v deo [2.2.1 Passive Walker]).

Figura 2.4: Copia del mecanismo inventado por McGeer

La virtud de este mecanismo es que no necesita energ externa ni ningn tipo de control a u para caminar por una pendiente, el movimiento viene propulsado por la energ gravitaa cional de la bajada. El sistema acta como dos pndulos acoplados. La pierna soporte es un u e pndulo invertido, y la pierna oscilante es un pndulo normal unido a la pierna soporte. Con e e la distribucin de masas y longitudes adecuada, se consigue un ciclo l o mite estable, una trayectoria nominal que se repite. Inicialmente el mecanismo no ten rodillas, pero una mejora a posterior implement esta articulacin manteniendo la estabilidad. El movimiento lateral se o o inhibe al contar con cuatro piernas. McGeer hizo un estudio exhaustivo de la mecnica y dinmica del caminador. Demostr las a a o condiciones necesarias para asegurar la estabilidad del ciclo l mite. Cabe destacar una diferencia sustancial respecto al algoritmo ZMP: el caminador pasivo describe trayectorias inestables (por denicin, se comporta como un pndulo invertido inestable), manteniendo el ciclo l o e mite estable. Tambin es de gran inters el hecho que los movimientos de este simple mecanismo, que no e e tienen actuacin ni control, tengan una gran semejanza al de los humanos. Esto sugiere la idea o de que los humanos aprovechamos las dinmicas propias de nuestro cuerpo para optimizar el a consumo energtico de la locomocin. e o Este descubrimiento abri una nueva puerta de investigacin: robots que aprovechen los o o mismos conceptos de la locomocin pasiva aplicndolos para conseguir locomocin sobre o a o llanos y subidas, lgicamente aadiendo elementos actuadores y de control. Esto se conoce o n como dynamic walking (caminata dinmica). a

22

Locomocin b o peda del robot humanoide Nao

2.2.2.

Dynamic Walking

Steve Collins y sus compaeros hicieron interesantes estudios de robots humanoides que n usan los conceptos de la locomocin pasiva [6]. Desarrollaron tres robots diferentes, sustituo yendo la propulsin gravitacional por actuadores simples. o El b pedo Cornell (Figura 2.5a) est basado en el mecanismo pasivo, y propulsado por a motores elctricos y muelles que ayudan al movimiento de los tobillos cuando se levantan los e pies. Tiene cinco grados de libertad (dos tobillos, dos rodillas y la cadera), los brazos estn a unidos mecnicamente a la pierna opuesta. El b a pedo Delft (Figura 2.5b) tiene una morfolog similar, pero con actuacin neumtica. Y el ultimo (Figura 2.5c) fue desarrollado en el a o a MIT (Massachusetts Institute of Technology). Tiene la peculiaridad de estar controlado mediante un aprendizaje con refuerzo (reinforcement learning), que converge automticamente a a la estrategia de control ptima. Se pueden ver en funcionamiento en los v o deos [2.2.2 B pedo Cornell], [2.2.2 B pedo Delft], [2.2.2 B pedo del MIT].

(a) B pedo Cornell

(b) B pedo Delft

(c) B pedo del MIT

Figura 2.5: Tres caminadores actuados basados en el mecanismo de locomocin pasivo o

El b pedo Cornell est espec a camente diseado para minimizar la energ de propuln a sin. Mediante una pol o tica en los actuadores adecuada, se consigue que siempre aporten trabajo positivo y no se usen como disipadores. Este hecho est en contraposicin con el proa o blema que presentan muchos otros robots: en el momento en el que el pie impacta en el suelo se disipa energ debido a que el robot est frenando, afectando as al rendimiento, ya que a a luego hay que recuperarla. Aunque los robots del MIT i Delft no fueron diseados espec n camente para usar poca energ ambos tienen las ventajas inherentes de los caminadores a, pasivos en lo que respecta a bajo consumo. Resulta interesante comparar la eciencia de estos robots con otros y con los humanos. Para compararlos se usa un concepto de coste energtico mecnico espec e a co adimensional cmt , propuesto por [6]: Pm [W] cmt = (2.6) g[N/kg] v[m/s] m[kg]

2. Robots b pedos y algoritmos de control

23

siendo Pm la potencia de locomocin consumida en watts (slo la de los actuadores que se o o invierte en la locomocin, no se cuenta la del procesador ni otros elementos como sensores, o etc.), g la gravedad, v la velocidad en m/s y m la masa en kg. La Tabla 2.1 muestra una estimacin comparativa de estos parmetros. Es notorio que el robot ASIMO, un representante o a de los robots basados en control de los ngulos articulares, tiene un consumo espec a co ms a de un orden de magnitud mayor que los humanos, que a su vez est en el mismo orden de a magnitud que los robots mencionados en este apartado. Robot cmt B pedo Cornell 0,055 B pedo Delft 0,08 B pedo MIT 0,02 ASIMO 1,5 Humano 0,05

Tabla 2.1: Coste energtico espec e co de la locomocin o

En contraste con otros robots actuados, los robots b pedos Delft y Cornell usan esquemas de control primitivos. Los unicos sensores que tienen son de contacto con el suelo, y los comandos a los motores son seales de on/o. n Algunas caracter sticas interesantes (e imprescindibles) de los robots basados en el caminador pasivo son: La forma de la suela de los pies est muy estudiada. Es una forma curvada que permite a que el movimiento de avance sea suave. Gran parte del movimiento talnpunta del pie o tan humano que tienen es gracias a esta caracter stica. El robot del MIT tambin e tiene forma curvada en el plano lateral, facilitando su oscilacin y asegurando estabilidad o intr nseca en este plano. Presentan elementos pasivos, por ejemplo muelles. Estos elementos con las caracter sticas adecuadas permiten almacenar energ en una fase de la locomocin para liberarla a o en otra fase. De esta forma se consigue un ahorro energtico muy importante, adems e a de un mejor comportamiento especialmente en el impacto del pie en el suelo. Tambin e pueden incluir amortiguadores mecnicos que proporcionan estabilidad en el momento a de impacto con el suelo. El resultado de estos estudios de robots b pedos basados en caminadores pasivos se puede resumir en los siguientes puntos: Controladores simples. No usan actuadores de alta potencia. No usan controladores de alta frecuencia, que no ser comparables al comportamiento an humano. Tienen eciencias y movimientos parecidos a los humanos.

24

Locomocin b o peda del robot humanoide Nao

2.3.

BigDog

BigDog[22] es un robot con cuatro piernas, y una morfolog parecida a la de un perro a (de ah su nombre perro grande), capaz de moverse en entornos reales muy diversos. Ha sido desarrollado por Boston Dynamics (www.bostondynamics.com), una ingenier especializada a en la construccin de robots dinmicos y software de simulacin. Surgi del Massachusetts o a o o Institute of Technology, y en primer lugar se centraron en desarrollar un robot con forma animal que pudiera caminar.

Figura 2.6: BigDog

Aunque este robot no es humanoide, ya que tiene cuatro piernas, su comportamiento es muy natural, siendo muy estable ante perturbaciones externas importantes y variaciones de terreno. En el v deo [2.3 BigDog] se puede comprobar la bondad del algoritmo de control de este robot. El robot pesa 109 kg, mide alrededor de un metro de alto, 1,1m de largo y 0,3m de ancho.

2.3.1.

Descripcin y morfolog o a

BigDog tiene varios sistemas a bordo, que le suministran potencia, actuacin, sensado, o control y comunicaciones. Utiliza como fuente de energ un motor de combustin interna de a o 2 tiempos de 15 CV que va conectado a una bomba hidrulica, la cual proporciona aceite a a alta presin a travs de los sistemas correspondientes. o e Los actuadores son cilindros hidrulicos de baja friccin controlados por servovlvulas a o a de alta calidad. Cada actuador tiene sensores de posicin y fuerza. Cada una de las cuatro o piernas dispone de cuatro actuadores hidrulicos, y adems un quinto grado de libertad pasivo a a (ver Figura 2.7). La computadora controla el comportamiento del BigDog, sus sensores y las comunicaciones. BigDog tiene unos 50 sensores. Los de inercia miden la inclinacin y aceleracin del cuerpo, o o mientras que los de las articulaciones miden el movimiento y fuerza de los actuadores. Con toda esta informacin es posible tener una estimacin de cmo se est moviendo en el espacio. o o o a El sistema de control realiza tareas tanto de bajo como de alto nivel: control de fuerzas y posiciones de las articulaciones y coordinacin global de la locomocin. Permite controlar la o o interaccin con el suelo para mantenerse erguido y continuar la marcha. o

2. Robots b pedos y algoritmos de control

25

Figura 2.7: Descripcin BigDog o

El robot tiene una gran variedad de estilos de locomocin. Puede permanecer en pie, o avanzar levantando slo una pierna cada vez (velocidad 0,2m/s), caminar levantando 2 piernas o opuestas por vez (igual que un perro, 1, 6m/s), caminar corriendo con fase area (velocidad e normal 2m/s, mxima 3, 1m/s). a

2.3.2.

Control

BigDog camina al trote mientras asegura su estabilidad dinmicamente. El sistema de a control es simple comparado con otros. Usa una estimacin de la velocidad y aceleracin o o lateral para estabilizarlo, prediciendo dnde colocar el siguiente paso de tal forma que se o estabiliza el movimiento. Se basa en los siguientes principios: Soportar el cuerpo con un movimiento vertical basado en rebotes (ver Figura 2.8a). Controlar la forma de caminar a travs de los momentos aplicados en las caderas durante e la fase de soporte de la pierna (ver Figura 2.8b). Colocar los pies en posiciones clave a cada paso usando principios de simetr para que a el robot se balancee de forma estable mientras camina (ver Figura 2.8c).

(a) Rebotar sobre las piernas con muelle

(b) Mantener postura vertical con las piernas soporte

(c) Movimientos simtricos e

Figura 2.8: Principios del control de la locomocin o

26

Locomocin b o peda del robot humanoide Nao

Adicionalmente a los principios expuestos, el sistema de control realiza las siguientes tareas (en la Figura 2.9 se puede ver el diagrama de control): Estimar la evolucin del terreno usando la informacin histrica. o o o Ajustar la postura para optimizar la fuerza de cada pierna. Usar el control de traccin para detectar, evitar y recuperarse de resbalones. o Evitar colisiones entre piernas.

V lcd d eo ia d sa a ee d

Pa ic c lnf a in i ta e tr ry co i a pe is

Pen ir a vru l i a t C I

C od o re nds aa

Pen ir a vru l i a t C D

P D S ro ev F ez s u ra vru ls i ae t Pen ir a vru l i a t MD

P rs ae a t ua in s ri lc e c o R bt oo g ls n uo y v lc a e eo i d s d d a t ua in e ri lc c

Me a imo c ns s C o dn c o r ia in

Etd pen s o ir a a

M un q ia E td s sa o

E tr o no n

C= ie t aIv ra ICn mi n es c C = ie t aD rca D Cn mi i t c e MD Mo eoVru l = dl i a t

Figura 2.9: Diagrama del lazo de control

El algoritmo de coordinacin entre piernas inicia las transiciones de estado para producir o una locomocin estable. A travs de cinemtica inversa, y comparndola con la real se obtieo e a a nen las fuerzas que se deben ejercer. Estas se env a articulaciones para que su interaccin an o con el suelo sea tal que las fuerzas y momentos de la reaccin estabilicen el robot mientras o camina.

2.4.

SIMBICON: Simple Biped Locomotion Control

SIMBICON [27] es un algoritmo de control para robots b pedos que usa tcnicas de e feedback orientadas a conseguir el equilibrio a partir del estudio de las dinmicas involucradas. a Permite una gran cantidad de estilos de locomocin en tiempo real (hacia delante, hacia atrs, o a de lado, girando, corriendo, saltando, gateando. . . Este algoritmo funciona bien tanto en 2D como en 3D, y con parmetros adecuados a se puede conseguir un estilo de caminar muy parecido al humano y muy estable frente a perturbaciones externas o cambios de terreno. Cabe destacar que slo se ha probado con o simulaciones f sicas (con parmetros reales), pero no en robots b a pedos. Se puede ver una demostracin en el v o deo [2.4 SIMBICON].

2. Robots b pedos y algoritmos de control

27

(a) Caminando

(b) Pasos altos

(c) Corriendo

(d) Paso largo

Figura 2.10: Simulaciones de un personaje en 2D con el algoritmo SIMBICON

(a) El controlador 2D reacciona frente a cambios en el terreno

(b) El controlador 3D reacciona a una fuerza externa en diagonal

Figura 2.11: Simulacin en tiempo real de un personaje que camina con el algoritmo SIMBICON o

2.4.1.

Algoritmo

La idea del algoritmo es usar una mquina de estados nita, o grafo con posturas de a control. Cada estado consiste en una postura del cuerpo que representa los ngulos objetivo a de cada articulacin respecto al eslabn anterior, para todas las articulaciones. Cada articuo o lacin individual usa un controlador PD (proporcional-derivativo) para dirigirse a su ngulo o a objetivo. Las transiciones entre estados ocurren despus de un tiempo jo o, para otros ese tados, despus de que el pie establezca contacto con el suelo. Los estilos de locomocin para e o caminar se modelan con cuatro estados, y para correr slo dos estados. o El control por posturas por s solo no tiene equilibrio intr nseco, sin embargo, unas modicaciones permiten obtener una locomocin robusta. En primer lugar, el torso y la articulacin o o cadera-fmur de la pierna oscilante tienen ngulos objetivo respecto al sistema de referencia e a del suelo, no respecto a su articulacin previa. En segundo lugar, se aade un trmino de o n e feedback para corregir el ngulo objetivo de la cadera-fmur en funcin de la posicin del a e o o centro de masas y su velocidad. De esta forma se consigue un balanceo robusto modicando el siguiente punto de soporte.

28

Locomocin b o peda del robot humanoide Nao

Mquina de estados a Cada estado tiene sus ngulos objetivo. Para una locomocin simtrica, los pares de a o e estados derecho-izquierdo deben ser simtricos, es decir, los estados 0 y 2, 1 y 3. La transicin e o entre los estados 0 1 ocurre despus de un tiempo, y de 1 2 despus del contacto del e e pie con el suelo (ver Figura 2.12).

S p repen o o t ir a iq ir a z ued

0I at mp co peiq ir o i z ued

1I at mp co ped rc o i ee h

3S p repen o o t ir a d rc a ee h

2

Figura 2.12: Mquina de estados a

En cualquier estado dado, los pares aplicados a las articulaciones se calculan con un control proporcional-derivativo (PD) = kp (d ) kd para llevar cada articulacin al ngulo o a deseado d . Estos ngulos son un objetivo, no se alcanzan realmente en un funcionamiento a normal.

Control de la inclinacin del torso y la cadera en movimiento o La cadera de la pierna de apoyo y la pierna oscilante se controlan de forma diferente, tal como se ilustra en la Figura 2.13a. En primer lugar se controla la inclinacin del torso o respecto al sistema de referencia del suelo, esto se consige usando un controlador virtual PD que trabaja en este sistema de referencia que calcula el par neto A , tal como se muestra en la gura. En segundo lugar se desacopla el control del ngulo de la cadera de la pierna oscilante a respecto a la inclinacin actual del torso, controlando la cadera de la pierna en movimiento o respecto al sistema de referencia del suelo. El par B es calculado tambin con un controlador e PD virtual que trabaja en la referencia del suelo. Finalmente cabe notar que el par B es interno al sistema y, de hecho, la reaccin (par inverso) se est aplicando sobre el torso. Es o a necesario que el par deseado sobre el torso torso sea el par neto que se aplica, A B . Para solucionar este aspecto se calcula el par neto del torso como A = torso B .

Realimentacin para conseguir equilibrio o El ultimo componente de la estrategia de control es aplicar una realimentacin al posi o cionamiento del pie en movimiento. Se emplea una ley de la forma

2. Robots b pedos y algoritmos de control

29

d = d0 + cd d + cv v

(2.7)

a la cadera de la pierna en movimiento, siendo d el ngulo objetivo del controlador PD, d0 a el ngulo objetivo por defecto de la mquina de estados, d la distancia horizontal del pie a a de soporte hasta el centro de masa (CDM), y v la velocidad del CDM, tal como se ve en la Figura 2.13b. El punto medio de las caderas se puede usar como una solucin simple y o efectiva para estimar la posicin y velocidad del CDM. o El parmetro cd es importante para suministrar equilibrio en locomociones a baja veloa cidad o simplemente dando pasos en el sitio. El parmetro cv regula la velocidad en estado a estacionario.

(a) Relacin entre los pares del torso, cadera de o pierna de apoyo y cadera de la pierna en movimiento

(b) Posicin y o velocidad del centro de masas

Figura 2.13: Elementos de la estrategia de realimentacin para el equilibrio o

2.4.2.

Resultados

El algoritmo SIMBICON proporciona una serie de ventajas: gran facilidad para crear estilos de locomocin, resulta muy estable frente a perturbaciones, y su simplicidad y facilidad o de programacin. Puede ser una opcin muy interesante para el desarrollo de la locomocin o o o de un robot humanoide. En la Figura 2.10 se muestran los dibujos de diversas simulaciones.

2.5.

Conclusiones

Despus de este anlisis se puede ver el estado del arte en lo que respecta a la locomocin e a o b peda de robots humanoides. Los resultados ms exitosos se han conseguido con el algoritmo a ZMP, un procedimiento sistemtico que permite asegurar la estabilidad de las locomociones. a Este algoritmo es siempre una referencia para el desarrollo de otros. Tambin existen otras mltiples aproximaciones, como dynamic walking. Esta ultima e u est bastante desarrollada, y permite a travs de un diseo conjunto de la estructura f a e n sica

30

Locomocin b o peda del robot humanoide Nao

y el control reducir much simo el consumo energtico de la locomocin. Una aproximacin e o o inspirada en este planteamiento puede proporcionar propiedades muy interesantes al robot. Aparte de los algoritmos usados, existen muchos otros, como por ejemplo el uso de modelos virtuales [21], aprendizaje con redes neuronales [14], aprendizaje por refuerzo [19] [12], tcnicas de optimizacin [25]. . . Aqu se han mostrado algunos de los algoritmos ms usados e o a para locomocin b o peda, y otros interesantes para tener una base y fuente de inspiracin para o la implementacin particular que se desarrollar en este proyecto. Si embargo, falta analio a zar un aspecto muy importante: la locomocin b o peda humana. Este punto se tratar en el a siguiente cap tulo.

Cap tulo 3

Anlisis de la locomocin b a o peda humanaLa locomocin humana es compleja y un anlisis exhaustivo ser inviable para este proo a a yecto. A continuacin se analizarn aquellos aspectos biolgicos-cinemticos-mecnicos releo a o a a vantes para el diseo del algoritmo de locomocin del robot. Este anlisis se centrar en las n o a a piernas, ya que son la clave para caminar. Se puede armar que la forma de caminar de los humanos est muy optimizada para a la conguracin de dos piernas. Ya que se pretende implementar el control en un robot o humanoide, tambin es un deber estudiar el modelo original. e Se ha utilizado como fuente de datos la informacin proporcionada en [13], y tambin por o e la pgina web www.dynamicwalking.org. En ella se puede hallar una captura de informacin a o con mltiples sensores y cmaras de precisin para analizar el caminar humano. Parte de los u a o datos expuestos se han tomado de este estudio, y se mostrarn de una forma grca para su a a mejor comprensin. o Los datos que proporcionan constan de (ver Figura 3.1): Diferentes estilos de caminar: Normal, lento, muy lento, muy muy lento, rpido y estilo a ASIMO. Captura en v deo de la secuencia. Informacin de la actividad muscular. o Captura de la posicin XYZ de cada articulacin. o o Angulos, momentos y potencia de cada articulacin, obtenidos por cinemtica/dinmica o a a inversa. Dibujo esquemtico de la persona. a El aspecto ms relevante para el posterior desarrollo de un algoritmo de locomocin en a o el robot es la cinemtica. En concreto se analizarn el estilo general de locomocin y los a a o movimientos articulares. Otros aspectos como la dinmica, potencia u otros aspectos salen a de los objetivos de este proyecto. Hay mltiples e interesantes estudios al respecto que se u pueden consultar para ms informacin en la web de www.dynamicwalking.org. a o

31

32

Locomocin b o peda del robot humanoide Nao

(a) Dibujo esquemtico a

(b) V deo

(c) Actividad muscular

Figura 3.1: Anlisis del caminar humano a

3.1.3.1.1.

Descripcin cualitativa oFases de la marcha

La marcha normal, un acto esencial que se aprende por instinto, es de una complejidad extraordinaria. Los movimientos son muy rpidos, ya que un ciclo completo dura del orden a de 1s. Se caracteriza por el hecho de que el cuerpo jams abandona totalmente el contacto a con el suelo, contrariamente a lo que ocurre en la carrera. Para mayor claridad se explican las fases de la marcha referenciadas al porcentaje del ciclo de un solo miembro, desde el contacto del taln en el suelo hasta el siguiente contacto. o De forma esquemtica los diversos tiempos de la marcha son: a 1. Ataque del taln en el suelo (0-15 %) (Figura 3.2a) La rodilla est en extensin o a o completa, la pelvis oblicua hacia adelante, el tobillo en posicin neutra. o 2. Pie plano en el suelo (15-40 %) (Figura 3.2b) El sujeto se halla en equilibrio sobre un unico pie. La rodilla est exionada de un 15 a un 25 % con el n de evitar un ascenso a del centro de gravedad. 3. Despuegue del taln (40-50 %) (Figura 3.2c) Apoyo reducido slo al antepi. Este o o e elemento es estable a partir del cual los dems se mueven. a 4. Despegue de los dedos (50-60 %) (Figura 3.2d) Es el doble apoyo. 5. Avance del miembro inferior oscilante (60-75 %) (Figura 3.2e) Flexin de la rodilla o o ), exin del tobillo, el miembro posee su longitud m rpida e importante (40-50 a o nima.

3. Anlisis de la locomocin b a o peda humana

33

6. Extensin total (75-100 %) (Figura 3.2f) - El miembro oscilante pasa a gran velocidad o y se coloca en la posicin de mayor longitud posible con el n de alcanzar el suelo lo o ms delante posible del cuerpo. a

(a)

(b)

(c)

(d)

(e)

(f )

Figura 3.2: Fases de la marcha

Es de notorio inters que en la marcha normal slo se tiene un pie totalmente apoyado e o durante un 50 % del tiempo. Es decir, que la condicin ZMP que el pie completo est totalo e mente apoyado slo se cumple durante medio ciclo. Se puede comprobar fcilmente intentando o a caminar con los pies siempre planos que se requiere mucho ms esfuerzo y es ms dicultoso. a a

3.1.2.

Desarrollo del pie durante la marcha

1. De 0 al 15 % (Figura 3.3a) El abordaje al suelo se realiza por el taln. o 2. Del 15 al 40 % (Figura 3.3b) El pie permanece plano. El contacto se realiza a travs e del borde externo. 3. Del 40 al 50 % (Figura 3.3c) Despegue del taln. Todo el peso reposa slo sobre el o o antepi. e 4. Del 50 al 60 % (Figura 3.3d) Despegue de los dedos.

34

Locomocin b o peda del robot humanoide Nao

(a)

(b)

(c)

(d)

Figura 3.3: Desarrollo del pie durante a marcha

Este ser el esquema del desarrollo del paso para un pie estrictamente normal. En caso a que se amputaran todos los dedos la ultima fase del paso no se puede realizar, y el paso se debe acortar. Se puede ver que desde el punto de vista de la pierna, el pie est basculando. Esta idea es a la que se aprovechaba en los caminadores pasivos, por eso tienen movimientos tan parecidos a los humanos.

3.1.3.

Caracter sticas del paso

El paso es la distancia que separa dos apoyos sucesivos, y se mide de taln a taln. Se o o llama ngulo del paso el formado por la l a nea de marcha y el eje del pie, que cruzan por detrs. Su valor normal es de 15o . La amplitud del paso es la distancia que separa el taln de a o la l nea de marcha, para una velocidad media es de 5 a 6cm (ver Figura 3.4).

Amplitud del paso - 6cm Lnea de la marcha

15 ngulo del paso

Figura 3.4: Caracter sticas del paso

La cadencia es el nmero de pasos hechos en un minuto. La velocidad de marcha es igual u al producto de la cadencia por la longitud de paso. En un hombre adulto de talla media (170cm de altura) la cadencia ms eciente1 var entre 110 y 130 pasos por minuto. Esto es a a 2 entre 0,92 y 1,09 s. La longitud de paso oscila entre 75 y 85 cm, y la un per odo de ciclo velocidad ser de 5 a 6,5 km/h. a La marcha normal es la que tiene un consumo energtico menor, con una velocidad alree dedor de 4,5 a 5 km/h.

3.1.4.

Brazos y movimiento de torsin transversal o

Con el n de separar lo menos posible el centro de gravedad de su eje de progresin, y o disminuir la oscilacin transversal del tronco, es preciso que los hombros y brazos realicen el o giro en sentido inverso (ver Figura 3.5).1 2

Entendida como la que tiene la relacin velocidad/(consumo energtico) mayor. o e Recordar que en un ciclo completo se realizan dos pasos.

3. Anlisis de la locomocin b a o peda humana

35

Se puede comprobar que si se intenta caminar con los brazos jos pegados al tronco resulta mucho ms dicultoso, el torso oscila mucho en el eje transversal, aunque se puede proseguir a con la marcha.

Figura 3.5: Movimiento de brazos y hombros al caminar

3.2.3.2.1.

Cinemtica aSistema de referencia

En primer lugar se denirn planos de referencia y ejes respecto al cuerpo (Figura 3.6). Se a considerarn los movimientos en cada plano independientes para esta primera aproximacin. a o Los ejes de rotacin locales de cada articulacin estn denidos con el mismo sentido que o o a estos ejes locales para la posicin indicada en el dibujo. De hecho, por coherencia se han o tomado los mismos ejes que se denirn en el robot Nao. a Ya que se analizar la locomocin en l a o nea recta, se estudiarn solamente los planos a frontal (movimientos de aduccin/abduccin), y sagital (movimientos de exin/extensin). o o o o Los movimientos en el plano transversal (movimientos de torsin) son menos relevantes en o l nea recta a bajas velocidades.

3.2.2.

Movimientos articulares

Los comandos que se enviarn al robot para controlarlo sern las conguraciones angulares a a de cada articulacin. Es por eso que resulta interesante analizar la evolucin temporal de los o o a ngulos de articulacin cundo una persona est caminando. o a a En la Figura 3.7 se pueden hallar instantneas para cada fase del paso. a

36

Locomocin b o peda del robot humanoide Nao

+

+

(a) Planos referencia

(b) Ejemplo articulacin tibia-pie o

Figura 3.6: Sistema de referencia

(a)

(b)

(c)

105

105

120

(d)

(e)

(f )

Figura 3.7: Instantneas de las fases de la marcha [13] a

3. Anlisis de la locomocin b a o peda humana

37

En la web mencionada anteriormente se encuentra informacin sobre la evolucin temporal o o de las variables articulares. Todo el anlisis que se realizar a continuacin ser con un estilo a a o a de caminar a velocidad normal (v = 1, 27m/s = 4, 6km/h), porque se considera que ste es e una buena referencia. En la Figura 3.9 se representan los ngulos articulares mientras se est caminando de fora a ma normal, una vez ya se ha iniciado el movimiento. El sentido est denido de la articulacin a o superior a la inferior, segn los ejes indicados. Se muestra un unico ciclo, de per u odo 1,08 s. El eje de tiempo est adaptado para poder seguirlo en el v a deo [3.2.2 Persona caminando a velocidad normal]. Los movimientos de exin/extensin son los previsibles. En los de abd/aduccin se puede o o o destacar el hecho que mientras un pie est apoyado, la conguracin articular intenta ser tal a o que el centro de masa del cuerpo est sobre la vertical del pie (ver Figura 3.8). e Como leccin se puede extraer que los movimientos no son extremadamente complejos, o como era de esperar. Esto implica que planteamientos como SIMBICON basados en un grafo de posturas pueden representar bien el comportamiento humano.

Figura 3.8: Instantnea en t = 5s a

3.3.

Conclusiones

El anlisis hecho aqu y especialmente la evolucin temporal de los ngulos articulares a , o a para cada fase, se tomar como base para el algoritmo de locomocin de desarrollo propio. a o Posteriormente se har un anlisis de prestaciones para compararlo con el comportamiento a a humano. Es de notar el hecho que en la locomocin humana resulta un punto clave los dedos de los o pies. Ya que en el robot no se dispone de esta articulacin (tal como se ver posteriormente), o a es de esperar que sea necesario usar una marcha de pasos cortos.

38

Locomocin b o peda del robot humanoide Nao

(a) Angulos eje Y de exin/extensin o o

(b) Angulos eje X de abd/aduccin o

Figura 3.9: Angulos articulares de la pierna derecha y fase de paso

Cap tulo 4

NaoEl robot humanoide usado en este proyecto es el Nao Academics Edition v3, diseado n y fabricado por la compa francesa Aldebaran Robotics (www.aldebaran-robotics.com, na ver Figura 4.1). Ha sustituido a Aibo de Sony en la competicin internacional de robtica o o Robocup. Nao es un robot de tecnolog puntera, programable y controlable usando Linux, a Windows y Mac, proporcionando una interfaz de comunicacin muy exible. Permite realizar o movimientos precisos y coordinados. Adems, lleva incorporadas una serie de funciones de a alto nivel para facilitar su uso. Por estas caracter sticas se ha escogido como plataforma para el desarrollo de este trabajo. El v deo [4 Presentacin de Nao] muestra sus grandes o posibilidades. En este cap tulo se har una descripcin general del robot, a modo de presentacin. En a o o el apndice A se ampl esta informacin, y se explican detalles de cmo usarlo. Los datos e a o o tcnicos se han obtenido principalmente de la documentacin suministrada con el robot [3]. e o Las explicaciones, programacin y scripts son fruto de desarrollo e investigacin propios. o o

Figura 4.1: Nao Academics Edition

4.1.

Caracter sticas generales

Nao mide 58cm de altura, pesa 4,3kg y la carcasa est fabricada en plstico. Usa una a a bater de litio de Un = 21, 6V , con una autonom aproximada de 45 min. El consumo en a a

39

40

Locomocin b o peda del robot humanoide Nao

uso normal es de 30W, y en actividad 70W. Permite conexin con cargador de 24V. o Tiene un total de 25 grados de libertad (ver Figura 4.2 y Tabla 4.1): 2 en la cabeza. 5 en cada brazo+1 en cada mano. 1 en la pelvis. 5 en cada pierna.

Figura 4.2: Articulaciones del robot

HeadPith HeadYaw

Cabeza Flexin/Extensin cuello o o Rotacin cuello o

HipYawPith

Pelvis Articulacin plvica a 45o o e

Brazos (R/L Derecha/Izquierda) R/LShoulderPitch Flexin/Extensin hombro o o R/LShoulderRoll Abd/Aduccin hombro o R/LElbowYaw Rotacin codo o R/LElbowRoll Flexin/Extensin codo o o R/LWristYaw Rotacin mueca o n R/LHand Abrir/Cerrar mano

Piernas (R/L Derecha/Izquierda) R/LHipPith Flexin/Extensin cadera o o R/LHipRoll Abd/Aduccin cadera o R/LAnklePith Flexin/Extensin tobillo o o R/LAnkleRoll Abd/Aduccin tobillo o R/LKneePith Flexin/Extensin rodilla o o

Tabla 4.1: Lista de articulacines de Nao

4. Nao

41

Tambin incorpora 2 altavoces de 36mm de dimetro situados en las orejas, 4 micrfonos e a o y 2 cmaras VGA 640x480, 30 fps. Respecto a los sensores, tiene 4 de ultrasonidos situados a en el pecho, 4 sensores de fuerza en cada pie, sensores de tacto en la parte frontal de cada pie, sensores inerciales (acelermetro de 3 ejes y girscopo de 2 ejes), y en cada articulacin o o o sensores de posicin con una resolucin de 0,1o . Para hacerlo ms vistoso, incorpora LEDs o o a de colores en los ojos, orejas, pecho y pies. La conexin puede hacerse v Wi-Fi IEE 802.11g o a (inalmbrica) o Ethernet (con cable). a Los actuadores son motores Coreless MAXON DC. Hay de dos tipos diferentes y con dos tipos de reducciones diferentes segn las necesidades de cada articulacin. El control de u o los motores se realiza mediante microcontroladores PIC que llevan un algoritmo tipo PID, de parmetros congurables. El modo de interactuar es mediante el env de consignas de a o posicin. o Nao lleva su propio PC incrustado. Tiene una CPU x86 AMD GEODE 500MHz, con 256 MB SDRAM y 1 GB de memoria ash. El sistema operativo de Nao es un Embedded Linux (32 bit x86), basado en la distribucin OpenEmbedded. Sobre este sistema operativo corre o un programa llamado NaoQi, que es el encargado de controlar el robot mediante diversos mdulos espec o cos. Para ampliar esta informacin se puede consultar la documentacin del robot. o o

4.2.

NaoQi: programacin de Nao o

Nao se suministra con un entorno de desarrollo llamado NaoQi. Este es un programa que implementa una gran cantidad de funciones de alto nivel y se encarga de comunicarse con los dispositivos de bajo nivel. Tambin maneja las comunicaciones. Entre algunas de las e funciones de alto nivel que implementa se encuentra un algoritmo de locomocin b o peda tipo ZMP. Para ejecutar rdenes sobre Nao es necesario hacerlo a travs de NaoQi. Se puede hacer o e de forma remota (desde el PC) usando lenguajes de programacin como C++, Python o o URBI. Tambin se pueden compilar programas para ejecutarse desde Nao, programados en e C++. Esta seccin se ampl en el Apndice A. o a e

4.3.

Simulador: Webots

Webots es un entorno de desarrollo (ver Figura 4.3) para modelar, programar y simular robots mviles. Existen versiones para Windows y Linux. Con Webots se puede crear un o mundo virtual comn con varios robots que interacten entre ellos y realizar una simulacin u u o f sica precisa gracias al motor matemtico ODE (Open Dynamics Engine). Tambin permite a e grabar en AVI o MPG las simulaciones. Se puede realizar la programacin con diversos o lenguajes: C/C++, Java, Python, URBI, u otros. En el caso de algunos robots, el programa usado en Webots se puede trasladar directamente al robot f sico. Con Nao no es posible, a no ser que se programe a travs de NaoQi. e Webots se distribuye preparado para ejecutar simulaciones con Nao, ya que es la pla-

42

Locomocin b o peda del robot humanoide Nao

Figura 4.3: Webots 6.1.1

taforma estndar para la liga simulada de RoboCup (www.robocup.org). Con Nao viene a un modelo para Webots que se puede controlar desde un NaoQi ejecutado en el ordenador (no con la versin demostracin de Webots). Tambin se puede programar en C o C++ un o o e ejecutable que controle el robot durante la simulacin. o Existe tambin otro simulador de Nao, Microsoft Robotics Studio (ver Figura 4.4). Este e se puede ejecutar unicamente bajo Windows. Igual que Webots tiene un simulador f sico de un mundo virtual. Se programa en Visual Programming Language, un estilo de programacin o mediante bloques.

Figura 4.4: Microsoft Robotics Studio

Se dispone de un modelo de Nao. El problema que tiene ste es que no se puede acceder e a la informacin de los sensores, por lo que se desestima esta v Adems, las simulaciones o a. a

4. Nao

43

que se han probado dan resultados poco realistas en cuanto a movimientos, y especialmente el contacto con el suelo. Webots se muestra ms correcto con la simulacin de Nao. a o

4.4.

Conclusiones

Nao se muestra como un robot con caracter sticas muy avanzadas. Desde la estructura f sica, actuadores y sensores hasta la arquitectura de software se nota un diseo muy cuidado. n Las funcionalidades que incorpora de control articular, su morfolog humanoide b a peda y los mltiples sensores que tiene hacen que sea una plataforma idnea para el desarrollo de este u o proyecto, y el estudio de la locomocin b o peda en robots humanoides.

Cap tulo 5

Dise o del algoritmo de locomocin n o para el robot NaoDespus de llegar a una clara compresin de las claves de la locomocin b e o o peda vistas a travs de ejemplos de robots humanoides y el propio cuerpo humano, y de ver el potencial de e Nao como plataforma de investigacin, ha llegado el momento de desarrollar la parte clave o de este proyecto: el diseo de un algoritmo propio para locomocin de Nao. Esta seccin se n o o centrar en el diseo conceptual, sin entrar en detalles de programacin que oscurecer el a n o an desarrollo lgico. La programacin se mostrar en el Apndice B.1. Finalmente se har un o o a e a anlisis de prestaciones. a Conjuntamente con la investigacin que se expondr en este apartado se ha desarrollado o a una interfaz grca para poder usar todas las funciones que se mencionan, y tambin otras a e propias de Nao. Aqu mostrarn algunas capturas de pantallas, y la descripcin detallada se a o puede encontrar en el Apndice B.2. e Las pruebas se harn sobre el robot directamente, con las precauciones debidas. Las suelas a del robot son de plstico, y sobre un suelo cermico resbalan. Por este motivo se harn las a a a pruebas sobre una supercie de plstico que de adherencia al robot. a Sin embargo, tal como se mencion en la seccin anterior, Nao ya tiene implementadas o o funciones para caminar, un algoritmo de locomocin tipo ZMP. Ya que el modelo est proo a gramado por el fabricante, se presupone la correccin de este. El desarrollo se centrar en o a el estudio de la funcionalidad del algoritmo ZMP implementado y cmo mejorarlo. No se o har un anlisis matemtico de la mecnica del robot como sistema multislido ni la formulaa a a a o cin del algoritmo ZMP, ya que ste ya lo ha realizado la empresa fabricante de Nao y viene o e dado, y adems est fuera de los objetivos de este proyecto. Se analizar el algoritmo y sus a a a prestaciones, y se le harn las modicaciones necesarias para que funcione correctamente. a Adems, se investigar en el desarrollo de un nuevo algoritmo, por varios motivos. En a a primer lugar, aunque el algoritmo ZMP es muy potente, tiene unos costes energticos muy e elevados. Los robots basados en los passive walkers tienen un consumo mucho menor, ya que aprovechan las dinmicas propias del sistema. Sin embargo, estos robots se han diseado a n espec camente con este n. En la investigacin bibliogrca hecha hasta la fecha, no se ha o a encontrado ningn robot estndar (es decir, no especialmente diseado con este objetivo, u a n que no tenga los pies con formas especiales, y con los actuadores situados en las posiciones habituales) que use los principios de los caminadores pasivos. Ser muy interesante vericar a la validez de esta concepcin en concreto con Nao. o

45

46

Locomocin b o peda del robot humanoide Nao

5.1.

ALWalk : Algoritmo de locomocin implementado en Nao o

NaoQi, el software de Nao, est organizado en mdulos, o bloques funcionales (informacin a o o ampliada en el Apndice A.3.1). Uno de ellos es ALMotion, que incorpora las funciones para e mover el robot. La forma de moverlo es mediante consignas de posicin para las articulaciones. o AlMotion permite, entre otras cosas, resolver el modelo cinemtico, mover puntos detera minados en el espacio cartesiano o controlar la rigidez de las articulaciones. Adems, tambin a e tiene funciones de alto nivel, como por ejemplo mantener el equilibrio o caminar. El submduo lo que tiene estas funciones se llama ALWalk, y se describe a continuacin. o

5.1.1.

Descripcin de las funciones de locomocin b o o peda

Una vez se hace la conexin al mdulo ALWalk, se tiene acceso a las siguientes funciones o o (se muestran en lenguaje C++):1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

// p D i s t a n c e : d i s t a n c i a a c a m i n a r en m e t r o s // pNumSamplesPerStep : n mero de c i c l o s de 20ms p o r p a s o u // Caminar en l n e a r e c t a void walkStraight ( float pDistance , int pN um Sa mp le sP er St ep ) // Caminar de l a d o

void walkSideways ( float pDistance , int pN um Sa mp le sP er St ep )// G i r a r m a n t e n i e d o p o s i c i o n

void turn ( float pAngle , int pN um Sa mp le sP er St ep )// Caminar d e s c r i b i e n d o una c u r v a // p A n g l e : n g u l o en r a d i a n e s de l a c i r c u m f e r e n c i a a // p R a d i u s : r a d i o d e l c r c u l o void walkArc ( float pAngle , float pRadius , int pNumSa mp le sP er St ep )

La idea del algoritmo implementado es transformar una posicin del ZMP objetivo en un o objetivo de posicin del centro de masa CdM, haciendo un seguimiento de este. La posicin o o ZMP se crea on-line a travs de patrones de posicin de los pies para cada tipo de paso. Los e o diferentes patrones son los que se muestran en la Figura 5.1. La trayectoria de los pies se realiza con forma de cicloide (ver Figura 5.2). El cmputo de la trayectoria de CdM se realiza o con un modelo simplicado de un pndulo invertido. Como es un modelo simplicado, puede e dar lugar a inestabilidades. Adems, se pueden congurar parmetros caracter a a sticos de la locomocin. Estos son: o pMaxStepLength Longitud mxima de un paso en metros (de 0, 0 a 0, 09m, por defecto a 0, 055m). pMaxStepHeight Altura mxima de un paso en metros (de 0, 0 a 0, 08m, por defecto a 0, 015m). Representa la altura de la cicloide.

5. Diseo del algoritmo de locomocin para el robot Nao n o

47

(a) L nea recta

(b) De lado

(c) Girar manteniendo posicin o

(d) Caminar en curva

Figura 5.1: Patrones de locomocin o

pMaxStepSide Longitud mxima de un paso lateral en metros (de 0, 0 a 0, 06m). a pMaxStepTurn Mximo cambio de orientacin segn eje vertical en radianes (de 0, 0 a a o u 1, 0rad). pZmpOsetX Oset de la posicin objetivo del ZMP hacia adelante (de 0, 0 a 0, 1m, por o defecto 0, 015m). Este parmetro y el siguiente sirven para controlar como las posicioa nes de cada paso se convierten en una ruta objetivo del ZMP. pZmpOsetX es una distancia positiva desde el taln de un paso, que hace que el CdM permanezca durante o ms tiempo sobre el pie.(ver Figura 5.3). a pZmpOsetY Oset de la posicin objetivo del ZMP hacia un lado (de 0, 05 a 0, 05m, o por defecto 0, 015m). Se puede usar para reducir el ancho del movimiento lateral del CdM. Asimismo, tambin se denen cuatro parmetros extra para facilitar la creacin de patroe a o nes de locomocin estables: pLHipRollBacklashCompensator (0o a 15o , por defecto 4,5o ), o pRHipRollBacklashCompensator (-15o a 15o , por defecto 4,5o ), pHipHeight (0,15 a 0, 244m) y pTorsoYOrientation (-20o a 20o , por defecto 5o ). pLHipRollBacklashCompensator y pRHipRollBacklashCompensator son dos parmetros para compensar la a deformacin plstica que se produce en la cadera durante la caminata. Se env una seal o a a n trapezoidal a la articulacin HipRoll durante la fase de soporte sobre un unico pie para manteo ner el torso recto lateralmente. pHipHeight dene la altura de las caderas del robot durante

48

Locomocin b o peda del robot humanoide Nao

Figura 5.2: Cicloide usada para trayectorias de los pies

Figura 5.3: Conguracin de parmetros de Oset del ZMP o a

la marcha. Cunto ms alto, ms inestable ser la locomocin, y ms cerca se estar de la a a a a o a a singularidad, lo que puede llevar a provocar movimientos bruscos. pTorsoYOrientation dene la orientacin del torso frontalmente. o En la documentacin de Nao [3] se dan explicaciones detalladas de cmo congurar estos o o parmetros para estabilizar la locomocin, as como una conguracin por defecto. a o o

5.1.2.

Pruebas de funcionamiento

Una vez congurado, hacer que Nao camine deber ser tan fcil como ejecutar la siguiente a a o rden de Python: motion.walk(1, 60) #Camina 1m, con un paso de duracin 60x20ms=1,2s o

Los resultados se muestran en el v deo [5.1.2 ALWalk velocidad baja]. Tambin se hicieron e pruebas para una velocidad de paso mayor, se muestra en el v deo [5.1.2 ALWalk velocidad alta]. Como se puede ver, el robot cae estrepitosamente por los siguientes motivos, algunos de ellos inherentes al algoritmo ZMP:

5. Diseo del algoritmo de locomocin para el robot Nao n o

49

El sistema est en lazo abierto, por tanto es inviable compensar ningn tipo de pertura u bacin. El robot unicamente reproduce una secuencia de movimientos, no tiene inforo macin del entorno. o El algoritmo ZMP se basa en un seguimiento con una alta ganancia de una trayectoria precalculada. Esto impide que el sistema absorba ningn tipo de perturbacin. En este u o 1 para todas las articulaciones (se llamar full-stiness). caso se tiene 100 % de stiness a Seguramente existan diferencias entre el modelo f sico usado y el robot real, por lo que las trayectorias calculadas no necesariamente sean tan robustas como se esperar a. Las articulaciones no son perfectas. Existen huelgos mecnicos y otros fenmenos no a o modelados que provocan inestabilidades. El sistema est en lazo abierto y por ahora Nao no dispone de medios para estabilizarlo. a Los errores de modelado son dif ciles de compensar dada la complejidad y alta dimensin del o sistema. Sin embargo s que se puede hacer que se absorban un cierto grado las perturbaciones, el siguiente apartado explicar la solucin que se ha obtenido. a o

5.1.3.

Modicacin del algoritmo ZMP o

El problema principal reside en que el seguimiento de las trayectorias se realiza con ganancias muy altas, no se absorben las perturbaciones y por tanto se desequilibra. De hecho, cada articulacin est congurada para suministrar el par mximo (100 %) en caso de ser o a a necesario. Este comportamiento no se corresponde al humano, en que las articulaciones se puede considerar que no hacen un seguimiento con altas ganancias. Hay mltiples investigau ciones al respecto, pero [9] es de especial inters al centrarse espec e camente en la aplicacin o a Nao. Una solucin a esta problemtica es limitar el par mximo aplicado a cada articulacin. o a a o Esto se puede realizar directamente en Nao gracias al parmetro stiness (rigidez) de cada a articulacin. La stiness representa qu fraccin en tanto por uno del par mximo se aplicar. o e o a a Es una saturacin de la salida del controlador del motor que permite un seguimiento de la o trayectoria ms suave, y a la vez absorber las perturbaciones y estabilizar el sistema. a Despus de mltiples ensayos experimentales iterativos, se lleg a una conguracin de e u o o stiness que permit estabilizar la locomocin, que se muestra en la Tabla 5.1. Respecto a a o los parmetros de conguracin extra se establecieron los que se muestran en la Tabla 5.2. En a o la Figura 5.4 se muesta una captura de la interfaz que se ha creado para controlar ALWalk con los parmetros citados. a El procedimiento de ajuste ha sido el siguiente: Para disminuir la inestabilidad se ha reducido la altura de las caderas al m nimo. Las inestabilidades se deben a que los pies no se apoyan bien sobre el suelo, y lo desequilibran. Para solucionar este problema se baj mucho la stiness para que se o pudieran absorber las perturbaciones, y as evitar un comportamiento r gido.Rigidez. Se usarn indistintamente los dos trminos, ya que en la bibliograf el trmino ingls stiness a e a e e est ampliamente usado. a1

50

Locomocin b o peda del robot humanoide Nao

Articulacin o Brazos HipYawPitch R/LHipPitch R/LHipRoll R/LKneePitch R/LAnkleRoll R/LAnklePitch

Stiness 0,1 0,6 0,7 0,3 0,3 0,3 0,2

Tabla 5.1: Conguracin de Stiness para cada articulacin o o

Parmetro a pMaxStepLenght pMaxStepSide pTorsoYOrientation pZmpOsetX pRHipRollBacklashCompensator

Valor 0,04 0,02 0,0 0,0 0,0

Parmetro a pMaxStepHeight pMaxStepTurn pHipHeight pZmpOsetY pLHipRollBacklashCompensator

Valor 0,025 0,3 0,0 0,0 0,0

Tabla 5.2: Conguracin de parmetros extra o a

Figura 5.4: Pantalla de la GUI para la conguracin de ALWalk o

Tambin se baj la stiness de las rodillas y del movimiento lateral de las caderas para e o hacer un movimiento ms suave, como si fueran muelles. a La stiness del movimiento frontal de caderas no se puede bajar, ya que es la encargada de mantener erguido el cuerpo. Como se ha reducido mucho la fuerza en los pies y rodillas, el robot tiende a caerse. Para estabilizar el movimiento hay que asegurar que el robot est siempre encima de e los pies, para asegurar la estabilidad. Esto se consigue haciendo pasos cortos. Para que los pies no toquen el suelo siempre hay que imponer una cierta altura en el paso.

5. Diseo del algoritmo de locomocin para el robot Nao n o

51

La inclinacin del torso tiene que ser aquella que haga que el robot no bascule hacia o adelante ni hacia atrs, sino que se mantenga en la posicin vertical. a o Se observa que los movimientos lentos son perjudiciales, dan tiempo a que el sistema se inestabilice. Si se hace el movimiento ms rpido no slo se consigue aumentar la a a o velocidad de translacin, sino la estabilidad. Esta idea se usa por ejemplo en el robot o BigDog. Estos parmetros dieron como resultado una locomocin estable y robusta, tal como se a o puede ver en el v deo [5.1.3 ALWalk low-stifness, velocidad alta]. Adems se produjo una a mejora sustancial en las prestaciones de la locomocin, que se analizarn en el siguiente o a cap tulo. La aproximacin mencionada en este apartado es una modicacin del algoritmo que ya o o viene incorporado con Nao, no es en s mismo un algoritmo nuevo. La formulacin ZMP es o ampliamente conocida e investigada, con los problemas mencionados anteriormente. As se , decide iniciar otra v de investigacin basada en el aprovechamiento de las dinmicas propias a o a del sistema, para poder comparar los resultados con los ya encontrados.

5.2.

Sammys Walk : Dise o de un algoritmo de locomocin n o b peda

La naturalidad del estilo de caminar de los passive walkers resulta sorprendente. Adems, a el hecho de que los robots tengan un consumo tan bajo los convierte en un modelo a seguir. El algoritmo que se propone a continuacin tiene el objetivo de producir una locomocin estable o o para Nao a partir del control del robot, suponiendo el comportamiento de este como dos pndulos unidos. Se buscar un estilo de control ms prximo al control clsico de dimensiones e a a o a reducidas, ya que de hecho la locomocin es un ciclo l o mite estable que se da en un sistema no lineal. Este proyecto se propone como objetivos para conseguir una locomocin tipo dynamic o walking: Inducir el ciclo l mite que provoque la locomocin. o Hacer que las rbitas del ciclo l o mite tengan un espacio de atraccin mayor, es decir, o estabilizar la locomocin. o Aprovechar las dinmicas propias del sistema para reducir la energ consumida (este a a punto se tendr ms en cuenta en un anlisis de prestaciones posterior que en el propio a a a desarrollo). Aplicar leyes de control que se correspondan a reacciones lgicas que realizamos los o humanos, no necesariamente buscar algoritmos basados en formulaciones matemticas a complejas. Aunque hay muchos trabajos tericos que tienen este