El 19 de octubre la sonda Schiaparelli se estrelló en Marte. Terminaba así el primer intento de la agencia espacial europea (ESA) para aterrizar en el planeta rojo. Desde entonces, y como es lógico, han surgido todo tipo de teorías para explicar el fracaso. En un principio los propios altos cargos de la ESA señalaron al sistema de control y, más concretamente, al software como el culpable, pero pronto aparecieron hipótesis alternativas. ¿Y en qué ha quedado el asunto? Pues a la espera del informe final, la ESA ha hecho público un detalle fundamental: el accidente fue debido a un fallo de la IMU.
Vale, ¿pero qué es una IMU? Para los que no lo sepan, una IMU, o unidad de medición inercial, es un sistema formado por un conjunto de acelerómetros y giróscopos que registra las fuerzas y velocidades de giro que experimenta un objeto y traslada estos datos al resto del sistema de control del vehículo o GNC (‘sistema de guiado, navegación y control’), el cual los convierte en una trayectoria. Es decir, la IMU le permite saber a una nave espacial —o un avión o un cohete— su orientación y dónde está en cada momento sin necesidad de referencias externas (suponiendo que esté bien calibrada, claro, porque siempre habrá un error).
En el caso de Schiaparelli se produjo una ‘saturación inesperada’ de la IMU durante un segundo justo cuando se desplegó el paracaídas y la nave comenzó a balancearse de las líneas en un fuerte movimiento de nutación (bamboleo). El sistema había sido programado para tolerar giros de hasta 150º por segundo, pero todo indica que en esta etapa se superó el valor máximo de la IMU, de 180º por segundo. Y el sistema de control no supo interpretar correctamente los datos de la IMU sobre la orientación del vehículo.
El sistema GNC se desorientó cuando el radar Doppler, que permite calcular la velocidad y altura con respecto al suelo, comenzó a aportar sus propios datos a 3,7 kilómetros sobre la superficie. En esta etapa Schiaparelli no podía depender únicamente de los datos del radar porque, obviamente, el movimiento de bamboleo bajo las líneas del paracaídas hace que el haz de radar no apunte continuamente hacia el suelo, por que es preciso saber la orientación de la sonda para corregir los datos del radar y calcular la altura y velocidad correctas.
Como resultado el sistema de control creyó que la nave estaba a dos kilómetros bajo la superficie y ordenó que se desprendiese el paracaídas y se apagasen prematuramente los nueve impulsores de hidracina tras solo un segundo de funcionamiento, así que la nave cayó libremente hasta impactar contra el suelo a 540 km/h. De acuerdo con la ESA, el fallo ha sido reproducido en simuladores del sistema de control, obteniéndose los fatídicos resultados conocidos por todos.
Lo que no se entiende es que una saturación de la IMU de un segundo hiciese creer a Schiaparelli que ya había aterrizado. Evidentemente, a la velocidad que iba la nave a 3,7 kilómetros de altura es físicamente imposible que en un segundo pudiera alcanzar la superficie, algo que debería haber tenido en cuenta el sistema GNC. Si la defensa no aporta alguna coartada, está claro que el sistema GNC, y más concretamente su software, sería el segundo culpable del accidente, tal y como se insinuó en un principio (recordemos que este software ha sido desarrollado por la empresa española GMV). Sea como sea, conviene recordar que el software se ajustó a unas especificaciones determinadas y, en todo caso, habría que buscar el fallo en dichas especificaciones previas.
¿Caso cerrado? No tan rápido. Primero, no sabemos qué causó la saturación de la IMU —de fabricación estadounidense, por cierto— en primer lugar. ¿Por qué osciló tan rápido Schiaparelli bajo el paracaídas?¿Fue debido a un fallo mecánico?¿Por qué no se previó esta posibilidad? Pero, por encima de todo y como ya hemos apuntado por aquí, si el fallo radicaba en el software, ¿por qué ningún control de calidad fue capaz de detectarlo?¿Qué pasa con la responsabilidad sobre las especificaciones por las que se regía el software (GMV no desarrolló estas especificaciones ni, por cierto, los algoritmos en los que se basa)? Este hecho es especialmente sangrante si recordamos que el primer vuelo del Ariane 5 en 1996 también terminó en fracaso por un mal funcionamiento del sistema GNC.
Ahora deberemos esperar a enero de 2017 hasta que aparezca el informe final sobre el accidente de Schiaparelli. Antes, los ministros europeos deben decidir el próximo diciembre si finalmente dan 300 millones de euros a la misión ExoMars 2020 para que pueda seguir adelante, una misión que también empleará parte de la tecnología de Schiaparelli.
Referencias:
Creo que siempre se debe tomar el camino mas constructivo y en este caso uno de los mas trillados de todos: aprender de los errores.
Si la secuencia de eventos que se supone que ocurrieron fué la correcta entonces la falla puede estar en muchos sitios y no solo en uno
1- Si fallo el comportamiento del paracaídas, es necesario saber si esa falla fué catastrófica en si misma.
2- Que la IMU soporte un máximo de 150 grados por segundo ¿es un error o una oscilación superior a ese valor implica una situación de no retorno?
Si es lo segundo entonces toda la falla (catastrófica) está en el paracaídas, ya sea de diseño o porque algo no funcionó como debía.
3- Si oscilaciones superiores a 150 grados por segundo no deberían ser catastroficas entonces esa IMU no sirve para aterrizar en Marte, haberla elegido fué un error.
4- Respecto del software estamos hablando de que debe ser LA INTELIGENCIA NECESARIA PARA ATERRIZAR EN MARTE entonces es inaceptable no haya podido manejar la diferencia entre la información de la IMU y del radar doppler, que según indican funcionaba correctamente.
Lejos de ser un concepto novedoso, en terminos de software robotico es básico y primordial el manejo de información contradictoria entre sensores.
Queda por supuesto como disculpa que si contínuamente estaba recibiendo información incorrecta no habría podido hacer mucho, sin embargo esto entra en contradicción con la celeridad con que descartó el paracaidas y apagó los motores.
«Como resultado el sistema de control creyó que la nave estaba a dos kilómetros bajo la superficie»
¿alguien me puede explicar eso? yo entiendo que ya estaba bajo la superficie o sea estaba dos kilometros bajo el subsuelo de marte.
Pues exactamente lo que quiere decir la frase, que el ordenador creyó que estaba a -2 km de altura.
Mucho me temo que a este paso nos pasará como a Aquiles intentando saber -honestamente- que pasó exactamente 🙂
1. El detalle clave de todo el ajo algun comentarista lo apunta arriba:
———-¿El paracaidas se desplegó antes de tiempo o no? ——
Recuerdo que dijeron que se desplegó antes de tiempo -si es menester busco la cita del preboste-… luego, tambien avisaron desde italia que ese detalle implicaba serias oscilaciones del paracaidas. ¿Os suena?
Si la secuencia del descarte del primer escudo y el despliegue del paracaidas se anticipó a lo previsto ¿a que santos huevos viene meterle el marron principalmente a la IMU y otro poco -pero no demasiado- a los genios creadores del software?
Ya hablamos en otra entrada de Eureka de esas IMUs. Aqui un pdf comercial http://www.northropgrumman.com/Capabilities/LN200FOG/Documents/ln200s.pdf No lo digo yo, ni me dedico a medir momentos de inercia pero IMUs del mismo fabricante se usaron en las viking y VARIAS sondas mas! … ¿conoceis las oscilaciones q sufrieron aquellos parachutes del viking? mirad bibliografia reciente, por ejemplo el meeting que hizo la NASA no hace mucho con expertos en paracaidas… flipareis 🙂
Decir que una maniobra como ésta nunca se ha realizado es mentir, que es dificil de cojones también. Aterrizajes similares mas o menos, no me seais pejigueros, con IMUs, dopplers, paracaidas, escudos… CPUs de ¿8bits? …. ya se han hecho!!! Las viking tenian masa parecida y dos de dos…. DOS de DOS . Hay leyendas que explican que tambien se usa algo llamado «skycrane» para posar trastos en Marte… pero debe ser falso o de otro planeta.
2. Tambien estoy al 98.86% de acuerdo con uno -al menos- de los comentarios anteriores. Yo me pego unas risas tremendas si lo pongo así:
Schiappi CPU: – ¡Ostias! ¡El radar me dice que voy en la trayectoria prevista pero los IMU dicen que estoy bajo tierra! ¡está claro! ¡¡¡¡he aterrizado!!!!
:O
Cito de http://www.gmv.com/es/Empresa/Comunicacion/Noticias/2016/10/ExoMars.html
«… diseñando y desarrollando el software embarcado del Sistema GNC … del módulo de descenso Schiaparelli …realiza los cálculos de la navegación basado en los datos que recibe de la IMU y otros sensores (como el radar, o el sensor del sol), activa automáticamente todos los eventos relacionados con las fases EDL…. que incluyen la entrada controlada en la atmósfera marciana, el despliegue del paracaídas, la separación del escudo térmico, y el control de propulsores para el aterrizaje con el fin de lograr un aterrizaje seguro….»
Si es que clama al cielo, y es que de nuevo no busco putear al que la ha evacuado pero:
Muy estimados gestionadores de datos vayánse ustedes a freír algoritmos.
😀
Al final ¿es verdad que estamos mas cerca de saber la causa del accidente? …no lo tengo nada claro.
¿Lo sabremos «early 2017»? pfffffffffff… 🙁
Muchas gracias Daniel por ésta entrada, las anteriores y muchas felicidades por la reciente paternidad. Que post mas largo… si alguien se lo ha leido feliz fin de semana.
Vale, pero el pseudocódigo sobre que información me creo (de qué sensor), la deciden los ingenieros a más alto nivel. Al ingeniero de software, estas cosas se le dan para implementar, el ing de software no se encarga de qué prioridad tienen los sensores, esto es aeronáutica.
El caso es que creo que entrar en detalles tecnicos es parte del mareo de perdiz…
Da igual.
¿El sistema de guiado y demás misérias era lo suficientemente robusto para ser capaz de descartar una lectura negativa de altitud? No. Y eso es basico diria yo.
Hágalo usted como guste pero diria que ya hace 30 años que computadoras terriblemente mas simples en ese caso tomaban decisiones acertadas. Que hacian menos filigranas ok… pero vamos. Parece que vamos patrás, o pabajo.
En mi humilde opinión, el fallo radica en el algoritmo del proceso de descenso. Este debe prever cualquier situación por más inverosímil que parezca. IF, THEN, ELSE, CASE, son instrucciones o pseudocódigo usados para tratar estas variables. Una lectura del altímetro indicando un valor por debajo de la superficie es algo que debe ser tratado por el software, independientemente si está definido en una especificación o no.
Un ejemplo. Un simple software de calculadora en C++ debe chequear si el divisor es cero para evitar esta condición de cociente infinito.
Otro punto importante es sobre el bamboleo durante la entrada. Posiblemente un desbalance en el peso o deformación en el escudo protector fue el detonante para que el MIMU fallara.
En fin. Fueron varios factores y la necesidad de ajustarse al presupuesto casi siempre causa este tipo de desgracia.
Los ministros europeos deben decidir en diciembre si dan 300 millones para Exomars2020. Pues la decisión está clarísima: ni un euro hasta que se haya publicado el informe definitivo de esta chapuza de aterrizaje. O acaso: ¿qué ministro, qué directivo, qué responsable, podría justificar la continuación de esta misión y que hubiera otro fallo similar y se estrellase el rover en el 2020?.
Por otro lado, Eduardo García Llama en su blog de «El mundo» (el 19/11) dice que «el módulo de descenso no poseía un sistema de control de orientación», pero aquí tú Daniel hablas del «GNC (‘sistema de guiado, navegación y control’)».
Para enviar una nave a la superficie de Marte sin GNC mejor enviar una piedra. El resultado es el mismo 😉
Daniel, en unos días hablaré con uno de los responsables científicos de ExoMars. A ver qué puede decir y lo comentaré.
Ya he hablado con ese responsable de la ESA.
Dice que el lander de la ExoMars2020 tendrá: dos paracaídas en vez de uno sólo (el segundo subsónico), no se va a usar la plataforma inercial similar (con esos 3 giroscopios y 3 acelerómetros) que ha fallado en Schiaparelli, el radar es el mismo (dice que ahora ha funcionado bien), los motores de aterrizaje serán diferentes (aunque los de ahora han funcionado bien; solo que a 3km de altura). No me ha quedado claro cómo piensan medir en ExoMars2020 la distancia a la superficie (¿sólo con este radar?). Dice que, a 1 Dic. 2016, el informe definitivo de la colisión ya está terminado, supongo que los ministros lo estudiarán antes de tomar la decisión (como era lógico). Este responsable dice que (si no contamos con ese fallo en el sistema inercial de control) los aterrizajes virtuales en los simuladores son ahora todos exitosos.
A pesar de todas las buenas intenciones; yo soy escéptico, pero bueno, ya veremos qué pasa en 2020.
Y ambas afirmaciones no son incompatibles:
Un GNC -en el caso más general: 6DoF- estará a cargo de los 6 grados de libertad que definen movimiento de una sonda (3 de orientación y 3 de posición).
De ahí para abajo tienes todos los casos particulares que quieras.
En el caso de Schiaparelli, el GNC no tenía capacidad de control sobre los 3 grados de libertad de orientación (o de actitud). Y, de los 3 de posición, creo que tampoco le importaban mucho dos de ellos (los del plano «horizontal», digamos); su único interés era el otro: la altura.
Si no me equivoco, los acelerometros te dan tu posición respecto a la gravedad (actitud) y los giroscopios la velocidad angular, pero no la posición, para ello necesitas un GPS y sensor de altura (barómetro, radar, laser…). Si que es cierto que con la imu puedes hacer ciertas estimaciones basadas en información previa, pero es algo limitado, un airspeed sensor te da también buena información para estimar sin GPS.
Hola, Jimmy.
La actitud se obtiene a partir de los giróscopos: Los giróscopos, efectivamente, miden la velocidad angular de la nave, que es una magnitud vectorial. Por ello, se precisan 3 giróscopos colocados entre ellos a 90º. Integrando en el tiempo esta velocidad angular, se van obteniendo los tres ángulos que definen la orientación de la nave con respecto a un sistema de referencia inercial (es decir, su actitud).
Por otra parte, están los acelerómetros: También son 3 y también están colocados entre ellos a 90º. Cada uno de los acelerómetros mide una componente de la aceleración que está experimentando la nave y, por los tanto, los 3 en conjunto miden el vector aceleración en un sistema de referencia ligado a la nave. Para transformarla a cualquier otro sistema de referencia, necesitas hacer uso de la actitud calculada a partir de los datos de los giróscopos.
Integrando en el tiempo la aceleración, vas obteniendo la velocidad (el vector velocidad) y, finalmente, integrando en el tiempo la velocidad, vas obteniendo el vector posición.
Los acelerómetros por sí mismos no pueden «dar la posición respecto a la gravedad (actitud)», entre otras cosas porque no son capaces de distinguir si la aceleración que están sintiendo (la componente de la aceleración, si queremos ser más estrictos) proviene de la gravedad o de las fuerzas aerodinámicas.
Buena explicación!
Gracias.
Mi apuesta es que el error primordial proviene de antes.
La separacion no fue nominal.
Si no voy errado entre la separacion del lander del orbiter y que los IMUs y demas sensores entren en accion es simplemente una cuenta atras preprogramada. Ahí han metido la gamba y han despertado a la bestia antes de tiempo. Luego es todo una cadena de errores. Demasiado mach, parachute inestable, IMUs mareados y CPUs flipadas.
A mi me parece grave porque, sin tener ni idea de aeronáutica, 150 grados por segundo y entrada descontrolada me parecen lo mismo. O sea que parece que aún no se entiende la dinámica de la entrada en Marte y 2020 está a la vuelta de la esquina.
Por otra parte, todo el paripé de las revisiones, empezando por el jefe de la ESA que se largó por todo el morro de la conferencia de prensa para no tener que dar explicaciones, es directamente escandaloso y deberían rodar cabezas. No se entiende que la ESA juegue a las chapuzas. Si no hay presupuesto para ir a Marte pues tendremos que apretar la mandíbula y tragarnos la indignación pero lo que no se puede hacer son apaños rollo Phobos-grunt que sólo conseguirán desalentar a la opinión pública. ¡Pero si se tuvo que meter a Rusia porque no había ni para el lanzador!.
Recuerdo que la NASA construyó toda una torre con su edificio adjunto solo para desarrollar los airbag del pathfinder y eso que era una misión de bajo coste.
Yo también quiero que Europa esté en Marte pero trabajando de esta manera me temo que no se va a conseguir.
Una capa de supervisión inteligente con la suficiente sangre fría – es un decir – habría cambiado el plan sobre la marcha, y aguantado un poco para ver si cesaban las oscilaciones bajo el paracaídas. En última instancia, habría intentado usar los cohetes ( las toberas no eran orientables, pero sí su régimen de trabajo ) para corregir la actitud y apuntar el radar hacia abajo, cediéndole entonces la autoridad al GNC.
Pero el tema de la IA está un poco verde todavía.
pd: papá 🙂
150 grados por segundo no es una burrada, si das un salto y una vuelta sobre ti mismo por ahí anda la cosa. Cualquier multicóptero hace estos cálculos.
Pues tal como yo lo veo, es un problemon lo que tiene la ESA y no se va a aprobar la mision para 2020. Es un fallo de software, que no es capaz de lidiar con situaciones anomalas, esos -2000 metros son un problema de diseño … pero eso se puede arreglar de forma sencilla. El problemon del paracaidas es otra cosa y mas costoso. Pero lo peor es que se ha demostrado que esta muy verde con errores cocatenados y para nada es un sistema minimamente seguro. Creo que han quedado papentes las verguezas de demasiados eslabones y eso llevara al retraso o algo peor.
Dios después se quejan de los controles de calidad de los rusos.
Si los chinos logran amartizar antes que los europeos poemos considerar ala esa como agencia espacial de pringado
“Yo” en el papel de los ministros europeos y como representante del contribuyente europeo, aplazaría la misión hasta 2022..
..o por lo menos antes de dar la plata de los 300 millones de euros para Exomars 2020 primero tendría claridad (informe final) sobre quienes son los responsables y en que se fallo y por que: deberían rodar cabezas, antes de invertir plata en otro fracaso en potencia.
En cuanto a Roscosmos cumplió con el lanzador, no fallo en nada,
y la ESA (sin humildad alguna) no puede mostrar como un “éxito” el evidente fracaso del Modulo Shiaparelli. Si fracasa Exomars 2020 como quedara la ESA y mas si los Chinos logran aterrizar su Rover en Marte en el 2020.
Schiaparelli era un módulo de demostración sin un fin científico para testear los sistemas y evitar cagadas como las que ha habido con el aterrizador del rover. No digo que no haya que cortar cabezas, pero igual no es lo más adecuado, hay que hacer un buen análisis y ver cual es la mejor solución. Tienen 4 años por delante.
Lo importante es que el rover aterrice, cortar cabezas por cortar cabezas no lleva a ningún lado. Uno no aprende a andar sin caerse, la innovación va ligada al fallo y a asumir ciertos riesgos para avanzar. A veces es mejor lanzar un demostrador aunque no esté todo perfecto que retrasar 2 años y pico, evitar la «parálisis por análisis».
Llame-lo como quiera, lo cierto es que el Modulo Shiaparelli FRACASO:
fracaso es fracaso, punto.
Si no se toman medidas de fondo y si no se rinde un informe final serio y detallado de responsabilidades, Exomars 2020 sera un FRACASO en grande,
acaso ¿saldrán los ministros de los diferentes saldrán a girar 300 millones de euros para financiar otro fracaso sin saber antes que paso con lo del Modulo Shiaparelli?
y cuando lleguemos a 2020 ¿ usted saldrá usted a decir y aplicar la filosofía de: “perder es ganar” porque “porque aun se gatea”? , pero resulta es que “gateando se fueron por el abismo del fracaso”..
en 2020 veremos como les va a la NASA, a la ESA-Roscosmos, y a los Chinos con sus proyectos.
El Modulo Shiaparelli… DEMOSTRÓ su fracaso.
Jimmy da igual como se lo digas o expliques, el troll fracasado no tiene otra palabra en la boca ni en el cerebro y ya hizo bastante el ridiculo en las entradas de Philae.
Don´t feed the fracasitos troll.
Joer, que gozada de artículo, y que gozada con los comentarios de los foreros. Me he quedado a gusto. Saludos.
Vamos a ver… desde la logica de un tío que ni ha currado (ni currará) en una agencia espacial, ni en una empresa de desarrollo de software aeroespacial, y que no tiene ni puñetera idea si Honeywell es de Arkansas o de Fuengirola):
En qué puñetero caso de todas las simulaciones que se debieron hacer, se contempló el caso de: Si los datos que te lleguen finalmente (por temas de priorización) de los distintos sensores te indican que estás a 2 km (2 km.!!!) bajo tierra, es que has aterrizado, así que apaga los cohetes… (???!!!).
O en alguna simulación se vió que con sólo un segundo de encendido de motores podría ser suficiente en algún caso?? Coñe, que se habrán hecho (espero) 20.000 simulaciones y es imposible que en ningun caso con solo un segundo de cohetes, aquello aterrizase en condiciones. Puestos a ostiarse, por lo menos que hubiese gastado todos sus recursos…
No sé, que le hubiesen metido 4 lineas mas de código para que:
– Si el UMI se satura, espera 4 segundo mas antes de hacer nada y vuelve a tomar datos
– Si algún sensor dice que estás a 2 km. bajo tierra (o por debajo del nivel del suelo en general) no le hagas ni puñetero caso y pregunta a otros sensores.
– Si todos los datos de medición en vivo, son un puñetero caos, fiate de los calculos que se hubiesen hecho previamente desde tierra con lo que deberia ser un planetizaje estandar (paracaidas nosecuantos segundos, cochetes otros nosecuantos mas, etc…).
Es una pena pero algo se ha planteado, testado, encargado, diseñado, fabricado muy muy mal. Porque estoy convencido, que un aterrizaje a ciegas, solo con calculos teoricos hechos desde tierra sin emplear ningun sensor de la Chatarreti, hubiese sido menos desastroso… y esto, señoras y señores, ha sido un facasazaco (el resto de la misión, chapó). Así que, si hay que esperar un par de años mas, pues se esperan aunque se nos coman los chinos!! Perfiero llegar tarde que no llegar (DGT Mode ON).