8. El robot profesor#

8.1. El problema#

El día a día en el aula, de un profesor, es muy díficil. Entra en su clase y no puede salir hasta que toque el timbre. Se siente como dentro de un espacio rodeado de una línea negra.

A medida que avanza la clase se va encuentrando con alumnos, cada uno con su situación particular. Algunos alumnos están de mal humor, rojos de ira, otros están muy felices y contentos, pero su atención está en otra parte, y lo simulamos con un cuadrado azul. Cada vez que nos encontremos con uno enfadado vamos a decir «Hola, ¿como estás?», si está distraido simplemente le diremos «Presta atención». Y seguimos con nuestra clase tranquilamente.

Hay muchos más alumnos con los que podemos interactuar tranquilamente, y alguno que es un obstáculo. En este caso está totalmente bloqueado y es mejor detectarlo antes de interactuar con él y dejarlo tranquilo. Este mundo simulado lo podemos ver con esta escena predeterminada en ORL:

../../_images/esc-2.webp

¿Puedes realizar un programa con un robot que refleje el movimiento del profesor mientras va dando su clase?

Solución

El algoritmo no es tan complicado y es similar a retos anteriores añadiendo una condición de parada:

  1. Avanzo de forma continua

    1. Si encuentro un alumno enfadado

      1. Digo que «Hola, ¿como estás?»

      2. Me detengo 1 segundo y sigo avanzando

    2. Si encuentro un alumno contento, pero distraido

      1. Digo que «Hola!, presta atención»

      2. Me detengo 1 segundo y sigo avanzando

    3. Si encuentro el limite de la clase (el borde negro) OR Si encuentro un obstáculo

      1. Giro y sigo avanzando

    He usado variables porque así se entiende mejor el programa y puedo ir ajustando los valores. De hecho, en mis simulaciones, según los valores que pongas ahí (por ejemplo una velocidad alta) el robot se sale de la línea negra y tarda en volver a entrar.

    Además he usado una operación OR para agrupar las condiciones de giro, que es cuando el color detectado es el negro (el límite) o el alumno bloqueado (el cuadrado azul).

../../_images/reto-8.webp

Y además, para este último ejemplo, lo he descargado como un archivo y lo puedes descargar ( /retos/reto-8.xml) y luego importar en ORL.