Construir Lodestar: cómo un monitor de integridad de navegación fuera del estimador pasa a RED y vuelve a casa en lugar de fingir una fijación en una burbuja de interferencia sin GPS.
DronesRoboticsAutonomy

Mi dron mantiene un 0,9 % de deriva a través de una burbuja de interferencia GPS. El código del que estoy orgulloso es la línea que se niega a volar.

Ashutosh SinghalAshutosh Singhal3 de julio de 202613 min

No esperaba que la parte más importante de este proyecto fuera la parte que se rinde.

Había estado mirando la repetición de un vuelo sintético durante casi toda una tarde. Un dron cruza una misión de 80 segundos sobre un recorrido de 245,3 m. El GPS se mantiene durante los primeros 18 segundos y luego muere cuando la aeronave entra en una burbuja simulada de guerra electrónica. En la pantalla, tres trazas se abren en abanico desde ese momento. Una de ellas, una línea rosa brillante, se desvía hacia la esquina del mapa y sigue adelante, confiada y completamente equivocada, mientras un pequeño indicador a su lado insiste en que todo está bien.

Esa línea rosa es odometría visual-inercial de serie, y verla mentirme es lo que cambió por completo la forma de lo que estaba construyendo. Había asumido que el problema difícil en la navegación sin GPS era mantener la precisión. No lo es. El problema difícil es saber, en el único momento en que importa, que no la tienes.

En un espacio aéreo sin GPS, una posición confiada pero equivocada es más peligrosa que un honesto «no lo sé».

Esta es la historia de construir Lodestar, nuestro motor de integridad de navegación, y de la semana que pasé resolviendo el problema equivocado antes de entender el correcto.

Perseguí la precisión durante una semana antes de entender el problema real

Empecé donde empieza la mayoría, que es con el estimador. La guerra electrónica ha hecho el GPS poco fiable exactamente en los lugares donde los drones autónomos ahora importan: espacio aéreo en disputa, fosas mineras, túneles, cañones urbanos. La interferencia y la suplantación en espacio aéreo en disputa se reportan ahora de forma generalizada, lo bastante comunes como para que la navegación sin GPS haya dejado de ser una curiosidad de investigación y se haya convertido en un requisito duro. La solución obvia es acoplar odometría visual-inercial, fusionar la cámara con los sensores inerciales y esperar que la deriva se mantenga pequeña.

Así que construí un EKF de VIO realmente acoplado de forma estrecha y pasé mi primera semana haciéndolo preciso. El mismo filtro, tres configuraciones honestas: una línea base de IMU por navegación a estima sin visión alguna, una VIO de serie que fusiona cada característica visual que ve, y una versión consciente de la integridad que es más cuidadosa con qué características cree. Las ejecuté todas contra una verdad de terreno que el simulador genera independientemente de cada estimador, de modo que nada pudiera calificar su propia tarea. Toda la misión está sembrada, reproducible byte a byte, lo que importó más de lo que entendí en aquel momento.

Los números de precisión eran genuinamente buenos. A través de la burbuja de interferencia, el estimador consciente de la integridad mantiene 0,92 % de deriva, 2,26 m de error final sobre ese recorrido de 245,3 m. La navegación a estima, en comparación, se dispara hasta 30,95 % de deriva y 75,92 m de error final, que es la diferencia entre aterrizar en la plataforma y aterrizar en el condado de al lado. Estuve satisfecho conmigo mismo durante aproximadamente un día.

Entonces ejecuté el convoy.

Lo que una burbuja de interferencia hace a un dron que confía en sus propios ojos

Quiero ser honesto sobre lo ordinaria que parece el traspaso del GPS, porque esa es la parte que funciona. Cuando el GPS cae en t=18 s, el filtro vuelve a ponderar hacia la fuente visual-inercial sin cambio de modo, sin alarma, sin costura visible para el operador. La estimación simplemente se mantiene continua. Si estuvieras volando la misión, no sentirías desaparecer el suelo.

Panel de Lodestar en t=21 s, momentos después de que el GPS queda denegado dentro de la burbuja simulada de guerra electrónica estilo R-330Zh: la integridad indica GREEN, deriva 0,41 m, 358 características visuales utilizables, y la traza estimada se asienta sobre la verdad de terreno.
El traspaso del GPS en t=21 s. La integridad se mantiene GREEN, la deriva es de 0,41 m frente a la verdad de terreno, y 358 características utilizables alimentan el estimador. Esta es la parte fácil, y es la parte que todo el mundo demuestra.

Esto es lo que subestimé. Un dron que opera con visión no falla empeorando poco a poco. Falla al engancharse a lo equivocado y reportar una posición limpia y confiada que es simplemente basura. El estimador no sabe que ha sido engañado, porque la maquinaria que calcula la posición es la misma maquinaria que tendría que notar que la posición está mal. Había construido un sistema que era preciso justo hasta el momento en que estaba catastrófica y silenciosamente equivocado, y no tenía forma de distinguir ambos desde dentro.

Eso no es un problema de ajuste. No puedes resolver a base de ajuste un sistema que está confiado de estar equivocado. Necesitaba algo que se situara fuera del estimador por completo.

El convoy que enseñó a mentir a un buen estimador

Construí el escenario del convoy específicamente para romper mi propio trabajo, y lo hizo. Entre t=30 y t=43 una columna de vehículos cruza un claro de baja textura, rociando características espurias que parecen, para un front-end de VIO hambriento, exactamente los hitos estables que quiere seguir. Este es el fallo documentado de ORB-SLAM3, aquel en el que el algoritmo sigue el camión y concluye que el dron está quieto.

La VIO de serie cayó por completo. En la misma ejecución sembrada, se engancha a los vehículos en movimiento y se desvía, terminando con 28,79 % de deriva y 70,61 m de error final, con un ATE de 32,95 m que es realmente peor que no usar visión en absoluto. Esa era la línea rosa que había estado mirando. El detalle feo es que, mientras fallaba, su confianza interna parecía sana. El estimador estaba seguro de sí mismo. Estaba seguro de una posición que derivaba hacia el borde del mapa.

Lodestar en t=32 s durante el convoy en movimiento: la integridad ha bajado a AMBER, el conteo de características indica 2 con 10 enmascaradas, el error de la VIO de serie ha subido a 11,0 m mientras la traza consciente de la integridad mantiene 0,42 m de deriva.
El convoy en t=32 s. El enmascarado semántico ha rechazado los vehículos en movimiento (2 características estáticas usadas, 10 enmascaradas), así que la traza consciente de la integridad se mantiene en 0,42 m mientras el error de la VIO de serie sube a 11,0 m y sigue. La integridad reporta honestamente AMBER, porque realmente hay pocas características estáticas en las que confiar.

El estimador consciente de la integridad sobrevive al convoy por una razón sencilla: se niega a creer características que pertenecen a objetos en movimiento. En el fotograma de arriba, el enmascarado semántico rechazó las 10 características del convoy y conservó solo las 2 estáticas, así que el estimador nunca se engancha a la columna. La trayectoria se sostiene. Pero la parte que no anticipé es lo que hizo mi monitor de integridad en el mismo momento. No pintó la pantalla de verde y fingió que el mundo estaba bien. Pasó a AMBER, porque con las características del convoy enmascaradas realmente solo quedaba un puñado de hitos estáticos en los que confiar. Era preciso y estaba nervioso, al mismo tiempo, y lo dijo.

Fue la primera vez que el monitor me dijo algo que el estimador no podía, y vale más que la precisión por sí sola. También forzó la pregunta que había estado evitando.

¿Por qué el estimador no puede simplemente certificarse a sí mismo?

Pasé un número vergonzoso de horas intentando responder eso con los propios números del estimador. Mi primera comprobación de integridad simplemente leía la incertidumbre reportada por el filtro, su sigma de posición, y actuaba como puerta sobre eso. Si la covarianza se veía ajustada, vuela. Parecía razonable.

El convoy lo demolió. Cuando la VIO de serie se enganchó al camión, su sigma reportado se mantuvo pequeño. El filtro estaba confiado precisamente porque había encontrado algo consistente que seguir. La consistencia era una mentira, pero la covarianza no podía saberlo, porque la covarianza es una afirmación que el estimador hace sobre sí mismo. Estaba pidiendo al testigo que certificara su propio testimonio.

La confianza no debe depender de aquello en lo que se confía.

Esa frase se convirtió en el diseño. El Monitor de Integridad de Navegación vive fuera del estimador a propósito, como código separado que responde a una pregunta distinta. No «cuál es mi posición», que el EKF responde, sino «¿se puede confiar en esta posición ahora mismo?», que el EKF es estructuralmente incapaz de responder sobre sí mismo. El monitor fusiona tres señales en un estado GREEN, AMBER o RED con umbrales duros: conteo de características utilizables (GREEN a 8 o más, RED por debajo de 1), sigma de posición (GREEN bajo 0,6 m, RED por encima de 1,5 m), y NIS de visión, la consistencia de innovación chi-cuadrado que captura exactamente el caso en que el estimador está confiado y equivocado (GREEN bajo 7,0, RED por encima de 30,0). Ningún número individual puede ser manipulado por el estimador, porque dos de los tres no vienen en absoluto de la autoevaluación del estimador.

Esto es lo que ahora creo con más fuerza sobre la autonomía crítica para la seguridad. Una VIO mejor no arregla el fallo confiado-pero-equivocado, porque «¿es esto fiable?» es una pregunta distinta de «¿qué es esto?», y no puedes responder la primera con la maquinaria que produjo la segunda. La industria sigue corriendo a hacer el estimador más inteligente. La arquitectura duradera no es un estimador más inteligente. Es un monitor dispuesto a anularlo.

La línea de código que se niega a volar

El momento en que realmente entendí mi propio producto fue el túnel, y lo recuerdo porque es el momento en que el sistema hace lo mínimo.

Entre t=52 y t=66 la misión entra en un túnel oscuro y las características visuales utilizables colapsan a esencialmente cero. No hay nada que ver. Ningún estimador, por bien ajustado que esté, puede fabricar una posición fiable a partir de una escena que no puede observar. Esto no es un fallo que arreglar. Es un hecho que respetar. La VIO de serie, aún intentándolo, deriva hacia una posición que no tiene derecho a reclamar.

Lodestar hace otra cosa. Las características mueren, la incertidumbre de posición cruza el umbral, y después de 0,5 segundos de RED sostenido el monitor enclava el failsafe y ordena el retorno a casa en t=52,5 s. No finge una posición. Declara la estimación no fiable y devuelve el control a un comportamiento seguro, y lo hace de forma determinista, sin ningún modelo en el bucle decidiendo nada.

Lodestar en t=54,5 s en el túnel oscuro: la integridad indica RED, «Posición NO fiable», conteo de características 0, error de la VIO de serie 35,2 m mientras su traza se sale por la parte superior del mapa, y la línea temporal muestra el retorno a casa disparado en t=52,5 s.
El túnel en t=54,5 s. Las características han colapsado a 0, la integridad es RED («Posición NO fiable»), y el retorno a casa ya se ha disparado en t=52,5 s. La VIO de serie, aún confiada, se ha desviado hasta 35,2 m de error. Este es todo el punto del producto: la abstención honesta, no la fijación confiada.

Quiero ser cuidadoso con los números aquí, porque la honestidad es toda la propuesta. A lo largo de esta única misión sembrada, el monitor marca el túnel genuinamente inobservable el 100 % de las veces y da falsas alarmas en el tramo sano sin GPS alrededor del 0,1 % de las veces, manteniendo GREEN durante el 56,3 % del vuelo denegado. Esos son los resultados de esta misión, una prueba fiel a la física del mecanismo, no una garantía de prueba de vuelo en mundo abierto. La afirmación duradera es la estructura: confianza calculada fuera del estimador, RED sostenido hasta un retorno a casa enclavado, abstención honesta ante una escena que nadie podría navegar. Los metros exactos pertenecen a esta ejecución. La arquitectura pertenece a cada ejecución.

La línea de código más valiosa en una pila de autonomía es la que se niega a volar.

Lo que puse en el informe para que nadie tenga que creerme de palabra

No quería que nadie tuviera que confiar en mis capturas de pantalla, así que lo último que construí es el recibo. Un clic exporta un Informe de Integridad de Vuelo, JSON más HTML imprimible, con el marcador, las métricas principales, la corrección de la abstención, el tiempo del failsafe, la línea temporal de eventos y, la parte que más me importa, una divulgación explícita del alcance de lo que es un sustituto provisional frente a lo aplazado.

Esa divulgación no es un descargo que entierro. Es una función. El informe declara con claridad que el front-end visual es un sustituto, que la fusión LiDAR es una restricción de rango simulada en lugar de un factor LiDAR real, que la interfaz MAVLink y el rendimiento del Jetson no se ejercitan aquí, y que los 30-45 FPS en un Jetson Orin NX de 16 GB son una especificación del hardware objetivo, no un resultado medido. Las 16.000 actualizaciones de propagación del EKF en el informe se midieron en la máquina de demostración. Los FPS no, y el informe lo dice con esas palabras.

El Informe de Integridad de Vuelo exportado con la fusión LiDAR activada: 0,01 % de deriva para la ejecución consciente de la integridad, 78,9 % del vuelo en GREEN, failsafe «n/a (LiDAR mantuvo la integridad)», y un marcador frente a la verdad de terreno independiente.
El Informe de Integridad de Vuelo, exportado con la fusión LiDAR activada. Con una restricción de rango LiDAR simulada anclando el túnel, la escena se vuelve observable, la deriva cae a 0,01 %, el 78,9 % del vuelo se mantiene GREEN, y el monitor correctamente no dispara el failsafe. El informe es explícito en que esto es un intercambio, no magia.

Esa ejecución con LiDAR merece detenerse porque es donde muchas demostraciones harían trampa. Activas el LiDAR simulado y el túnel se recupera: la restricción de rango ancla la solución, la integridad se sostiene y no se dispara ningún failsafe, porque la escena ya no es inobservable. Sería fácil mostrar solo esa ejecución y dar el problema por resuelto. Pero el informe también lleva el coste que la página de la solución admite, aproximadamente 250 a 400 g de carga útil y de 8 a 12 W de potencia. El LiDAR es un intercambio de ingeniería real con una factura real de SWaP-C, no una victoria gratis, y un comprador merece ver la factura junto al beneficio.

Hay exactamente un modelo en cualquier lugar cerca de este sistema, un botón opcional que redacta la narrativa de revisión técnica a partir del informe estructurado. Corre enteramente fuera del bucle de vuelo. Escribe prosa. Nunca toca una decisión de control. La puerta que decide si volar es determinista, sembrada y fuera de línea, y tomaría la decisión idéntica con el botón de narrativa arrancado. Fui firme con ese límite, porque el día en que un modelo de lenguaje tenga voto sobre si un dron confía en su propia posición es un día del que no quiero ser responsable.

A lo que sigo volviendo

Me propuse construir un dron que se mantenga preciso cuando muere el GPS, y lo hice, en esta misión, con menos de un por ciento de deriva. Lo que no esperaba era salir convencido de que la precisión era la mitad fácil.

La precisión es una carrera a la que cualquiera puede entrar. Todo el mundo en este campo está haciendo su estimador un poco más ajustado, sus características un poco más densas, su backend un poco más inteligente, y todo eso es buen trabajo. Pero nada de ello responde a la pregunta que realmente mata a un dron en una burbuja de interferencia, que no es «cuán equivocado estoy» sino «¿estoy en una situación en la que no puedo saber cuán equivocado estoy?». Esa pregunta tiene que formularse desde fuera del estimador, por algo dispuesto a decir lo poco glamuroso y soltar los controles.

La precisión es una carrera a la que cualquiera puede entrar. Un sistema que sabe cuándo está ciego es el producto.

Puedes ejecutar todo esto tú mismo y ver la línea rosa desviarse, luego ver dispararse el estado RED, en veriprajna.com/es/demos/lodestar-autonomia-de-drones-en-gps-denegado-que-sabe-cuando-no-puede. Está sembrado, así que verás exactamente lo que yo vi.

Y si prefieres verlo a leerme describirlo, aquí está todo corriendo de extremo a extremo.

La pregunta que no he dejado de darle vueltas es esta. Si el comportamiento más valioso en tu pila de autonomía es la negativa a actuar, ¿cuánto de tu presupuesto de ingeniería va a la parte que se rinde, y cuánto a la parte que nunca aprendió cuándo hacerlo?

Investigación relacionada

También publicado en

Construya su IA con confianza.

Colabore con un equipo que cuenta con amplia experiencia en la creación de la próxima generación de IA empresarial. Permítanos ayudarle a diseñar, construir e implementar una estrategia de IA en la que pueda confiar.

Veriprajna consultora de Deep Tech está especializada en la creación de sistemas de IA críticos para la seguridad en los sectores de salud, finanzas y ámbitos regulatorios. Nuestras arquitecturas se validan conforme a protocolos establecidos, con documentación de cumplimiento integral.