Alternativas Hardware para la Locomoción de un Robot Ápodo

Juan González, Ivan González y Eduardo Boemo

Escuela Politécnica Superior

Universidad Autónoma de Madrid

Introducción

Locomoción: Capacidad de un robot para desplazarse de un lugar a otro

Tradicionalmente: Construcción de robots según el terreno

1994, Polypod: Nuevo enfoque al problema de la locomoción

Robots Modulares y reconfigurables, capaces de cambiar su forma y su manera de desplazarse, según el terreno

1998, Polybot: Nuevos prototipos más evolucionados

Nacimiento Robótica Modular Reconfigurable

Caracteristica buscada: versatilidad

Objetivos

Viabilidad uso FPGAs para la locomoción robot Ápodo Cube Reloaded

Locomoción estáticamente estable

Desplazamiento en línea recta

Explorar la viabilidad de utilizar FPGAs, en vez de microprocesasores dedicados, para aumentar la versatilidad de los Robots Modulares Reconfigurables

Dos alternativas

Basada en lógica combinacional y secuencial

CPU empotrada

Cube Reloaded

Versión mejorada de Cube 2.0

Mecánica

4 Módulos Y1 en fase

Servos Futaba 3003

Electrónica

Microcontrolador 6811

Software

Generación de secuencias de movimiento

Módulo Y1

Tarjeta JPS

Plataforma empleada para la evaluación de las alternativas

Características

Entrenadora para FPGA

Familia 4000 y Spartan I

EEPROM serie

Sistemas autónomos

Hardware abierto

Todos los esquemas y ficheros para su fabricación están disponibles

Control

Avance del gusano: Tablas de control

Describen un ciclo movimiento

Simple, muy fácil de implementar en micros de 8 bits

Escalable

Posición servos

t

1

2

3

4

0

1

2

...

98

51

6B

9B

9D

56

62

9D

9B

61

59

9D

...

...

...

...

Posicionamiento servos, por PWM

50Hz

20ms

Posición

Anchura pulso: 0,3 - 2,3ms

Unidad de PWM

Comparador

Comparador

Comparador

Comparador

PWM1

PWM2

PWM3

PWM4

Contador

11 bits

11

8

8

8

8

32

Prescaler

:10

CLK

POS

Servo

Servo

Servo

Servo

Alternativa I

Unidad PWM

ROM

30x32

Contador

Módulo 30

5

32

CLK

Reloj

1MHZ

Prescaler

PWM1

PWM2

PWM3

PWM4

Tabla de control en una ROM

Un contador para direccionar la ROM

Por cada pulso en CLK se actualiza la posición de los 4 servos

CLK determina la velocidad de la secuencia

Resultados (I)

Tarjeta JPS, con una Spartan I (XCS10)

Frecuencia: No crítica (PWM a 50Hz)

CLBs disponibles: 196

Ocupación: 78 CLBs (40%)

Aproximadamente, se podrían controlar robots hasta de

10 módulos, con una XCS10

Alternativa simple

Pocos recursos consumidos

Poco flexible

Alternativa II

CPU empotrada

"PandaBear", usada en el laboratorio de Arquitectura e Ingeniería de Computarores

RISC, 16 bits

Arquitectura Harvard

8 Instrucciones básicas

Unidad PWM en el mapa de memoria

Software: Recorre la tabla de control y envía las posiciones a la unidad PWM

CPU

RAM

ROM

PWM

Servo

Servo

Servo

Servo

Resultado (II)

Tarjeta JPS, con una Spartan I (XCS10)

Frec. Max: 12MHZ

CLBs disponibles: 196

Ocupación: 108% (212 CLBs)

No cabe en una XCS10. No se ha podido probar con la JPS

(aunque si cabría en una XC4010E, también soportada en la JPS)

Alternativa más compleja

Más recursos

Mayor versatilidad. Potencia del Software

Tarjeta Digilab2E, con una Spartan II (XCS200E)

Ocupación: 12% (285 Slices)

Conclusiones

Viabilidad

Movimiento exactamente igual

Alternativa I:

Pocos recursos

Mayor cantidad de servos

Util para hacer pruebas con diferentes secuencias de movimiento

Alternativa II:

Mayor flexibilidad

Codiseño: Partes resueltas por hardware y partes por software

Herramientas necesarias para trabajar en el campo de la Robótica Modular Reconfigurable con FPGAs

Demo

Alternativa I en acción:

Alternativas Hardware para la Locomoción de un Robot Ápodo

Juan González, Ivan González y Eduardo Boemo

Escuela Politécnica Superior

Universidad Autónoma de Madrid

2003-04-25T18:22:37