Los microcontroladores contienen internamente y en forma
virtual, bloques de código llamados "máquinas de estado
finito aumentadas"o por brevedad MEFA. Cada una de ellas
almacena información numérica destinada a controlar diversos
aspectos de la conducta del robot ; como los movimientos de las
patas, accionadas por 2 motores, uno para el movimiento de alzada
vertical y otro para el desplazamiento horizontal. La posición
relativa de los motores a efectos de su control es sensada con
precisos potenciómetros que son leídos sincrónicamente por los
microcontroladores adaptando la posición real con la buscada por
la lógica del conjunto. La información -el estado- de una MEFA
puede cambiar de un instante a otro en función de las señales
que procedente de otros módulos , ingresen en ella . El estado
de la mefa determinará tambien sus reacciones ante tales
señales.
El sistema encargado de la locomoción y de la interacción del
robot con el medio ambiente, ha sido almacenado en
microcontroladores ubicados en la estructura del robot que son
programados con un software especial cuya función es actuar como
intermediario entre la PC, en donde se raliza el programa, y el
microcontrolador que al compilar el programa, lo traduce, a
lenguaje de máquina, Assembler. El controlador cuenta con un
conjunto de comandos reducidos, pero potentes en el manejo de
puertos de entrada y de salida, algunas de las instrucciones y
comandos que posee nos permiten : lectura de las entradas de
resistores y potenciómetros. verificar el estado de un pin,
cálculo de funciones trigonométricas y funciones lógicas de
alta complejidad, soportar comunicaciones seriales, transmisiones
a altas velocidades, deefinición de variables, subrutinas y
registros en la EEPROM.(memoria regrabable por tensión).
En un primer intento de estrategias de programación se utilizaba
al módulo cordinador general como organizador de los movimientos
y traductor de las señales que recibía del módulo de Merodeo.
Lo que hacía, desde que se le daba energía, era esperar una
señal del módulo de Merodeo (adelante, izquierda, etc.) y
juzgar la dirección que debía tomar basándose en la respuesta
y el estado de los sensores. Luego de establecerla, la buscaba en
una tabla de donde obtenía la secuencia de instrucciones para
enviarle a cada pata; de a tres y esperar a que se cumplan
(señal de listo), continuando entonces el ciclo hasta terminar
la secuencia y volver a pedir una señal desde el módulo de
merodeo. Mientras tanto siempre contemplaba el estado de los
sensores por si se encuentraba frente a un objeto.
En la etrategia de programación distribuida actual se establecen
una serie de comportamientos directos tales como
"deambular" , "esquivar cosas", y
"retroceder" y, de modo tal que el robot, no tiene un
cerebro central que decida cuál de estos comportamientos adoptar
en un momento dado; todos ellos actúan como elementos
independientes que compiten por el control del robot. Lo que
determina al ganador es lo que éste ve y siente en el mundo que
lo rodea. Si uno de los sonares infrarrojos detecta un objeto que
se mueve en su campo de visión, el sensor gatilla el
comportamiento "esquivar cosas", y en este punto todas
las otras modalidades temporalmente se "subsuman". En
este diseño lógico el acto reflejo lo es todo.
El robot bajo el control de la arquitectura de subsunción, es
capaz de mucho más que la suma de sus comportamientos
individuales. Los robots tradicionales están limitados a
conductas preprogramadas, que pueden resultar inadecuadas frente
a una situación no anticipada por el diseñador . Nuestro robot
por su parte puede improvisar y, en cierto sentido, inventar: las
reglas que hacen detonar un proceder en particular son directas;
pero el modo siempre cambiante con que el torrente de informacion
sensorial proveniente del mundo real las invoca, produce
comportamientos "emergentes"; ésto es , las rutinas
más simples terminan operando juntas de modos impredecibles y
sorprendentemente complejos. .
El truco entero de la deambulación gira en torno al hecho
siguiente: si cinco de las patas se encuentran tocando el suelo y
se provoca la elevación de la sexta, el insectoide podrá
desplazarse un poquito hacia adelante, con solo llevar un poco
hacia atrás todas las patas apoyadas. Después si el robot hace
que la pata alzada trace un arco hacia adelante y regrese hacia
el suelo habra dado un paso.