PyULog: Herramienta para el Análisis de Logs de Vuelo de Drones y Procesamiento de Datos

PyULog: Herramienta para el Análisis de Logs de Vuelo de Drones y Procesamiento de Datos

PyULog es una biblioteca de Python especializada en parsear archivos ULog generados por sistemas de control de vuelo PX4 en vehículos aéreos no tripulados (UAVs). Facilita la extracción y análisis de datos de vuelo para evaluaciones de rendimiento, diagnósticos de fallos y análisis avanzado.

Características Clave

  • Extracción exhaustiva de datos: soporta todos los tipos en archivos ULog, incluyendo parámetros, mensajes y datos de sensores.
  • Exportación a múltiples formatos: conversión directa a CSV, KML, ROSbag y otros formatos comunes.
  • Integración con bases de datos: soporte incorporado para SQLite, permitiendo almacenar y consultar grandes volúmenes de registros.
  • Interfaz entuitiva: API bien diseñada y herramientas de línea de comandos para simplificar el uso.

Configuración del Entorno

Para comenzar, clona el repositorio y procede con la instalación:


git clone https://ejemplo.com/pyulog
cd pyulog
pip install -e .

Alternativamente, puedes usar la instaalción estándar ejecutando python setup.py install.

Funcionalidades Esenciales

Inspección de Archivos de Log

Utiliza el comando ulog_info para obtener un resumen del archivo ULog, como tiempo de grabación, duración y tipos de datos presentes:

ulog_info datos_vuelo.ulg

Extracción de Parámetros

Los parámetros de vuelo se pueden exportar para análisis detallado de configuraciones y calibraciones:

ulog_params datos_vuelo.ulg -d ','

Visualización de Trayectorias

Genera archivos KML para visualizar la ruta de vuelo en herramientas como Google Earth:

ulog2kml datos_vuelo.ulg -o trayectoria_vuelo.kml

Exportación de Datos a CSV

Convierte datos de sensores y otros registros a formato CSV para su procesamiento en software de análisis:

ulog2csv datos_vuelo.ulg -o ./resultados/

Escenarios Avanzados

Procesamiento por Lotes

Para analizar múltiples archivos de log de manera automatizada, se puede emplear un script Python:


from pyulog import ULog
import os

carpeta_logs = "registros_vuelo"
for nombre_archivo in os.listdir(carpeta_logs):
    if nombre_archivo.endswith(".ulg"):
        ruta_completa = os.path.join(carpeta_logs, nombre_archivo)
        registro = ULog(ruta_completa)
        # Realizar operaciones con los datos...

Filtrado Selectivo de Datos

Para reducir el volumen de datos, es posible extraer solo temas específicos como datos combinados de sensores o posición GPS:

ulog2csv datos_vuelo.ulg -m "sensor_combined,vehicle_gps_position"

Solución de Problemas Comunes

  • Mantén copias de seguridad de los archivos ULog originales antes de cualquier procesamiento.
  • Define flujos de trabajo estandarizados para garantizar consistencia en los análisis.
  • Utiliza los ejemplos incluidos en el directorio de pruebas para familiarizarte con la herramienta.

Profundización Técnica

Para comprender el funcionamiento interno, revisa módulos como core.py para el parseo de datos y db.py para la gestión de bases de datos. Adicionalmante, los casos de prueba en test/ ilustran diversos escenarios de manejo de datos.

Etiquetas: pyulog ulog px4 Python SQLite

Publicado el 7-23 15:32