Bienvenido a la documentación de Robox AI!

La documentación del programa de detección con inteligencia artificial está descrita en esta guía para su mejor comprensión. Se deberá documentar cada cambio o feature que se agregue al código para tener la última versión de la misma. La documentación se genera con la ayuda de la herramienta Sphinx, la cual se puede generar de la siguiente manera:

$ cd docs/sphinx
$ make html

Asegúrate de tener instalado el paquete make o build-essential y el paquete python3-sphinx.

Tecnologías utilizadas

La aplicación se encuentra escrita en Python, utilizando ffmpeg y OpenCV para recibir el stream. Para la detección de objetos se utiliza el modelo YOLOv8. El programa requiere que el servidor de streaming (janus-testing) tenga nginx configurado para servir los archivos sdp y las configuraciones para cada dron. Para el envío de emails se utiliza la API de Google Gmail.

Estructura del proyecto

  • DetectionHost: Programa de detección con IA
    • CoordinatesFilter: Filtro de coordenadas para cada dron, recibe las coordenadas desde Thingsboard cada cierto tiempo, y dependiendo de si está dentro de un área de detección, enciende o no el módulo de detección. Puede funcionar de manera independientemente para un solo dron.

    • Detector: Módulo para la detección de objetos en el stream, utiliza OpenCV para recuperar los frames, y YOLOv8 para la detección de objetos.

    • EmailSender: Módulo para el envío de Email, puede funcionar independientemente para realizar pruebas.

    • logger: Configuración de los loggers del programa.

    • StreamScanner: Programa principal para la detección de varios drones, requiere la configuración previa en el servidor de streaming.

  • JanusHost: Utilidades para el servidor de streaming.
    • launch.sh: Script auxiliar para lanzar gstreamer en el servidor de streaming.