Una de las técnicas más sencillas para generar el comportamiento de un robot es la de los sistemas reactivos, que consiste en dividir nuestro "mundo", en situaciones mútuamente excluyentes, usando uno o más sensores y, para cada situación, disparar una o más acciones. Un robot reactivo consiste en una función, a la que se llama cada cierto tiempo, y en la que, dependiendo de valores de los sensores, se adopta un valor en los actuadores.
Para simplificar la lógica de los sistemas reactivos y sus "tablas" se adopta en un diseño "modular", en el que la lógica de nuestro robot es la de un autómata de estado finito. Para cada estado tendremos:
- un sistema reactivo simple diferente.
- lógica para cambiar de estado
Nuestro Choca-gira tiene un diseño relativamente simple:
- un estado "avanzando"
- en él la velocidad es hacia adelante
- cuando los láseres indican que estamos cerca de un obstáculo se pasa al estado "retrocediendo"
- un estado "retrocediendo"
- en él la velocidad es hacia atrás
- después de un tiempo, suficiente para separarnos algo del obstáculo, se pasa al estado "girando"
- un estado "girando"
- en él se gira aleatoriamente durante un tiempo
- después de completado ese tiempo se pasa al estado "avanzando"
No hay comentarios:
Publicar un comentario