Koode Bot resuelve la recepción de un hospital sin conexión a internet. Un kiosco entrevista al paciente en malayalam, le asigna una especialidad y genera un resumen clínico para el médico. Enseguida un robot con ESP32 lo acompaña físicamente hasta el sector. El proyecto se diseñó para cuidar la privacidad de los datos y para descargar trabajo del personal de admisión.

El núcleo es una Raspberry Pi 5 con 8 GB de RAM. El paciente elige idioma en la pantalla táctil, entre malayalam, hindi e inglés, y habla frente a un micrófono USB, cuyo audio se convierte a texto con faster-whisper antes de llegar al modelo Gemma 4 E2B que corre sobre Ollama. El modelo conduce una entrevista clínica estructurada y va preguntando según los síntomas que el paciente reporta.

El recorrido del dato y el informe clínico

Al terminar la entrevista, el modelo genera un informe clínico en JSON con especialidad, urgencia y resumen. Ese informe se guarda en SQLite. El kiosco muestra en pantalla el token y la especialidad asignada, y publica un mensaje MQTT en el tema koode/bot/navigate. El token toma la forma K0419001, donde la K inicial va seguida del mes, el día y un contador diario.

Generar el informe demora entre 60 y 120 segundos. El sistema admite hasta 12 intercambios de pregunta y respuesta dentro de la entrevista, con una latencia de respuesta del modelo que va de 10 a 30 segundos y un reconocimiento de voz que resuelve entre 2 y 6 segundos, todo sobre una carga inicial del modelo de unos 35 segundos. La memoria ocupada ronda los 9 GB.

¿Cómo navega el robot hasta la especialidad?

El robot Koode Bot usa un ESP32-S3 y recibe por MQTT el mensaje con la especialidad asignada. La latencia de ese mensaje es de 1 segundo. El robot acompaña al paciente apoyado en sensores ultrasónicos para navegar. Un sensor HC-SR04 detecta los obstáculos, mientras un driver L298 controla los motores de corriente continua de 12 V.

La tasa de error en la clasificación de especialidad ronda el 15%. El autor plantea además que los síntomas recogidos en las entrevistas sirven para detectar brotes epidémicos. El carácter local del sistema protege datos sensibles del paciente, porque nada sale del aparato.

El proyecto está documentado en el repositorio de shan. Quien quiera replicarlo encuentra ahí el código para la Raspberry Pi y para el ESP32, más la configuración de Ollama y de los modelos.

¿Qué se necesita para rearmarlo?

Los componentes principales son una Raspberry Pi 5, la pantalla táctil oficial, un micrófono USB y un acelerador Hailo-8 AI HAT. Para el robot hacen falta un ESP32-S3, un sensor ultrasónico HC-SR04, un driver L298 y motores de corriente continua de 12 V.

El software corre sobre Ollama con el modelo Gemma 4 E2B en cuantización Q4_K_M. El backend usa Flask, SQLite y MQTT con mosquitto. En el robot, PubSubClient y ArduinoJson se hacen cargo de la comunicación. Para quien parte de cero, la Raspberry Pi 5 es la base recomendada del kiosco.

  • Raspberry Pi 5 con 8 GB de RAM
  • Pantalla táctil oficial de Raspberry Pi
  • Micrófono USB
  • Acelerador Hailo-8 AI HAT
  • Microcontrolador DFRobot FireBeetle ESP32 IOT
  • Sensor ultrasónico HC-SR04
  • Driver de motores L298
  • Motores de corriente continua de 12 V

El sistema apunta a hospitales con personal reducido o a zonas con conectividad limitada. La privacidad queda garantizada porque ningún dato abandona el equipo.