Me encontré con ésta enigmática frase en un tweet de guibot:
All robots should have a heartbeat
Cómo guibot es un experimentador portugués que trabaja en proyectos más bien artísticos, pensé que se trataba de algo más poético. Pero no, el tweet lleva a concurrency.cc que hablan de una idea práctica:
[…] tenemos el proceso hearbeat(). Éste proceso hace que el LED del arduino luzca intermitentemente, haciéndonos saber que no se ha estropeado nada (todos los robots deberían tener pulso [heartbeat]).
No sé si el hearbeat es un concepto formal, pero es muy útil: saber de un vistazo que un robot (u otro dispositivo) sigue funcionando. Cómo un robot es también un ordenador, no está libre de colgarse, bloquearse o quedarse en un bucle infinito. Por medio del heartbeat el robot nos informa de que sigue funcionando, sobretodo en algunos momentos en que parece bloqueado aunque no lo está.
Muchos aparatos tienen indicaciones visuales de este tipo: los leds de encendido y disco duro de un ordenador o en los teléfonos móviles. Por otra parte, aunque no sé que tal funcionarán, creo que podrían usarse indicaciones no visuales, de tipo sonoro, cómo sonidos periódicos o zumbidos, o mecánico, cómo el movimiento de alguna parte del robot.
En mi caso siempre he metido un heartbeat (aunque no sabía que lo estaba haciendo). En la lámpara termómetro de phybo para saber que la lámpara sigue en marcha, la luz está pulsando y no es constante. Con arduino, siempre intento que el led de la tarjeta pulse un par de veces al arrancar (en el método setup) y luego periódicamente al inicio del bucle loop meto una función de parpadeo. Así estoy seguro de que por lo menos el procesador no está bloqueado.
2 respuestas a “todos los robots deberían tener pulso”
La verdad es que parece un poco de cajón, pero es cierto. A fin de cuentas son máquinas.
Las indicaciones no visuales que comentas vendrán bien en aquellos en los que se desea apariencia humana realista.
Los humanos somo malos para quedarnos quietos como estatuas, siempre oscilamos, cambiamos el peso del cuerpo entre los pies y tenemos ligeros temblores y tics. Incorporar eso a un androide serviría como «pulso» y reduciría algo el «valle inquietente».
Me recuerda mucho al watchdog de los microcontroladores, es mas, en algun sitio lo he visto implementado para que tenga una salida a un LED como indicador.
Arduino, nunca lo use, pero a nivel de microcontroladores es habitual su uso.
Un saludo, es la primera vez que miro tu blog y me esta gustando mucho, me agrego el feed
Un saludo