Pedidos de J.L.L.O.:
Cómo se revisó:
aprender.| Pieza | Programa | Licencia | Qué tiene por dentro | Qué le falta para rescate |
|---|---|---|---|---|
| Vuelo | PX4 | BSD-3 (producto cerrado OK) | Geocerca (GF_ACTION), retorno y protección si se corta
el control externo (COM_OF_LOSS_T 1 s); acepta un
computador acompañante por TELEM2 o ROS 2 |
No tiene modo de búsqueda |
| Mando desde la Raspberry | MAVSDK | BSD-3 | Misiones, offboard.set_position_global, importa
.plan y manda mensajes propios desde XML (su ejemplo
GAS_SENSOR id 44000 ya mide CO₂ y CH₄) |
La lógica de «ir a la celda más probable» |
| Estación de tierra | QGroundControl | Apache 2.0 (con Qt comercial de pago) o GPLv3 | Ganchos customMapItems() para pintar un mapa de calor,
mavlinkMessage() para recibir celdas, ítems de misión
propios, mapas sin internet |
No trae patrones SAR ni capa de probabilidad |
| Oído | ODAS | MIT | SRP-PHAT jerárquico y seguimiento Kalman/partículas en C; hecho para Raspberry; configuración del ReSpeaker incluida | No detecta golpes, no quita el ruido propio de las hélices (ego-noise; HARK lo trae aparte), da puntajes y no probabilidades, no habla con un mapa. Sus filtros espaciales sólo limitan dónde busca fuentes |
| Oído (laboratorio) | pyroomacoustics | MIT | MUSIC, NormMUSIC, MVDR, separación ciega, simulador de salas | Lo mismo |
| Sacar canales crudos | ReSpeaker tuning.py + firmware de 6 canales |
Apache-2.0 | Canales 1–4 crudos; apagar AGC y supresión de ruido | — |
| Escenarios sintéticos de persona perdida | SAREnv (dataset y banco de pruebas; no es un paquete de tablas de Koester, que se obtienen aparte del libro) | MIT | Log-normal ajustada a percentiles; tiene un error:
no divide por 2πr (generation.py:779) |
No tiene POD real ni lecturas positivas |
| Plan de vuelo IAMSAR | SearchWing | GPL-3.0 | Cámara → ancho de barrido → .plan |
Sin probabilidad (son ~60 líneas que se reescriben) |
| Trabajo sin internet | Pátrač | GPL-2.0+ | Cola SQLite y GPX por sector; error en
sectors.py:1301 (layer_probability nunca se
asigna) |
Sólo percentiles de anillo |
| Reparto óptimo | SORAL | MIT | Charnes–Cooper y Washburn (JOTA) en C++/Python | Es de 2017, sin mantenimiento |
Licencias: PX4, MAVSDK, ODAS, pyroomacoustics, SAREnv y SORAL son MIT o BSD: se pueden usar en un producto cerrado. De los GPL (Pátrač, SearchWing, DREGON, OpenDrift) se copia el método, no el código. QGroundControl se deja sin tocar y el mapa de calor va en una pantalla propia (web local), o se paga Qt comercial.
Lo que SAROPS no hace:
Mapa de ocupación bayesiano por celda. Cada celda lleva su log-odds ℓ_j; sirve para varias víctimas.
S1N_CELL (celda, probabilidad, sentido, confianza), que se
manda sólo cuando una celda cambia..plan IAMSAR para el dron.S1N_CELL y el registro de sensores
sincronizado con la posición.Primer paso propuesto: ticket de laboratorio para el mapa de ocupación v0, sobre la simulación de TK-1285, con protocolo commiteado antes de correr.
Correcciones del 2026-10-30 (revisión de otra
sesión, comprobada): SAREnv no es un paquete de tablas de Koester; los
filtros espaciales de ODAS no limpian ruido; la Hadron 640R+ es
compatible con Prism ISP/AI, que se licencia aparte; la licencia de HARK
es propia. Detalle en
PIEZAS_SOFTWARE_RESCATE_2026-10-30.md.