|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||||||
|
MICROBOT BICHO-2
|
||||||||||
|
Segunda parte: Software Aquí muestro el programa que guía al robot. Aún no he tenido tiempo de comentarlo suficientemente, pero dado que mucha gente parece interesada en él, lo expongo con una pequeña introducción. Su funcionamiento se basa en la llamada "arquitectura orientada a comportamientos" (behauvior-based architecture o subsumption architecture), propuesta originalmente por Rodney Brooks, profesor del MIT. Veamos cómo funciona en este caso particular. A grandes rasgos, se trata de una serie de rutinas, cada una de ellas implementando un comportamiento elemental. En nuestro robot habrá tres: explorar, evitar obstáculos y escapar en caso de colisión. Cada una de estas rutinas tiene un punto de entrada y otro de salida, no existen en ellas bucles infinitos. Cada rutina lee información de los sensores, la procesa según su función, y produce una orden de salida hacia los motores. Sin embargo, las rutinas no leen directamente los sensores ni envían señales directamente a los motores. Existe otra rutina que se encarga de leer toda la información proveniente de los sensores y situarla en unos registros para que quede disponible para las demás, y otra más que se encarga de decidir cuál de los comportamientos tiene preferencia en cada momento, siguiendo el siguiente orden de prioridad, de mayor a menor: escapar, evitar obstáculos y explorar. Éstas dos rutinas hacen el papel de interface con el hardware, de la misma manera que lo hace, por ejemplo, la BIOS de un PC. Todas estas rutinas son ejecutadas continuamente unas detrás de otras varias veces por segundo, de forma que parezca que están actuando todas a la vez en tiempo real. Así, del conjunto de comportamientos simples emerjerá un comportamiento complejo. Ésta es la idea de este tipo de arquitectura. Para coordinar todo esto tenemos una especie de micro-sistema operativo multitarea llamado Posit, creado por Pavel Baranov y distribuido libremente por la Red. Este subprograma se encarga de definir e inicializar variables y puertos, así como ejecutar el bucle infinito que va llamando por orden a cada una de las tareas simples. Sistema operativo completo, según lo distribuye su autor: posit.zip Archivos particulares para Bicho-2: bicho2.zip
|
||||||||||
|
JMB
6-3-02 |