Robobo expresivo
Introducción
Una característica fundamental de los futuros robots autónomos será su capacidad de comunicarse con nosotros de forma natural, mediante gestos, expresiones, habla… En este tutorial aprenderás a trabajar este aspecto con Robobo, a través de las expresiones, sonidos y la producción del habla del robot. ¡El reto es crear un Robobo Expresivo!
Desafío
Crea un programa que haga que Robobo avance hasta que detecte un obstáculo cercano (como en el tutorial n.º 1), y cuando esto sucede, se asusta. Por lo tanto, una vez detectado el obstáculo, debes hacer que Robobo parezca asustado. Para ello, puedes hacer que retroceda, incline la cabeza, muestre una cara de sorpresa, emita un pequeño grito y diga alguna frase.
Solución
Una posible solución a este desafío es la siguiente, aunque existen muchas otras. ¿Cuál es la tuya?
Ver fuente
from robobopy.Robobo import Robobo
from robobopy.utils.LED import LED
from robobopy.utils.Color import Color
from robobopy.utils.IR import IR
from robobopy.utils.Emotions import Emotions
from robobopy.utils.Sounds import Sounds
# Modifica la siguiente línea
robobo = Robobo(‘192.168.0.17’)
robobo.connect()
closeIRValue = 30
speed = 30
robobo.setLedColorTo(LED.All, Color.OFF)
robobo.moveWheels(speed, speed)
while (robobo.readIRSensor(IR.FrontC) < closeIRValue)and(robobo.readIRSensor(IR.FrontRR) < closeIRValue)and(robobo.readIRSensor(IR.FrontLL) < closeIRValue):
robobo.wait(0.01)
robobo.stopMotors()
robobo.setLedColorTo(LED.All, Color.RED)
robobo.setEmotionTo(Emotions.SURPRISED)
robobo.playSound(Sounds.DISCOMFORT)
robobo.moveTiltTo(50, 15)
speed *= -1
robobo.moveWheelsByTime(speed, speed, 2)
robobo.sayText(«Ups, I almost crash!»)
robobo.setEmotionTo(Emotions.NORMAL)
robobo.moveTiltTo(75, 15)
robobo.disconnect()
Desafío adicional
Cuando hayas completado el desafío «Robobo expresivo», te proponemos uno nuevo con un poco de ritmo. ¿Te gusta? Intenta que Robobo mueva la cabeza hacia adelante y hacia atrás mientras avanza en línea recta, como si rapeara. Al mismo tiempo, debería mostrar una expresión facial. Al encontrarse con un obstáculo, Robobo se detendrá, girará 90° usando los motores de las ruedas, se pondrá contento y dirá: «Esto es divertido, repetimos…», y finalmente emitirá un sonido de alegría.