scieee AI-readable full text Open interactive document viewer

Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial

González Cabrera, Indra

Abstract

Estudio de diferentes métodos de estimación a partir de datos multisensoriales. Para la alternativa seleccionada, se realizarán análisis con el propósito de determinar la precisión del resultado y la robustez del mismo ante variaciones en los parámetros de los modelos y algoritmos empleados. Se generarán resultados comparativos, tanto a nivel numérico como gráfico, como resultados. Se plantea el desarrollo de un prototipo basado en la simulación de modelos de vehículos y trayectorias, a fin de contrastar los resultados esperados con los obtenidos. Finalmente, se estudiará la viabilidad del traslado de estos resultados a un caso real, como validación de las hipótesis formuladas.

Full text

! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial GRADO!EN!INGENIERÍA!INFORMÁTICA! TRABAJO!DE!FIN!DE!GRADO! JULIO!DE!2017! LAS!PALMAS!DE!GRAN!CANARIA! ! AUTOR:!!Indra!González!Cabrera! ! TUTORES:!José!Daniel!Hernández!Sosa! !!!Dpto.&de&Informática&y&Sistemas& !!Francisco!Suárez!González! !!!Aerolaser&System&S.L.& ! ! !! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial Agradecimientos! A Elvis y a mi familia, por apoyarme y apostar por mí cuando ni yo lo hacía. Esto también lo han conseguido ustedes. A mis tutores, especialmente a José Daniel Hernández Sosa, porque sin tu esfuerzo, dedicación e implicación, este proyecto no habría sido posible. Gracias, de corazón. A todos los pequeños informáticos que han hecho este largo y arduo trayecto mucho más fácil y divertido. ! ! !! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! Índice! ! INTRODUCCIÓN!.........................................................................................................!1! ESTRUCTURA!DEL!DOCUMENTO!................................................................................!3! MOTIVACIÓN!GENERAL!.............................................................................................!5! ESTADO!ACTUAL!........................................................................................................!5! SISTEMAS!DE!NAVEGACIÓN!..................................................................................................!6! FILTRO!KALMAN!................................................................................................................!9! OBJETIVOS!..............................................................................................................!11! APORTACIONES!.......................................................................................................!12! JUSTIFICACIÓN!DE!COMPETENCIAS!ESPECÍFICAS!CUBIERTAS!...................................!13! ESTUDIO!PREVIO!Y!ANÁLISIS!...................................................................................!17! PLANTEAMIENTO!DEL!PROBLEMA!........................................................................................!17! DOCUMENTACIÓN!Y!FAMILIARIZACIÓN!CON!EL!PROBLEMA!........................................................!20! ESTUDIO!DE!CONCEPTOS!BÁSICOS!DE!NAVEGACIÓN!.................................................................!22! ESTUDIO!DE!LAS!OPCIONES!DE!RESOLUCIÓN!...........................................................................!25! ESTUDIO!DEL!FILTRO!KALMAN!Y!SU!BASE!MATEMÁTICA!.............................................................!26! ESTUDIO!DE!LAS!ALTERNATIVAS!DE!IMPLEMENTACIÓN!...........................................!33! TECNOLOGÍAS!Y!PLATAFORMAS!...........................................................................................!33! BÚSQUEDA!E!INVESTIGACIÓN!DE!LIBRERÍAS!Y!CÓDIGO!ABIERTO!...................................................!34! DOCUMENTACIÓN!Y!USO!DE!LA!LIBRERÍA!................................................................!37! FUNCIONES!AUXILIARES!.....................................................................................................!38! FUNCIONALIDADES!RELATIVAS!A!LA!APLICACIÓN!......................................................................!40! DISEÑO!E!IMPLEMENTACIÓN:!APLICACIÓN!DE!ANÁLISIS!DE!DATOS!SINTÉTICOS!......!48! DISEÑO!DE!LOS!ESCENARIOS!Y!CASOS!DE!PRUEBA!...................................................!48! DISEÑO!DEL!CONJUNTO!DE!EXPERIMENTOS!A!REALIZAR!.........................................!51! ! ! !! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial DISEÑO!E!IMPLEMENTACIÓN!DEL!PROTOTIPO!.........................................................!57! EVALUACIÓN!Y!VALIDACIÓN:!RESULTADOS!DEL!ANÁLISIS!DE!DATOS!SINTÉTICOS!....!62! ANÁLISIS!DE!LOS!RESULTADOS!.............................................................................................!62! CONCLUSIONES!Y!CALIDAD!DE!LA!ESTIMACIÓN!........................................................................!70! DISEÑO!E!IMPLEMENTACIÓN:!APLICACIONES!DE!ANÁLISIS!DE!DATOS!REALES!.........!72! COLABORACIÓN!CON!LA!EMPRESA!..........................................................................!72! PROGRAMAS!DE!LECTURA!DE!DATOS!......................................................................!73! ADAPTACIÓN!DEL!EJEMPLO!LARGEHEADING!...........................................................!74! MODIFICACIONES!DEL!ARCHIVO!SYS_PATH_LARGEHEADING!......................................................!75! MODIFICACIONES!DEL!ARCHIVO!EXAMPLE_LARGEHEADING!.......................................................!77! OTRAS!APROXIMACIONES!PARA!LA!ESTIMACIÓN!....................................................!80! INTEGRACIÓN!EN!BUCLE!ABIERTO!.........................................................................................!80! FILTRO!DE!KALMAN!EXTENDIDO!..........................................................................................!81! FUSIÓN!SENSORIAL!...........................................................................................................!82! CONCLUSIONES!.......................................................................................................!85! TRABAJO!FUTURO!...................................................................................................!86! BIBLIOGRAFÍA!.........................................................................................................!87! AXEXO!I! TRAYECTORIA!1:!ACELERÓMETRO!........................................................................................!89! TRAYECTORIA!1:!GIRÓSCOPO!.............................................................................................!90! TRAYECTORIA!1:!CONVERGENCIA!ACELERÓMETRO!..................................................................!91! TRAYECTORIA!1:!CONVERGENCIA!GIRÓSCOPO!........................................................................!92! TRAYECTORIA!2:!ACELERÓMETRO!........................................................................................!93! TRAYECTORIA!2:!GIRÓSCOPO!.............................................................................................!94! TRAYECTORIA!2:!CONVERGENCIA!ACELERÓMETRO!..................................................................!95! TRAYECTORIA!2:!CONVERGENCIA!GIRÓSCOPO!........................................................................!96! ! ! !! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial TRAYECTORIA!3:!ACELERÓMETRO!........................................................................................!97! TRAYECTORIA!3:!GIRÓSCOPO!.............................................................................................!98! TRAYECTORIA!3:!CONVERGENCIA!ACELERÓMETRO!..................................................................!99! TRAYECTORIA!3:!CONVERGENCIA!GIRÓSCOPO!......................................................................!100! ERROR!EN!EL!GPS!(OBS_ERROR)!.......................................................................................!101! TRAYECTORIA!1!.............................................................................................................!101! TRAYECTORIA!2!.............................................................................................................!101! TRAYECTORIA!3!.............................................................................................................!102! ANEXO!II! CÓDIGO!DEL!LECTOR!DE!DATOS!DE!LA!IMU!..........................................................................!103! CÓDIGO!DEL!LECTOR!DE!DATOS!DEL!GPS!............................................................................!105! ! ! !! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial Índice!de!ilustraciones! ILUSTRACIÓN!1:!MEDICIÓN!CON!EL!MÉTODO!CLÁSICO!(BARRIDO!1)!................................................!19! ILUSTRACIÓN!2:!MEDICIÓN!CON!EL!MÉTODO!CLÁSICO!(BARRIDO!2)!................................................!19! ILUSTRACIÓN!3:!MEDICIÓN!CON!EL!MÉTODO!EXPUESTO!EN!EL!PROYECTO!.........................................!19! ILUSTRACIÓN!4:!ÁNGULOS!DE!NAVEGACIÓN!DE!LOS!SISTEMAS!INERCIALES!........................................!21! ILUSTRACIÓN!5:!TERNA!DE!REFERENCIA!TERRESTRE!....................................................................!23! ILUSTRACIÓN!6:!TERNA!DE!REFERENCIA!GEODÉSICA!.....................................................................!24! ILUSTRACIÓN!7:!TERNA!DE!REFERENCIA!DEL!CUERPO!...................................................................!24! ILUSTRACIÓN!8:!ESQUEMA!DE!FUNCIONAMIENTO!DEL!FILTRO!KALMAN!...........................................!27! ILUSTRACIÓN!9:!FUNCIONAMIENTO!DEL!ALGORITMO!DEL!FILTRO!KALMAN!......................................!30! ILUSTRACIÓN!10:!GRÁFICA!ILUSTRATIVA!DE!LA!TRAYECTORIA!DE!LA!LIBRERÍA!....................................!36! ILUSTRACIÓN!11:!GRÁFICA!ILUSTRATIVA!DEL!HEADING!DE!LA!LIBRERÍA!............................................!37! ILUSTRACIÓN!12:!CÓDIGO!-!PREDICCIÓN!DE!ESTADO!ESTIMADO!Y!COVARIANZA!................................!42! ILUSTRACIÓN!13:!CÓDIGO!-!CÓMPUTO!DE!LA!GANANCIA!DE!KALMAN!.............................................!42! ILUSTRACIÓN!14:!CÓDIGO!-!ACTUALIZACION!DE!LA!ESTIMACIÓN!Y!LA!COVARIANZA!............................!43! ILUSTRACIÓN!15:!ESQUEMA!DEL!MODELO!DE!ERROR!...................................................................!44! ILUSTRACIÓN!16:!DATOS!SINTÉTICOS!-!MENÚ!DE!SELECCIÓN!DE!TRAYECTORIAS!................................!51! ILUSTRACIÓN!17:!DATOS!SINTÉTICOS!-!INICIALIZACIÓN!DE!LA!VARIABLE!OBS_ERROR!..........................!51! ILUSTRACIÓN!18:!DATOS!SINTÉTICOS!–!DEFINICIÓN!DE!LOS!VALORES!DE!PRUEBA!DE!LA!VARIABLE! OBS_ERROR!................................................................................................................!52! ILUSTRACIÓN!19:!DATOS!SINTÉTICOS!-!EJEMPLOS!MAL!RANGO!EN!LA!TRAYECTORIA!2!.........................!54! ILUSTRACIÓN!20:!DATOS!SINTÉTICOS!-!DIAGRAMA!FUNCIONAMIENTO!LARGEHEADING_EVALUATION!...!58! ILUSTRACIÓN!21:!DATOS!SINTÉTICOS!-!DIAGRAMA!FUNCIONAMIENTO!TEST_OBSERROR!.....................!58! ILUSTRACIÓN!22:!DATOS!SINTÉTICOS!-!DIAGRAMA!FUNCIONAMIENTO!TEST_ERRORPARAMS!...............!59! ILUSTRACIÓN!23:!DATOS!SINTÉTICOS!-!DIAGRAMA!FUNCIONAMIENTO!SHOW_RESULTS!......................!60! ILUSTRACIÓN!24:!DATOS!SINTÉTICOS!-!DIAGRAMA!FUNCIONAMIENTO!LARGEHEADING_ESTIMATION!...!62! ILUSTRACIÓN!25:!DATOS!SINTÉTICOS!-!REDEFINICIÓN!DEL!TIEMPO!DE!PROPAGACIÓN!.........................!62! ILUSTRACIÓN!26:!ZOOM!DEL!BOXPLOT!DE!ACCA!TRAYECT1!..........................................................!63! ILUSTRACIÓN!27:!DATOS!SINTÉTICOS!-!TRAYECTORIA!1!...............................................................!64! ! ! !! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ILUSTRACIÓN!28:!DATOS!SINTÉTICOS!-!TRAYECTORIA!2!...............................................................!65! ILUSTRACIÓN!29:!DATOS!SINTÉTICOS!-!HEADING!TRAYECTORIA!1!..................................................!65! ILUSTRACIÓN!30:!DATOS!SINTÉTICOS!-!HEADING!TRAYECTORIA!2!..................................................!66! ILUSTRACIÓN!31:!DATOS!SINTÉTICOS!-!TRAYECTORIA!2!CON!MALA!ESTIMACIÓN!...............................!67! ILUSTRACIÓN!32:!DATOS!SINTÉTICOS!-!TRAYECTORIA!2!CON!BUENA!ESTIMACIÓN!..............................!67! ILUSTRACIÓN!33:!DATOS!SINTÉTICOS!-!HEADING!DE!LA!TRAYECTORIA!2!CON!MALA!ESTIMACIÓN!..........!68! ILUSTRACIÓN!34:!DATOS!SINTÉTICOS!-!HEADING!DE!LA!TRAYECTORIA!2!CON!MALA!ESTIMACIÓN!..........!68! ILUSTRACIÓN!35:!MODELO!DE!ERROR!DE!LA!IMU!REAL!...............................................................!75! ILUSTRACIÓN!36:!DATOS!REALES!-!INICIALIZACIÓN!DE!VARIABLES!DEL!INS!.......................................!76! ILUSTRACIÓN!37:!DATOS!REALES!-!VALORES!INICIALES!DE!NAVEGACIÓN!..........................................!76! ILUSTRACIÓN!38:!DATOS!REALES!-!VECTOR!DE!MEDIDAS!DE!NAVEGACIÓN!INICIALES!...........................!77! ILUSTRACIÓN!39:!DATOS!REALES!-!APERTURA!DE!ARCHIVOS,!LECTURA!E!INICIALIZACIÓN!DEL!SISTEMA!....!77! ILUSTRACIÓN!40:!DATOS!REALES!-!SINCRONIZACIÓN!DE!GPS!E!IMU!..............................................!78! ILUSTRACIÓN!41:!DATOS!REALES!-!ALMACENAMIENTO!DE!DATOS!KALMAN!......................................!78! ILUSTRACIÓN!42:!DATOS!REALES!-!GRÁFICA!COMPARATIVA!DEL!HEADING!Y!SU!ESTIMACIÓN!................!79! ILUSTRACIÓN!43:!INTEGRACIÓN!EN!BUCLE!ABIERTO!....................................................................!81! ILUSTRACIÓN!44:!TIGHTLY!COUPLED!-!ESTIMACIÓN!DEL!PITCH!......................................................!83! ILUSTRACIÓN!45:!TIGHTLY!COUPLED!-!ESTIMACIÓN!DEL!ROLL!.......................................................!83! ILUSTRACIÓN!46:!TIGHTLY!COUPLED!-!ESTIMACIÓN!DEL!HEADING!..................................................!84! ! ! 1! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! Introducción! Aerolaser! Systems! SL! es! una! empresa! topográfica! dedicada! a! la! producción! de! información! digital! a! partir! de! sensores! embarcados! en! aeronaves,! además! de! las! correspondientes! aplicaciones! para! cartografía,! ortofotos,! fotografía! térmica! u! obtención!de!modelos!digitales.!! Uno!de!los!aspectos!fundamentales!del!proceso!es!la!toma!de!datos!para!su!posterior! posprocesado! y! su! uso! en! aplicaciones! para! clientes.! Esta! recolección! de! medidas! cartográficas!se!lleva!a!cabo!durante!el!vuelo!y,!por!tanto,!los!errores!generados,!tanto! por! ruido! como! por! vibraciones! e! interferencias! de! campos! magnéticos,! son! considerables.!! A! fin! de! mejorar! la! precisión! de! la! toma! y! recolección! de! medidas,! la! empresa! ha! desarrollado!hardware!específico.!Este!nuevo!dispositivo!permitirá!que!los!instrumentos! de!medida,!antes!fijos,!puedan!instalarse!sobre!una!estructura!móvil.!Esto!se!lleva!a!cabo! para!compensar!el!movimiento!del!vehículo!que!transporta!estos!instrumentos,!de!tal! forma!que!se!evita!que!queden!zonas!que!hayan!escapado!al!barrido!a!la!hora!de!tomar! las!mediciones.! Uno!de!los!principales!problemas!que!desea!resolver!la!empresa!es!que,!para!poder! utilizar!de!forma!efectiva!este!nuevo!hardware!desarrollado,!es!preciso!encontrar!una! estimación!adecuada!de!la!posición!y!la!orientación!del!vehículo!móvil!en!el!que!se! encuentran!los!dispositivos!de!medición.!Dicho!vehículo!incorpora!una!IMU!(unidad!de! medición! inercial)! y! un! GPS! (sistema! de! posicionamiento! global)! y,! tal! y! como! se! mencionó! anteriormente,! esta! instrumentación! presenta! ciertas! limitaciones.! Los! acelerómetros!y!los!giróscopos!integrados!en!la!IMU!presentan!un!error!que!crece!en!el! tiempo.!Así,!a!pesar!de!los!errores!del!GPS!son!asumibles,! por!la!integración!de!los! sistemas! INS! y! GPS! las! medidas! se! ven! contaminadas! y! no! pueden! ser! tomadas! directamente,!sino!que!deben!estimarse.! ! ! ! 2! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial De!esta!forma,!el!trabajo!propuesto!tiene!por!objeto!el!estudio!de!diferentes!métodos! de!estimación!a!partir!de!datos!multisensoriales.!Para!la!alternativa!seleccionada,!se! realizarán!análisis!con!el!propósito!de!determinar!la!precisión!del!resultado!y!la!robustez! del!mismo!ante!variaciones!en!los!parámetros!de!los!modelos!y!algoritmos!empleados.! Se! generarán! resultados! comparativos,! tanto! a! nivel! numérico! como! gráfico,! que! ofrezcan!soporte!al!personal!técnico!de!la!empresa.! Se! plantea! el! desarrollo! de! un! prototipo! basado! en! la! simulación! de! modelos! de! vehículos!y!trayectorias,!a!fin!de!contrastar!los!resultados!esperados!con!los!obtenidos.! Finalmente,!se!estudiará!la!viabilidad!del!traslado!de!estos!resultados!a!un!caso!real,! como!validación!de!las!hipótesis!formuladas.! & & ! ! ! 9! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial anteriormente,!permiten!obtener!posición!y!orientación!del!vehículo!en!vuelo!con!una! precisión! notablemente! mayor,! con! lo! que! se! han! mejorado! las! condiciones! de! los! vuelos,!decrementando!los!fallos!de!posición!y!la!intervención!humana!en!el!proceso.! Con!esto!se!han!reducido!los!riesgos!en!la!navegación!comercial!y!se!ha!mejorado!de! forma!significativa!la!calidad!de!vuelo,!pues!con!más!precisión!sobre!los!datos!reales!y! los! errores,! es! posible! compensar! dichos! errores! para! obtener! una! navegación! más! precisa,!correcta!e!independiente!de!las!condiciones!externas.! Además,!es!digno!de!mención!el!auge!de!los!vehículos!no!tripulados!como!los!drones,! en! los! que! los! sistemas! inerciales! son! esenciales! para! el! funcionamiento,! como! se! comentará!en!mayor!extensión!en!el!apartado!de!Aportaciones.! Todos!estos!avances!nos!han!permitido!avanzar!de!forma!exponencial!en!este!campo,! mejorando!en!el!desarrollo!de!vehículos!aeroespaciales!que!nos!permitirán!en!el!futuro,! explorar!y!expandir!los!límites!del!conocimiento!que,!en!última!instancia,!es!el!objetivo! de!la!ciencia.! FILTRO!KALMAN! Como! se! comentó! anteriormente,! para! la! obtención! de! las! medidas! reales! de! los! sistemas!integrados!de!navegación,!es!necesario!utilizar!algoritmos!para!estimar!el!error! y!obtener!la!medición!correcta.!! Los!estudios!de!estimación!dinámica!han!tenido!especial!fuerza!en!los!últimos!años!y! gracias! al! avance! de! la! computación! como! herramienta! de! soporte! para! guardar! información!y!realizar!cálculos!y!a!la!necesidad!creciente!de!métodos!de!estimación!para! realizar! predicciones! en! tiempo! real.! Entre! las! herramientas! matemáticas! para! este! propósito,!Kalman!destaca!entre!los!demás!ya!que!constituye!el!principal!procedimiento! para!estimar!sistemas!dinámicos!representados!en!la!forma!de!estado-espacio.!! El! filtro! Kalman! fue! desarrollado! en! 1960! por! Rudolf! E.! Kalman! basándose! en! el! Observador!de!Luenberger,!con!la!peculiaridad!de!que!funciona!cuando!se!ha!sometido! el!sistema!a!ruido!blanco!aditivo.!Además,!el!filtro!Kalman!es!más!efectivo!y!autónomo,! al!elegir!de!forma!autónoma!la!retroalimentación!del!error!óptima,!mientras! que!el! algoritmo!del!observador!requiere!que!esa!ganancia!se!proporcione!de!forma!manual.! Se!basa!en!un!algoritmo!recursivo!que!estima!el!estado!no!observable!de!un!sistema! dinámico! dado! un! conjunto! de! observaciones! que! proporcionan! información! y! ! ! 10! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial caracterización! del! sistema! en! cada! momento.! Opera! mediante! un! mecanismo! de! predicción!y!corrección,!pronosticando!un!nuevo!estado!a!partir!de!su!estimación!previa! y! la! corrección! que! añade,! de! tal! forma! que! el! error! de! predicción! se! minimiza! estadísticamente.! Es! un! filtro! muy! poderoso,! en! el! sentido! de! que! es! capaz! de! dar! soporte! a! estimaciones! pasadas,! presentes! y! de! futuros! estados,! aún! cuando! la! naturaleza!del!sistema!de!modelado!es!desconocida.!! A!pesar!de!que!se!desarrolló!hace!más!de!cincuenta!años,!su!uso!se!ha!generalizado! recientemente!en!una!variedad!de!aplicaciones!que!van!desde!la!realidad!virtual!hasta! la!estimación!de!la!posición!y!orientación!en!sistemas!de!navegación!integrados,!siendo! una!aplicación!común!la!guía,!navegación!y!control!de!vehículos,!especialmente!naves! espaciales.!Además,!el!filtro!es!ampliamente!usado!en!campos!como!procesamiento!de! señales!y!econometría.!Por!tanto,!es!el!mejor!estimador!posible!o!un!estimador!muy! efectivo!para!una!amplitud!de!problemas!creciente,!por!lo!que!es!que!se!utiliza!con!más! frecuencia,!en!especial!en!los!entornos!de!posicionamiento!y!en!las!nuevas!tecnologías.! Además,!presenta!la!ventaja!de!ser!fácil!de!comprender!y!de!la!adaptabilidad,!pues!es! posible!usarlo!con!pocas!herramientas!conceptuales.!(Prado!Obando,!2005)! En!cuanto!a!las!primeras!aplicaciones!del!filtro,!este!está!íntimamente!relacionado!con! los!sistemas!de!navegación,!siendo!la!primera!aplicación!completa!del!filtro!como!el! sistema!de!guía!del!sistema!astronáutico!en!el!Programa!Apolo!de!la!NASA.!El!éxito!de! este!filtro!en!dichas!investigaciones!impulsó!el!uso!del!mismo!en!otros!proyectos!de! navegación!de!transporte!aéreo.!! En!estos!proyectos,!el!filtro!Kalman!fue!capaz!de!resolver!el!problema!de!la!fusión!de! datos!asociado!con!la!combinación!de!los!datos!del!sistema!de!navegación!integrado! para!lograr!una!aproximación!global!de!la!trayectoria!de!la!aeronave!con!éxito.!Desde! entonces,!el!filtro!es!una!parte!integral!de!la!estimación!de!trayectorias!a!bordo!de! aeronaves!y!en!el!diseño!de!sistemas!de!control.! De!esta!forma,!el!filtro!de!Kalman!se!considera!el!gran!logro!en!la!teoría!de!estimación! del!siglo!XX!ya!que!ha!sido!esencial!en!muchos!logros!tecnológicos!y!científicos!desde!su! introducción.!Es!seguro!decir!que!este!filtro!ha!sido!una!de!las!tecnologías!que!hizo! posible,!junto!con!los!sistemas!integrados,!la!era!espacial,!puesto!que!la!precisión!y! eficiencia!en!la!navegación!en!astronavegación!no!hubiese!sido!posible!sin!la!aportación! del!filtro.!! ! ! 11! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial Actualmente,! además! de! los! campos! anteriormente! nombrados,! el! principal! uso! de! Kalman!ha!sido!en!sistemas!de!control!modernos,!en!el!seguimiento!y!navegación!de! todo!tipo!de!vehículos!y!en!el!diseño!predictivo!de!estimación!de!los!mismos.! Objetivos! El! trabajo! propuesto! tiene! como! objeto! el! estudio! de! los! diferentes! métodos! de! estimación! a! partir! de! datos! multisensoriales.! Para! ello,! en! un! proceso! previo! de! documentación! e! investigación,! se! estudiarán! las! posibles! alternativas! en! el! plano! teórico,! teniendo! en! cuenta,! también,! las! limitaciones! que! presenta! la! aplicación! práctica! del! algoritmo! elegido.! Además,! influirá! en! la! decisión! de! la! alternativa! las! posibilidades! de! aplicación! del! algoritmo! en! los! diferentes! lenguajes! y! plataformas! software!y!hardware!de!las!que!la!empresa!dispone!y!tiene!acceso.!! Para! la! alternativa! seleccionada,! en! primer! lugar,! se! estudiará! en! profundidad! el! algoritmo!usado!y,!posteriormente,!se!diseñarán!las!pruebas!necesarias!para!realizar! análisis!con!el!propósito!de!determinar!la!precisión!del!resultado!y!la!robustez!del!mismo! ante!variaciones!en!los!parámetros!de!los!modelos!y!algoritmos!empleados.! Cuando! se! lleven! a! cabo! las! pruebas! diseñadas! a! partir! del! estudio! del! modelo,! se! generarán! resultados! comparativos,! tanto! a! nivel! numérico! como! gráfico.! Estos! resultados!nos!ofrecerán!un!análisis!previo!que!servirá!como!soporte!al!personal!técnico! de!la!empresa!encargado!de!llevar!a!cabo!el!desarrollo!completo!y!la!implementación! del!filtro!en!el!software!y!hardware!ya!existente.! Se! plantea! el! desarrollo! de! un! prototipo! basado! en! la! simulación! de! modelos! de! vehículos!y!trayectorias,!lo!más!parecidos!al!caso!real!posible,!a!fin!de!ser!capaces!de! contrastar!los!resultados!esperados!con!los!obtenidos.!Además,!las!simulaciones!dentro! del! marco! teórico! se! llevan! a! cabo! dándole! un! peso! mayor! en! la! estimación! a! los! parámetros! que! la! empresa! considera! más! importantes! a! la! hora! de! realizar! la! integración!del!hardware.!! En! este! caso,! el! parámetro! más! determinante! a! la! hora! de! integrar! el! código! en! el! hardware!ya!desarrollado!sería!el!heading&o!rumbo!del!vehículo.!Por!tanto,!el!algoritmo! desarrollado!hará!énfasis!en!la!estimación!de!este!parámetro.! ! ! 12! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial Finalmente,!se!estudiará!la!viabilidad!del!traslado!de!estos!resultados!a!un!caso!real,! como!validación!de!las!hipótesis!formuladas.!Para!ello,!se!deberá!simular!una!lectura!de! los! datos! en! vuelo,! es! decir,! en! tiempo! real,! y! sin! que! se! haya! llevado! a! cabo! el! posprocesado!de!la!información.!Con!esta!simulación!del!caso!real!con!los!datos!leídos! de!la!misma!forma!que!se!obtendrían!de!la!IMU!en!vuelo!conseguiremos!caracterizar! mejor!el!problema!de!acuerdo!al!objetivo!final!que!sería!el!del!desarrollo!de!software! para!integrar!el!nuevo!hardware!con!los!instrumentos!de!medida!en!el!vehículo.! ! Aportaciones! Como!se!ha!nombrado!anteriormente,!la!optimización!del!filtro!Kalman!en!el!marco!de! los!sistemas!de!navegación!integrados!aporta!precisión!a!otras!tecnologías!sin!la!cuál!no! sería!posible!su!funcionamiento.!! Con!este!trabajo!se!pretende!establecer!los!parámetros!que!influyen!en!la!calidad!y!en! la! precisión! del! filtro! basándose! en! la! función! sensorial.! Con! esto,! en! la! práctica,! seríamos!capaces!de!mejorar!la!precisión!que!proporciona!Kalman!y!reducir!el!tiempo! de!convergencia,!tras!el!cuál!el!filtro!comienza!a!ser!realmente!efectivo.!Esta!calibración! debería!ser!lo!más!reducida!en!el!tiempo!posible,!ya!que,!el!objetivo!final!es!un!sistema! preciso!que!sea!capaz!de!responder!a!tiempo!real!con!la!mayor!precisión!posible!desde! el!momento!inicial.!! En!un!principio!y!de!forma!directa,!los!resultados!de!este!trabajo!se!utilizarían!para!la! implementación!del!filtro!en!el!futuro!en!la!IMU!integrada!en!el!vehículo!de!medición.! Ello!permitiría!utilizar!la!información!obtenida!en!tiempo!real!en!el!dispositivo!que!la! empresa!ha!diseñado!para!contrarrestar!el!error!proporcionado!en!la!medición.! Más!adelante!y!de!forma!más!amplia,!esta!mejora!en!la!determinación!de!los!parámetros! iniciales!del!filtro!influye!en!muchos!campos!del!mundo!tecnológico!que!nos!atañe.!Dado! que!estos!parámetros!son!la!única!intervención!manual!del!filtro!y!son!especialmente! determinantes!en!la!calidad!de!la!predicción!que!obtendremos,!una!aproximación!a!un! proceso! previo! de! determinación! de! los! parámetros! óptimos! para! Kalman! podrían! constituir!una!mejora!importante!en!el!sector.!! ! ! 13! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial Actualmente,! además! de! los! campos! ya! nombrados! y! explicados! en! extensión! anteriormente,! uno! de! los! campos! de! la! aeronavegación! más! prometedores! y! que! precisan!de!Kalamn!y!de!los!sistemas!integrados!de!navegación!para!su!funcionamiento! son!los!drones!o!UAV!(unmanned!aerial!vehicule).!Durante!años!se!han!utilizado!los! drones,!principalmente!en!el!sector!militar,!pero!en!la!actualidad,!la!popularización!de! estos!vehículos!ha!resultado!en!un!afloramiento!de!aplicaciones!para!los!mismos,!como! pueden!ser!en!labores!de!seguridad!y!rescate,!vigilancia,!investigación,!etc.!Con!esta! demanda!y!posibles!vías!y!campos!de!utilización,!los!avances!tecnológicos!surgen.!!! Como!explicamos!anteriormente,!los!UAV!precisan!de!sistemas!de!navegación!inercial!y! de!filtros!Kalman!para!su!funcionamiento!debido!a!que,!a!pesar!de!su!pequeño!tamaño! y!el!pequeño!coste!capital!que!es!producirlos!con!las!nuevas!tecnologías,!es!necesario! que! operen! con! eficiencia! para! poder! aprovechar! las! ventajas! de! estas! plataformas! baratas! en! que! pueden! desarrollarse.! Además,! el! factor! que! presentan! los! RPAS! (remotely-piloted!aircraft!systems)!de!no!intervención!humana!hacen!necesario!el!uso! de!estas!tecnologías!para!reducir!la!intervención!manual!en!el!proceso.! Por!tanto,!tanto!en!los!sectores!ya!establecidos!que!han!usado!el!Filtro!Kalman!desde! sus!inicios,!como!en!los!sectores!en!auge!como!son!los!UAVs,!precisan!de!la!utilización! de!un!Filtro!Kalman!cada!vez!más!eficiente,!especialmente!estos!últimos.!! Si,!como!indican!las!tendencias!actuales,!el!futuro!de!la!aeronavegación!va!a!asentarse! sobre!la!base!de!los!drones,!el!trabajo!de!mejorar!las!condiciones!en!que!se!lleva!a!cabo! la!predicción!de!Kalman!es!esencial!para!el!avance!tecnológico!futuro.!! En! este! aspecto,! el! trabajo! proporciona! una! aproximación! inicial! a! lo! que! sería! un! proceso!previo!de!determinación!de!los!parámetros!óptimos!para!Kalman,!siendo!las! posibilidades!de!mejora!y!las!aplicaciones!potenciales!del!trabajo!muy!amplias.! ! Justificación!de!competencias!específicas!cubiertas! • CP03:!Capacidad!para!evaluar!la!complejidad!computacional!de!un!problema,! conocer! estrategias! algorítmicas! que! puedan! conducir! a! su! resolución! y! recomendar,! desarrollar! e! implementar! aquella! que! garantice! el! mejor! rendimiento!de!acuerdo!con!los!requisitos!establecidos.! ! ! 14! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial CII06:!Conocimiento!y!aplicación!de!los!procedimientos!algorítmicos!básicos!de! las!tecnologías!informáticas!para!diseñar!soluciones!a!problemas,!analizando! la!idoneidad!y!complejidad!de!los!algoritmos!propuestos.! Una!fase!esencial!del!proyecto!es!la!investigación!exhaustiva!de!algoritmos!y! métodos!de!resolución!al!problema!de!la!estimación!de!las!medidas!reales!sin! error!para!su!uso!posterior!en!la!integración!del!nuevo!hardware.! Para! cada! una! de! las! posibles! soluciones! algorítmicas! o! aproximaciones,! es! necesario!llevar!a!cabo!un!análisis!sobre!la!posibilidad!de!aplicarlas!al!problema! en!cuestión.!Por!tanto,!en!el!análisis!de!soluciones!y!algoritmos!en!este!caso,!es! preciso!decidir!y!elegir!aquella!opción!que!más!se!ajuste.!! En!este!caso!en!concreto,!entre!todas!las!posibles!opciones!es!necesario!elegir! aquella!que!realice!la!estimación!con!el!menor!grado!de!error!y!que!estime,!en! la!mejor!medida!posible,!el!parámetro!que!más!nos!atañe!que,!como!se!expuso! anteriormente,!sería!el!heading.!! En! el! apartado! de! Desarrollo! se! explica! con! más! detalle! esta! fase! de! documentación!y!elección!de!la!mejor!plataforma!posible!entre!las!alternativas! y!la!justificación!de!la!elección!que!se!lleva!a!cabo.! ! • CII08:!Capacidad!para!analizar,!diseñar,!construir!y!mantener!aplicaciones!de! forma!robusta,!segura!y!eficiente,!eligiendo!el!paradigma!y!los!lenguajes!de! programación!más!adecuados.! Como!se!explica!anteriormente,!es!necesario!elegir!el!algoritmo!necesario!para! la!resolución!del!problema.!! Una!vez!se!ha!llevado!a!cabo!esta!fase!previa,!es!necesario!elegir!el!entorno!y!el! lenguaje! de! programación! óptimo.! Para! ello,! tras! la! investigación! y! documentación! de! las! librerías! existentes! que! apoyan! el! uso! del! método! de! resolución!elegido,!se!realiza!el!proceso!de!construcción!de!la!aplicación.! Para!el!desarrollo!de!la!aplicación,!según!las!librerías!encontradas,!además!de!las! necesidades!del!cliente!-en!nuestro!caso,!la!empresa-!y!de!las!condiciones!en!que! ! ! 15! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial se!usará!la!aplicación,!decidimos!el!lenguaje!de!programación!y!el!enfoque!que! se!usará.! En!este!caso,!se!ha!encontrado!una!librería!bastante!completa!en!Matlab!que,! además,!cumple!con!los!requisitos!de!aproximación!del!parámetro!más!sensible,! el!heading.!Teniendo!en!cuenta!las!peticiones!de!la!empresa!y!el!entorno!de!uso! de!la!aplicación,!esto!constituye!una!buena!opción!porque!Matlab!permite!una! migración!del!código!a!lenguajes!de!programación!que!utiliza!la!empresa,!como! serían! C++,! con! lo! que! supone! una! base! óptima! sobre! la! que! construir! la! aplicación.! Además,!en!la!fase!final!de!simulación!del!caso!real,!es!necesario!crear!software! de!lectura!de!datos!y!de!conversión!de!los!mismos,!para!los!cuales!fue!necesario! el!uso!de!librerías!de!transformaciones!geográficas,!además!del!uso!de!QT.!Este! último,!apoyándose!en!Visual!Studio!permitió!la!generación!de!programas!más! flexibles!y!adaptables!puesto!que!facilita!la!adaptación!del!código!a!múltiples!y! diversos! dispositivos.! Con! esto! conseguimos! una! aplicación! más! eficiente,! robusta!y!más!fácilmente!adaptable!y!acondicionado!para!modificaciones!en!el! futuro.! • CP01:! Capacidad! para! tener! un! conocimiento! profundo! de! los! principios! fundamentales! y! modelos! de! la! computación! y! saberlos! aplicar! para! interpretar,!seleccionar,!valorar,!modelar,!y!crear!nuevos!conceptos,!teorías,! usos!y!desarrollos!tecnológicos!relacionados!con!la!informática.!! Con!este!trabajo!se!pretende!realizar!un!análisis!de!los!parámetros!que!influyen! en!la!calidad!y! precisión! del! filtro.! Con! esto,! seríamos! capaces! de! establecer! resultados!comparativos!valorando!la!aportación!y!la!influencia!de!cada!uno!de! los! parámetros! en! los! resultados! finales,! tanto! en! simulaciones! como! en! las! pruebas!de!casos!con!datos!reales.!Una!vez!realizada!esta!fase,!seremos!capaces! de!seleccionar!los!valores!óptimos!de!los!parámetros!para!casos!simulados!y! reales.! En!un!principio!y!de!forma!directa,!esto!nos!permite!mejorar!la!precisión!que! proporciona!Kalman!y!reducir!el!tiempo!de!convergencia!del!filtro,!lo!que!hace! que!mejore!el!sistema,!siendo!más!efectivo!desde!momentos!más!cercanos!al! momento!inicial.!! ! ! 16! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial En! la! práctica,! esto! se! utilizaría! en! la! implementación! del! filtro! en! la! IMU! integrada! en! el! vehículo! de! medición! para! usar! la! información! obtenida! en! tiempo!real!en!el!hardware!diseñado!por!la!empresa.! De! forma! más! general! y! como! aportación! al! desarrollo! del! campo! de! la! informática,!esta!mejora!en!la!determinación!de!los!parámetros!iniciales!del!filtro! y!la!influencia!de!los!mismos!en!los!resultados!finales!influye!en!muchos!campos! tecnológicos.!Como!se!ha!comentado!con!anterioridad,!los!parámetros!que!son! caso!de!estudio!constituyen!una!de!las!pocas!intervenciones!manuales!y!son! especialmente!determinantes!en!la!calidad!de!la!predicción!que!obtendremos.! Por! tanto,! una! acercamiento! a! un! proceso! previo! de! determinación! de! los! parámetros!óptimos!para!Kalman!podrían!constituir!una!mejora!importante!en! el!sector.!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 17! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! CAPÍTULO!2:!Documentación! & En&el&segundo&capítulo&se&explicará&el&proceso&de&estudio&previo&y&análisis&del&problema,& así& como& su& planteamiento& inicial& y& la& documentación& necesaria& para& tratarla.& Esta& incluirá&el&estudio&de&conceptos&básicos&de&navegación&y&el&estudio&de&las&opciones&de& resolución.&Además,&se&desarrolla&el&estudio&del&filtro&Kalman&y&su&base&matemática.& ! Estudio!previo!y!análisis! Dada!la!complejidad!del!problema!a!resolver!y!al!carácter!exploratorio!del!proyecto,!fue! necesaria!una!fase!inicial!de!planteamiento!del!trabajo!y!familiarización!con!el!mismo.!A! fin!de!comprender!completamente!la!cuestión!a!resolver!y!todas!las!especificidades!del! proyecto,! además! de! la! fase! actual! en! que! se! encontraba! y! de! todos! los! avances! y! problemas!de!las!fases!previas,!fueron!necesarias!varias!entrevistas!con!el!personal!de! la!empresa!en!varios!departamentos.!! PLANTEAMIENTO!DEL!PROBLEMA! En!primer!lugar,!se!llevó!a!cabo!el!planteamiento!inicial!del!problema!durante!varias! reuniones!con!el!encargado!de!la!parte!informática!del!proyecto,!tutor!de!las!prácticas! de!empresa!y!co-tutor!del!trabajo!de!fin!de!grado,!Francisco!Suárez!González!y!con!el! dueño!Tomás!Herrera!Azorin,!ya!que,!a!pesar!de!su!cargo,!está!muy!implicado!en!las! actividades!y!proyectos!de!la!empresa.!En!estas!reuniones!se!trataron!las!necesidades!y! problemas!de!la!empresa!por!los!que!surge!el!desarrollo!y!la!necesidad!de!este!proyecto.!! Con!esto,!se!comienza!a!establecer!en!contexto!en!que!surge!el!trabajo,!que!serían!años! de! mediciones! en! helicóptero! con! equipamiento! fijo! que! solo! permite! la! toma! de! imágenes!y!mediciones!en!un!solo!ángulo,!el!del!cuerpo!del!helicóptero.!Esto!ocasiona! que,!actualmente,!para!llevar!a!cabo!la!medición!de!un!área!concreta,!sean!necesarios! varios!barridos!de!la!zona!en!el!vehículo!aéreo!para!poder!disponer!de!distintas!muestras! que!se!superpongan!y!eliminen!los!errores!de!vibración!y!de!cambios!de!ángulos!del! ! ! 18! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial helicóptero.!Esto!ocasiona!un!gasto!innecesario!desde!el!punto!de!vista!económico!y! temporal!ya!que!es!necesario!mucho!más!tiempo!de!vuelo!en!vehículos!especializados! que!precisan,!para!muy!poco!tiempo,!de!un!gran!aporte!económico!en!mantenimiento,! combustible,!alquiler,!etc.!Este!coste!podría!minimizarse!si!fuese!posible!compensar!los! ángulos!de!giro!del!helicóptero!para!que!las!mediciones!fuesen!continuas.! Posteriormente!y,!con!ayuda!del!equipo!de!técnicos!del!departamento!electrónico!de!la! empresa,!se!expusieron!las!fases!previas!del!proyecto,!que!incluyen!el!desarrollo!de!un! dispositivo!móvil!para!integrar!los!aparatos!de!medida!y!realizar!giros!en!los!tres!ejes!de! coordenadas! que! permitan! solucionar! el! problema! anteriormente! descrito.! Este! hardware,!con!el!software!y!las!medidas!apropiadas,!sería!capaz!de!orientar!los!aparatos! de!medida!a!pesar!de!los!giros!del!helicóptero!en!los!tres!ejes!para!que!las!mediciones! se!tomasen!en!un!barrido!único!del!área!a!examinar.! En! las! Ilustraciones! 1-3! se! ilustra! la! diferencia! entre! las! mediciones! que! se! toman! actualmente!y!la!potencial!mejora!que!supondría!la!implantación!de!este!nuevo!método! en!que!se!basa!el!proyecto.!Estas!no!son!más!que!un!método!didáctico!de!mostrar!de! forma! sencilla! la! mejora! que! supondría! la! implementación! del! trabajo! y! lo! que! se! pretende!y!no!una!representación!exacta!de!la!realidad.!! Así,!puede!verse!en!la!Ilustración!1!una!prueba!de!cómo!quedaría!un!barrido!de!una!zona! mediante! el! método! tradicional.! Como! puede! observarse,! no! toda! la! zona! estaría! cubierta,!por!lo!que!haría!falta!un!segundo!barrido,!quedando!como!en!la!Ilustración!2.! Aquí!quedarían!cubiertas!la!mayoría!de!la!superficie!pero!seguiría!siendo!necesario!un! tercer!recorrido.! Sin!embargo,!como!puede!verse!en!la!Ilustración!3,!si!el!hardware!de!rotación!gira!con! el! vehículo! aéreo! y! suponiendo! que! exista! algún! tipo! de! error! y! retardo,! una! aproximación!de!la!toma!de!medidas!requiere!un!solo!barrido!con!una!pérdida!mínima! o!nula!de!información.! ! ! ! 25! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ESTUDIO!DE!LAS!OPCIONES!DE!RESOLUCIÓN! Una!vez!ya!hemos!definido!el!trabajo!a!realizar!y!las!condiciones!que!deben!cumplirse,! es! necesario! realizar! un! estudio! de! los! diferentes! algoritmos! y! metodologías! que! permitirían! estimar! la! posición! y! orientación! del! vehículo,! eliminando! el! error! acumulativo!que!generan!los!sistemas!inerciales.!! Este!estudio!está!basado!en!diferentes!trabajos!previos!de!expertos,!siendo!estos!tesis! doctorales,!otros!trabajos!de!fin!de!grado!y!trabajos!de!investigación.!Estos!trabajos!son,! en!su!mayoría,!trabajos!comparativos!de!diferentes!métodos,!expresando!sus!ventajas! y!desventajas!y!casos!de!uso!recomendados.!! Los!principales!artículos!y!documentos!encontrados!se!basan!en!realizar!comparativas! entre!el!filtro!Kalman,!que!se!ha!explicado!anteriormente!y!que!es!uno!de!los!más!usados! como!algoritmos!de!predicción,!corrección!y!fusión!en!los!sistemas!de!navegación!y! otros!algoritmos!de!fusión,!como!pueden!ser!algoritmos!de!filtros!de!partículas!y!redes! neuronales.!! En!trabajos!comparativos!entre!el!filtro!Kalman!y!el!filtro!de!partículas!para!la!estimación! de!trayectorias!se!obtiene!que!una!combinación!Kalman-partículas!sería!el!más!efectivo! en!cuanto!a!precisión!pero!se!recomienda!que,!en!caso!que!necesitar!resultados!en! tiempo!real,!se!recomienda!Kalman,!pues!la!diferencia!de!precisión!no!es!tan!significativa! pero!la!diferencia!temporal!sí!lo!es!y!supondría!un!retardo!considerable.!(Candelas!&! Ramón,!2008)! En!trabajos!comparativos!entre!el!filtro!Kalman!y!las!redes!neuronales!en!la!estimación! de! la! velocidad,! sale! victorioso! el! filtro! Kalman.! La! red! neuronal,! en! contrapartida,! presenta! menos! gasto! computacional! pero! no! es! capaz! de! presentar! una! respuesta! satisfactoria! a! la! estimación! de! la! velocidad! cuando! se! producen! variaciones! en! la! misma,!mientras!que!Kalman!sí!es!capaz!de!estimarla.!(González,!Marcos,!&!Pacheco,! 2004)! Aunque!estos!artículos!y!trabajos!no!son!exactamente!estimaciones!de!vehículos!aéreos,! los!consideramos!como!válidos!para!la!comparativa!teórica!puesto!que!tratan!de!estimar! parámetros!similares!a!los!que!vamos!a!estimar!nosotros!y,!en!el!primer!caso,!se!trata! de! estimar! trayectorias! que,! aunque! no! son! aéreas,! es! el! objetivo! final! de! nuestro! trabajo.!! ! ! 26! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial Existen! otras! muchas! comparativas! en! otros! campos! no! tan! relacionados! con! los! sistemas!de!navegación!que!confirman!la!teoría!de!que!Kalman!es!uno!de!los!filtros!más! adaptables!y!precisos!sin!sacrificar!la!rapidez!de!respuesta,!destacando!la!gran!capacidad! de!cómputo!paralelo!en!comparación!con!su!bajo!costo!en!desarrollo.!Esto,!sumado!con! la!tendencia!general,!tanto!en!numerosos!trabajos!y!tesis!como!en!redes!sociales!de! investigación! como! ResearchGate! a! usar! Kalman! para! los! sistemas! de! navegación! inerciales!y,!en!concreto,!algoritmos!de!fusión!de!sistemas!integrados!y!estimación!de! posición!y!velocidad,!confirman!la!elección!de!Kalman!como!el!algoritmo!que!constituirá! la!base!de!la!resolución!del!problema.! ESTUDIO!DEL!FILTRO!KALMAN!Y!SU!BASE!MATEMÁTICA! Antes! de! poder! realizar! ninguna! implementación,! fue! necesaria! una! documentación! exhaustiva!acerca!del!filtro!Kalman.!Esto!implica!el!estudio!de!la!base!matemática!que! subyace!en!el!filtro!y!la!adquisición!de!conceptos!matemáticos!previos!necesarios!para! la!comprensión!de!Kalman,!para!lo!que!fue!necesario!la!experimentación!y!simulación! de!pequeños!ejemplos!en!entornos!matemáticos!como!Octave!y!Matlab.!! Para! este! propósito,! la! empresa! proporcionó! material! teórico! adquirido! para! la! documentación!de!investigaciones!previas!sobre!el!filtro!Kalman!y!su!aplicación!a!los! sistemas!de!navegación.!Concretamente,!se!trata!la!Navegación!Inercial!con!secciones! que!explican!el!filtro!Kalman,!los!diferentes!tipos!y!algunas!mejoras!e!implementaciones! concretas.!Gran!parte!de!la!base!teórica!de!esta!sección!y!secciones!futuras!está!basada,! a! no! ser! que! se! especifique! lo! contrario,! está! basada! en! este! material,! que! se! correspondería!con!las!entradas![1]!y![2]!de!la!Bibliografía:!Robert!M.!Rogers!(2007)!y! Mohinder!S.!Grewal,!Lawrence!R.!Weill,!Angus!P.!Andrews!(2007).! Además,!se! ha! realizado! un! trabajo! de!búsqueda!e! investigación! de! documentación! académica! sobre! Kalman! básico! para! comprenderlo! mejor! y! adquirir! el! vocabulario! específico!que!se!maneja,!así!como!nomenclaturas,!versiones!y!tipos!de!implementación! del!mismo.!Esta!documentación!incluye!principalmente!investigaciones,!tesis!doctorales! y!trabajos!de!fin!de!grado!o!de!master!relacionados!con!aplicaciones!de!Kalman,!entre! otros.! A!la!hora!de!comprender!el!funcionamiento!del!filtro!Kalman!es!necesario!saber!que!se! basa!en!el!procesamiento!de!mediciones!ruidosas!de!un!sistema!lineal!perturbado!por! ruido!aleatorio!Gaussiano!a!fin!de!estimar!su!estado!interno.!Así,!Kalman!es!capaz!de! ! ! 27! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial resolver! de! forma! óptima! el! problema! de! estimar! el! estado! interno! de! un! sistema! estocástico!mediante!la! utilización!únicamente! de!las! salidas!del!sistema,!que!serán! medidas!relacionadas!con!los!estados!internos.!(Dematties!&!Iglesias,!2012)! Para!que!el!filtro!pueda!llevarse!a!cabo,!deben!cumplirse!las!siguientes!condiciones!en! el!sistema:! • El!sistema!deberá!ser!LTV!(Lineal!Variante!en!el!Tiempo).! • Los! ruidos! de! proceso! y! medición! deberán! ser! ruidos! blancos! gaussianos! de! media!nula!y!sin!correlación!entre!sí.! Para! este! tipo! de! sistemas! con! esas! condiciones,! puede! demostrarse! que! existe! un! estimador!óptimo!en!relación!a!la!minimización!del!MSE!(error!cuadrático!medio)!que,! además,!es!lineal.!Este!constituiría!el!Filtro!Kalman.!(Dematties!&!Iglesias,!2012)! Una!primera!aproximación!al!funcionamiento!del!FK!(Filtro!Kalman)!sería!el!mostrado! en!la!Ilustración!8.!! ! ! ! Ecuaciones de predicción Ecuaciones de actualización Medidas Estado Estimado Ilustración&8:&Esquema&de&funcionamiento&del&Filtro&Kalman& ! ! 28! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial Como! puede! observarse,! el! FK! funciona! mediante! dos! procesos:! actualización! y! predicción.!De!forma!continua,!Kalman!está!llevando!a!cabo!un!proceso!de!predicción!a! partir! de! los! datos! de! un! vector! de! variables! que! permiten! que,! a! partir! de! las! condiciones!iniciales,!se!pueda!propagar!la!solución!del!estado!estimado!en!el!tiempo.! En!este!paso!se!va!actualizando!la!estimación!y!la!incertidumbre!estimada!teniendo!el! cuenta!los!efectos!inciertos!del!sistema!entre!mediciones.! Cada!vez!que!se!obtiene!una!nueva!observación!o!medición!se!lleva!a!cabo!el!proceso! de! actualización! de! modifica! las! variables! implicadas! en! proceso! combinando! el! conocimiento!anterior!contenido!en!las!variables!y!el!proceso!de!medición.!Así,!en!este! paso,! al! corregir! la! estimación! en! base! a! la! medición,! se! actualiza! y! se! reduce! la! incertidumbre!y!se!va!mejorando!el!estado!estimado!obtenido!hasta!ese!momento.!! Con!esto,!Kalman!consigue!ir!mejorando!su!estado!estimado!o!predicción!con!la!llegada! de! nuevas! medidas! que! actualizan! una! serie! de! variables,! vectores! y! matrices! que! almacenan!el!conocimiento!de!los!estados!anteriores.!De!esta!forma,!la!predicción!va! mejorando!con!el!tiempo,!cada!vez!con!menor!incertidumbre!y!más!precisión.! Ahondando!en!el!funcionamiento!específico!del!filtro,!es!necesario!explicar!previamente! conceptos!íntimamente!relacionados!con!las!ecuaciones!de!actualización!y!predicción! que!caracterizan!el!FK:! • Vector! de! estado!(x):! El! vector! de! estado! contendrá! todas! las! variables! relevantes!a!la!hora!de!aplicar!el!FK!(relativas!a!cada!problema!específico)!que!se! corresponderán! con! aquellas! que! se! deseen! estimar,! eliminar! el! error,! etc.,! además!de!aquellas!variables!que!estén!relacionadas!con!estas!e!influyan!en!su! obtención!y!determinación.!! Este! vector! puede! comenzar! como! un! vector! nulo! y! es! el! que! se! usará! para! obtener! el! vector! de! estado! estimado! o! estimación! ( )! que! será! el! que! se! actualice!en!cada!etapa!y!que!se!corresponderá!con!la!estimación!de!x!de!máxima! probabilidad.! • Ganancia!Kalman!(K):!Manteniendo!una!estimación!de!la!incertidumbre!y!una! estimación!relativa!de!la!incertidumbre!de!los!sensores,!Kalman!combina!esa! información! óptimamente! para! minimizar! el! error! de! la! estimación.! Así,! la! ganancia!de!Kalman!es!una!matriz!óptima!de!pesos!que,!al!combinarla!con!los! ! ! 29! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial datos!nuevos!de!los!sensores!obtenidos!en!la!medición,!se!actualice!el!estado! estimado!a!partir!de!datos!estimados.! Esta!matriz!se!obtiene!como!una!solución!parcial!de!la!ecuación!de!Ricotti,!que! se!encargan!de!propagar!la!matriz!de!covarianza!y!tratan!la!incertidumbre.! • Matriz! de! Covarianza! (P):! ! La! matriz! de! covarianza! se! corresponde! con! la! estimación!de!la!incertidumbre!que,!utilizando!el!vector!de!estado!estimado,!se! logra! a! través! de! un! estimador! gaussiano! de! máxima! probabilidad.! Este! estimador!se!basará!en!la!obtención!del!argmax&de!una!función!de!densidad!de! probabilidad,!a!partir!de!la!cual!se!obtienen!las!ecuaciones!de!actualización!y! predicción!de!la!ganancia!de!Kalman.!! • Vector!de!medición!(z):!Vector!que!contiene!las!medidas!reales!de!los!sensores! recibidas!en!el!intervalo!de!tiempo!actual.! • Matriz!de!sensibilidad!en!la!medición!(H):!Es!una!matriz!de!sensibilidad!de!la! medición!que!define!la!relación!de!un!sistema!y!las!mediciones!que!pueden!ser! realizadas.!Así,!es!la!que!realiza!la!conversión!del!vector!de!estado!a!un!vector!de! medición:!z&=&H&*&x.! • Matriz!de!transición!de!estado!(A):!Es!la!matriz!que!describe!cómo!evoluciona!el! sistema! desde! el! estado! en! el! momento! inicial! x(t0)! hasta! el! estado! en! el! momento!actual!x(t)!en!el!intervalo![t0,t].!Esta!matriz!nos!sirve!para!obtener!el! estado!del!sistema!actual!a!partir!del!estado!anterior,!por!lo!que!es!esencial!para! la!fase!de!predicción!del!filtro.! • Matriz!de!covarianza!del!ruido!del!proceso!(Q):!Matriz!de!covarianza!del!ruido! o!error!estimado!del!proceso.!Esta!intervendrá!en!el!proceso!de!predicción!de!la! matriz!de!covarianza!P.! • Matriz!de!covarianza!del!error!de!la!medición!(R):!Matriz!de!covarianza!del!error! estimado! de! la! medición! a! partir! de! los! sensores.! Esta! intervendrá! en! la! determinación!de!la!ganancia!de!Kalman.! Una!vez!se!han!definido!estos!conceptos!básicos,!se!puede!comenzar!a!explicar!el! algoritmo!con!sus!correspondientes!fórmulas,!paso!a!paso,!como!puede!verse!en!la! Ilustración!9.! ! ! 30! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! ! ! ! ! ! Establecer valores iniciales: Predecir el estado estimado y la matriz de covarianza: Computar la ganancia de Kalman: Computar la estimación: Computar el error en la covarianza: Medida Zk Estimación Ilustración&9:&Funcionamiento&del&Algoritmo&del&Filtro&Kalman ! ! 31! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial 1. El! primer! paso! sería! establecer! los! valores! iniciales! del! vector! de! estado! estimado! y! la! matriz! de! covarianza.! En! ocasiones,! no! tenemos! datos! ni! información! sobre! la! covarianza.! En! estos! casos,! los! filtros! Kalman! se! inicializan!realizando!una!estimación!sin!base!del!estado!inicial.!Esto!no!es!lo! más!deseable,!puesto!que,!de!forma!natural,!la!estimación!se!precisa!con!la! mayor!prontitud!posible,!así!que,!lo!deseable!es!que!ni!siquiera!las!primeras! estimaciones!se!vean!afectadas!por!esta!“suposición”!sobre!el!primer!estado.! 2. El! siguiente! paso! sería! llevar! a! cabo! la! predicción! del! estado! estimado! (primera!ecuación),!como!se!explicó!anteriormente,!a!través!de!la!matriz!de! transición!de!estado.!De!esta!forma,!obtenemos!la!estimación!a!priori!(antes! de!actualizar!con!la!medición)!del!estado!k-ésimo!a!partir!de!la!matriz!de! transición!y!una!estimación!a!priori!del!estado!anterior.! También!en!este!paso,!se!lleva!a!cabo!la!predicción!de!la!matriz!de!covarianza! (segunda! ecuación).! Esto! se! realiza! de! forma! similar! a! lo! descrito! anteriormente!para!la!predicción!del!estado!estimado,!pero!de!forma!más! compleja.!Así,!como!anteriormente,!usamos!los!parámetros!de!la!matriz!de! transición!(comportamiento!dinámico!conocido!del!sistema)!pero,!en!este! caso,! también! utilizamos! en! la! predicción! la! información! de! la! matriz! de! covarianza!del!ruido!de!perturbación!dinámica!Q!para!calcular!como!varía!en! el!tiempo!la!matriz!de!covarianza!P.! 3. A! continuación,! se! calcula! la! ganancia! de! Kalman! que,! como! se! explicó! anteriormente,!parte!del!estimador!anteriormente!descrito!y,!por!tanto,!su! fórmula!se!obtiene!de!variaciones!del!mismo,!junto!al!requisito!de!fijar!que! las! funciones! de! densidad! de! probabilidad! de! los! ruidos! blancos! sean! normales!y!de!media!nula.!(Dematties!&!Iglesias,!2012)! Para!este!cálculo!de!la!ganancia!intervienen!la!matriz!de!ruido!en!la!medición! y!la!matriz!de!sensibilidad!de!la!medición.!Esto!se!debe!a!que!estas!son!las! matrices! que! intervendrán! directamente! en! la! medición! y,! por! tanto,! deberán!utilizarse!de!forma!directa!o!indirecta!(a!través!de!la!ganancia)!en!el! cálculo!de!la!estimación!en!el!paso!siguiente!de!actualización.! 4. Cuando! obtenemos! una! medición! (vector! de! medición! z),! calculamos! la! estimación!del!estado!para!ese!instante!de!tiempo!a!partir!de!la!estimación! ! ! 32! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial a!priori!del!estado!calculada!en!pasos!previos!y!de!la!ganancia!de!Kalman!y,! por!último,!con!la!intervención!de!la!diferencia!entre!la!medición!obtenida!y! la!estimación!hasta!el!momento.! 5. El!último!paso!en!la!iteración!sería!la!actualización!y!corrección!de!la!matriz! de!covarianza.!Esto!se!hace!actualizando!la!matriz!de!covarianza!a!priori!con! la!información!de!la!ganancia!de!Kalman!y!la!matriz!de!sensiblidad.! Como!se!puede!observar!en!la!Ilustración!9,!el!algoritmo!del!FK!se!trata!de!uno!iterativo.! Por!tanto,!cuando!se!alcanza!el!último!paso,!se!vuelve!a!repetir!el!proceso!a!partir!del! segundo!punto!hasta!que!se!alcance!una!condición!de!parada,!que!podría!ser!un!número! de!iteraciones,!que!no!se!encuentren!más!medidas,!que!se!llegue!a!un!tiempo!máximo,! etc.! ! !!!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 33! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! CAPÍTULO!3:!Diseño! & En&el&tercer&capítulo&se&tratará&el&estudio&de&las&alternativas&de&implementación,&tanto& desde&el&punto&de&vista&de&tecnologías&y&plataformas&como&desde&el&punto&de&vista&de& búsqueda& e& investigación& de& librerías& y& código& abierto.& Finalmente,& será& necesario& documentar&el&uso&de&la&librería&y&de&las&funcionalidades&relativas&a&la&aplicación.& ! Estudio!de!las!alternativas!de!implementación! Una!vez!hemos!adquirido!los!conocimientos!teóricos!previos!fruto!de!la!investigación!y! documentación,! debemos! proceder! a! investigar! las! diferentes! alternativas! de! implementación!del!filtro!y!diseñar!la!solución!deseada,!con!sus!respectivos!escenarios! de!prueba.!! TECNOLOGÍAS!Y!PLATAFORMAS! Teniendo! en! cuenta! las! dimensiones! y! características! del! problema,! así! como! los! recursos!y!necesidades!de!la!empresa,!se!lleva!a!cabo!una!investigación!de!las!diferentes! implementaciones!posibles!de!la!alternativa!teórica!seleccionada!como!resolución!del! problema,!el!Filtro!Kalman.! En!primer!lugar,!fue!necesario!establecer!el!lenguaje!de!programación!en!que!iba!a! desarrollarse! el! trabajo.! La! empresa! necesitaba! integrar! el! código! en! software! ya! existente!y,!para!favorecer!la!compatibilidad!y!la!migración!del!mismo,!el!programa!final! debería! estar! desarrollado! en! C++! o! tener! la! posibilidad! de! generar! código! en! ese! lenguaje!a!partir!del!lenguaje!en!que!esté!desarrollado.!! Esto! se! debe! a! que! todo! el! código! de! la! empresa! en! los! diferentes! dispositivos! y! hardware!se!integra!y!migra!gracias!al!uso!de!QT,!del!que!hacen!uso!mediante!un!addin!en!Visual!Studio,!siendo!este!el!entorno!de!desarrollo!establecido!como!estándar!en! la!empresa.!Por!tanto,!este!nuevo!código,!indiferentemente!de!las!tecnologías!usadas!y! las!plataformas!empleadas!para!ello,!debe!ser!portable!a!C++!para!su!posterior!uso!en! ! ! 34! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial Visual!Studio.!Este!IDE!con!QT!y!las!librerías!inerciales!necesarias,!fueron!usados!en!la! parte!de!datos!reales!para!el!desarrollo!de!programas!de!lectura!de!IMU!y!GPS!que! permitieron!la!obtención!de!los!datos!reales!con!los!que!trabajar!y!hacer!simulaciones! en!la!parte!final!del!trabajo.! BÚSQUEDA!E!INVESTIGACIÓN!DE!LIBRERÍAS!Y!CÓDIGO!ABIERTO! Debido! a! los! requisitos! de! lenguaje,! se! buscó! código! abierto! y! librerías! en! C++! que! implementaran! el! filtro! Kalman.! En! esta! búsqueda! se! encontraron! numerosas! implementaciones! del! Filtro! Kalman! y! el! Filtro! de! Kalman! Extendido! (se! usa! para! sistemas! no! lineales).! Sin! embargo,! ninguna! de! estas! implementaciones! permitía! la! integración!del!INS!y!el!GPS.! Una!búsqueda!más!exhaustiva!y!concreta!de!código!abierto!para!la!implementación!de! la!integración!del!sistema!de!navegación!dio!lugar!a!resultados!para!su!uso!en!C++,!pero! estos! requerían! numerosas! librerías! de! cálculo,! sistemas! de! referencia,! transformaciones!terrestres,!etc.!que!hacían!el!código!confuso,!lento!y!pesado.!Además,! muchas!de!las!aplicaciones!encontradas!actuaban!con!modelos!y!tecnologías!concretas! y!no!eran!aplicables!a!un!caso!más!general,!ni!daban!pie!a!la!generalización,!por!estar! tan!ligadas!al!problema!concreto.!! Todas! las! librerías! y! aplicaciones! encontradas! hasta! el! momento! tampoco! ofrecían! solución!al!problema!de!estimación!del!heading,!por!lo!que!se!amplió!la!búsqueda!para! incluir!otros!lenguajes!de!programación!y!otras!tecnologías.! Como!resultado!de!esta!nueva!búsqueda,!encontramos!el!proyecto!“Open&source&aided& inertial&navigation”¶!Matlab.!Este!proyecto!incluye!un!conjunto!de!ejemplos!de!uso! de! Kalman! para! la! navegación! inercial! de! código! abierto! colaborativo,! además! de! numerosas!funciones!auxiliares!de!las!que!se!hace!uso!en!los!ejemplos!y!que,!además,! individualmente,!proporcionan!resolución!a!problemas!de!la!navegación!inercial!como! pueden! ser:! cambios! de! marcos! de! referencia,! funciones! de! transformación,! generadores!de!ruta,!funciones!de!inicialización!y!calibración,!modelado!de!error!de!la! IMU,!etc.! Dentro!de!este!repositorio!de!código!abierto!cuyo!enlace!y!acceso!se!correspondería!con! la!entrada![3]!de!la!bibliografía,!se!encuentran!varios!ejemplos!diferentes:! ! ! 41! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial Una!vez!se!tienen!estas!variables!iniciales!del!sistema,!comenzamos!a!inicializar! los!parámetros!del! filtro.!Así,!inicializamos!el!vector!de!error!de!la! IMU,!que! Kalman!utilizará!para!estimar!más!tarde.!Seguidamente,!inicializamos!el!INS,!con! sus! parámetros! de! posición,! velocidad! y! orientación,! llevando! a! cabo! las! correcciones! correspondientes,! así! como! las! transformaciones! necesarias,! a! través!de!las!DCM!nombradas!anteriormente.! Antes!de!comenzar!a!aplicar!el!FK,!es!necesario!puntualizar!que!el!algoritmo! utilizado!lleva!a!cabo!un!escalado!de!los!resultados!y,!por!tanto,!se!definen!las! variables!constantes!de!escala!haciendo!uso!de!las!funciones!auxiliares!antes! llevar!a!cabo!el!bucle!principal!del!filtro.!! Antes!de!comenzar!las!iteraciones!también!se!define!la!matriz!de!covarianza!del! filtro!basada!en!los!errores!definidos!y!los!parámetros!iniciales!de!definición!del! INS,!además!de!las!constantes!de!escala.! Una!vez!tenemos!la!matriz!de!covarianza,!iniciamos!los!acumuladores!y!las!flags& que!se!usan!dentro!el!bucle!iterativo!y!de!Kalman!y,!tras!leer!los!primeros!datos! de!los!archivos,!comienza!el!bucle.! Dentro!del!bucle,!que!continuará!iterando!mientras!existan!medidas!de!IMU!que! leer,! se! actualizan! las! medidas! eliminando! el! error! estimado,! se! actualiza! el! contador! de! propagación! en! cada! iteración! y! se! obtienen! las! matrices! de! transformaciones.!! Si!ocurre!que!las!medidas!de!GPS!e!IMU!están!sincronizadas,!es!decir,!que!esa! medida!en!concreto!tiene!el!mismo!timestamp&o!marca!temporal!o!si!ocurre!que! el!contador!de!propagación!llega!al!valor!33!definido!con!anterioridad,!se!llevará! a!cabo!todo!el!proceso!de!actualización!y!estimación!del!filtro!Kalman.!De!lo! contrario,!se!continuarán!leyendo!valores!hasta!que!esto!ocurra.!! Cuando! llegamos! al! caso! descrito! anteriormente,! procedemos! a! propagar! la! covarianza.!Esto!es!necesario!porque,!desde!un!enfoque!Bayesiano,!el!filtro!debe! propagar! la! densidad! de! probabilidad! condicional! de! acuerdo! a! los! conocimientos! que! provienen! de! los! dispositivos! de! medición.! Además,! se! forman! los! modelos! discretos! de! tiempo! del! modelo! de! navegación! con! las! funciones!auxiliares!y!se!obtienen!matrices,!como!la!matriz!Q&que!se!utilizarán! ! ! 42! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial para!la!fase!de!predicción!del!filtro.!Esta!fase!se!realiza!en!función!del!modo!de! funcionamiento!que,!como!se!nombró!anteriormente,!puede!ser!coarse,!es!decir,! menos! preciso! o! puede! ser! fine,! que! tiene! más! refinamiento.! Además,! se! actualiza! el! vector! de! estados! de! error,! que! es! parte! de! la! fase! del! proceso! predictivo.!! ! Ilustración&12:&Código&-&Predicción&de&estado&estimado&y&covarianza& Cuando!el!filtro!se!encuentra!con!una!nueva!medición!de!GPS!que!procesar,! dependiendo!del!modo!de!funcionamiento!en!que!se!encuentre,!establece!las! matrices!de!actualización!con!mayor!o!menor!precisión!para!el!paso!posterior.! A!continuación,!se!computa!la!ganancia!de!Kalman,!para!lo!cual,!primero,!deben! definirse!los!valores!de!las!matrices!implicadas!en!la!ecuación!en!función!de!la! posición!medida!con!el!GPS.!Una!vez!obtenidas!esas!matrices,!se!computa!la! ganancia!de!Kalman!K.! ! Ilustración&13:&Código&-&Cómputo&de&la&ganancia&de&Kalman& Finalmente,! se! lleva! a! cabo! la! fase! de! actualización! en! que! se! computa! la! estimación!y!la!covarianza!con!su!error.!De!nuevo,!la!precisión!con!la!que!se!trata! el! heading&depende! del! modo! de! funcionamiento! y! se! utilizan! las! funciones! auxiliares!para!obtener!las!matrices!de!transformación,!necesarias!en!parte!del! proceso.! ! ! 43! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! Ilustración&14:&Código&-&Actualizacion&de&la&estimación&y&la&covarianza& Una!vez!se!ha!completado!el!bucle!de!nueva!medición!de!GPS,!se!procede!a!leer! un! nuevo! dato! para! la! siguiente! iteración! y! a! cambiar! de! modo! de! funcionamiento!si!fuese!necesario.! Cuando! volvemos! al! bucle! principal,! se! realizan! conversiones! de! sistemas! de! referencia!con!las!matrices!de!transformación!obtenidas!a!través!de!las!funciones! principales! y! de! las! ecuaciones! de! Robert! M.! Rogers! (2007).! Además,! se! transforman!los!datos!y!se!obtiene!el!error!en!comparación!con!la!ruta!absoluta! para!almacenarlo!en!los!archivos!de!resultados.!Finalmente,!se!lee!un!nuevo!dato! y!continúa!el!bucle!hasta!completar!el!registro!de!datos!de!la!IMU.! Para!visualizar!los!datos,!la!librería!incluye!una!figura!en!Matlab!que!muestra!la! trayectoria!sin!errores!y!la!trayectoria!estimada,!para!comprobar!visualmente!la! bondad! de! la! estimación.! También! incluye! una! gráfica! de! comparación! de! la! velocidad!ideal!y!la!estimada!y!una!gráfica!comparativa!que!muestra!el!heading& real!con!el!heading&estimado!para!ver!el!error!con!un!golpe!de!vista.! • sys_path_largeheading:! Esta! función! es! la! definición! de! los! parámetros! del! sistema! para! la! función! example_largeheading0 por! lo! que! incluirá! todas! las! inicializaciones!necesarias!para!el!sistema.!! Así,! se! definen! las! variables! temporales! de! incremento! de! tiempo! y! algunas! variables! para! conversión! de! unidades! y! se! comienzan! las! definiciones.! Es! necesario,!para!esto,!inicializar!los!parámetros!de!los!modelos!de!error!de!la!IMU:! los!modelos!de!error!del!acelerómetro!y!del!giróscopo.!! ! ! 44! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial Estos!modelos!de!error!se!basan!en!un!modelo!de!error!de!espacio!de!estados! definidos!por!los!parámetros!A,!B,!C,!D!y!sP!que!rigen!las!ecuaciones:! (Salida0del0sensor)0=0u0+0Cx0+0Dv&donde!el!error!del!sensor!sería:!x_dot0=0Ax0+0Bw& y&donde!u&sería!la!variable!cinemática!que!se!espera!medir!con!el!sensor!y!dónde! Dv&sería!el!ruido!blanco!aditivo.! El!funcionamiento!en!el!sistema!de!este!modelo!de!error!en!el!sistema!se!ve! reflejado! en! el! siguiente! esquema! realizado! con! la! herramienta! Simulink! de! Matlab.! ! Ilustración&15:&Esquema&del&modelo&de&error& Una!vez!se!han!definido!los!parámetros!de!ambos!modelos!de!error,!se!inicializan! los!valores!y!las!definiciones!de!error!de!posición,!velocidad!y!orientación!que! definirán!el!estado!inicial!del!sistema,!tanto!para!la!IMU!como!para!el!GPS! Una! vez! se! han! llevado! a! cabo! estas! definiciones,! es! necesario! generar! la! trayectoria.!Los!datos,!archivos!y!demás!atributos!de!la!trayectoria!se!generarán! mediante! la! función! auxiliar! PathGen_v0020 pero! esta,! como! parámetro! de! entrada,! precisa! de! una! matriz! de! definición! de! la! trayectoria! (mot_def)! que! definirá! la! dirección,! duración! y! ángulos! de! los! segmentos! que! componen! la! trayectoria.!Es!decir,!primero!es!necesario!definir!la!forma!de!la!trayectoria!antes! de!poder!generarla.! La!definición!de!esta!matriz!presentó!ciertos!problemas!a!la!hora!de!llevar!a!cabo! la!investigación!de!la!librería!y,!posteriormente,!en!el!desarrollo,!pues!está!muy! mal!documentada!y!el!significado!físico!de!los!parámetros!tuvo!que!ser!deducido! ! ! 45! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial a! base! de! experimentación! y! cálculos! de! aproximación! a! casos! reales.! Como! resultado! de! todo! este! proceso! experimental,! se! obtienen! las! unidades! y! significado!de!los!parámetros!que!componen!la!matriz,!como!se!documentará!a! continuación.! El!relleno!de!la!matriz!de!definición!de!la!trayectoria!se!hace,!por!facilidad,!fila!a! fila,!de!tal!forma!que!cada!fila!representa!un!segmento!de!la!trayectoria!final.! Cada!fila!vendrá!definida!por!seis!valores,!de!tal!forma!que!la!matriz!final!tendría! esta!estructura:! o mot_def(:,1)&à!Tipo!de!movimiento!o!modo!de!funcionamiento.& o mot_def(:,2:5)&à!Parámetros!del!movimiento.& o !mot_def(:,6)&à!Tiempo!máximo!para!el!segmento.& En!primer!lugar,!la!matriz!mot_def&presenta!cinco!modos!de!funcionamiento,!que! se!seleccionarán!con!el!primer!elemento!del!vector!de!cada!fila:! • Modo!1!: Modo! que! permite! determinar! las! entradas! directamente,! siendo!estas!las!medidas!iniciales!en!el!momento!t0.! • Modo!2!: Modo! que! permite! determinar! los! valores! absolutos! (no! relativos)!de!orientación!y!velocidad!a!alcanzar.! • Modo!3!: Modo! que! permite! determinar! los! cambios! relativos! de! orientación!y!velocidad.! • Modo!4!: Modo! que! permite! determinar! la! orientación! absoluta! y! la! velocidad!relativa.! • Modo!5!: Modo! que! permite! determinar! la! orientación! relativa! y! la! velocidad!absoluta.! En! cuanto! a! los! parámetros! del! movimiento,! estos! varían! según! el! modo! de! funcionamiento!y!siguen!la!siguiente!estructura:! o mot_def(:,2:4)0[Modo!1]0 à !Parámetros![x,!y,!z]!de!la!velocidad!angular! del!heading&en!rad/s.! ! ! 46! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial o mot_def(:,2:4)0 [Modos! 2:5] à !Parámetros! [roll,& pitch,& heading]! del! ángulo!final!a!obtener!tras!el!tiempo!definido!en!radianes.! o mot_def(:,5)0[Modo!1]! à !Parámetros![x,!y,!z]!de!la!aceleración!en!m2/s.! o mot_def(:,5)0[Modos!2!y!5]! à !Parámetros![x,!y,!z]!de!la!velocidad!en!m/s.! o mot_def(:,5)0[Modos!3!y!4]! à !Parámetros![x,!y,!z]!del!incremento!en!la! velocidad!en!m/s.! En! cuanto! al! tiempo! máximo! para! la! obtención! de! las! medidas! definidas! anteriormente,!este!se!expresará!en!segundos!y!es!necesario!tener!en!cuenta! que!este!no!es!un!tiempo!constante.!Es!decir,!este!tiempo!se!define!como!un! periodo!temporal!para!alcanzar!las!medidas!pero,!en!caso!de!obtenerse!antes,!el! tiempo!real!del!segmento!puede!ser!menor!y,!en!caso!de!que!el!tiempo!sea! insuficiente!para!obtener!las!medidas,!estas!no!alcanzarán!el!valor!deseado.!Por! tanto,!es!preciso!comprobar!posteriormente!mediante!cálculos!a!partir!de!los! datos!de!trayectoria,!que!esta!posee!las!características!temporales,!de!distancia! y!de!movimiento!deseadas.! Con!esta!guía!de!referencia!del!diseño!de!trayectorias!obtenida!a!través!de!la! práctica!se!puede!comprender!el!ejemplo!de!la!librería,!que!define,!mediante! cinco! segmentos,! una! trayectoria! en! forma! de! “S”! girada! con! ángulos! pronunciados.! También,! este! conocimiento! nos! permitirá,! posteriormente,! diseñar!otras!trayectorias!diferentes!en!la!fase!de!desarrollo.! Tras! generar! la! trayectoria,! se! añaden! los! errores! a! la! IMU! y! al! GPS! para! la! generación! de! datos! más! parecidos! a! los! que! se! obtendrían! en! la! vida! real,! mediante! funciones! auxiliares.! Seguidamente,! se! calculan! los! errores! en! las! medidas!de!posición,!velocidad!y!orientación!a!partir!de!las!definiciones!iniciales! de! error,! para! lo! cual! es! necesario! utilizar! matrices! de! transformaciones! en! algunos!casos.!! Finalmente,! se! unifican! estas! medidas! iniciales! -con! el! error! añadido-! en! un! vector!que!será!el!resultado!obtenido!de!esta!función!y,!por!tanto,!lo!que!se! obtendrá!en!el!programa!principal!como!inicialización!del!sistema.!! ! ! 47! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial Es!necesario!apuntar!que!el!heading,!por!su!carácter!especial!en!esta!aplicación! se!trata,!también,!de!forma!individual!como!wander¶!las!inicializaciones!y! para!todo!el!proceso!del!Filtro!Kalman.! Fruto! de! un! proceso! largo! y! exhaustivo! de! investigación,! documentación! y! experimentación!con!el!código,!obtenemos!nociones!avanzadas!sobre!funcionamiento! de!la!librería!que!vamos!a!usar,!así!como!nociones!básicas!de!los!principios!físicos!y! matemáticos!que!subyacen!en!su!funcionamiento.! ! ! ! ! ! 48! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! CAPÍTULO!4:!Datos!Sintéticos!! ! En&el&cuarto&capítulo,&a&partir&del&ejemplo&seleccionado&como&alternativa&de&resolución& de& la& librería& descrita& anteriormente,& se& desarrollará& un& prototipo& basado& en& la& simulación&de&modelos&de&trayectorias&generadas&sintéticamente,&que&llevará&a&cabo& pruebas&sobre&diversos&parámetros&del&sistema¶&analizar&su&impacto&sobre&la&bondad& de&la&estimación.&Así,&se&diseñará&una&aplicación&de&análisis&de&datos&sintéticos&mediante& el&diseño&de&los&escenarios&y&los&casos&de&prueba,&el&diseño&de&los&experimentos&a&realizar& y&la&evaluación&de&los&resultados.& & Diseño!e!implementación:!! Aplicación!de!análisis!de!datos!sintéticos! Basándonos!en!el!ejemplo!LargeHeading!de!la!librería,!creamos!un!entorno!de!pruebas! basadas!en!trayectorias!sintéticas!para!analizar!el!efecto!de!los!elementos!del!sistema!y! los!parámetros!que!influyen!en!la!estimación!de!un!heading&inicial!desconocido!o!con! un!nivel!de!corrección!en!la!estimación!muy!bajo.! ! Diseño!de!los!escenarios!y!casos!de!prueba! En! primer! lugar,! será! necesario! definir! los! entornos! y! los! casos! de! prueba! que! se! analizarán.!Sin!embargo,!antes!de!definir!las!pruebas!a!realizar,!es!necesario!establecer! una!serie!de!condiciones!que!se!mantendrán!fijas!durante!el!desarrollo!de!las!mismas.! Como! se! observó! al! comenzar! a! realizar! pruebas! con! la! librería! para! comprobar! la! viabilidad!de!la!librería,! el!número!de!muestras!es!un! elemento!determinante!en!la! calidad!de!la!estimación.!Como!es!de!esperar!por!la!tendencia!a!converger!de!Kalman!y! por!la!estabilidad!general!de!los!sistemas!predictivos,!cuanto!mayor!sea!el!número!de! muestras!a!computar,!mejor!será!la!estimación.!! ! ! 49! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial Como!no!es!un!factor!controlable!en!un!caso!práctico,!pues!lo!deseable!sería!que!el! programa!funcionase!en!tiempo!real,!este!factor!no!influirá!en!el!estudio!de!la!influencia! los!parámetros.!Para!ello,!se!definen!todos!los!escenarios!de!prueba!con!un!número!de! muestras!del!mismo!orden!y!atendiendo!a!las!condiciones!del!escenario!real.! Teniendo!en!cuenta!la!naturaleza!de!la!actualización!y!la!predicción!que!lleva!a!cabo! Kalman! y! a! la! integración! de! los! sistemas! de! navegación! inerciales,! se! llega! a! la! conclusión!de!que!un!conjunto!de!factores!susceptibles!de!ser!considerados!como!casos! de! prueba! serían! los! errores! del! sistema.! Es! decir,! es! indispensable! comprobar! la! estabilidad!de!la!estimación!ante!un!aumento!en!los!errores!desde!diferentes!frentes.! Estos!errores!que!influyen!en!el!sistema!serían,!por!un!lado,!los!errores!del!GPS!y,!por! otro,!los!errores!de!la!IMU,!incluyendo!los!errores!de!giróscopo!y!acelerómetro.!Además,! en!la! generación! de!estos! errores!en! la! trayectoria!sintética! se!utiliza!un! generador! aleatorio,!por!lo!que!la!semilla!también!debería!cambiarse!a!lo!largo!de!las!pruebas!para! que!sea!completamente!efectivo!el!aumento!en!los!errores!del!sistema.!! Estos!errores!del!sistema!se!estudiarán,!de!forma!separada,!para!cada!una!de!las!tres! trayectorias!desarrolladas!como!escenarios!de!prueba.!Todas!estas!trayectorias,!como! se! indicó! al! inicio,! presentarán! unas! condiciones! iniciales,! que! serán! condiciones! temporales,!de!distancia!y!velocidad!y,!por!supuesto,!de!frecuencia!de!muestreo.!! Así,!todas!las!trayectorias!presentan!las!siguientes!condiciones:! • !Tiempo!total!de!recorrido!del!orden!de!5!minutos.! • Distancia!total!recorrida!del!orden!de!10!kilómetros.! • Velocidad!media!durante!la!trayectoria!del!orden!de!30!m/seg.! • Incremento!de!tiempo!entre!muestras!reales!de!0.01!segundos.! • Incremento!de!tiempo!entre!estimaciones!de!0.17!segundos.! Estas!condiciones!se!han!seleccionado!por!ser!condiciones!aceptables!para!un!vuelo!de! calibración! de! un! helicóptero.! Temporalmente,! la! calibración! debe! durar! el! menor! tiempo!posible!y,!puesto!que!los!archivos!de!vuelo!pueden!tener!una!duración!de!horas,! cinco!minutos! es! una!medida! lo!suficientemente!pequeña! para!esas! extensiones!de! archivo!y,!a!la!vez,!es!tiempo!más!que!suficiente!para!la!calibración!del!vehículo.!! ! ! 50! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial En!cuanto!al!resto!de!condiciones,!estas!se!asemejan!a!las!de!un!vuelo!cualquiera!en!el! vehículo!aéreo!cuyas!velocidad!no!son!demasiado!altas!por!el!carácter!de!medición!que! presenta!el!vuelo.! La! uniformidad! en! las! condiciones! de! las! trayectorias! puede! observarse! de! la! información! que! proporciona! el! programa! de! cada! una! de! las! trayectorias.! Así,! tendríamos!la!información!de!cada!una!de!las!trayectorias!a!continuación:! • Trayectoria!1! INFORMACIÓN TRAYECTORIA Tiempo total = 313.88 seg Distancia total recorrida = 9028.41 m Velocidad media = 28.76 m/seg Inc. tiempo entre muestras reales = 0.01 seg Inc. tiempo entre estimaciones = 0.17 seg • Trayectoria!2! INFORMACIÓN TRAYECTORIA Tiempo total = 300.00 seg Distancia total recorrida = 12721.71 m Velocidad media = 42.41 m/seg Inc. tiempo entre muestras reales = 0.01 seg Inc. tiempo entre estimaciones = 0.17 seg • Trayectoria!3! INFORMACIÓN TRAYECTORIA Tiempo total = 288.00 seg Distancia total recorrida = 8025.70 m Velocidad media = 27.87 m/seg Inc. tiempo entre muestras reales = 0.01 seg Inc. tiempo entre estimaciones = 0.17 seg ! En!cuanto!a!la!naturaleza!de!las!trayectorias,!se!han!creado!tres!escenarios!diversos!a!la! vez!que!cercanos!a!un!ejemplo!práctico!de!vuelo.!Como!puede!verse!en!la!Ilustración!16,! las!trayectorias!creadas!serían!las!siguientes:! ! ! 57! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! Diseño!e!implementación!del!prototipo! Para!el!desarrollo!del!prototipo!que!lleva!a!cabo!las!pruebas!automatizadas!se!usó!como! base!el!código!de!ejemplo!de!la!librería,!pero!el!resultado!final!difiere!en!gran!medida! del!original.!! La! función! encargada! de! llevar! a! cabo! y! dirigir! el! desarrollo! de! las! pruebas! sería! LargeHeading_Evaluation,!cuyo!diagrama!básico!de!funcionamiento!sería!el!mostrado! en!la!Ilustración!20.!Este!programa!será!el!encargado!de!mostrar!el!menú!de!selección! de!trayectoria!y!de!definir!los!parámetros!iniciales!a!partir!de!esta!trayectoria!con!la! función!init_config.!! Esta!función!de!inicialización,!además!de!definir!los!parámetros!iniciales!del!sistema!de! forma! análoga! a! la! función! de! la! librería! explicada! con! anterioridad,! agrupa! los! parámetros!que!intervienen!en!dos!estructuras!diferenciadas:!sysConfig&y!paramConfig.! Así,!sysConfig&tendrá!los!parámetros!del!sistema!usados!en!la!inicialización!y!para!las! observaciones!y!definiciones!del!sistema!de!navegación!y!paramConfig&contendrá!los! parámetros! de! los! modelos! de! error! que,! en! este! caso,! solo! incluyen! los! de! los! acelerómetros! y! giróscopos! de! la! IMU.! Con! estas! dos! estructuras! se! tiene! la! configuración!del!sistema!en!cada!momento.! Tras!la!definición!de!los!parámetros!iniciales,!se!define!la!trayectoria!en!función!de!la! opción!elegida!a!través!de!la!función!define_trayect&que,!de!acuerdo!a!como!se!explica! en! el! apartado! de! documentación! de! la! librería,! define! la! matriz! de! definición! del! movimiento,!ahora!llamada!trayect,!para!obtener!las!figuras!deseadas!en!el!recorrido.! Además,!esta!función,!dependiendo!de!la!trayectoria!seleccionada,!inicializa!las!matrices! que! contienen! los! valores! de! los! parámetros! como! se! muestran! en! las! tablas! del! apartado!anterior!para!su!posterior!uso!en!la!realización!de!pruebas.! Antes! de! realizar! las! pruebas,! se! guarda! la! configuración! inicial! de! sysConfig& y! paramConfig& puesto! que! en! las! pruebas! se! modificarán! y,! entre! pruebas! y! en! la! generación!de!trayectorias,!será!necesario!el!acceso!a!la!configuración!original.! A!continuación,!llevamos!a!cabo!la!batería!de!tests!con!las!funciones!tests_obsError¶! las!pruebas!del!GPS!y!con!tests_errorParams¶!las!pruebas!del!acelerómetro!y!el! giróscopo!de!la!IMU!explicadas!en!el!apartado!previo.! ! ! 58! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! Ilustración&20:&Datos&sintéticos&-&Diagrama&funcionamiento&LargeHeading_Evaluation& Las!pruebas!basadas!en!la!adición!de!error!en!el!GPS!mediante!la!variable!obs_error& basan!su!funcionamiento!en!el!esquema!de!la!Ilustración!21.!Tras!definir!el!vector!de! valores!multiplicativos! de! aumento!del! valor! de!la! variable,!se! lleva! a!cabo! el! bucle! principal.!Este!lleva!a!cabo,!para!cada!uno!de!los!valores!aumentados!de!la!variable! obs_error&a!probar,!31!iteraciones!variando!la!semilla!(sysConfig.rstat)!del!random!y! generando!el!nombre!apropiado!para! el!fichero! y!para!el!salvado!del! workspace&de! Matlab.!Para!que!eso!sea!efectivo,!será!necesario,!al!cambiar!los!parámetros!y!variables! del!sistema,!generar!una!trayectoria!nueva!con!la!modificación!del!sysConfig&y!realizar! una!estimación!con!el!nuevo!sysConfig&modificado!también.!! ! Ilustración&21:&Datos&sintéticos&-&Diagrama&funcionamiento&test_obsError& Tras!las!pruebas!del!GPS,!tienen!lugar!los!casos!de!prueba!de!los!parámetros!del!modelo! de!error!de!los!sensores!de!la!IMU.!Anteriormente!se!ha!definido!la!matriz!de!pruebas! testErrorParams&y!esta!se!va!recorriendo!fila!a!fila,!leyendo!los!valores!a!probar!de!cada! ! ! 59! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial parámetro!y!modificándolos!con!la!ayuda!de!funciones!auxiliares!como!modify_params& y!creando!los!nombre!de!archivos!necesarios!con!la!función!auxiliar!get_param_name.! Así,!como!en!las!pruebas!del!GPS,!se!llevan!a!cabo!31!iteraciones!con!diferentes!semillas! del!random!para!cada!uno!de!los!valores!de!los!parámetros!y,!con!estos!nuevos!estados! del!sistema!(sysConfig)!se!crean!las!trayectorias!con!trayect_gen,!que!llama!a!la!función! auxiliar!de!generación!de!trayectorias!y!añade!los!errores!a!la!IMU!y!al!GPS.!Finalmente,! se!lleva!a!cabo!la!estimación!para!cada!valor.! ! Ilustración&22:&Datos&sintéticos&-&Diagrama&funcionamiento&test_errorParams& Tras!realizar!las!pruebas,!se!unifican!los!resultados!para!mostrar!una!comparativa!de!los! diferentes!valores! de! los!parámetros.! Así,! se!llama! a! una!función! show_results& que,! como! su! nombre! indica,! se! encargará! de! mostrar! esas! ayudas! visuales! para! las! conclusiones.!! Como!puede!verse!en!la!Ilustración!23,!se!llama!a!results_errorParams&con!cada!uno!de! los!ficheros!que!unifican!los!resultados!de!los!errores!de!cada!parámetro.!Así,!cuando!se! llama!a!la!función,!esta!muestra!una!figura!de!distribución!de!datos!que!unifica!las!31! iteraciones!de!estabilidad!estadística!y!muestra!una!gráfica!con!todos!los!valores!del! parámetro!enfrentados!a!su!error!de!heading,!como!se!verá!más!extensamente!en!la! sección!de!resultados.!! Análogamente,!se!muestra!un!histograma!que!muestra!la!evolución!de!la!pendiente!del! heading!a!lo!largo!del!tiempo.!Esto!nos!permitirá!analizar!la!convergencia!del!ángulo.! ! ! ! 60! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial Una!vez!se!ha!mostrado!todo!el!soporte!gráfico!de!los!parámetros!de!error,!se!muestra! la!gráfica!relativa!a!las!pruebas!del!GPS.!Esta!será!análoga!a!una!función!individual!de!un! parámetro!del! modelo! de! error! y! la! obtención!de!la! misma! es! similar.! Se! verá! y!se! comentará!más!extensamente!en!la!sección!de!resultados.! ! Ilustración&23:&Datos&sintéticos&-&Diagrama&funcionamiento&show_results& En!cuanto!a!la!función!que!lleva!a!cabo!la!implementación!del!filtro!Kalman,!esta!es! análoga!a!la!definida!en!la!librería,!con!la!diferencia!de!que!se!redefine!el!tiempo!de! propagación!para!poder!acomodarlo!al!nuevo!intervalo!de!tiempo,!como!puede!verse! en!la!Ilustración!25.!Además,!al!final,!se!lleva!a!cabo!un!proceso!de!obtención!de!errores! estadísticos!para!obtener!resultados!numéricos!y!un!proceso!de!visualización!de!una! serie!de!gráficas!que!constituirán!un!apoyo!visual!de!los!datos.! Esto!se!lleva!a!cabo!a!través!de!las!funciones!show_save_results,&que!se!encarga!del! cálculo!y!el!almacenamiento!del!error!y!de!mostrarlo!en!consola,!y!show_graphs,!que!se! encarga!de!mostrar!figuras!de!comparación!de!trayectorias,!velocidades!y!ángulos.! La! función! show_save_results& calcula,! por! una! parte,! la! información! relativa! a! la! trayectoria,! mostrada! y! caracterizada! previamente.! Además,! para! definir! estadísticamente! el! problema,! es! necesario! el! cálculo! de! la! media! del! error! y! la! desviación! típica! del! mismo.! Para! ello,! es! necesario! interpolar! los! valores! de! la! trayectoria!sin!errores!con!la!trayectoria!estimada,!pues!las!diferencias!de!mediciones! son!notables.!Además,!es!preciso!ajustar!los!ángulos!tras!cada!cálculo!para!que!estos!se! encuentren! dentro! del! rango! de! 180º,! para! evitar! discordancias! en! las! gráficas! y! la! obtención!de!resultados!negativos!en!los!errores!de!los!ángulos.! A!la!hora!de!computar!los!errores,!se!lleva!a!cabo!a!partir!del!error!relativo!ya!que!es! necesario!hacer!uso!de!la!escala!para!interpretar!los!errores!en!el!contexto!en!que!se! generan.!Para!el!caso!de!la!posición,!por!ejemplo,!un!error!de!unos!pocos!metros!en!una! ! ! 61! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial trayectoria!de,!aproximadamente,!10!kilómetros!no!es!relevante!y,!por!tanto,!debe!ser! bajo.!El!error!absoluto!no!tiene!cabida!en!un!sistema!con!tantas!variables!diversas.! En!el!caso!de!las!variables!de!posición,!la!relativización!se!lleva!a!cabo!a!través!del!mayor! elemento!del!vector!de!medidas!pero,!en!el!caso!de!las!orientaciones,!no!puede!llevarse! a!cabo!de!esta!forma!por!ser!demasiado!pequeños!los!valores!en!algunos!casos.!Por!ello,! se!estima!el!rango!de!variación!de!los!ángulos!en!un!vehículo!aéreo!y!se!utilizan!como! constantes!para!llevar!a!cabo!la!relativización!del!error.!Así,!para!pitch&y!roll&se!utiliza! 90º!como!rango!y,!para!el!heading,!se!utiliza!180º.! Una!vez!hemos!calculado!el!error!relativo,!obtenemos!la!media!y!la!desviación!típica!a! través!de!él!y!la!almacenamos!en!un!archivo!que!unifica!todos!los!valores!de!un!mismo! parámetro.!Junto!a!los!errores!guardamos!el!valor!de!la!pendiente!del!heading!para! analizar!la!convergencia!del!mismo.!Este!valor!se!obtiene!a!partir!de!los!dos!últimos! tercios!de!la!gráfica!del!heading!puesto!que,!por!motivos!de!inicialización,!el!heading! sufría!unas!fluctuaciones!muy!elevadas!al!inicio!y!esto!ocasionaba!que!los!datos!de!la! pendiente!no!fuesen!del!todo!precisos!y!estuvieran!falseados!por!esta!alta!variación!! inicial.! La!función!show_graphs&muestra!diversas!figuras!que!caracterizan!el!resultado!de!la! estimación!desde!diferentes!frentes.!De!esta!manera,!tendríamos!las!siguientes!gráficas:! • Gráfica!comparativa!de!trayectoria!verdadera!(true)!sin!error!(azul),!trayectoria! observada!por!el!GPS!con!error!(verde)!y!trayectoria!estimada!(rojo).!Todo!esto! en!metros!y,!tan!solo!en!las!coordenadas![x,y],!sin!tener!en!cuenta!la!altura,!por! no!complicar!el!resultado!visual!con!gráficas!en!3D.! • Gráfica!comparativa!del!heading&verdadero!(true)!sin!error!(azul)!y!la!estimación! del!mismo!(rojo)!en!el!tiempo.!El!ángulo!de!cabeceo!estará!en!grados!y!el!tiempo! en! segundos.! En! la! misma! figura! también! se! mostrará! el! error! absoluto! del! heading! en! el! tiempo,! por! lo! que! se! podrá! visualizar! el! fenómeno! de! la! convergencia.! • Gráfica! explicativa! que! muestra! la! evolución! de! la! velocidad! (en! m/s)! en! el! tiempo!(en!segundos).! • Gráfica!explicativa!que!muestra!la!evolución!de!la!velocidad!angular!(en!rad/s)! en!el!tiempo!(en!segundos).! ! ! 62! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! Ilustración&24:&Datos&sintéticos&-&Diagrama&funcionamiento&LargeHeading_Estimation& ! Ilustración&25:&Datos&sintéticos&-&Redefinición&del&tiempo&de&propagación& ! Con!todo!esto,!tendríamos!una!aplicación!que,!para!la!alternativa!seleccionada,!realiza! un!análisis!con!el!propósito!de!determinar!la!precisión!del!resultado!y!la!robustez!del! mismo!ante!variaciones!en!los!parámetros!de!los!modelos!y!algoritmos!empleados.!! ! Evaluación!y!validación:! Resultados!del!análisis!de!datos!sintéticos! Los!resultados!obtenidos!de!la!batería!de!tests!descrita!anteriormente!se!encuentran!en! el!Anexo0I0agrupados!según!trayectoria!y!sensor!(IMU!acelerómetro,!IMU!giróscopo!o! GPS).! ANÁLISIS!DE!LOS!RESULTADOS! Para! la! primera! trayectoria! en! el! acelerómetro,! nos! encontramos! con! valores! del! parámetro!A!casi!constantes.!Tanto!la!mediana!como!los!cuartiles!parecen!permanecer! constantes! en! unos! valores! de! error! entre! el! 0.015! y! el! 0.030.! Se! pueden! ver! las! oscilaciones!al!hacer!zoom!en!la!figura,!como!puede!observarse!en!la!Ilustración!26!y,! además,!se!ve!el!error!crecer!en!el!límite!inferior!que!es!el!que!está!más!alejado!del!valor! central.!Estas!oscilaciones!son!tan!pequeñas!que!se!desprecian!y,!a!pesar!de!que!existe! una!elevada!dispersión!en!algunos,!estos!valores!no!se!tienen!en!cuenta!al!realizar!los! cálculos!por!su!naturaleza!esporádica. ! ! 63! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! ! Ilustración&26:&Zoom&del&boxplot&de&accA&trayect1& En!cuanto!al!parámetro!B,!dado!que!los!rangos!que!se!obtienen!para!el!parámetro!son! tan!elevados,!es! de!esperar!ese! comportamiento!tan!drástico!que!se! observa!en!su! gráfica.!Así,!en!los!extremos,!a!pesar!de!que!el!error!en!la!orientación!es!menor!al!10%,! el!error!en!el!heading&individualmente!ascienda!hasta!el!60%.!Obviando!los!valores!tan! altos!que!se!obtienen,!este!tipo!de!comportamiento!es!el!esperado,!que!al!alejarse!del! valor!central,!la!estimación!del!heading&empeore.! De!forma!similar!ocurre!con!demás!parámetros!del!acelerómetro,!con!la!diferencia!de! que!algunos!presentan!resultados!más!dispersos!que!otros,!siendo!el!error!más!variable! en!esos!casos,!y!que!el!rango!de!error!varía!en!cada!caso.! Se!puede!decir,!en!forma!general,!que,!en!la!trayectoria!1,!el!acelerómetro!presenta!el! comportamiento!esperado,!confirmando!la!hipótesis!de!que!los!valores!centrales!son! los!más!adecuados.! En!el!giróscopo!en!la!trayectoria!1!se!obtiene!también!el!comportamiento!esperado,! obteniendo!valores!de!error!en!la!mediana!bastante!similares!para!la!gran!mayoría!de! valores!de!los!parámetros.!Cabe!destacar!de!este!sensor!que!el!error!parece!disminuir!y! permanecer!así!de!bajo!en!todas!las!pruebas!de!los!parámetros.!Sin!embargo,!también! presentan!muchas!más!oscilaciones!en!el!comportamiento!en!forma!de!“U”!o!“V”!que! se!espera!obtener!y!se!obtienen!unos!cuartiles!mucho!más!anchos!y!unos!percentiles! más!altos,!lo!que!índice!un!error!más!variable!y!menos!concentrado.! ! ! 64! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial En!cuanto!a!la!trayectoria!3,!con!ella!obtenemos!unos!valores!muy!similares!a!los!de!la! trayectoria!1,!siendo!la!gráfica!de!la!A!y!B!del!acelerómetro!casi!iguales.!Cabe!destacar! que! se! consiguen! niveles! de! error! incluso! menores.! Se! repite! el! patrón! de! comportamiento! de! los! parámetros! del! giróscopo! de! la! trayectoria! de! curvas! pronunciadas!en!esta!tercera!trayectoria,!la!rectilínea.! Con! esto,! si! miramos! las! gráficas! de! los! valores! centrales! de! estas! dos! trayectorias,! tendremos!una!aproximación!muy!buena!de!la!trayectoria!(como!puede!verse!en!las! Ilustraciones!!27!y!28)!del!vehículo!y!una!muy!buena!aproximación!del!heading!también! (como!puede!verse!en!las!Ilustraciones!29!y!30).! ! ! Ilustración&27:&Datos&sintéticos&-&Trayectoria&1& ! ! 65! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! Ilustración&28:&Datos&sintéticos&-&Trayectoria&2& ! Ilustración&29:&Datos&sintéticos&-&Heading&Trayectoria&1& ! ! 66! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! Ilustración&30:&Datos&sintéticos&-&Heading&Trayectoria&2& ! Con!la!trayectoria!2!los!resultados!son!menos!concluyentes.!Si!utilizamos!los!valores! centrales,!como!se!explicó!anteriormente,!los!errores!no!solo!ascienden!demasiado,!sino! que!no!siguen!el!comportamiento!esperado!(forman!una!campana!en!muchos!casos,!en! lugar!de!formar!una!“V”).!!Sin!embargo,!en!el!acelerómetro,!al!modificar!los!rangos!del! parámetro!A!y! dejando!los! demás!fijos,! obtenemos!resultados! casi!constantes! y!del! mismo! valor! para! todos! los! valores! de! prueba! de! los! demás! parámetros.! Este! comportamiento!es,!cuanto!menos,!anómalo,!pero!nos!ofrece!resultados!bastante!bajos! de!error!con!estos!parámetros!en!el!modelo!de!error.! Además,!si!mantenemos!este!valor!central!de!la!A!del!acelerómetro,!las!pruebas!en!el! giróscopo!parecen!seguir,!en!cierta!medida,!el!comportamiento!esperado,!aunque!son! todos! bastantes! constantes,! a! excepción! del! parámetro! D.! Es! necesario! puntualizar,! también,! que! estos! resultados! se! obtienen! tras! redefinir! los! límites! y! los! valores! centrales!del!giróscopo,!acción!que!no!es!necesaria!en!las!demás!trayectorias.! Para!reflejar!esta!diferencia,!se!mostrarán!las!gráficas!de!trayectoria!y!heading!para!la! trayectoria! del! semicírculo! con! la! inicialización! de! parámetros! de! las! trayectorias! anteriores! (Ilustraciones! 31! y! 33)! y,! en! comparación,! las! mismas! gráficas! con! los! ! ! 73! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial Estos!conjuntos!de!datos!proporcionados!serían!datos!que!se!obtienen!directamente!de! las!unidades!de!medida!inercial!y!del!GPS,!te!tal!forma!que,!para!el!uso!de!estos!datos! en!los!estimadores!en!los!que!lleven!a!cabo!las!pruebas,!estos!deberán!procesarse!para! obtener!las!mediciones!en!unidades!de!uso!general.!Para!esto,!será!preciso!el!desarrollo! de!programa!de!datos!de!lectura!y!transformación!de!datos!a!partir!de!archivos!binarios! de!datos!de!instrumental!específico!de!medición.!! Para! esta! fase,! la! empresa! proporcionó! todo! el! material! en! forma! de! manuales! del! fabricante!y!ejemplos,!además!de!la!ayuda!didáctica!precisa!para!el!posible!desarrollo! de! estos! programas.! También,! de! este! instrumental! de! medición! específico,! se! nos! proporciona!una!serie!de!manuales!de!fabricante,!así!como!capturas!de!programas!de! obtención!de!medidas!y!modelos!que!incluyen!un!modelo!de!error!del!sistema!con!sus! valores!iniciales!con!el!objetivo!de!integrarlo!en!el!código!para!mejorar!el!acercamiento! del!problema!teórico!a!los!escenario!reales!y!comerciales.! Con!el!fin!de!obtener!la!mejor!estimación!posible!también!la!empresa!proporciona!la! versión!de!posprocesado!de!los!archivos!en!bruto!de!la!IMU!y!el!GPS!a!partir!de!los!cuales! se!lleva!a!cabo!la!estimación.!Estos!archivos!que!en!la!empresa!obtienen!a!partir!de! largos!cálculos!nos!servirán!para!corroborar!la!bondad!de!la!estimación!realizada!y!nos! servirán! de! guía! para! descartar! rutas! de! resolución! que! no! conduzcan! a! soluciones! cercanas!a!las!esperadas.! Con!todo!esto,!la!colaboración!con!la!empresa!ha!sido!vital!para!el!desarrollo!de!este! proyecto,!pues!permite!un!apunte!final!de!acercamiento!a!la!solución!real.! ! Programas!de!lectura!de!datos! Como!se!ha!explicado!con!anterioridad,!para!poder!obtener!un!set!de!datos!con!los!que! poder! usar! los! estimadores! de! forma! estándar,! es! necesario! el! desarrollo! previo! de! programas!que!lleven!a!cabo!la!transformación!a!partir!datos!en!bruto!en!un!formato! propio!del!fabricante!del!instrumental.! Para!esta!parte!fue!necesaria!una!documentación!exhaustiva!a!partir!de!manuales!y! ejemplos!del!formato!específico!de!archivo!binario!para!el!GPS!(extensión!.jps)!y!para!la! IMU! (extensión! .std).! Desarrollados! en! Visual! Studio! con! el! soporte! de! QT! estos! ! ! 74! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial proyectos! serían:! CppBinaryFileReader& (lectura! de! archivos! .std! de! la! IMU)! y! CppJSPFileReader&(lectura!de!archivos!.jsp!del!GPS).! El!primero!de!los!proyectos!(CppBinaryFileReader),!además!de!la!estructura!general!de! un!programa!QT!estándar!de!la!empresa,!contiene!un!lector!de!archivos!que!toma!los! datos!binarios! del!archivo!.std! que!nos! son!necesarios! y!los!guarda! en!dos! archivos! diferentes!que!contendrán!la!misma!información!con!diferentes!niveles!de!precisión.! El!segundo!proyecto!(CppJSPFileReader)!es!más!complejo!pues,!además!de!ser!binario,! presenta!una!serio!de!códigos!para!determinar!cuándo!se!toma!una!medición!de!GPS! que!deberán!identificarse!inequívocamente!y!determinar!su!tamaño!de!forma!correcta! para!poder!obtener!la!información!del!GPS!sin!errores.!La!realización!de!este!lector!de! archivos,! por! tanto,! conllevó! una! cantidad! elevada! de! tiempo! material! que! servirá,! además!de!para!obtener!los!datos!reales!ahora!mismo,!para!una!futura!integración!en! tiempo!real,!de!tal!forma!que!se!lea!medida!a!medida!y!se!vaya!incorporando!al!filtro! estimador!cada!vez.!! Por!la!complejidad!del!programa,!no!entraremos!en!detalles!sobre!su!funcionamiento,! pero! cabe! destacar! que! es! necesaria! la! transformación! de! las! medidas! de! posición! mediante!una!librería!geográfica.!Las!capturas!del!código!principal!del!lector!de!ambos! proyectos!se!encuentra!en!el!Anexo!II.! Una!vez!desarrollados!estos!lectores!y!una!vez!se!han!ejecutado!con!los!sets!de!datos!en! bruto! proporcionados! por! la! empresa,! ya! disponemos! de! sets! de! datos! reales! que! funcionan!como!mediciones!directas!de!la!IMU!y!el!GPS!y!sus!análogos!de!posprocesado! que!nos!permiten!verificar!los!resultados!obtenidos.! ! Adaptación!del!ejemplo!LargeHeading! Dado! que! el! ejemplo! seleccionado! para! la! realización! de! la! simulación! con! datos! sintéticos!era!el!más!adecuado!para!el!tipo!de!estimación!que!deseábamos!realizar,! adaptamos! este! código! para! que,! en! lugar! de! tomar! datos! leídos! de! los! binarios! generados!en!la!trayectoria!sintética,!lea!datos!de!los!archivos!de!datos!generados!con! los!lectores!que!se!explican!en!el!apartado!previo.!! ! ! 75! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial Para!realizar!la!adaptación!de!este!código,!se!parte!del!código!de!ejemplo!de!la!librería! y!tan!solo!es!necesario!modificar!las!dos!funciones!principales:!example_largeheading&y! sys_path_largeheading.! MODIFICACIONES!DEL!ARCHIVO!SYS_PATH_LARGEHEADING! El!archivo!de!definición!del!estado!del!sistema!debe!modificarse!pues!el!estado!inicial! del!sistema!es!diferente.!Para!comenzar,!el!tiempo!de!muestreo!cambia!de!1/100!a! 1/500,!que!es!el!tiempo!de!muestreo!del!GPS.! Los! parámetros! de! los! modelos! de! errores! permanecen! intactos.! La! empresa! proporcionó!datos!obtenidos!mediante!software!del!fabricante!sobre!el!modelo!de!error! de!la!IMU,!como!se!puede!ver!en!la!Ilustración!35.!! Sin!embargo,!tras!investigar!con!diferentes!métodos!de!obtención!de!un!modelo!de! error!de!estados!a!partir!de!un!modelo!de!densidad!espectral,!se!llegó!a!la!conclusión!de! que!esta!no!era!una!tarea!trivial.!Se!encontró!documentación!académica!de!métodos!de! conversión!del!modelo!de!error!pero!debido!a!que!esta!última!parte!del!trabajo!era!una! fase!final!de!acercamiento!al!problema!real,!la!planificación!temporal!no!permitía!esa! línea! de! investigación.! Adicionalmente,! se! carece! de! la! base! física! y! matemática! necesaria!para!aplicar!ese!tipo!de!transformaciones,!por!lo!que!esa!línea!se!deja!abierta! como!trabajo!futuro!de!documentación,!investigación!y!posible!implementación.! ! Ilustración&35:&Modelo&de&error&de&la&IMU&real& ! ! 76! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial Se! dejan,! entonces,! los! parámetros! de! error! predefinidos! por! la! librería! y! que,! tras! experimentación,! sabemos! que! no! se! ajustan! de! forma! satisfactoria! a! todas! las! trayectorias.!Esto!se!lleva!a!cabo!puesto!que!esta!última!fase,!como!ya!se!reflejó!con! anterioridad,!es!un!acercamiento!a!la!implementación!real!y!tiene!carácter!didáctico!y! de!experimentación.! Para!lo!que!sí!usamos!los!datos!proporcionados!por!el!software!del!fabricante!es!para!la! inicialización!de!la!definición!de!errores!de!las!variables!de!navegación,!como!se!ve!en!la! Ilustación! 36,! con! los! datos! que! se! ofrecen! como! valores! iniciales! de! la! desviación! estándar.! ! Ilustración&36:&Datos&reales&-&Inicialización&de&variables&del&INS& Además,!en!los!valores!iniciales!de!navegación!no!se!utilizarán!valores!o!coordenadas! predefinidas! por! la! librería,! sino! que! se! utilizarán! los! valores! de! la! primera! medida! obtenida!de!la!lectura!de!datos,!como!se!muestra!en!la!Ilustración!37.! ! Ilustración&37:&Datos&reales&-&Valores&iniciales&de&navegación& Además,!se!elimina!toda!la!sección!de!definición!de!la!trayectoria!y!de!generación!de!la! misma,! pues! esos! datos! ahora! se! proporcionarán! por! archivos! de! datos! reales! ya! existentes.!! Otro!aspecto!a!modificar!es!la!inicialización!de!los!errores!de!las!variables!de!navegación! que,! en! este! caso,! no! precisan! de! un! factor! aleatorio! pues,! por! definición! de! los! parámetros!del!fabricante,!son!esos!valores!y!las!medidas!ya!contienen!el!error!aleatorio! generado!por!la!propia!medición!y!el!ruido!blanco!de!forma!natural.!Con!estos!errores,! en! el! vector! de! variables! iniciales! de! navegación,! en! lugar! de! sumarle! el! error! para! añadírselo,!se!lo!restamos! y,!así,!obtenemos!una!primera!medida!más! limpia!y!más! cercana!al!valor!a!estimar.!! ! ! 77! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! Ilustración&38:&Datos&reales&-&Vector&de&medidas&de&navegación&iniciales& MODIFICACIONES!DEL!ARCHIVO!EXAMPLE_LARGEHEADING! En!este! archivo! también! se! realizan!modificaciones!importantes.! En! primer! lugar,!la! inicialización!del!sistema!con!la!función!sys_path_largeheading&se!realiza!después!de!la! apertura!de!archivos!y!después!de!la!lectura!de!los!primero!valores.!! De!esta!forma,!se!leen!los!archivos!que!contienen!los!datos!reales,!en!lugar!de!leer!los! binarios!de!la!trayectoria!sintética!y!se!crea!un!archivo!de!salida!para!almacenar!los! resultados,!como!puede!verse!en!la!Ilustración!39.!Así,!como!se!explicó!previamente,!se! obtiene!primero!la!lectura!de!los!primeros!valores!y!estos!se!usan!para!inicializar!el! sistema.!Además,!se!cambia!el!tiempo!de!propagación!para!acomodarlo!al!nuevo!tiempo! de!muestreo.! Ilustración&39:&Datos&reales&-&Apertura&de&archivos,&lectura&e&inicialización&del&sistema& De!forma!general,!todas!las!zonas!de!lectura!y!escritura!se!adecuarán!al!nuevo!método! de!lectura.!Sin!embargo,!se!añade!una!sincronización!de!las!medidas!del!GPS!con!la!IMU,! pues!no!comienzan!a!la!vez!y!esto!es!necesario!para!poder!llevar!a!cabo!el!proceso!del! filtro!Kalman.! ! ! 78! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! Ilustración&40:&Datos&reales&-&Sincronización&de&GPS&e&IMU& El!grueso!del!proceso!del!filtro!Kalman!permanece!constante,!con!la!diferencia!de!que,! a!la!hora!de!guardar!los!resultados,!estos!se!hacen!de!una!forma!diferentes!y!más!simple,! eliminando!las!referencias!y!restas!de!la!trayectoria!sin!error,!como!se!ve!en!la!Ilustración! 41.! ! Ilustración&41:&Datos&reales&-&Almacenamiento&de&datos&Kalman& Finalmente,! a! la! hora! de! mostrar! las! gráficas,! tras! sincronizar! las! medidas! de! la! predicción!con!las!medidas!de!la!solución!de!posprocesado,!se!llevan!a!cabo!las!gráficas! comparativas!de!la!trayectoria!y!del!heading.! Cuando! obtenemos! ejecutamos! el! código! con! un! set! cualquiera! de! datos! reales,! obtenemos!lo!siguiente!como!gráfica!comparativa!de!estimación!de!heading&y!heading& real:! ! ! ! ! ! 79! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! Ilustración&42:&Datos&reales&-&Gráfica&comparativa&del&heading&y&su&estimación& ! Además,! el! funcionamiento! del! programa! se! ve! comprometido! por! la! aparición! de! valores!NaN!a!lo!largo!de!diversas!matrices!de!transformación!y!variables!del!sistema!de! navegación.!Tras!investigar!la!causa!de!estos!valores!se!llega!a!la!conclusión!de!que!el! programa!no! está! preparado! para! una! estimación! del! heading! tan!poco!precisa.! De! forma!general,!es!de!esperar!que!un!ángulo!de!cabeceo!se!mueva!dentro!de!unos!rangos! y,!al!obtenerse!una!estimación!tan!irregular!y!oscilatoria,!las!matrices!de!transformación! no!son!capaces!de!soportar!el!cambio!de!ángulo.!Normalmente,!para!evitar!estos!fallos! del!sistema,!suele!hacerse!uso!de!los!cuaterniones!pero,!en!este!caso,!fruto!del!ajuste! para!una!trayectoria!que!ofrece!resultados!buenos!y!de!una!confianza!en!los!rangos!del! ángulo,!no!se!usan.! Esto!compromete!el!sistema!e!impide!la!generación!correcta!de!la!trayectoria.!De!esta! forma,!por!un!lado!no!presenta!una!buena!solución!por!el!gran!error!que!presenta!en!la! estimación!del!heading!y,!por!otro,!no!presenta!un!buen!sistema!que!implementar!en! un!caso!real.!La!robustez!del!programa!se!ve!en!entredicho!si!un!heading&muy!variable! es!suficiente!para!que!colapse.!!! ! ! ! 80! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! Otras!aproximaciones!para!la!estimación! Como!la!adaptación!del!ejemplo!de!la!librería!LargeHeading&no!ha!aportado!resultados! aceptables!para!una!aproximación!al!heading,!se!prueban!otras!alternativas!de!forma! práctica!y!concisa!con!el!propósito!de!evaluar,!principalmente,!el!error!cometido!en!los! valores!de!la!orientación!del!vehículo.! Las!pruebas!realizadas!incluyen:! • Integrador!en!bucle!abierto! • Filtro!de!Kalman!Extendido! • Fusión!sensorial! Estos! son! otro! tipo! de! estimadores! con! los! que! nos! encontramos! en! el! proceso! de! investigación!de!alternativas!de!resolución!del!problema.!Todas!ellas!presentan!ventajas! y!desventajas!para!este!tipo!de!implementación!pero,!al!tratarlas!desde!un!enfoque! meramente!práctico!y!exploratorio,!nos!basaremos!en!los!resultados!obtenidos!para! calificar!la!bondad!de!la!estimación.! ! INTEGRACIÓN!EN!BUCLE!ABIERTO! Se!ha!partido!de!un!código!disponible!en!el!repositorio!de!Mathworks!para!integrar!las! medidas!inerciales!de!la!IMU.!El!objetivo!era!intentar!obtener!un!valor!de!base!para!el! error!que!se!pudiera!emplear!como!referencia.! Los!resultados!mostraron!un!sorprendente!buen!comportamiento!en!intervalos!cortos! medio!de!tiempo!(decenas!de!minutos).!Lógicamente,!a!partir!de!un!cierto!momento!la! deriva!del!sensor!y!la!acumulación!de!los!errores!hace!que!las!estimaciones!diverjan.! ! ! 81! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial Ilustración&43:&Integración&en&bucle&abierto& ! Esta!figura!muestra!un!ejemplo!de!datos!reales!de!vuelo!en!la!que!se!puede!apreciar! como!la!trayectoria!real!(verde)!y!la!estimada!(azul)!sólo!coinciden!en!la!parte!inicial!del! recorrido,!representada!por!el!punto!x=0,!y=0.! ! FILTRO!DE!KALMAN!EXTENDIDO! Se!ha!partido!de!un!código!de!libre!acceso,!creado!por!Tim!Bailey!(University!of!Sidney).! El!objetivo!era!tratar!de!cerrar!el!lazo!de!control!a!partir!de!un!esquema!de!filtro!de! Kalman!extendido.! Sin!embargo,!los!resultados!obtenidos!no!fueron!satisfactorios!debido!a!que!el!código! está!preparado!especialmente!para!robótica!móvil!terrestre!y!su!adaptación!al!caso!del! helicóptero!requería!un!esfuerzo!notable.! ! ! ! ! ! 82! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial FUSIÓN!SENSORIAL! En!este!último!caso!se!ha!partido!de!un!código!de!libre!acceso!disponible!en!el!Open& Source& Aided& Inertial& Navigation& Project,! la! librería! utilizada! para! el! ejemplo! de! LargeHeading!utilizado!en!ambos!enfoques!del!trabajo:!con!datos!sintéticos!y!con!datos! reales.! Siguiendo!la!línea!de!la!librería,!se!ha!llevado!a!cabo!una!exploración!comparativa!con!el! otro!ejemplo!de!los!existentes!que!se!ajustaba!adecuadamente!a!este!trabajo,!Tightly& Coupled,!y!el!ejemplo!usado!con!anterioridad,!LargeHeading.! En!el!caso!del!Tightly&Coupled,!se!parte!de!un!esquema!acoplado!de!fusión!sensorial!con! filtro!de!Kalman.!Las!medidas!de!la!IMU!son!integradas!en!bucle!abierto!mediante!ciclos! de!predicción!hasta!que!se!recibe!una!medida!de!posicionamiento!GPS,!momento!en!el! que!se!estima!el!error!y!se!actualiza!el!estado.! Este!ejemplo!de!integración!fuertemente!acoplada!ya!había!sido!descartado!en!la!fase! teórica!y!tras!realizar!pruebas,!puesto!que!son!necesarias!medidas!de!pseudorango.!Sin! embargo,! teniendo! en! cuenta! que! el! ejemplo! anterior! no! nos! da! resultados! prometedores,!rescatamos!este!método,!pues!se!podrían!buscar!otros!enfoques!para! suplir!la!opción!del!pseudorango!o!encontrar!un!forma!de!obtenerlos!a!partir!de!otras! medidas,!si!fuera!necesario.! Los!resultados!mostraron!un!comportamiento!razonable!sobre!intervalos!prolongados! de!tiempo.!Las!figuras!muestran!los!errores!que!se!obtienen!en!la!estimación!de!los! ángulos!de!pitch,!roll!y!heading!para!un!recorrido!real!de!aproximadamente!una!hora!de! duración.! ! ! 89! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ANEXO!I! TRAYECTORIA!1:!ACELERÓMETRO! ! ! ! ! 90! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial TRAYECTORIA!1:!GIRÓSCOPO! ! ! ! ! 91! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial TRAYECTORIA!1:!CONVERGENCIA!ACELERÓMETRO! ! ! ! ! ! ! ! 92! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial TRAYECTORIA!1:!CONVERGENCIA!GIRÓSCOPO! ! ! ! ! ! ! 93! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! TRAYECTORIA!2:!ACELERÓMETRO! ! ! ! 94! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial TRAYECTORIA!2:!GIRÓSCOPO! ! ! ! ! ! ! 95! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! TRAYECTORIA!2:!CONVERGENCIA!ACELERÓMETRO! ! ! ! ! ! 96! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! TRAYECTORIA!2:!CONVERGENCIA!GIRÓSCOPO! ! ! ! ! ! 97! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! TRAYECTORIA!3:!ACELERÓMETRO! ! ! ! 98! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! TRAYECTORIA!3:!GIRÓSCOPO!! ! ! ! ! ! 105! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial ! CÓDIGO!DEL!LECTOR!DE!DATOS!DEL!GPS0 void Reader::run() { /* No funciona el checksum (el método) */ QString path = "//srv01/PracticasProgramacion/Datos/Kalman/SetPseudorangos/20161113_123349.j ps"; file = new QFile(path); if (file->open(QIODevice::ReadOnly)) { in = new QDataStream(file); in->setByteOrder(QDataStream::LittleEndian); while (!in->atEnd()) { char *type1 = new char[1]; in->readRawData(type1, 1); if (*type1 == 'N') { char *type2 = new char[1]; in->readRawData(type2, 1); if (*type2 == 'P') { char *type2 = new char[1]; int start = file->pos(); int goBack = file->pos() + 4; QByteArray strSize(3, '0'); in->readRawData(strSize.data(), 3); bool ok; int size = strSize.toInt(&ok, 16); int goForward = file->pos() + size - 3; file->seek(goForward); char *at = new char[1]; in->readRawData(at, 1); if (*at == '@') { QByteArray strCS(2, '0'); in->readRawData(strCS.data(), 2); bool ok; np.cs = strCS.toInt(&ok, 16); file->seek(goBack); readPackage(file, in, goForward); } delete at; ! ! 106! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial } delete type2; } delete type1; } //qDebug() << file->pos() << endl; file->close(); delete in; } delete file; writeDataFile(); } void Reader::readPackage(QFile *file, QDataStream *in, int goForward) { //qDebug() << "Estoy leyendo el paquete // Saltar hasta el marcador de válido (tamaño fijo) file->seek(file->pos() + 7); char *valid = new char[1]; in->readRawData(valid, 1); file->seek(file->pos() + 1); if (*valid == 'V') readTime(file, in); else goToNextField(file,in); for (int i = 0; i < 5; i++) goToNextField(file,in); readCoordinates(file, in); nps.append(np); file->seek(goForward + 3); delete valid; } void Reader::readTime(QFile *file, QDataStream *in) { bool ok; QByteArray time(2, '0'); int year = 2016; int month = 11; int day = 13; int daysOfWeek = getDayOfWeek(year,month,day); in->readRawData(time.data(), 2); np.timeHour = time.toInt(&ok, 10); in->readRawData(time.data(), 2); np.timeMin = time.toInt(&ok, 10); QByteArray timeSec(5, '0'); ! ! 107! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial in->readRawData(timeSec.data(), 5); np.timeSec = timeSec.toDouble(); file->seek(file->pos() + 1); np.time = (daysOfWeek*24*60*60) + (np.timeHour * 60 * 60) + (np.timeMin * 60) + np.timeSec; } void Reader::goToNextField(QFile * file, QDataStream * in) { bool stop = false; char *next = new char[1]; while (!stop) { int pos = file->pos(); in->readRawData(next, 1); if (*next == ',') stop = true; } delete next; } void Reader::readCoordinates(QFile * file, QDataStream * in) { char *charNS = new char[1]; in->readRawData(charNS, 1); QChar ns(*charNS); np.ns = ns; bool ok; QByteArray latitude(2, '0'); in->readRawData(latitude.data(), 2); np.latitudeD = latitude.toInt(&ok, 10); file->seek(file->pos() + 1); in->readRawData(latitude.data(), 2); np.latitudeM = latitude.toInt(&ok, 10); file->seek(file->pos() + 1); QByteArray latitudeSec(9, '0'); in->readRawData(latitudeSec.data(), 9); np.latitudeS = latitudeSec.toDouble(); np.latitude = np.latitudeD + ((double)np.latitudeM/60) + (np.latitudeS/3600); if (np.ns == 'S') { np.latitude *= -1; } file->seek(file->pos() + 2); char *charEW = new char[1]; in->readRawData(charEW, 1); QChar ew(*charEW); ! ! 108! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial np.ew = ew; QByteArray longitudeDeg(3, '0'); in->readRawData(longitudeDeg.data(), 3); np.longitudeD = longitudeDeg.toInt(&ok, 10); file->seek(file->pos() + 1); QByteArray longitudeMin(2, '0'); in->readRawData(longitudeMin.data(), 2); np.longitudeM = longitudeMin.toInt(&ok, 10); file->seek(file->pos() + 1); QByteArray longitudeSec(9, '0'); in->readRawData(longitudeSec.data(), 9); np.longitudeS = longitudeSec.toDouble(); np.longitude = np.longitudeD + ((double)np.longitudeM / 60) + (np.longitudeS / 3600); if (np.ew == 'W') { np.longitude *= -1; } file->seek(file->pos() + 3); QByteArray altitude(10, '0'); in->readRawData(altitude.data(), 10); np.altitude = altitude.toDouble(); /*EpsgConversor conversor(NULL); double xOut, yOut; conversor.transformCoordinates(np.longitude, np.latitude, xOut, yOut); np.latitude = xOut; np.longitude = yOut;*/ delete charEW, charNS; } void Reader::writeDataFile() { QFile file("C:/Users/igonzalez/Desktop/DatosKalman/KALMAN/datosGPS.txt"); QFile file2("C:/Users/igonzalez/Desktop/DatosKalman/LargeHeading/datosGPS.txt"); if ((file.open(QIODevice::WriteOnly | QIODevice::Text)) && (file2.open(QIODevice::WriteOnly | QIODevice::Text))) { QTextStream out(&file); QTextStream out2(&file2); for (int i = 0; i < nps.length(); i++) { // FILE 1 out.setRealNumberNotation(QTextStream::FixedNotation); ! ! 109! ! ! Evaluación de la calidad de la estimación de la posición y orientación de un vehículo aéreo a partir de fusión sensorial out.setRealNumberPrecision(2); out << nps[i].time << "\t"; out.setRealNumberPrecision(8); out << nps[i].longitude << "\t"; out.setRealNumberPrecision(4); out << nps[i].latitude << "\t"; out.setRealNumberPrecision(4); out << nps[i].altitude << endl; // FILE 2 out2.setRealNumberNotation(QTextStream::FixedNotation); out2.setRealNumberPrecision(2); out2 << nps[i].time << "\t"; out2.setRealNumberPrecision(8); out2 << nps[i].longitude << "\t"; out2.setRealNumberPrecision(4); out2 << nps[i].latitude << "\t"; out2.setRealNumberPrecision(4); out2 << nps[i].altitude << endl; } } //qDebug() << nps.length() << endl; file.close(); file2.close(); } int Reader::getDayOfWeek(int year, int month, int day) { tm timeStruct = {}; timeStruct.tm_year = year - 1900; timeStruct.tm_mon = month - 1; timeStruct.tm_mday = day; timeStruct.tm_hour = 12; mktime(&timeStruct); return timeStruct.tm_wday; } !