Error en el Jupyter SiguePelotaPicam

Al entrar en el simulador web Gazebo e intentar llamar a la función robot.damePosicionDeObjetoDeColor() me error diciendo que no existe dicha función para el objeto robot.

AttributeErrorTraceback (most recent call last)
<ipython-input-17-436a4057d65c> in <module>()
      7 while True:
      8     robot.avanzar(0.6)
----> 9     val = robot.damePosicionDeObjetoDeColor(lowervals, highval)
     10     print(val)
     11 

AttributeError: PiBot instance has no attribute 'damePosicionDeObjetoDeColor'

Si alguien me pudiese aclarar si esa es la llamada a la función correcta lo agradecería mucho.

Un saludo!

Hola, decirte que el nombre de la función se modificó y se llama “dameObjeto”. Si no está cambiado en el cuadernillo fue un error nuestro que solventaremos. Muchas gracias por tu realimentación

También decirte que esta función devuelve dos cosas: el centro del objeto y su área, por lo que la sentencia val = robot.damePosicionDeObjetoDeColor(lowervals, highval) no creo que te funcione. Debería ser algo como (centro, area) = robot.dameObjeto(lowervals, highval)

Un saludo

Seguimos el proceso de madurar el interfaz de programación y unificarlo entre las distintas plataformas (PiBot físico real, PiBot en Gazebo, PiBot en WebSim…).

Para esta función pondría primero un dameObjeto(color) y que color sea un string con varios colores predefinidos (naranja, rojo, azul…). Los valores concretos del filtro asociados a cada etiqueta pueden estar por defecto o modificables en fichero de configuración. Esta función es la más simple que se me ocurre, ni el estudiante no tiene que saber ni lo que son los espacios de color.

También crearía otra función un poco más elaborada dameObjetoRGB(lowervals, highvals), que es más flexible porque permite definir sobre la marcha el filtro de color concreto que se quiere utilizar. Habría que pensar si queremos incluso que se manejen otros espacios más robustos HSV…

Es normal que estemos un tiempo con los APIs inestables, natural mientras los vamos madurando.