About the project
El problema
Un dron sabe dónde está porque escucha satélites. Esas señales llegan tan débiles que cualquiera con un transmisor barato las tapa con una falsa más fuerte. Y lo que hace al ataque efectivo es esto: el atacante no empuja al dron, lo convence de que se empuje solo. Le dice «estás veinte metros al este», el dron corrige veinte al oeste, y se mueve de verdad.
Desde adentro de una aeronave la señal falsa es indistinguible de la real. Un dron solo no puede resolverlo. Cinco, sí.
La idea
Cada par de drones mide con su radio a qué distancia está del otro. Esa medición no se puede falsificar desde el suelo, porque es una conversación directa entre dos aeronaves. Con las distancias se reconstruye la forma del enjambre y se la compara contra la forma que describen las posiciones informadas. Al que le mienten, no le cierra.
No hace falta saber dónde está nadie realmente: alcanza con que la historia sea internamente consistente.
Las tres capas
| Qué hace | Qué no ve | |
|---|---|---|
| 1 · Rigidez | MDS clásico sobre las distancias, alineamiento de Kabsch, decisión por mediana y MAD | Ciega a la traslación coherente,por construcción |
| 2 · Anclas | Inercial y barómetro: las únicas verificaciones que no dependen del enjambre | Un arrastre más lento que la deriva del propio sensor |
| 3 · Consenso | Cada distancia se mide dos veces, una por cada punta. El mentiroso contradice a cuatro testigos | — |
El aporte real está en la capa 1: si el atacante corre a los cinco con el mismo vector, las distancias entre pares no cambian ni un milímetro. Ninguna verificación entre pares puede verlo. Hay una prueba automatizada que demuestra esa ceguera, y por eso existen las otras dos capas.
Qué se construyó
Dos piezas separadas a propósito:
- `formacion_cerrada/`— el núcleo en Python. Es el código que correría a bordo. Lo único que cambia entre el banco y una aeronave real es el adaptador de entrada:
puente/simulacion.pylee del simulador,puente/aeronave.pylee de una Pixhawk y una radio UWB. - `src/`— el tablero. No calcula nada: recibe el estado por WebSocket y lo dibuja.
Cómo funciona el lazo
Cada dron navega hacia donde cree estar, así que el lazo está cerrado y el ataque tiene consecuencia física. La métrica que importa no es el residuo sino el desvío de ruta: cuánto se apartó el enjambre de donde tenía que estar.
| Traslación coherente | 10 s | 30 s | 60 s |
|---|---|---|---|
| Sin defensa | 11 m | 46 m | 93 m |
| Con defensa | 7 m | 13 m | 16 m |
En pantalla cada dron se dibuja dos veces: el cuerpo sólido donde está, y un fantasma donde el atacante lo convenció de estar. Bajo step, D-05 vuelve a su lugar en 2,4 m mientras su fantasma se queda clavado a 39 m. Esa separación es la defensa trabajando.
Lo que todavía no resuelve
- En repliegue la formación pierde cohesión: cinco estimaciones inerciales independientes no sostienen la geometría más de unos veinte segundos.
- La detección del salto instantáneo tarda nueve segundos. El intercambio entre estabilidad y latencia está mal calibrado.
- El adaptador de aeronave no está probado contra hardware. Por eso su modo por defecto es observación: no le escribe nada a la controladora de vuelo.
34 pruebas. Todo simulado — ningún componente se ejecutó sobre aeronaves reales.
Hacki