Post

Progreso JdeRobot - Semana 7 (19/10 - 23/10)

Progreso JdeRobot - Semana 7 (19/10 - 23/10)

Esta semana he resuelto los problemas con las dependencias de la aplicación en Docker, he estudiado el funcionamiento interno del ejercicio y he empezado a integrar mi trabajo con el de mi compañero Álvaro en el ejercicio HRI-sound.

1. Ajustes en el método listen()

He terminado de ajustar el método listen para que devuelva el texto transcrito y sea la propia aplicación la que lo imprima por terminal, haciéndolo más reutilizable.

2. Dependencias en Docker

Para no tener que instalar las dependencias a mano en el contenedor, intenté añadirlas directamente a la imagen mediante Dockerfile.dependencies_humble. Al principio, la instalación falló por conflictos con paquetes que ya estaban instalados en la imagen. Me sugirieron usar la opción --ignore-installed, y con eso conseguí instalarlas. En un principio no apareció ningún error, pero más adelante empezaron a fallar bastantes cosas por problemas de dependencias. Así que eliminé las imágenes que tenía y descargué las últimas versiones:

1
2
docker pull jderobot/robotics-academy:latest
docker pull jderobot/robotics-database:latest

Con las imágenes nuevas, RoboticsAcademy funcionaba correctamente. Esta vez instalé las dependencias directamente en el contenedor, pero al instalar Whisper y el resto, incluidas las de Álvaro, el error volvió a aparecer. La causa era que se instalaba otra versión de torch, de forma que el contenedor tenía dos versiones distintas. La solución fue no instalar torch por mi cuenta y utilizar la versión que ya trae la imagen. Desde entonces no me ha vuelto a dar error. Por ahora, sigo instalando las dependencias directamente en el contenedor.

3. Estudio del ejercicio e Integración en HRI-sound

He estado estudiando cómo funciona el ejercicio Basic Vacuum Cleaner por dentro: cómo se envían los datos y cómo los recibe el frontend.

Álvaro y yo hemos creado la rama HRI-sound, donde hemos creado el ejercicio y añadido nuestros archivos para empezar a unir nuestras aplicaciones.

Como primera prueba de integración, combinamos audio-in y audio-out con un pequeño script en el código del usuario. En la primera iteración, el robot habla con WebGUI.say. En las siguientes, escucha con WebGUI.listen e imprime la transcripción por terminal:

1
2
3
4
5
6
7
8
9
10
11
12
import time
import WebGUI

i = 0
while True:
    if i == 0:
        print("Iteración 2: Zed")
        WebGUI.say("La hoja invisible es la más mortífera")
    if i != 0:
        text = WebGUI.listen(5000)
        print(text)
    i += 1

Integración de audio-in y audio-out en HRI-sound


Planes para la Siguiente Semana

  • Implementar funciones que reciban órdenes por voz y modifiquen el comportamiento de la aspiradora.
  • Implementar funciones que informen del entorno y del estado del robot.
This post is licensed under CC BY 4.0 by the author.