← all shorts

Engineering

Mars Climate Orbiter

#008 · 5 min read

A control room with multiple monitors displays data and images related to Mars Climate Orbiter, while a large screen in the background shows an illustration of the spacecraft against a red celestial backdrop.

On 23 September 1999, a $327.6 million NASA spacecraft slipped behind Mars and never came out the other side. The cause, when they finally found it, was a multiplication by 4.45.

The Mars Climate Orbiter was supposed to be the dull half of a two-part mission. Its sister craft, the Mars Polar Lander, had the dramatic job — touching down near the south pole, digging into the regolith, looking for water ice. The Orbiter's role was to circle the planet at 421 kilometres altitude, watch the weather for a Martian year, and act as a radio relay for the lander. It launched from Cape Canaveral on 11 December 1998 aboard a Delta II, on a Hohmann transfer that would take 286 days.

The craft itself was a 638-kilogram box of aluminium honeycomb built by Lockheed Martin Astronautics in Denver. Navigation — the business of knowing exactly where the spacecraft was, and where to point its thrusters — belonged to NASA's Jet Propulsion Laboratory in Pasadena. The two teams talked constantly. They exchanged files of telemetry. They ran the numbers. The numbers were wrong for nine months and nobody noticed.

Mars Climate Orbiter - mishap diagram
Mars Climate Orbiter - mishap diagram Xession · BY 3.0

On the night of 23 September, at 09:00:46 UTC, the Orbiter fired its main engine for a 16-minute burn to drop into Mars orbit. Forty-nine seconds before the scheduled end of the burn, the craft passed behind the planet as expected. Loss of signal. Twenty-one minutes later, when it should have re-emerged, the deep-space network heard nothing. It never heard anything again.

A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn
A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn Illustration · AI-generated (FLUX.1-dev)

A file called SM_FORCES

The investigation, led by Arthur Stephenson of Marshall Space Flight Center, traced the failure to a single ground-software file. Lockheed's flight team computed the impulse imparted by the spacecraft's small angular-momentum-desaturation thrusters — the ones that fired briefly, several times a day, to bleed off the spin built up in the reaction wheels. They wrote those numbers into a file the navigators at JPL ingested to update their trajectory model.

A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav
A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav Free Public Domain Illustrations by rawpixel · BY 2.0

Lockheed wrote the file in pound-force seconds. JPL read it as newton-seconds. A pound-force is 4.45 newtons. Every time the thrusters fired, JPL's model under-counted the push by a factor of 4.45, and the spacecraft drifted a little further from where the model said it was.

The error was small per event and enormous in aggregate. By the time the Orbiter reached Mars, the navigators believed it would skim the atmosphere at 226 kilometres. The actual closest approach was somewhere between 57 and 80 kilometres — well inside an atmosphere that, though thin, is dense enough at that altitude to tear a spacecraft apart. The Orbiter either burned up or was thrown back into solar orbit as a slowly tumbling wreck. Nobody knows which.

The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again
The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again Illustration · AI-generated (FLUX.1-dev)

The reviews that didn't happen

The units mismatch was, by itself, a single line of bad documentation. The deeper failure was that nine months of operations went by without anyone catching it. NASA's own Mishap Investigation Board was blunt: navigators had been reporting anomalies in the trajectory model for months. The spacecraft was consistently drifting south of its predicted track. Two correction burns scheduled for late in the cruise — Trajectory Correction Manoeuvres 4 and 5 — were considered and then descoped under schedule pressure. A formal peer review of the navigation software was on the plan and never happened.

Orbites aérofreinage Mars Climate Orbiter
Orbites aérofreinage Mars Climate Orbiter Savant-fou · BY-SA 3.0

The board's report named the cause as institutional, not technical. The Mars Surveyor program had been built around Daniel Goldin's "faster, better, cheaper" doctrine, which cut mission budgets roughly in half from the Viking-era baseline and ran teams thin. Lockheed's flight operations group had eight people doing work that previous missions had given to twenty. When small anomalies showed up, there was no slack to chase them. Eleven weeks later, the Mars Polar Lander also vanished, almost certainly because its landing-leg sensors mistook deployment vibration for touchdown and shut the engines off forty metres above the ground. Same program. Same year. Different bug.

In a late-1990s navigation room
In a late-1990s navigation room Illustration · AI-generated (FLUX.1-dev)

What we still don't know

We do not know the exact altitude at which the Orbiter was destroyed. The board's estimate of 57 km was based on tracking data extrapolated forward; the spacecraft itself stopped reporting before it reached the dense layer. Whether it burned up cleanly, broke up at high altitude, or skipped back out into a heliocentric orbit is technically still unresolved.

Mars Climate Orbiter
Mars Climate Orbiter NASA/JPL/Corby Waste · Public domain

We do not fully know why the SM_FORCES file was written in imperial units in the first place. The contract specified SI. Lockheed's own internal documents specified SI. The most likely answer is that an early prototype used pound-force and was never converted, and that the unit label on the file was lost somewhere in a chain of inherited code.

The Orbiter skims too low over Mars at the edge of the atmosphere
The Orbiter skims too low over Mars at the edge of the atmosphere Illustration · AI-generated (FLUX.1-dev)

We also do not know how many other near-misses the same program contained. The board interviewed staff who said similar small discrepancies had been noticed on earlier missions and rationalised away. The Orbiter was the one that happened to fail loudly.

A Delta II rocket costs about $50 million to launch. The Orbiter cost six times that. The lesson learned — verify the units on every interface, every time — was already in the engineering textbooks in 1962, when Mariner 1 was destroyed off the Florida coast because a guidance equation was mistranscribed by a single character. The textbook had not changed. Only the bill.

1999年9月23日,一艘造价3.276亿美元的NASA航天器滑入火星背面,再也没有从另一侧出来。当人们最终查明原因时,发现那是一次乘以4.45的运算。

火星气候探测者号原本应是这项双重任务中平淡无奇的一半。它的姊妹探测器——火星极地着陆者号,承担着惊心动魄的工作——在火星南极附近着陆,挖掘风化层,寻找水冰。探测者号的角色则是在421公里的高空环绕这颗行星,观测一个火星年的天气,并充当着陆者的无线电中继站。1998年12月11日,它搭乘德尔塔2号运载火箭从Cape Canaveral发射升空,踏上了耗时286天的霍曼转移轨道。

探测器本身是一个重达638公斤的铝制蜂窝状箱体,由位于丹佛的Lockheed Martin Astronautics制造。导航——也就是精确掌握航天器位置并确定推进器朝向的工作——则归属于位于帕萨迪纳的NASA's Jet Propulsion Laboratory。这两支团队保持着持续的沟通。他们互传遥测文件。他们计算着各项数据。这些数据整整错了九个月,却无人察觉。

Mars Climate Orbiter - mishap diagram
Mars Climate Orbiter - mishap diagram Xession · BY 3.0

9月23日夜晚,协调世界时(UTC)09:00:46,探测者号点燃主引擎,进行了长达16分钟的燃烧,以求切入火星轨道。在计划燃烧结束前49秒,航天器如期转到了火星背面。信号丢失。21分钟后,当它本应重新出现时,深空网络却未接收到任何信号。此后,便彻底杳无音信。

A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn
A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn Illustration · AI-generated (FLUX.1-dev)

一个名为SM_FORCES的文件

Marshall Space Flight CenterArthur Stephenson领导的调查小组,将这次失败追溯到了地面软件中的一个单一文件。洛克希德的飞行团队计算了航天器上的小型角动量卸载推进器所产生的冲量——这些推进器每天会短暂点火几次,以抵消反应轮中累积的旋转。他们将这些数据写入了一个文件中,而JPL的导航员会读取该文件来更新他们的轨迹模型。

A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav
A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav Free Public Domain Illustrations by rawpixel · BY 2.0

洛克希德在编写文件时使用的单位是磅力秒。而JPL读取时却当成了牛顿秒。1磅力等于4.45牛顿。推进器每次点火,JPL模型所算出的推力都会比实际小4.45倍,于是航天器便会比模型预测的位置再偏离一点。

每次点火的误差微乎其微,但累积起来却大得惊人。当探测者号抵达火星时,导航员们相信它将在226公里的高度掠过大气层。实际的最近距离却在57到80公里之间——这已深深陷入了火星大气层内部;尽管那里的大气稀薄,但在该高度的密度依然足以将航天器撕成碎片。探测者号要么被焚毁了,要么变成一块缓慢翻滚的残骸被抛回了太阳轨道。没人知道究竟是哪种结局。

The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again
The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again Illustration · AI-generated (FLUX.1-dev)

那些未曾进行的审查

单位不匹配本身只是一行糟糕的文档记录惹的祸。更深层次的失败在于,在长达九个月的运行中,竟然没有一个人发现这个问题。NASA内部的Mishap Investigation Board直言不讳地指出:几个月来,导航员们一直在报告轨迹模型中存在的异常情况。航天器始终偏向其预测轨迹的南方。原定于巡航后期的两次轨道修正点火——第4次和第5次轨迹修正机动——在经过考虑后,因进度压力而被取消。导航软件的正式同行评审原本在计划之内,却从未真正实行。

Orbites aérofreinage Mars Climate Orbiter
Orbites aérofreinage Mars Climate Orbiter Savant-fou · BY-SA 3.0

委员会的报告指出,事故的原因在于体制,而非技术。火星勘测者计划是围绕着Daniel Goldin“更快、更好、更便宜”的信条建立的,这一信条将任务预算从“海盗号”时代的基准线削减了约一半,并导致团队人手严重不足。洛克希德的飞行运行小组只有8个人,却要完成以往任务中交由20人承担的工作量。当微小的异常出现时,根本没有多余的精力去追查。11周后,火星极地着陆者号也离奇失踪了,几乎可以肯定是因为其着陆腿传感器将展开时的震动误认为已触地,从而在距地面40米的高空过早地关闭了引擎。同样的计划。同一年。不同的系统缺陷。

In a late-1990s navigation room
In a late-1990s navigation room Illustration · AI-generated (FLUX.1-dev)

我们依然未知的事情

我们不知道探测者号被毁时的确切高度。委员会给出的57公里的估计值,是基于跟踪数据向前推算得出的;航天器在到达稠密大气层之前就已停止了报告。它是被彻底烧毁了、在高空解体了,还是跳回了日心轨道,在技术层面上依然没有定论。

Mars Climate Orbiter
Mars Climate Orbiter NASA/JPL/Corby Waste · Public domain

我们并不完全清楚为什么SM_FORCES文件一开始会采用英制单位编写。合同中明确规定使用国际单位制(SI)。洛克希德自身的内部文档也规定使用国际单位制。最可能的答案是,早期的原型使用了磅力且从未被转换过来,而文件上的单位标签则在继承代码的链条中某处遗失了。

The Orbiter skims too low over Mars at the edge of the atmosphere
The Orbiter skims too low over Mars at the edge of the atmosphere Illustration · AI-generated (FLUX.1-dev)

我们也不知道同一个计划中还隐藏着多少次与灾难擦肩而过的险情。委员会在访谈员工时得知,早先的任务中也曾出现过类似的微小偏差,但都被强行合理化并忽略了。探测者号只是那个碰巧以最惨烈的方式暴露出来的失败。

发射一枚德尔塔2号火箭大约耗资5000万美元。探测者号的造价是这个数字的六倍。从中吸取的教训——每次都要核对每个接口上的单位——早在1962年就已写进了工程学教科书中,当时Mariner 1正是因为制导方程被抄错了一个字符,而在佛罗里达海岸坠毁。教科书未曾改变。变的只有这笔账单。

El 23 de septiembre de 1999, una nave espacial de la NASA de 327,6 millones de dólares se deslizó tras Marte y nunca salió por el otro lado. La causa, cuando finalmente la encontraron, fue una multiplicación por 4,45.

Se suponía que la Mars Climate Orbiter sería la parte monótona de una misión doble. Su nave hermana, la Mars Polar Lander, tenía la tarea espectacular: posarse cerca del polo sur, excavar en el regolito y buscar hielo de agua. La función del orbitador era circunvalar el planeta a 421 kilómetros de altitud, observar el clima durante un año marciano y actuar como repetidor de radio para el módulo de aterrizaje. Despegó desde Cape Canaveral el 11 de diciembre de 1998 a bordo de un Delta II, en una trayectoria de transferencia de Hohmann que duraría 286 días.

La nave en sí era una caja de 638 kilogramos de nido de abeja de aluminio construida por Lockheed Martin Astronautics en Denver. La navegación —el asunto de saber exactamente dónde estaba la nave espacial y hacia dónde apuntar sus propulsores— correspondía al NASA's Jet Propulsion Laboratory en Pasadena. Los dos equipos hablaban constantemente. Intercambiaban archivos de telemetría. Hacían los cálculos. Los números estuvieron mal durante nueve meses y nadie se dio cuenta.

Mars Climate Orbiter - mishap diagram
Mars Climate Orbiter - mishap diagram Xession · BY 3.0

La noche del 23 de septiembre, a las 09:00:46 UTC, el orbitador encendió su motor principal para una ignición de 16 minutos a fin de insertarse en la órbita de Marte. Cuarenta y nueve segundos antes del final programado de la ignición, la nave pasó por detrás del planeta como se esperaba. Pérdida de señal. Veintiún minutos más tarde, cuando debía reaparecer, la Red del Espacio Profundo no escuchó nada. Nunca volvió a escuchar nada.

A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn
A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn Illustration · AI-generated (FLUX.1-dev)

Un archivo llamado SM_FORCES

La investigación, dirigida por Arthur Stephenson del Marshall Space Flight Center, rastreó el origen del fallo hasta un único archivo de software de tierra. El equipo de vuelo de Lockheed calculaba el impulso impartido por los pequeños propulsores de desaturación de momento angular de la nave —aquellos que se encendían brevemente, varias veces al día, para disipar la rotación acumulada en las ruedas de reacción—. Escribían esos números en un archivo que los navegadores del JPL procesaban para actualizar su modelo de trayectoria.

A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav
A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav Free Public Domain Illustrations by rawpixel · BY 2.0

Lockheed escribía el archivo en libras-fuerza segundo. El JPL lo leía como newtons-segundo. Una libra-fuerza equivale a 4,45 newtons. Cada vez que los propulsores se encendían, el modelo del JPL subestimaba el empuje en un factor de 4,45, y la nave se desviaba un poco más del punto en el que el modelo afirmaba que estaba.

El error era pequeño en cada evento, pero enorme en su efecto acumulado. Para cuando el orbitador llegó a Marte, los navegadores creían que rozaría la atmósfera a 226 kilómetros. La aproximación máxima real fue en algún punto entre los 57 y los 80 kilómetros, muy por dentro de una atmósfera que, aunque tenue, es lo suficientemente densa a esa altitud como para despedazar una nave espacial. El orbitador o bien se calcinó por completo o salió despedido de vuelta a una órbita solar convertido en chatarra girando lentamente a la deriva. Nadie sabe qué ocurrió en realidad.

The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again
The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again Illustration · AI-generated (FLUX.1-dev)

Las revisiones que nunca se hicieron

La discrepancia en las unidades era, por sí sola, una simple línea de mala documentación. El fallo más profundo fue que pasaron nueve meses de operaciones sin que nadie se diera cuenta. La propia Mishap Investigation Board de la NASA fue tajante: los navegadores habían estado informando de anomalías en el modelo de trayectoria durante meses. La nave se estaba desviando sistemáticamente hacia el sur de su ruta prevista. Dos encendidos de corrección programados para finales de la fase de crucero —las Maniobras de Corrección de Trayectoria 4 y 5— fueron evaluados y luego descartados por la presión del calendario. En el plan figuraba una revisión formal por pares del software de navegación, pero nunca se llevó a cabo.

Orbites aérofreinage Mars Climate Orbiter
Orbites aérofreinage Mars Climate Orbiter Savant-fou · BY-SA 3.0

El informe de la junta señaló que la causa era institucional, no técnica. El programa Mars Surveyor se había construido en torno a la doctrina "más rápido, mejor, más barato" de Daniel Goldin, la cual redujo los presupuestos de las misiones aproximadamente a la mitad respecto a la norma de la era Viking, y dejó a los equipos bajo mínimos. El grupo de operaciones de vuelo de Lockheed tenía a ocho personas haciendo el trabajo que en misiones anteriores habría correspondido a veinte. Cuando aparecían pequeñas anomalías, no había margen para investigarlas. Once semanas más tarde, la Mars Polar Lander también desapareció, casi con certeza porque los sensores de sus patas de aterrizaje confundieron la vibración del despliegue con el contacto con el suelo y apagaron los motores a cuarenta metros de altura. Mismo programa. Mismo año. Distinto fallo.

In a late-1990s navigation room
In a late-1990s navigation room Illustration · AI-generated (FLUX.1-dev)

Lo que todavía no sabemos

No sabemos la altitud exacta a la que se destruyó el orbitador. La estimación de 57 km de la junta se basó en datos de seguimiento extrapolados hacia adelante; la propia nave dejó de transmitir antes de alcanzar la capa densa. Si se calcinó por completo, se despedazó a gran altitud, o rebotó de vuelta a una órbita heliocéntrica es una cuestión que, técnicamente, sigue sin resolverse.

Mars Climate Orbiter
Mars Climate Orbiter NASA/JPL/Corby Waste · Public domain

Tampoco sabemos del todo por qué el archivo SM_FORCES se escribió en unidades imperiales en primer lugar. El contrato especificaba el SI. Los propios documentos internos de Lockheed especificaban el SI. La respuesta más probable es que un prototipo temprano utilizara libras-fuerza y nunca se convirtiera, y que la etiqueta de la unidad en el archivo se perdiera en algún punto de una cadena de código heredado.

The Orbiter skims too low over Mars at the edge of the atmosphere
The Orbiter skims too low over Mars at the edge of the atmosphere Illustration · AI-generated (FLUX.1-dev)

También desconocemos cuántos otros cuasi accidentes albergó el mismo programa. La junta entrevistó a miembros del personal que dijeron que se habían notado pequeñas discrepancias similares en misiones anteriores, las cuales fueron descartadas mediante simples justificaciones. El orbitador resultó ser el que fracasó de forma estrepitosa.

El lanzamiento de un cohete Delta II cuesta alrededor de 50 millones de dólares. El orbitador costó seis veces esa cantidad. La lección aprendida —verificar las unidades en cada interfaz, siempre— ya estaba en los libros de texto de ingeniería en 1962, cuando la Mariner 1 fue destruida frente a la costa de Florida porque una ecuación de guiado fue transcrita erróneamente por un solo carácter. El libro de texto no había cambiado. Solo la factura.

23 सितंबर 1999 को, नासा का 327.6 मिलियन डॉलर का एक अंतरिक्ष यान मंगल ग्रह के पीछे ओझल हो गया और कभी दूसरी तरफ से बाहर नहीं आया। जब आखिरकार इसके कारण का पता चला, तो वह 4.45 से किया गया एक गुणा था।

मार्स क्लाइमेट ऑर्बिटर को एक दो-चरणीय मिशन का उबाऊ आधा हिस्सा माना जा रहा था। इसके सहयोगी यान, मार्स पोलर लैंडर का काम काफी रोमांचक था — दक्षिणी ध्रुव के करीब उतरना, रेगोलिथ की खुदाई करना और पानी की बर्फ खोजना। ऑर्बिटर की भूमिका 421 किलोमीटर की ऊंचाई पर ग्रह की परिक्रमा करना, एक मंगल-वर्ष तक मौसम पर नज़र रखना और लैंडर के लिए रेडियो रिले के रूप में काम करना था। इसे 11 दिसंबर 1998 को Cape Canaveral से डेल्टा II रॉकेट के जरिए प्रक्षेपित किया गया था, जो एक होहमन ट्रांसफर कक्षा पर था, जिसमें 286 दिन लगने वाले थे।

यह यान अपने आप में डेनवर में Lockheed Martin Astronautics द्वारा बनाया गया 638 किलोग्राम का एल्युमिनियम हनीकॉम्ब का एक डिब्बा था। नेविगेशन (दिशा-निर्देशन) — यानी यह जानने का काम कि अंतरिक्ष यान वास्तव में कहां था और इसके थ्रस्टर्स को किस दिशा में फायर करना था — पासाडेना में NASA's Jet Propulsion Laboratory की जिम्मेदारी थी। दोनों टीमें लगातार बात करती थीं। उन्होंने टेलीमेट्री की फाइलों का आदान-प्रदान किया। उन्होंने आंकड़ों का हिसाब लगाया। नौ महीने तक वे आंकड़े गलत रहे और किसी ने ध्यान नहीं दिया।

Mars Climate Orbiter - mishap diagram
Mars Climate Orbiter - mishap diagram Xession · BY 3.0

23 सितंबर की रात को, 09:00:46 यूटीसी (UTC) पर, ऑर्बिटर ने मंगल की कक्षा में प्रवेश करने के लिए 16 मिनट तक अपना मुख्य इंजन फायर किया। इंजन फायर होने के निर्धारित समय के खत्म होने से उनचास सेकंड पहले, यान उम्मीद के मुताबिक ग्रह के पीछे चला गया। संपर्क टूट गया। इक्कीस मिनट बाद, जब इसे दोबारा प्रकट होना चाहिए था, तो डीप-स्पेस नेटवर्क को कोई सिग्नल नहीं मिला। उसके बाद उसे फिर कभी कोई सिग्नल नहीं मिला।

A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn
A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn Illustration · AI-generated (FLUX.1-dev)

SM_FORCES नाम की एक फाइल

Marshall Space Flight Center के Arthur Stephenson के नेतृत्व में हुई जांच ने इस विफलता की जड़ को ग्राउंड-सॉफ्टवेयर की एक फाइल तक खोज निकाला। लॉकहीड की उड़ान टीम ने अंतरिक्ष यान के छोटे एंगुलर-मोमेंटम-डिसैचुरेशन थ्रस्टर्स द्वारा उत्पन्न इम्पल्स (आवेग) की गणना की — ये वे थ्रस्टर्स थे जो रिएक्शन व्हील्स में बनने वाले घुमाव को कम करने के लिए दिन में कई बार थोड़ी देर के लिए फायर किए जाते थे। उन्होंने इन आंकड़ों को एक ऐसी फाइल में लिखा जिसे जेपीएल (JPL) के नेविगेटर्स ने अपने प्रक्षेपवक्र (trajectory) मॉडल को अपडेट करने के लिए इस्तेमाल किया।

A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav
A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav Free Public Domain Illustrations by rawpixel · BY 2.0

लॉकहीड ने फाइल को पाउंड-फोर्स सेकंड (pound-force seconds) में लिखा था। जेपीएल ने इसे न्यूटन-सेकंड (newton-seconds) के रूप में पढ़ा। एक पाउंड-फोर्स 4.45 न्यूटन के बराबर होता है। हर बार जब थ्रस्टर फायर होते, जेपीएल का मॉडल उसके धक्के को 4.45 के गुणक से कम आंकता था, और अंतरिक्ष यान उस स्थान से थोड़ा और दूर खिसक जाता था जहां मॉडल ने उसके होने का अनुमान लगाया था।

हर घटना के स्तर पर यह त्रुटि मामूली थी, लेकिन कुल मिलाकर यह विशाल हो गई। जब तक ऑर्बिटर मंगल पर पहुंचा, तब तक नेविगेटर्स को यकीन था कि यह 226 किलोमीटर की ऊंचाई पर वायुमंडल को छूता हुआ निकलेगा। इसकी वास्तविक सबसे करीबी दूरी 57 से 80 किलोमीटर के बीच कहीं थी — यह एक ऐसे वायुमंडल के काफी अंदर था, जो भले ही पतला हो, लेकिन उस ऊंचाई पर इतना घना होता है कि एक अंतरिक्ष यान के टुकड़े-टुकड़े कर सके। ऑर्बिटर या तो जलकर खाक हो गया, या फिर धीरे-धीरे लुढ़कते हुए मलबे के रूप में वापस सौर कक्षा में फेंक दिया गया। कोई नहीं जानता कि इनमें से क्या हुआ।

The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again
The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again Illustration · AI-generated (FLUX.1-dev)

वे समीक्षाएं जो कभी नहीं हुईं

इकाइयों का यह बेमेल होना, अपने आप में, खराब दस्तावेजीकरण की सिर्फ एक पंक्ति भर थी। इससे भी बड़ी विफलता यह थी कि संचालन के नौ महीने बीत गए और कोई इसे पकड़ नहीं पाया। नासा का अपना Mishap Investigation Board स्पष्ट था: नेविगेटर्स महीनों से प्रक्षेपवक्र मॉडल में विसंगतियों की रिपोर्ट कर रहे थे। अंतरिक्ष यान लगातार अपने अनुमानित रास्ते से दक्षिण की ओर खिसक रहा था। उड़ान के अंतिम चरण के लिए निर्धारित दो सुधार बर्न्स — ट्रैजेक्टरी करेक्शन मैनूवर्स 4 और 5 — पर विचार किया गया था और फिर समय-सीमा के दबाव में उन्हें योजना से हटा दिया गया। नेविगेशन सॉफ्टवेयर की एक औपचारिक सहकर्मी-समीक्षा योजना का हिस्सा थी, लेकिन वह कभी हुई ही नहीं।

Orbites aérofreinage Mars Climate Orbiter
Orbites aérofreinage Mars Climate Orbiter Savant-fou · BY-SA 3.0

बोर्ड की रिपोर्ट में इसका कारण तकनीकी नहीं, बल्कि संस्थागत बताया गया। मार्स सर्वेयर प्रोग्राम Daniel Goldin के "तेज़, बेहतर, सस्ता" सिद्धांत पर बनाया गया था, जिसने वाइकिंग-युग के आधार रेखा से मिशन के बजट को लगभग आधा कर दिया था और टीमों में कर्मचारियों की भारी कमी कर दी थी। लॉकहीड के उड़ान संचालन समूह में आठ लोग वह काम कर रहे थे जिसे पिछले मिशनों में बीस लोगों को सौंपा जाता था। जब छोटी-मोटी विसंगतियां सामने आईं, तो उनकी पड़ताल करने की कोई गुंजाइश नहीं थी। ग्यारह सप्ताह बाद, मार्स पोलर लैंडर भी गायब हो गया, लगभग निश्चित रूप से इसलिए क्योंकि इसके लैंडिंग-लेग के सेंसरों ने पैरों के खुलने के कंपन को जमीन पर उतरना समझ लिया, और जमीन से चालीस मीटर ऊपर ही इंजनों को बंद कर दिया। वही प्रोग्राम। वही साल। अलग खामी।

In a late-1990s navigation room
In a late-1990s navigation room Illustration · AI-generated (FLUX.1-dev)

हम अभी भी क्या नहीं जानते

हम वह सटीक ऊंचाई नहीं जानते जिस पर ऑर्बिटर नष्ट हुआ था। बोर्ड का 57 किमी का अनुमान ट्रैकिंग डेटा को आगे बढ़ाकर लगाया गया था; घनी परत तक पहुंचने से पहले ही अंतरिक्ष यान ने रिपोर्ट करना बंद कर दिया था। क्या यह पूरी तरह से जल गया, क्या अधिक ऊंचाई पर इसके टुकड़े-टुकड़े हो गए, या क्या यह फिसलकर वापस सूर्य केंद्रित कक्षा (heliocentric orbit) में चला गया, तकनीकी रूप से यह रहस्य अब भी अनसुलझा है।

Mars Climate Orbiter
Mars Climate Orbiter NASA/JPL/Corby Waste · Public domain

हम पूरी तरह से यह भी नहीं जानते कि SM_FORCES फाइल को शुरुआत में ही इंपीरियल इकाइयों में क्यों लिखा गया था। अनुबंध में एसआई (SI) इकाइयों का उल्लेख था। लॉकहीड के अपने आंतरिक दस्तावेजों में भी एसआई इकाइयों का ही निर्देश था। सबसे संभावित उत्तर यह है कि किसी शुरुआती प्रोटोटाइप में पाउंड-फोर्स का उपयोग किया गया था जिसे कभी बदला नहीं गया, और फाइल पर से इकाई का लेबल पुराने और स्थानांतरित होते कोड की श्रृंखला में कहीं खो गया था।

The Orbiter skims too low over Mars at the edge of the atmosphere
The Orbiter skims too low over Mars at the edge of the atmosphere Illustration · AI-generated (FLUX.1-dev)

हम यह भी नहीं जानते कि इसी प्रोग्राम में ऐसे कितने अन्य बाल-बाल बचने वाले हादसे (near-misses) शामिल थे। बोर्ड ने उन कर्मचारियों का साक्षात्कार लिया जिन्होंने बताया कि पिछले मिशनों में भी इसी तरह की छोटी विसंगतियों को देखा गया था, लेकिन उन्हें तर्क देकर नजरअंदाज कर दिया गया था। ऑर्बिटर बस वह मामला था जिसकी विफलता छिप नहीं सकी।

एक डेल्टा II रॉकेट को लॉन्च करने में लगभग 5 करोड़ डॉलर का खर्च आता है। ऑर्बिटर की लागत इससे छह गुना अधिक थी। इससे मिली सीख — हर इंटरफेस पर इकाइयों की हर बार जांच करें — 1962 में ही इंजीनियरिंग की किताबों में दर्ज थी, जब फ्लोरिडा तट के पास Mariner 1 इसलिए नष्ट हो गया था क्योंकि दिशा-निर्देशन के एक समीकरण में एक अक्षर गलत लिख दिया गया था। पाठ्यपुस्तक नहीं बदली थी। केवल बिल की रकम बदल गई थी।

Em 23 de setembro de 1999, uma espaçonave da NASA de 327,6 milhões de dólares deslizou para trás de Marte e nunca saiu do outro lado. A causa, quando finalmente a encontraram, foi uma multiplicação por 4,45.

O Mars Climate Orbiter deveria ser a metade monótona de uma missão em duas partes. À sua sonda irmã, o Mars Polar Lander, cabia a tarefa dramática — pousar perto do polo sul, escavar o regolito e procurar gelo de água. O papel do Orbiter era orbitar o planeta a 421 quilómetros de altitude, monitorizar o clima durante um ano marciano e servir de retransmissor de rádio para o módulo de aterragem. Foi lançado do Cape Canaveral a 11 de dezembro de 1998, a bordo de um foguetão Delta II, numa órbita de transferência de Hohmann que demoraria 286 dias.

A sonda em si era uma caixa de 638 quilogramas feita de alumínio em favo de mel, construída pela Lockheed Martin Astronautics em Denver. A navegação — a responsabilidade de saber exatamente onde a sonda se encontrava e para onde apontar os seus propulsores — estava a cargo do NASA's Jet Propulsion Laboratory em Pasadena. As duas equipas comunicavam constantemente. Trocavam arquivos de telemetria. Faziam os cálculos. Os números estiveram errados durante nove meses e ninguém reparou.

Mars Climate Orbiter - mishap diagram
Mars Climate Orbiter - mishap diagram Xession · BY 3.0

Na noite de 23 de setembro, às 09:00:46 UTC, o Orbiter acionou o seu motor principal numa queima de 16 minutos para entrar na órbita de Marte. Quarenta e nove segundos antes do fim programado da queima, a sonda passou por trás do planeta, conforme previsto. Perda de sinal. Vinte e um minutos depois, quando deveria ter ressurgido, a rede de espaço profundo não captou nada. E nunca mais voltou a captar qualquer sinal.

A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn
A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn Illustration · AI-generated (FLUX.1-dev)

Um arquivo chamado SM_FORCES

A investigação, liderada por Arthur Stephenson do Marshall Space Flight Center, atribuiu a falha a um único arquivo do software de terra. A equipa de voo da Lockheed calculou o impulso gerado pelos pequenos propulsores de dessaturação de momento angular da sonda — aqueles que eram acionados brevemente, várias vezes ao dia, para dissipar a rotação acumulada nas rodas de reação. Registaram esses números num arquivo que os navegadores do JPL importavam para atualizar o seu modelo de trajetória.

A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav
A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav Free Public Domain Illustrations by rawpixel · BY 2.0

A Lockheed redigiu o arquivo em libras-força-segundo. O JPL leu-o em newtons-segundo. Uma libra-força equivale a 4,45 newtons. Sempre que os propulsores eram acionados, o modelo do JPL subestimava o impulso por um fator de 4,45, e a sonda desviava-se um pouco mais da posição onde o modelo indicava que ela estaria.

O erro era pequeno em cada evento, mas enorme no seu conjunto. Quando o Orbiter chegou a Marte, os navegadores acreditavam que este iria rasar a atmosfera a 226 quilómetros de altitude. A aproximação real situou-se algures entre 57 e 80 quilómetros — bem no interior de uma atmosfera que, embora ténue, é suficientemente densa a essa altitude para despedaçar uma sonda. O Orbiter ou ardeu na atmosfera ou foi ejetado de volta para a órbita solar como um destroço em lenta rotação. Ninguém sabe ao certo.

The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again
The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again Illustration · AI-generated (FLUX.1-dev)

As revisões que não aconteceram

A discrepância nas unidades era, por si só, uma única linha de má documentação. A falha mais profunda residiu no facto de que se passaram nove meses de operações sem que ninguém a detetasse. O próprio Mishap Investigation Board da NASA foi contundente: os navegadores andavam a reportar anomalias no modelo de trajetória há meses. A sonda estava consistentemente a desviar-se para sul da sua rota prevista. Duas queimas de correção programadas para a fase final da viagem — as Manobras de Correção de Trajetória 4 e 5 — chegaram a ser ponderadas, mas foram descartadas devido à pressão dos prazos. Uma revisão formal por pares do software de navegação estava planeada, mas nunca chegou a acontecer.

Orbites aérofreinage Mars Climate Orbiter
Orbites aérofreinage Mars Climate Orbiter Savant-fou · BY-SA 3.0

O relatório da comissão apontou a causa como institucional, e não técnica. O programa Mars Surveyor tinha sido construído em torno da doutrina «mais rápido, melhor, mais barato» de Daniel Goldin, a qual reduziu os orçamentos das missões para cerca de metade em relação aos padrões da era Viking e esticou as equipas até ao limite. O grupo de operações de voo da Lockheed tinha oito pessoas a realizar o trabalho que missões anteriores atribuíam a vinte. Quando surgiam pequenas anomalias, não havia margem de tempo para as investigar. Onze semanas depois, o Mars Polar Lander também desapareceu, quase de certeza porque os sensores das pernas de aterragem confundiram a vibração do seu desdobramento com o impacto no solo, desligando os motores a quarenta metros de altitude. Mesmo programa. Mesmo ano. Erro diferente.

In a late-1990s navigation room
In a late-1990s navigation room Illustration · AI-generated (FLUX.1-dev)

O que ainda não sabemos

Não sabemos a altitude exata a que o Orbiter foi destruído. A estimativa da comissão, de 57 km, baseou-se em dados de rastreio extrapolados; a sonda propriamente dita deixou de transmitir antes de alcançar a camada mais densa. Saber se ela ardeu por completo, se se desintegrou a alta altitude ou se ressaltou de volta para uma órbita heliocêntrica continua, do ponto de vista técnico, por resolver.

Mars Climate Orbiter
Mars Climate Orbiter NASA/JPL/Corby Waste · Public domain

Não sabemos ao certo a razão pela qual o arquivo SM_FORCES foi originalmente gerado em unidades imperiais. O contrato especificava o uso do SI. Os próprios documentos internos da Lockheed exigiam o SI. A resposta mais provável é a de que um dos primeiros protótipos utilizava libras-força e nunca foi convertido, e que a indicação da unidade no arquivo se perdeu algures numa cadeia de código herdado.

The Orbiter skims too low over Mars at the edge of the atmosphere
The Orbiter skims too low over Mars at the edge of the atmosphere Illustration · AI-generated (FLUX.1-dev)

Também não sabemos quantos outros quase-acidentes ocorreram no mesmo programa. A comissão entrevistou membros da equipa que afirmaram que pequenas discrepâncias semelhantes tinham sido notadas em missões anteriores e, logo em seguida, descartadas com justificações. O Orbiter foi simplesmente a sonda que acabou por falhar de forma estrondosa.

Um lançamento de um foguetão Delta II custa cerca de 50 milhões de dólares. O Orbiter custou seis vezes mais do que isso. A lição a reter — verificar as unidades em cada interface, sem exceção — já constava dos manuais de engenharia em 1962, quando a Mariner 1 foi destruída ao largo da costa da Flórida devido à transcrição incorreta de um único caráter numa equação de orientação. Os manuais não tinham mudado. Apenas a fatura.

في 23 سبتمبر 1999، انزلقت مركبة فضائية تابعة لناسا بقيمة 327.6 مليون دولار خلف المريخ، ولم تخرج من الجانب الآخر قط. والسبب، حينما اكتشفوه أخيرًا، كان عملية ضرب في 4.45.

كان من المفترض أن تكون مركبة "مارس كلايمت أوربيتر" النصف الأقل إثارة في مهمة تتكون من جزأين. فقد أُوكلت إلى شقيقتها، مركبة "مارس بولار لاندر"، المهمة الأكثر إثارة؛ والتي تمثلت في الهبوط بالقرب من القطب الجنوبي، والحفر في الثرى المريخي، والبحث عن الجليد المائي. أما دور المركبة المدارية فكان يقتصر على الدوران حول الكوكب على ارتفاع 421 كيلومترًا، ومراقبة الطقس لمدة سنة مريخية، والعمل كمحطة ترحيل لاسلكي لمركبة الهبوط. انطلقت المركبة من Cape Canaveral في 11 ديسمبر 1998 على متن صاروخ "دلتا 2"، متخذة مسار انتقال هوهمان في رحلة تستغرق 286 يومًا.

كانت المركبة نفسها عبارة عن صندوق يزن 638 كيلوغرامًا مصنوعًا من الألومنيوم المصمم على شكل خلية نحل، وهو من صُنع شركة Lockheed Martin Astronautics في دنفر. أما الملاحة، وهي مهمة التحديد الدقيق لموقع المركبة الفضائية والاتجاه الذي يجب توجيه محركاتها الدفعية إليه، فكانت من اختصاص NASA's Jet Propulsion Laboratory في باسادينا. كان الفريقان يتواصلان باستمرار؛ حيث تبادلا ملفات القياس عن بُعد، وأجريا الحسابات. لكن الأرقام كانت خاطئة طوال تسعة أشهر، ولم يلاحظ أحد ذلك.

Mars Climate Orbiter - mishap diagram
Mars Climate Orbiter - mishap diagram Xession · BY 3.0

في ليلة 23 سبتمبر، وفي تمام الساعة 09:00:46 بالتوقيت العالمي المنسق، شغّلت المركبة المدارية محركها الرئيسي في عملية حرق استمرت 16 دقيقة للدخول في مدار المريخ. وقبل 49 ثانية من النهاية المقررة لعملية الحرق، مرت المركبة خلف الكوكب كما كان متوقعًا. فُقدت الإشارة. وبعد مرور 21 دقيقة، وهو الوقت الذي كان ينبغي أن تظهر فيه مجددًا، لم تتلقَ شبكة الفضاء العميق أي إشارة منها. ولم تتلقَ أي إشارة بعدها على الإطلاق.

A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn
A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn Illustration · AI-generated (FLUX.1-dev)

ملف يُسمى SM_FORCES

أرجع التحقيق، الذي قاده Arthur Stephenson من Marshall Space Flight Center، سبب هذا الإخفاق إلى ملف واحد في البرمجيات الأرضية. فقد قام فريق الرحلة في شركة لوكهيد بحساب كمية الدفع التي تنتجها محركات المركبة الصغيرة المخصصة لتخفيف الزخم الزاوي، وهي المحركات التي كانت تعمل لفترات وجيزة عدة مرات في اليوم لتصريف طاقة الدوران المتراكمة في عجلات التوجيه. ودونوا تلك الأرقام في ملف استورده الملاحون في مختبر الدفع النفاث لتحديث نموذج المسار الخاص بهم.

A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav
A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav Free Public Domain Illustrations by rawpixel · BY 2.0

كتبت لوكهيد بيانات الملف بوحدة "باوند-قوة ثانية"، بينما قرأها مختبر الدفع النفاث بوحدة "نيوتن-ثانية". ويعادل الباوند-قوة 4.45 نيوتن. وفي كل مرة كانت تعمل فيها المحركات الدفعية، كان نموذج مختبر الدفع النفاث يقلل من تقدير قوة الدفع بمعامل مقداره 4.45، مما جعل المركبة الفضائية تنحرف شيئًا فشيئًا عن الموقع الذي افترض النموذج وجودها فيه.

كان الخطأ ضئيلًا في كل عملية حرق، ولكنه كان هائلًا في مجمله. وبحلول الوقت الذي وصلت فيه المركبة المدارية إلى المريخ، اعتقد الملاحون أنها ستحلق بمحاذاة الغلاف الجوي على ارتفاع 226 كيلومترًا. إلا أن أقرب نقطة اقتراب فعلية كانت تتراوح بين 57 و80 كيلومترًا؛ أي في عمق غلاف جوي، رغم كونه رقيقًا، يتمتع بكثافة كافية عند هذا الارتفاع لتمزيق المركبة الفضائية إربًا. وبذلك، إما أن المركبة قد احترقت، أو أنها قُذفت مجددًا إلى مدار حول الشمس كحطام يتهاوى ببطء. ولا أحد يعرف أي المصيرين لاقت.

The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again
The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again Illustration · AI-generated (FLUX.1-dev)

المراجعات التي لم تُجرَ

كان عدم التطابق في وحدات القياس، بحد ذاته، مجرد سطر واحد من التوثيق السيء. لكن الفشل الأعمق تجلى في انقضاء تسعة أشهر من العمليات دون أن يكتشف أحد هذا الخطأ. فقد كانت لجنة Mishap Investigation Board التابعة لوكالة ناسا صريحة في تقريرها: كان الملاحون يبلغون عن شذوذ في نموذج المسار لعدة أشهر. وكانت المركبة الفضائية تنحرف باستمرار جنوب مسارها المتوقع. وقد نُظر في تنفيذ عمليتي حرق تصحيحيتين كانتا مقررتين في أواخر الرحلة — مناورتا تصحيح المسار 4 و5 — ولكنهما أُلغيتا لاحقًا تحت ضغط الجدول الزمني. كما كانت هناك مراجعة أقران رسمية لبرمجيات الملاحة مدرجة في الخطة، إلا أنها لم تُجرَ قط.

Orbites aérofreinage Mars Climate Orbiter
Orbites aérofreinage Mars Climate Orbiter Savant-fou · BY-SA 3.0

وحدد تقرير اللجنة أن السبب كان مؤسسيًا وليس تقنيًا. فقد تمحور بناء برنامج "مارس سيرفيور" حول مبدأ "أسرع، وأفضل، وأرخص" الذي أرساه Daniel Goldin، وهو المبدأ الذي قلّص ميزانيات المهام إلى النصف تقريبًا مقارنةً بخط الأساس في حقبة مهام "فايكنغ"، وأرهق فرق العمل لقلة أعدادها. كان فريق عمليات الرحلة في شركة لوكهيد يتألف من ثمانية أشخاص فقط لإنجاز عمل كان يُسند إلى عشرين شخصًا في المهام السابقة. وعندما كانت تظهر مفارقات صغيرة، لم يكن هناك متسع من الوقت للبحث في أسبابها. وبعد مرور أحد عشر أسبوعًا، اختفت مركبة "مارس بولار لاندر" أيضًا، ومن شبه المؤكد أن السبب يعود إلى أن مستشعرات أقدام الهبوط أخطأت في التمييز بين الاهتزاز الناتج عن عملية النشر وبين ملامسة السطح، فأوقفت تشغيل المحركات على ارتفاع أربعين مترًا فوق سطح الأرض. البرنامج نفسه. العام نفسه. لكن الخطأ البرمجي مختلف.

In a late-1990s navigation room
In a late-1990s navigation room Illustration · AI-generated (FLUX.1-dev)

ما لا نزال نجهله

لا نعرف الارتفاع الدقيق الذي دُمرت عنده المركبة المدارية. فقد كان تقدير اللجنة البالغ 57 كيلومترًا مبنيًا على بيانات التتبع المستنبطة للمستقبل؛ إذ توقفت المركبة الفضائية نفسها عن إرسال البيانات قبل أن تصل إلى الطبقة الكثيفة. وما إذا كانت قد احترقت وتلاشت بالكامل، أو تفككت على ارتفاع شاهق، أو ارتدت لتعود إلى مدار حول الشمس، فكلها احتمالات لا تزال غير محسومة فنيًا حتى الآن.

Mars Climate Orbiter
Mars Climate Orbiter NASA/JPL/Corby Waste · Public domain

ولا ندرك بالكامل السبب الذي جعل ملف SM_FORCES يُكتب بالوحدات الإمبراطورية في المقام الأول. فقد نص العقد على استخدام النظام الدولي للوحدات (SI). وكذلك نصت وثائق شركة لوكهيد الداخلية. والإجابة الأكثر ترجيحًا هي أن نموذجًا أوليًا مبكرًا كان يستخدم "الباوند-قوة" ولم يُحوّل قط، وأن علامة الوحدة الموجودة في الملف قد ضاعت في مكان ما ضمن سلسلة من الأكواد البرمجية الموروثة.

The Orbiter skims too low over Mars at the edge of the atmosphere
The Orbiter skims too low over Mars at the edge of the atmosphere Illustration · AI-generated (FLUX.1-dev)

كما لا نعرف كم عدد الأخطاء الوشيكة الأخرى التي احتواها نفس البرنامج. فقد أجرت اللجنة مقابلات مع موظفين صرحوا بأن تفاوتات صغيرة مماثلة لوحظت في مهام سابقة، ولكن جرى تبريرها وتجاهلها. أما المركبة المدارية فكانت ببساطة تلك التي شاءت الأقدار أن تفشل فشلًا مدويًا.

تبلغ تكلفة إطلاق صاروخ "دلتا 2" حوالي 50 مليون دولار. في حين كلفت المركبة المدارية ستة أضعاف هذا المبلغ. وكان الدرس المستفاد — وهو ضرورة التحقق من وحدات القياس في كل واجهة اتصال، وفي كل مرة — مدونًا بالفعل في الكتب المنهجية الهندسية منذ عام 1962، حين دُمرت مركبة Mariner 1 قبالة ساحل فلوريدا بسبب رمز واحد نُسخ بشكل خاطئ في معادلة التوجيه. لم تتغير الكتب المنهجية، بل الفاتورة وحدها هي التي تغيرت.

Pada 23 September 1999, sebuah wahana antariksa NASA senilai $327,6 juta meluncur ke balik Mars dan tak pernah muncul lagi dari sisi sebaliknya. Penyebabnya, ketika mereka akhirnya menemukannya, adalah sebuah perkalian dengan 4,45.

Wahana Mars Climate Orbiter tadinya diharapkan menjadi bagian yang kurang menonjol dari sebuah misi ganda. Wahana saudaranya, Mars Polar Lander, mengemban tugas yang lebih dramatis—mendarat di dekat kutub selatan, menggali regolit, dan mencari keberadaan es air. Peran Orbiter sendiri hanyalah mengelilingi planet tersebut pada ketinggian 421 kilometer, memantau cuacanya selama satu tahun waktu Mars, dan bertindak sebagai relai radio bagi wahana pendarat. Wahana ini diluncurkan dari Cape Canaveral pada tanggal 11 Desember 1998 di atas roket Delta II, menempuh orbit transfer Hohmann yang memakan waktu selama 286 hari.

Wahana itu sendiri berbentuk semacam kotak aluminium berstruktur sarang lebah seberat 638 kilogram, yang dirakit oleh Lockheed Martin Astronautics di Denver. Urusan navigasi—yakni tugas untuk mengetahui posisi pasti wahana antariksa tersebut dan ke arah mana semburan pendorongnya harus diarahkan—menjadi tanggung jawab NASA's Jet Propulsion Laboratory di Pasadena. Kedua tim terus berkomunikasi secara intens. Mereka saling bertukar berkas telemetri. Mereka saling berhitung. Angka-angka yang ada ternyata keliru selama sembilan bulan berturut-turut, dan tak ada satu pun yang menyadarinya.

Mars Climate Orbiter - mishap diagram
Mars Climate Orbiter - mishap diagram Xession · BY 3.0

Pada malam tanggal 23 September, pukul 09:00:46 UTC, Orbiter menyalakan mesin utamanya untuk melakukan pembakaran selama 16 menit agar dapat masuk ke orbit Mars. Empat puluh sembilan detik sebelum pembakaran dijadwalkan berakhir, wahana tersebut bergerak melintas di balik planet, sesuai perkiraan. Sinyal pun hilang. Dua puluh satu menit berselang, pada saat wahana itu seharusnya kembali muncul, jaringan komunikasi antariksa dalam (deep-space network) sama sekali tidak menangkap sinyal apa pun. Dan tidak pernah ada transmisi lagi semenjak saat itu.

A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn
A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn Illustration · AI-generated (FLUX.1-dev)

Sebuah berkas bernama SM_FORCES

Investigasi yang dipimpin oleh Arthur Stephenson dari Marshall Space Flight Center berhasil melacak penyebab kegagalan tersebut, yang bermuara pada satu berkas perangkat lunak darat. Tim operasi penerbangan Lockheed menghitung besaran impuls yang dihasilkan oleh pendorong desaturasi momentum sudut (angular-momentum-desaturation) berukuran kecil pada wahana tersebut—yakni mesin pendorong yang menyala sangat singkat beberapa kali dalam sehari untuk membuang gaya putar yang menumpuk di roda reaksi. Mereka kemudian mencatat angka-angka tersebut ke dalam sebuah berkas, yang kelak dimasukkan oleh para navigator di JPL untuk memperbarui model lintasan wahana mereka.

A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav
A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav Free Public Domain Illustrations by rawpixel · BY 2.0

Lockheed menulis berkas tersebut menggunakan satuan *pound-force second* (detik gaya pon). Sementara JPL membacanya dalam satuan *newton-second* (detik newton). Satu *pound-force* setara dengan 4,45 newton. Setiap kali mesin pendorong itu menyala, model JPL selalu menghitung gaya dorongnya 4,45 kali lipat lebih kecil, sehingga wahana itu pun melenceng menyimpang semakin jauh dari posisi yang diprediksi oleh model tersebut.

Ralat tersebut terbilang kecil untuk setiap kejadiannya, namun menjadi sangat masif jika diakumulasikan. Pada saat Orbiter mencapai Mars, para navigator meyakini bahwa wahana itu akan meluncur dan menggesek lapis atmosfer pada ketinggian 226 kilometer. Nyatanya, jarak pendekatan terdekat wahana tersebut berkisar di antara 57 hingga 80 kilometer—masuk terlalu dalam ke lapis atmosfer yang, meski terbilang tipis, sesungguhnya sudah cukup padat pada ketinggian tersebut untuk mencabik-cabik sebuah pesawat antariksa hingga hancur berkeping-keping. Orbiter tersebut mungkin habis terbakar, atau terlempar kembali ke orbit surya sebagai puing-puing rongsokan yang terpontang-panting secara perlahan. Tak ada satu pun orang yang tahu pasti kebenarannya.

The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again
The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again Illustration · AI-generated (FLUX.1-dev)

Tinjauan yang tak pernah terjadi

Ketidakcocokan satuan itu, pada dasarnya, hanyalah sebaris dokumentasi yang buruk. Namun kegagalan yang lebih mendasar adalah berlalunya sembilan bulan masa operasi tanpa ada satu pun orang yang menyadarinya. Mishap Investigation Board (Dewan Investigasi Kecelakaan) NASA bersikap berterus terang mengenai hal ini: para navigator telah berbulan-bulan melaporkan adanya anomali pada model lintasan. Wahana antariksa itu secara konsisten terus melenceng ke arah selatan dari jalur lintasannya yang diprediksi. Dua penyalaan mesin korektif yang sedianya dijadwalkan pada penghujung masa penjelajahan—Manuver Koreksi Lintasan 4 dan 5—sempat dipertimbangkan keberadaannya, namun akhirnya dicoret akibat tekanan tenggat waktu yang ketat. Sebuah tinjauan sejawat (*peer review*) formal untuk perangkat lunak navigasinya sejatinya sudah ada di dalam rencana, namun tidak pernah direalisasikan.

Orbites aérofreinage Mars Climate Orbiter
Orbites aérofreinage Mars Climate Orbiter Savant-fou · BY-SA 3.0

Laporan dewan investigasi menyebutkan bahwa akar persoalannya bersifat institusional, bukan teknis. Program Mars Surveyor dibangun berlandaskan doktrin "lebih cepat, lebih baik, lebih murah" gagasan Daniel Goldin, yang memangkas anggaran misi hingga tersisa separuhnya bila dibandingkan standar dasar misi di era Viking, dan berujung pada sangat terbatasnya sumber daya tim. Grup operasi penerbangan Lockheed dipaksa beroperasi hanya dengan delapan orang staf, untuk beban kerja yang pada misi-misi terdahulu biasanya dikerjakan oleh dua puluh orang. Saat muncul beberapa anomali berukuran kecil, tidak ada sedikit pun kelonggaran waktu maupun tenaga untuk mengejarnya. Sebelas minggu setelahnya, wahana Mars Polar Lander turut hilang lenyap, di mana hampir bisa dipastikan bahwa insiden ini terjadi lantaran sensor pada kaki pendaratnya keliru menerjemahkan getaran saat perentangan kaki sebagai tanda mendarat di permukaan, dan serta-merta mematikan mesin saat wahana itu masih berada empat puluh meter dari atas tanah. Program yang sama. Di tahun yang sama. Dengan galat yang berbeda.

In a late-1990s navigation room
In a late-1990s navigation room Illustration · AI-generated (FLUX.1-dev)

Apa yang masih belum kita ketahui

Kita tidak mengetahui pada ketinggian pasti berapa Orbiter tersebut dihancurkan. Perkiraan dewan yang menetapkan angka 57 km itu hanya didasarkan pada data pelacakan yang diekstrapolasi maju; wahana antariksa itu sendiri sudah berhenti mengirimkan laporannya sebelum ia menyentuh lapisan atmosfer yang padat. Perkara mengenai apakah wahana itu habis terbakar tak bersisa, hancur berkeping-keping di atmosfer atas, atau justru terpental ke luar kembali menuju lintasan orbit heliosentris, secara teknis masih belum dapat disimpulkan.

Mars Climate Orbiter
Mars Climate Orbiter NASA/JPL/Corby Waste · Public domain

Kita juga tidak sepenuhnya paham alasan mengapa berkas SM_FORCES tersebut sejak awal ditulis dengan menggunakan satuan imperial. Kontrak kerja mensyaratkan standar SI (Sistem Internasional). Dokumen internal perusahaan Lockheed sendiri pun mensyaratkan penggunaan SI. Jawaban yang paling masuk akal adalah bahwa sebuah purwarupa tahap awal menggunakan gaya pon namun tak pernah dikonversi, dan bahwa keterangan label satuannya pada berkas tersebut hilang entah di mana di dalam jejaring rantaian kode warisan.

The Orbiter skims too low over Mars at the edge of the atmosphere
The Orbiter skims too low over Mars at the edge of the atmosphere Illustration · AI-generated (FLUX.1-dev)

Kita juga tidak tahu persis ada berapa banyak lagi insiden nyaris-celaka (*near-miss*) yang bersemayam dalam program tersebut. Dewan investigasi telah mewawancarai sejumlah staf yang mengatakan bahwa ketidakcocokan-ketidakcocokan kecil yang serupa juga pernah disadari pada sejumlah misi sebelumnya, dan selalu ditepis serta dirasionalisasikan. Wahana Orbiter ini hanyalah satu kasus yang kebetulan berujung pada kegagalan yang fatal secara telak.

Peluncuran satu roket Delta II saja sudah memakan biaya operasional sekitar $50 juta. Biaya pembuatan wahana Orbiter-nya menelan angka enam kali lipat dari jumlah tersebut. Pelajaran yang dapat ditarik—yakni untuk selalu memverifikasi satuan besaran pada setiap titik antarmuka, setiap saat—sejatinya sudah tercantum di buku-buku diktat teknik sejak tahun 1962, yaitu di kala wahana Mariner 1 hancur luluh lantak di lepas pantai Florida hanya gara-gara satu buah karakter dalam persamaan sistem pemandunya salah disalin. Buku diktat tersebut tidak pernah berubah. Yang berubah hanyalah nilai kerugiannya.

1999年9月23日、3億2760万ドルのNASAの宇宙探査機が火星の裏側へと回り込み、二度と反対側から姿を現すことはなかった。ようやく突き止めたその原因は、4.45の掛け算だった。

マーズ・クライメイト・オービター(火星気候軌道船)は、2部構成のミッションにおける退屈な方の半分となるはずだった。姉妹船であるマーズ・ポーラー・ランダー(火星極地着陸船)には、南極付近に降下し、レゴリスを掘削して水の氷を探すというドラマチックな任務が与えられていた。一方、オービターの役割は、高度421キロメートルで火星を周回し、火星の1年間を通して気象を観測しつつ、着陸船の無線中継局として機能することだった。同機は1998年12月11日、デルタIIロケットに搭載されてCape Canaveralから打ち上げられ、286日を要するホーマン遷移軌道へと乗った。

探査機自体は、デンバーのLockheed Martin Astronauticsによって製造された、重量638キログラムのアルミニウム・ハニカム構造の箱だった。ナビゲーション、すなわち宇宙船が現在どこにあり、スラスターをどの方向に向けるべきかを正確に把握する業務は、パサデナにあるNASA's Jet Propulsion Laboratoryの管轄であった。2つのチームは常に連絡を取り合っていた。テレメトリのファイルをやり取りし、数値を計算し続けた。その数値は9ヶ月間ずっと間違っていたのだが、誰もそれに気づかなかった。

Mars Climate Orbiter - mishap diagram
Mars Climate Orbiter - mishap diagram Xession · BY 3.0

9月23日の夜、協定世界時09時00分46秒に、オービターは火星軌道に乗るためにメインエンジンを点火し、16分間の燃焼を開始した。燃焼終了予定時刻の49秒前、探査機は予定通り火星の裏側へと回った。信号途絶。再び姿を現すはずの21分後、ディープスペースネットワークは何も受信しなかった。そして、二度と何も聞こえることはなかった。

A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn
A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn Illustration · AI-generated (FLUX.1-dev)

SM_FORCESという名のファイル

Marshall Space Flight CenterArthur Stephensonが率いた調査により、失敗の原因は地上ソフトウェアのたった1つのファイルにあることが突き止められた。ロッキードの飛行チームは、探査機の小型の角運動量アンローディング・スラスター(リアクションホイールに蓄積された回転を逃がすために、1日に数回、短時間だけ噴射されるもの)によって与えられる力積を計算していた。彼らはその数値をファイルに書き込み、JPLのナビゲーターたちがそれを読み込んで軌道モデルを更新していたのである。

A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav
A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav Free Public Domain Illustrations by rawpixel · BY 2.0

ロッキードはファイルを「ポンド重秒」で記述した。しかし、JPLはそれを「ニュートン秒」として読み込んだ。1ポンド重は4.45ニュートンである。スラスターが噴射されるたびに、JPLのモデルは推力を実際の4.45分の1に過小評価し、探査機はモデルが示す位置から少しずつ外れていった。

1回あたりの誤差は小さくとも、蓄積されれば膨大なものになる。オービターが火星に到達したとき、ナビゲーターたちは探査機が高度226キロメートルで大気圏をかすめると信じていた。実際の最接近高度は57キロから80キロメートルあたりであった。火星の大気は薄いとはいえ、その高度では探査機を引き裂くのに十分な密度がある。オービターは燃え尽きたか、あるいはゆっくりと回転する残骸となって再び太陽周回軌道へ放り出されたかのどちらかである。どちらであったのかは、誰にも分からない。

The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again
The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again Illustration · AI-generated (FLUX.1-dev)

行われなかったレビュー

単位の不一致それ自体は、不十分な文書化によるたった1行のミスにすぎなかった。より深刻な過失は、誰もそのミスに気づかないまま9ヶ月間の運用が続けられたことにある。NASA独自のMishap Investigation Boardの報告は歯に衣着せぬものだった。ナビゲーターたちは何ヶ月も前から軌道モデルの異常を報告していたのである。探査機は常に、予測された軌道よりも南へと外れ続けていた。巡航の終盤に予定されていた2回の軌道修正噴射(軌道修正マヌーバ4および5)は、検討されたものの、スケジュールの逼迫によって実施は見送られた。ナビゲーション・ソフトウェアの正式なピアレビューは計画にこそあったが、一度も実施されることはなかった。

Orbites aérofreinage Mars Climate Orbiter
Orbites aérofreinage Mars Climate Orbiter Savant-fou · BY-SA 3.0

委員会の報告書は、原因は技術的なものではなく組織的なものだと名指しした。マーズ・サーベイヤー計画は、Daniel Goldinが提唱した「より速く、より良く、より安く」という方針に基づいて構築されており、ミッションの予算をバイキング時代の基準から約半分に削減し、少人数でチームを切り盛りさせていた。ロッキードの飛行運用グループでは、過去のミッションで20人が担当していた業務を、わずか8人でこなしていた。小さな異常が現れても、それを追究する余裕などなかったのだ。それから11週間後、マーズ・ポーラー・ランダーもまた姿を消した。着陸脚のセンサーが展開時の振動を着地と誤認し、地上40メートルの高さでエンジンを停止させてしまったことがほぼ確実な原因とされている。同じ計画。同じ年。異なるバグであった。

In a late-1990s navigation room
In a late-1990s navigation room Illustration · AI-generated (FLUX.1-dev)

今もなお解明されていないこと

私たちは、オービターが破壊された正確な高度を知らない。委員会の推定した高度57キロメートルという数値は、追跡データを前方へ外挿した結果である。探査機自体は、大気の厚い層に到達する前に通信を絶っていた。きれいに燃え尽きたのか、高高度で空中分解したのか、それとも跳ね返されて太陽を中心とする軌道に放り出されたのか、技術的にはいまだ未解決のままである。

Mars Climate Orbiter
Mars Climate Orbiter NASA/JPL/Corby Waste · Public domain

そもそも、なぜSM_FORCESファイルがヤード・ポンド法で記述されていたのかも、完全には分かっていない。契約では国際単位系(SI)が指定されていた。ロッキード自身の内部文書でもSIが指定されていた。最も可能性の高い答えは、初期のプロトタイプでポンド重が使用されたまま変換されることがなく、受け継がれていくコードの連鎖のどこかで、ファイルの単位ラベルが欠落してしまったというものだ。

The Orbiter skims too low over Mars at the edge of the atmosphere
The Orbiter skims too low over Mars at the edge of the atmosphere Illustration · AI-generated (FLUX.1-dev)

同じ計画の中に、他にもどれほどのニアミスが潜んでいたのかも不明である。委員会がスタッフに聞き取り調査を行ったところ、過去のミッションでも同様の小さな矛盾が気づかれていたが、理屈をつけて見過ごされてきたと証言したという。オービターは、たまたま派手に失敗したにすぎないのだ。

デルタIIロケットの打ち上げ費用は、約5000万ドルである。オービターにはその6倍の費用がかかっていた。ここから得られる教訓、すなわち「すべてのインターフェースで、常に単位を確認せよ」という鉄則は、1962年の時点で既に工学の教科書に載っていた。たった1文字の誘導方程式の転記ミスによって、Mariner 1がフロリダ沖で破壊された時のことである。教科書は変わっていなかった。変わったのは、請求書の額面だけである。

Le 23 septembre 1999, un vaisseau spatial de la NASA à 327,6 millions de dollars se glissa derrière Mars et ne ressortit jamais de l'autre côté. La cause, lorsqu'ils la découvrirent enfin, était une multiplication par 4,45.

Le Mars Climate Orbiter était censé être la partie la moins palpitante d'une mission en deux volets. Sa sonde jumelle, le Mars Polar Lander, avait le rôle spectaculaire : se poser près du pôle Sud, forer le régolithe, à la recherche de glace d'eau. Le rôle de l'Orbiter consistait à tourner autour de la planète à 421 kilomètres d'altitude, à surveiller la météo pendant une année martienne et à servir de relais radio pour l'atterrisseur. Il a décollé de Cape Canaveral le 11 décembre 1998 à bord d'une fusée Delta II, pour s'insérer sur une orbite de transfert de Hohmann qui allait durer 286 jours.

L'engin lui-même était un caisson en nid d'abeille d'aluminium de 638 kilogrammes, construit par Lockheed Martin Astronautics à Denver. La navigation — c'est-à-dire l'art de savoir exactement où se trouvait la sonde et dans quelle direction orienter ses propulseurs — incombait au NASA's Jet Propulsion Laboratory de Pasadena. Les deux équipes échangeaient constamment. Elles se transmettaient des fichiers de télémétrie. Elles effectuaient les calculs. Et les chiffres furent erronés pendant neuf mois, sans que personne ne s'en aperçoive.

Mars Climate Orbiter - mishap diagram
Mars Climate Orbiter - mishap diagram Xession · BY 3.0

Dans la nuit du 23 septembre, à 09:00:46 UTC, l'Orbiter a mis à feu son moteur principal pour une manœuvre de freinage de 16 minutes afin de s'insérer en orbite martienne. Quarante-neuf secondes avant la fin programmée de la poussée, l'engin est passé derrière la planète, comme prévu. Perte du signal. Vingt-et-une minutes plus tard, au moment où il aurait dû réapparaître, le réseau de communications avec l'espace lointain ne capta rien. Il ne capta plus jamais rien.

A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn
A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn Illustration · AI-generated (FLUX.1-dev)

Un fichier nommé SM_FORCES

L'enquête, menée par Arthur Stephenson du Marshall Space Flight Center, a fait remonter l'origine de cet échec à un unique fichier du logiciel au sol. L'équipe de vol de Lockheed calculait l'impulsion imprimée par les petits propulseurs de désaturation cinétique de la sonde — ceux qui se déclenchaient brièvement, plusieurs fois par jour, pour dissiper l'énergie de rotation accumulée dans les roues de réaction. Elle inscrivait ces chiffres dans un fichier que les navigateurs du JPL intégraient ensuite pour mettre à jour leur modèle de trajectoire.

A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav
A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav Free Public Domain Illustrations by rawpixel · BY 2.0

Lockheed rédigeait ce fichier en livres-force-secondes. Le JPL le lisait en newtons-secondes. Une livre-force équivaut à 4,45 newtons. À chaque allumage des propulseurs, le modèle du JPL sous-évaluait la poussée d'un facteur 4,45, et la sonde dérivait un peu plus loin de la position indiquée par le modèle.

L'erreur était infime à chaque manœuvre, mais colossale au cumul. Au moment où l'Orbiter a atteint Mars, les navigateurs pensaient qu'il frôlerait l'atmosphère à 226 kilomètres d'altitude. La distance réelle lors de l'approche la plus serrée s'est située quelque part entre 57 et 80 kilomètres — bien à l'intérieur d'une atmosphère qui, bien que raréfiée, s'avère suffisamment dense à cette altitude pour disloquer un engin spatial. L'Orbiter s'est soit consumé, soit retrouvé éjecté sur une orbite solaire, réduit à l'état d'épave tournoyant lentement sur elle-même. Personne ne sait ce qu'il en est.

The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again
The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again Illustration · AI-generated (FLUX.1-dev)

Les vérifications qui n'ont pas eu lieu

Le problème de conversion d'unités n'était, en soi, qu'une simple ligne de documentation erronée. Le véritable échec, bien plus profond, réside dans le fait que neuf mois d'opérations se sont écoulés sans que personne ne décèle l'anomalie. La propre commission d'enquête de la NASA (Mishap Investigation Board) s'est montrée catégorique : cela faisait des mois que les navigateurs signalaient des anomalies dans le modèle de trajectoire. La sonde dérivait systématiquement au sud de la trajectoire prévue. Deux manœuvres correctives prévues en fin de croisière — les Trajectory Correction Manoeuvres 4 et 5 — ont été envisagées, puis abandonnées face aux contraintes de calendrier. Une revue formelle du logiciel de navigation par des pairs, bien que prévue au programme, n'a jamais eu lieu.

Orbites aérofreinage Mars Climate Orbiter
Orbites aérofreinage Mars Climate Orbiter Savant-fou · BY-SA 3.0

Le rapport de la commission a conclu que la cause de l'échec était de nature institutionnelle, et non technique. Le programme Mars Surveyor avait été conçu autour de la doctrine du « plus vite, mieux, moins cher » de Daniel Goldin, laquelle réduisait les budgets des missions de moitié environ par rapport aux standards de l'ère Viking, imposant aux équipes de travailler en effectifs extrêmement réduits. Le groupe des opérations de vol de Lockheed ne comptait que huit personnes pour abattre un travail qui, lors des missions précédentes, en mobilisait vingt. Lorsque de petites anomalies se manifestaient, il n'y avait aucune marge de manœuvre pour creuser la question. Onze semaines plus tard, le Mars Polar Lander disparaissait à son tour, presque certainement parce que les capteurs de ses pieds d'atterrissage avaient confondu les vibrations de leur propre déploiement avec le contact au sol, coupant ainsi les moteurs à quarante mètres d'altitude. Même programme. Même année. Bug différent.

In a late-1990s navigation room
In a late-1990s navigation room Illustration · AI-generated (FLUX.1-dev)

Ce que nous ignorons toujours

Nous ne connaissons pas l'altitude exacte à laquelle l'Orbiter a été détruit. L'estimation de 57 km avancée par la commission reposait sur une extrapolation des données de suivi ; l'engin lui-même ayant cessé d'émettre bien avant d'atteindre la couche dense. Savoir s'il s'est proprement consumé, s'il s'est disloqué à haute altitude, ou s'il a ricoché pour retourner sur une orbite héliocentrique reste une question techniquement non résolue.

Mars Climate Orbiter
Mars Climate Orbiter NASA/JPL/Corby Waste · Public domain

Nous ne savons pas non plus avec certitude pourquoi le fichier SM_FORCES a été initialement rédigé en unités impériales. Le contrat spécifiait le système international (SI). Les propres documents internes de Lockheed spécifiaient également le SI. L'explication la plus probable est que l'un des premiers prototypes utilisait la livre-force et n'a jamais été converti, et que l'indication de l'unité sur ce fichier s'est perdue quelque part dans une chaîne de code hérité.

The Orbiter skims too low over Mars at the edge of the atmosphere
The Orbiter skims too low over Mars at the edge of the atmosphere Illustration · AI-generated (FLUX.1-dev)

Nous ignorons également combien d'autres incidents ont été évités de justesse dans le cadre de ce même programme. La commission a interrogé des membres du personnel qui ont déclaré que de légères anomalies similaires avaient été remarquées lors de missions précédentes, puis balayées par des rationalisations. L'Orbiter s'est simplement avéré être celui dont l'échec fut retentissant.

Le lancement d'une fusée Delta II coûte environ 50 millions de dollars. L'Orbiter a coûté six fois ce montant. La leçon à en tirer — vérifier les unités à chaque interface, systématiquement — figurait déjà dans les manuels d'ingénierie en 1962, lorsque la sonde Mariner 1 fut détruite au large des côtes de Floride parce qu'une équation de guidage avait été mal transcrite, à un seul caractère près. Le manuel n'avait pas changé. Seulement la facture.

23 сентября 1999 года космический аппарат НАСА стоимостью 327,6 миллиона долларов скрылся за Марсом и так и не вышел с другой стороны. Причиной, когда ее наконец обнаружили, оказалось умножение на 4,45.

Предполагалось, что Mars Climate Orbiter станет скучной половиной миссии, состоящей из двух частей. У его аппарата-напарника, Mars Polar Lander, была куда более эффектная задача — совершить посадку около южного полюса, вкопаться в реголит и заняться поисками водяного льда. Роль орбитального аппарата заключалась в том, чтобы кружить над планетой на высоте 421 километра, наблюдать за погодой в течение марсианского года и служить радиоретранслятором для посадочного модуля. Он стартовал с Cape Canaveral 11 декабря 1998 года на борту ракеты Delta II, выйдя на гомановскую траекторию, полет по которой должен был занять 286 дней.

Сам аппарат представлял собой 638-килограммовую коробку из алюминиевых сот, построенную компанией Lockheed Martin Astronautics в Денвере. Навигацией — то есть пониманием того, где именно находится космический аппарат и куда следует направить его двигатели, — занималась NASA's Jet Propulsion Laboratory в Пасадене. Обе команды общались постоянно. Они обменивались файлами с телеметрией. Они проводили расчеты. Девять месяцев эти цифры были неверными, и никто этого не замечал.

Mars Climate Orbiter - mishap diagram
Mars Climate Orbiter - mishap diagram Xession · BY 3.0

В ночь на 23 сентября, в 09:00:46 по UTC, орбитальный аппарат включил свой главный маршевый двигатель на 16 минут, чтобы выйти на орбиту Марса. За сорок девять секунд до запланированного окончания работы двигателя аппарат, как и ожидалось, скрылся за планетой. Потеря сигнала. Двадцать одну минуту спустя, когда он должен был появиться вновь, сеть дальней космической связи ничего не услышала. Больше она не слышала от него ни звука.

A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn
A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn Illustration · AI-generated (FLUX.1-dev)

Файл под названием SM_FORCES

Расследование, которым руководил Arthur Stephenson из Marshall Space Flight Center, свело причину аварии к единственному файлу в наземном программном обеспечении. Летная команда Lockheed вычисляла импульс, передаваемый небольшими двигателями разгрузки маховиков — теми самыми, которые ненадолго включались несколько раз в день, чтобы сбросить кинетический момент, накопленный реактивными колесами. Они записывали эти цифры в файл, который навигаторы JPL загружали для обновления своей модели траектории.

A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav
A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav Free Public Domain Illustrations by rawpixel · BY 2.0

Специалисты Lockheed вели запись в файле в фунт-сила-секундах. Команда JPL считывала их как ньютон-секунды. Одна фунт-сила равна 4,45 ньютона. При каждом включении двигателей модель JPL недооценивала силу толчка в 4,45 раза, и космический аппарат все дальше отклонялся от того места, где он должен был находиться согласно расчетам.

При каждом отдельном включении ошибка была незначительной, но в совокупности она оказалась колоссальной. К тому времени, когда орбитальный аппарат достиг Марса, навигаторы полагали, что он пройдет над атмосферой на высоте 226 километров. Фактическое максимальное сближение составило от 57 до 80 километров — он оказался глубоко внутри атмосферы, которая, хоть и разрежена, на такой высоте достаточно плотна, чтобы разорвать космический аппарат на части. Аппарат либо сгорел, либо его выбросило обратно на солнечную орбиту в виде медленно кувыркающихся обломков. Что именно произошло, не знает никто.

The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again
The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again Illustration · AI-generated (FLUX.1-dev)

Проверки, которых не было

Несовпадение единиц измерения само по себе было лишь одной строчкой в некачественной документации. Куда более серьезный провал заключался в том, что за девять месяцев полета никто этого так и не заметил. Комиссия NASA по расследованию аварии (Mishap Investigation Board) высказалась прямо: навигаторы месяцами сообщали об аномалиях в модели траектории. Космический аппарат постоянно отклонялся к югу от расчетного курса. Два корректирующих включения двигателей, запланированных на конец перелета — маневры коррекции траектории 4 и 5, — обсуждались, но в итоге были отменены из-за жестких сроков. Формальная экспертная оценка навигационного программного обеспечения была в плане, но так и не состоялась.

Orbites aérofreinage Mars Climate Orbiter
Orbites aérofreinage Mars Climate Orbiter Savant-fou · BY-SA 3.0

В отчете комиссии причина была названа не технической, а институциональной. Программа Mars Surveyor строилась вокруг доктрины «быстрее, лучше, дешевле», предложенной Daniel Goldin. Эта концепция сократила бюджеты миссий примерно вдвое по сравнению с базовым уровнем эпохи «Викингов» и привела к острой нехватке персонала. В группе управления полетами Lockheed восемь человек выполняли работу, которую в предыдущих миссиях поручали двадцати. Когда возникали мелкие аномалии, просто не оставалось свободных ресурсов на то, чтобы в них разбираться. Одиннадцать недель спустя бесследно исчез и Mars Polar Lander: почти наверняка из-за того, что датчики на его посадочных опорах приняли вибрацию при их раскрытии за касание поверхности и отключили двигатели в сорока метрах над землей. Та же программа. Тот же год. Другая ошибка.

In a late-1990s navigation room
In a late-1990s navigation room Illustration · AI-generated (FLUX.1-dev)

Чего мы до сих пор не знаем

Мы не знаем точной высоты, на которой разрушился орбитальный аппарат. Оценка комиссии в 57 километров была основана на экстраполяции данных слежения; сам аппарат перестал передавать сигналы еще до того, как достиг плотных слоев. Сгорел ли он без остатка, развалился ли на большой высоте или отскочил обратно на гелиоцентрическую орбиту — с технической точки зрения этот вопрос до сих пор остается без ответа.

Mars Climate Orbiter
Mars Climate Orbiter NASA/JPL/Corby Waste · Public domain

Мы также не до конца понимаем, почему файл SM_FORCES вообще записывался в имперских единицах. В контракте была прописана система СИ. Собственные внутренние документы Lockheed также требовали применения СИ. Наиболее вероятный ответ заключается в том, что в раннем прототипе использовалась фунт-сила, и он так и не был переведен в другую систему, а метка единиц измерения в файле потерялась где-то в цепочке унаследованного кода.

The Orbiter skims too low over Mars at the edge of the atmosphere
The Orbiter skims too low over Mars at the edge of the atmosphere Illustration · AI-generated (FLUX.1-dev)

Мы не знаем и того, сколько еще раз эта программа находилась на волосок от катастрофы. Комиссия опросила сотрудников, которые рассказали, что похожие мелкие нестыковки замечали и в предыдущих миссиях, но тогда им находили рациональное объяснение и закрывали на них глаза. Просто Orbiter оказался тем аппаратом, чья поломка обернулась громким провалом.

Запуск ракеты Delta II обходится примерно в 50 миллионов долларов. Orbiter стоил в шесть раз больше. Усвоенный урок — проверять единицы измерения на каждом стыке, каждый раз — был прописан в учебниках по инженерии еще в 1962 году, когда аппарат Mariner 1 был уничтожен у побережья Флориды из-за того, что в уравнение наведения закралась опечатка всего в один символ. Учебник остался прежним. Изменился только счет.

Am 23. September 1999 glitt eine 327,6 Millionen Dollar teure NASA-Raumsonde hinter den Mars und tauchte auf der anderen Seite nie wieder auf. Die Ursache – als man sie schließlich fand – war eine Multiplikation mit 4,45.

Der Mars Climate Orbiter sollte die unspektakuläre Hälfte einer zweiteiligen Mission sein. Sein Schwesterschiff, der Mars Polar Lander, hatte die dramatische Aufgabe – in der Nähe des Südpols aufzusetzen, in den Regolith zu graben und nach Wassereis zu suchen. Die Rolle des Orbiters bestand darin, den Planeten in 421 Kilometern Höhe zu umkreisen, das Wetter für ein Marsjahr zu beobachten und als Funkrelais für den Lander zu dienen. Er startete am 11. Dezember 1998 an Bord einer Delta II von Cape Canaveral und begab sich auf eine 286 Tage dauernde Hohmann-Bahn.

Die Sonde selbst war ein 638 Kilogramm schwerer Kasten aus Aluminiumwaben, der von Lockheed Martin Astronautics in Denver gebaut wurde. Die Navigation – die Aufgabe, genau zu wissen, wo sich die Raumsonde befand und wohin ihre Triebwerke ausgerichtet werden mussten – oblag dem NASA's Jet Propulsion Laboratory in Pasadena. Die beiden Teams tauschten sich ständig aus. Sie übermittelten einander Telemetriedateien. Sie rechneten die Zahlen durch. Die Zahlen waren neun Monate lang falsch, und niemand bemerkte es.

Mars Climate Orbiter - mishap diagram
Mars Climate Orbiter - mishap diagram Xession · BY 3.0

In der Nacht des 23. September, um 09:00:46 Uhr UTC, zündete der Orbiter sein Haupttriebwerk für eine 16-minütige Brennphase, um in die Marsumlaufbahn einzuschwenken. Neunundvierzig Sekunden vor dem planmäßigen Ende der Brennphase verschwand die Sonde erwartungsgemäß hinter dem Planeten. Signalverlust. Einundzwanzig Minuten später, als sie wieder hätte auftauchen sollen, empfing das Deep-Space-Netzwerk nichts. Es empfing nie wieder etwas.

A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn
A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn Illustration · AI-generated (FLUX.1-dev)

Eine Datei namens SM_FORCES

Die Untersuchung unter der Leitung von Arthur Stephenson vom Marshall Space Flight Center führte den Fehler auf eine einzige Datei der Bodensoftware zurück. Das Flugteam von Lockheed berechnete den Impuls, der von den kleinen Triebwerken zur Entsättigung des Drehimpulses der Sonde ausging – jenen Triebwerken, die mehrmals täglich kurz zündeten, um den in den Reaktionsrädern aufgebauten Drall abzubauen. Sie schrieben diese Zahlen in eine Datei, die die Navigatoren am JPL einlasen, um ihr Flugbahnmodell zu aktualisieren.

A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav
A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav Free Public Domain Illustrations by rawpixel · BY 2.0

Lockheed verfasste die Datei in Pound-force-Sekunden. Das JPL las sie als Newtonsekunden. Eine Pound-force entspricht 4,45 Newton. Jedes Mal, wenn die Triebwerke zündeten, unterschätzte das Modell des JPL den Schub um den Faktor 4,45, und die Sonde driftete ein wenig weiter von dem Punkt weg, an dem sie sich laut Modell befinden sollte.

Der Fehler war pro Zündung klein, aber in der Summe gewaltig. Als der Orbiter den Mars erreichte, glaubten die Navigatoren, er würde die Atmosphäre in 226 Kilometern Höhe streifen. Die tatsächliche größte Annäherung lag irgendwo zwischen 57 und 80 Kilometern – weit innerhalb einer Atmosphäre, die zwar dünn ist, aber in dieser Höhe dicht genug, um ein Raumfahrzeug in Stücke zu reißen. Der Orbiter verglühte entweder oder wurde als langsam taumelndes Wrack zurück in eine Sonnenumlaufbahn geschleudert. Niemand weiß, was von beidem geschah.

The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again
The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again Illustration · AI-generated (FLUX.1-dev)

Die Überprüfungen, die nie stattfanden

Die Verwechslung der Einheiten war für sich genommen nur eine einzige Zeile mangelhafter Dokumentation. Das tieferliegende Versagen bestand darin, dass neun Betriebsmonate vergingen, ohne dass jemand den Fehler bemerkte. Das NASA-eigene Mishap Investigation Board drückte es schonungslos aus: Die Navigatoren hatten monatelang Anomalien im Flugbahnmodell gemeldet. Die Sonde wich kontinuierlich nach Süden von ihrer berechneten Flugbahn ab. Zwei für die späte Flugphase geplante Korrekturzündungen – die Flugbahnkorrekturmanöver 4 und 5 – wurden erwogen und dann unter Zeitdruck gestrichen. Ein formelles Peer-Review der Navigationssoftware stand auf dem Plan und fand nie statt.

Orbites aérofreinage Mars Climate Orbiter
Orbites aérofreinage Mars Climate Orbiter Savant-fou · BY-SA 3.0

Der Bericht der Untersuchungskommission benannte die Ursache als institutionell, nicht als technisch. Das Mars-Surveyor-Programm war um die Doktrin „schneller, besser, billiger“ von Daniel Goldin herum aufgebaut worden, die die Missionsbudgets gegenüber dem Basiswert der Viking-Ära in etwa halbierte und die Teams personell ausdünnte. Die Flugbetriebsgruppe von Lockheed bestand aus acht Personen, die die Arbeit erledigten, für die bei früheren Missionen zwanzig Personen eingesetzt worden waren. Als kleine Anomalien auftraten, gab es keinen Spielraum, um ihnen nachzugehen. Elf Wochen später verschwand auch der Mars Polar Lander, fast sicher deshalb, weil die Sensoren seiner Landebeine die Vibrationen beim Ausklappen fälschlicherweise für das Aufsetzen hielten und die Triebwerke vierzig Meter über dem Boden abschalteten. Gleiches Programm. Gleiches Jahr. Anderer Fehler.

In a late-1990s navigation room
In a late-1990s navigation room Illustration · AI-generated (FLUX.1-dev)

Was wir noch immer nicht wissen

Wir kennen nicht die genaue Höhe, in der der Orbiter zerstört wurde. Die Schätzung der Kommission von 57 km basierte auf in die Zukunft extrapolierten Ortungsdaten; die Sonde selbst sendete keine Daten mehr, bevor sie die dichte Schicht erreichte. Ob sie restlos verglühte, in großer Höhe zerbrach oder wieder hinaus in eine heliozentrische Umlaufbahn abprallte, ist technisch gesehen noch immer ungeklärt.

Mars Climate Orbiter
Mars Climate Orbiter NASA/JPL/Corby Waste · Public domain

Wir wissen nicht vollständig, warum die Datei SM_FORCES überhaupt in imperialen Einheiten geschrieben wurde. Der Vertrag schrieb das SI-System vor. Auch Lockheeds eigene interne Dokumente schrieben das SI-System vor. Die wahrscheinlichste Antwort lautet, dass ein früher Prototyp Pound-force verwendete und nie umgewandelt wurde, und dass die Einheitenbezeichnung der Datei irgendwo in einer Kette von geerbtem Code verloren ging.

The Orbiter skims too low over Mars at the edge of the atmosphere
The Orbiter skims too low over Mars at the edge of the atmosphere Illustration · AI-generated (FLUX.1-dev)

Wir wissen auch nicht, wie viele andere Beinahe-Katastrophen dasselbe Programm barg. Die Kommission befragte Mitarbeiter, die aussagten, dass ähnliche kleine Diskrepanzen bereits bei früheren Missionen bemerkt und wegerklärt worden waren. Der Orbiter war lediglich derjenige, der unübersehbar scheiterte.

Der Start einer Delta-II-Rakete kostet etwa 50 Millionen Dollar. Der Orbiter kostete das Sechsfache davon. Die daraus gezogene Lehre – überprüfe die Einheiten an jeder Schnittstelle, jedes einzelne Mal – stand bereits 1962 in den Lehrbüchern der Ingenieurwissenschaften, als Mariner 1 vor der Küste Floridas zerstört wurde, weil bei einer Steuerungsgleichung ein einziges Zeichen falsch übertragen worden war. Das Lehrbuch hatte sich nicht geändert. Nur die Rechnung.

1999년 9월 23일, 3억 2,760만 달러에 달하는 NASA 우주선이 화성 뒤편으로 미끄러져 들어간 뒤 영영 반대편으로 빠져나오지 못했다. 마침내 밝혀진 그 원인은 4.45를 곱한 연산 하나였다.

화성 기후 궤도선(Mars Climate Orbiter)은 두 부분으로 구성된 임무 중 다소 밋밋한 역할을 맡기로 되어 있었다. 자매 탐사선인 화성 극지 착륙선(Mars Polar Lander)은 남극 근처에 착륙해 표토를 파고 들어가며 물과 얼음을 찾는, 훨씬 극적인 임무를 띠고 있었다. 궤도선의 역할은 고도 421킬로미터에서 행성을 맴돌며 화성의 1년 동안 날씨를 관측하고, 착륙선과 지구 사이의 무선 중계기 역할을 하는 것이었다. 1998년 12월 11일 Cape Canaveral에서 델타 II 로켓에 실려 발사된 이 궤도선은 286일이 소요되는 호만 전이 궤도(Hohmann transfer orbit)에 올랐다.

이 탐사선은 덴버에 위치한 Lockheed Martin Astronautics에서 제작한 638킬로그램짜리 알루미늄 벌집 구조의 상자였다. 항법(Navigation)—즉 우주선의 정확한 위치를 파악하고 추력기의 방향을 어디로 향할지 결정하는 일—은 패서디나에 있는 NASA's Jet Propulsion Laboratory(JPL)의 몫이었다. 두 팀은 끊임없이 소통했다. 원격 측정 파일을 교환했고, 수치들을 계산했다. 하지만 그 수치들은 9개월 동안이나 틀려 있었고, 아무도 이를 눈치채지 못했다.

Mars Climate Orbiter - mishap diagram
Mars Climate Orbiter - mishap diagram Xession · BY 3.0

9월 23일 밤 09시 00분 46초(UTC 기준), 궤도선은 화성 궤도에 진입하기 위해 16분간 주 엔진을 점화했다. 엔진 연소가 끝나기로 예정된 시각보다 49초 앞서, 탐사선은 예상대로 화성 뒤편으로 넘어갔다. 신호 단절. 다시 모습을 드러내야 했을 21분 후, 심우주 통신망에는 아무런 신호도 잡히지 않았다. 그 후로도 영영 아무런 신호를 듣지 못했다.

A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn
A Delta II rocket lifts the Mars Climate Orbiter from Cape Canaveral before dawn Illustration · AI-generated (FLUX.1-dev)

SM_FORCES라는 이름의 파일

Marshall Space Flight CenterArthur Stephenson이 이끈 조사 위원회는 이 실패의 원인을 지상 소프트웨어 파일 단 하나에서 찾아냈다. 록히드 마틴의 비행 팀은 우주선의 소형 각운동량 불포화(angular-momentum-desaturation) 추력기들이 가하는 충격량을 계산했다. 이 추력기들은 반작용 휠에 누적된 회전력을 상쇄하기 위해 하루에도 여러 번 짧게 점화되었다. 그들은 이 수치들을 파일에 기록했고, JPL의 항법 담당자들은 이 파일을 입력받아 궤도 모델을 갱신했다.

A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav
A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav Free Public Domain Illustrations by rawpixel · BY 2.0

록히드는 이 파일을 파운드-힘 초(pound-force seconds) 단위로 작성했다. 반면 JPL은 이를 뉴턴-초(newton-seconds) 단위로 읽어 들였다. 1 파운드-힘은 4.45 뉴턴이다. 추력기가 점화될 때마다 JPL의 모델은 추력을 실제보다 4.45배 적게 계산했고, 우주선은 모델이 가리키는 위치에서 조금씩 더 멀어져 갔다.

한 번의 오차는 미미했지만, 누적된 결과는 막대했다. 궤도선이 화성에 도달했을 때, 항법 담당자들은 탐사선이 고도 226킬로미터에서 대기권을 스치듯 지나갈 것이라고 믿었다. 하지만 실제 최접근 고도는 57킬로미터에서 80킬로미터 사이였다. 아무리 화성의 대기가 옅다 해도 우주선을 갈가리 찢어놓을 만큼은 충분히 밀도가 높은 고도였다. 궤도선은 대기권에서 불타버렸거나, 천천히 뒹구는 잔해가 되어 태양 궤도로 튕겨 나갔을 것이다. 어느 쪽인지는 아무도 모른다.

The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again
The Mars Climate Orbiter cruises toward Mars as a compact gold-and-silver spacecraft again Illustration · AI-generated (FLUX.1-dev)

이루어지지 않은 검토

단위 불일치 그 자체는 그저 문서화가 잘못된 한 줄의 오류에 불과했다. 더 깊고 근본적인 실패는 9개월간 운영이 이어지는 동안 아무도 이를 잡아내지 못했다는 점이다. NASA 자체적인 Mishap Investigation Board의 지적은 직설적이었다. 항법 담당자들은 이미 수개월 전부터 궤도 모델의 이상을 보고해 온 터였다. 우주선은 예측된 궤도보다 남쪽으로 지속적으로 벗어나고 있었다. 순항 후반에 예정되어 있던 두 차례의 궤도 수정 점화—궤도 수정 기동(TCM) 4와 5—는 검토 단계까지 갔으나 일정상의 압박으로 인해 취소되고 말았다. 항법 소프트웨어에 대한 공식적인 동료 평가(peer review) 또한 계획상에는 있었으나 결코 실행되지 않았다.

Orbites aérofreinage Mars Climate Orbiter
Orbites aérofreinage Mars Climate Orbiter Savant-fou · BY-SA 3.0

위원회의 보고서는 그 원인이 기술적인 것이 아니라 조직적인 것이라고 지목했다. 마스 서베이어(Mars Surveyor) 프로그램은 Daniel Goldin의 "더 빠르고, 더 낫게, 더 싸게(faster, better, cheaper)"라는 원칙을 바탕으로 구축되었는데, 이로 인해 임무 예산은 바이킹(Viking) 시대 기준점의 절반 수준으로 깎였고 팀의 인력은 부족한 상태로 운영되었다. 과거 임무였다면 20명에게 배정했을 업무를 록히드의 비행 운영 그룹에서는 단 8명이 처리하고 있었다. 작은 이상 징후가 나타나도, 이를 추적할 시간적 여유조차 없었다. 11주 후, 화성 극지 착륙선 또한 실종되었다. 착륙선 다리의 센서가 다리가 펼쳐질 때의 진동을 착륙으로 오인하여 지상 40미터 상공에서 엔진을 꺼버렸기 때문이 거의 확실했다. 같은 프로그램. 같은 해. 그리고 다른 버그였다.

In a late-1990s navigation room
In a late-1990s navigation room Illustration · AI-generated (FLUX.1-dev)

우리가 아직 모르는 것들

우리는 궤도선이 정확히 어느 고도에서 파괴되었는지 알지 못한다. 57킬로미터라는 위원회의 추정치는 추적 데이터를 미래로 외삽(extrapolation)하여 얻어낸 것이었으며, 우주선 자체는 대기가 짙은 층에 도달하기도 전에 보고를 멈췄다. 우주선이 깔끔하게 타버렸는지, 높은 고도에서 산산조각 났는지, 아니면 다시 튕겨 나가 태양 주위 궤도로 들어갔는지에 대해서는 엄밀히 말해 아직까지 미해결 상태로 남아 있다.

Mars Climate Orbiter
Mars Climate Orbiter NASA/JPL/Corby Waste · Public domain

애초에 SM_FORCES 파일이 왜 야드파운드법으로 작성되었는지도 완전히 규명되지 않았다. 계약서에는 국제단위계(SI)가 명시되어 있었다. 록히드의 내부 문서 자체에도 SI가 명시되어 있었다. 가장 유력한 해답은 초기 프로토타입에서 파운드-힘을 사용했는데 이를 끝내 변환하지 않았으며, 물려받은 코드 사슬 어딘가에서 파일의 단위 꼬리표가 유실되었으리라는 것이다.

The Orbiter skims too low over Mars at the edge of the atmosphere
The Orbiter skims too low over Mars at the edge of the atmosphere Illustration · AI-generated (FLUX.1-dev)

이와 동일한 프로그램 내에 얼마나 많은 아찔한 순간들이 더 숨어 있었는지도 우리는 알 수 없다. 위원회와 면담한 직원들은, 이전 임무에서도 비슷한 사소한 불일치들이 발견되었으나 별것 아닌 것으로 합리화되어 넘어간 적이 있다고 진술했다. 기후 궤도선은 단지 우연히도 요란하게 실패해 버린 경우였을 뿐이다.

델타 II 로켓을 발사하는 데는 약 5천만 달러가 든다. 궤도선에는 그 6배의 비용이 들었다. 우리가 얻은 교훈—모든 인터페이스에서 매번 단위를 검증하라—은, 이미 1962년 플로리다 연안에서 유도 방정식의 문자 하나를 잘못 옮겨 적은 탓에 Mariner 1이 파괴되었을 당시 공학 교과서에도 실려 있던 내용이다. 교과서의 내용은 달라지지 않았다. 청구서의 금액만 달라졌을 뿐이다.

Image sources & licenses (7)
  1. Mars Climate Orbiter - mishap diagram — Xession, BY 3.0. Source (openverse)
  2. A Boeing Delta II expendable launch vehicle lifts off with NASA s Mars Climate Orbiter on Dec. 11, 1998, from Launch Complex 17A, Cape Canav — Free Public Domain Illustrations by rawpixel, BY 2.0. Source (openverse)
  3. Orbites aérofreinage Mars Climate Orbiter — Savant-fou, BY-SA 3.0. Source (openverse)
  4. Mars Climate Orbiter — NASA/JPL/Corby Waste, Public domain. Source (wikipedia)
  5. Artist's rendering of the Mars Climate Orbiter — NASA/JPL/Corby Waste, Public domain. Source (commons)
  6. Artistic depiction of Mars Climate Orbiter in orbit around Mars. — NASA/JPL, Public domain. Source (commons)
  7. Mars Climate Orbiter photo taken in the Lockheed Martin Astronautics facility in Denver, Colorado in January 1998. It shows the assembly of — NASA/JPL, Public domain. Source (commons)

Mentioned in this article

Sources

  1. Stephenson, A. G. et al. (1999). "Mars Climate Orbiter Mishap Investigation Board Phase I Report." NASA, 10 November 1999.
  2. NASA JPL (1999). "Mars Climate Orbiter Arrival Press Kit." September 1999.
  3. Oberg, J. (1999). "Why the Mars Probe Went Off Course." IEEE Spectrum 36 (12), 34–39.
  4. Sauser, B., Reilly, R. & Shenhar, A. (2009). "Why projects fail? How contingency theory can provide new insights — A comparative analysis of NASA's Mars Climate Orbiter loss." International Journal of Project Management 27 (7), 665–679.
  5. McCurdy, H. E. (2001). Faster, Better, Cheaper: Low-Cost Innovation in the U.S. Space Program. Johns Hopkins University Press.
Production storyboard

The 90-second video script behind this article.

EN script

A $327 million spacecraft. Lost in space. Because someone forgot to convert units. September 23rd, 1999. NASA's Mars Climate Orbiter approaches the red planet after a nine-month journey. It's supposed to orbit Mars and study its weather patterns. Mission controllers send the command to enter orbit. Then silence. The spacecraft vanished. Weeks of investigation revealed the most embarrassing error in space exploration history. Lockheed Martin, who built the spacecraft's thrusters, had programmed them using imperial units—pounds of force. NASA's navigation team assumed the data was in metric units—newtons. For nine months, every course correction was slightly wrong. No one checked. No one converted. No one asked. When the orbiter arrived at Mars, it was 100 kilometers lower than planned. It either burned up in the atmosphere or skipped off into space. Three hundred twenty-seven million dollars. Years of work. Gone because of multiplication by 4.45. The truly shocking part? NASA had protocols to catch exactly this kind of error. But schedule pressure led teams to skip verification steps. Reviews that should have happened didn't. Warning signs were dismissed. After the disaster, NASA implemented mandatory unit verification on all missions. Every calculation now gets checked and rechecked. The lesson cost $327 million to learn: assumptions kill missions. In engineering, you verify everything. Or you verify nothing.

HI script

$327 million ka spacecraft. Space mein kho gaya. Kyunki kisine units convert nahi kiye.

$327 million ka spacecraft. Space mein kho gaya. Kyunki kisine units convert nahi kiye. 23 September, 1999. NASA ka Mars Climate Orbiter nau mahine ki journey ke baad red planet ke paas pahunchta hai. Ise Mars ki orbit mein jaake weather patterns study karne the. Mission controllers orbit enter karne ka command bhejte hain. Phir silence. Spacecraft gayab ho gaya. Hafton ki investigation ne space exploration history ki sabse embarrassing galti reveal ki. Lockheed Martin, jinhone spacecraft ke thrusters banaye the, unhone imperial units use kiye the—pounds of force. NASA ki navigation team ne assume kiya data metric units mein hai—newtons. Nau mahine tak, har course correction thoda galat tha. Kisine check nahi kiya. Kisine convert nahi kiya. Kisine poocha nahi. Jab orbiter Mars pahuncha, yeh planned se 100 kilometer neeche tha. Ya toh atmosphere mein jal gaya ya space mein nikal gaya. Teen sau sattaees million dollars. Saalon ka kaam. Gayab hua 4.45 se multiply na karne ki wajah se. Truly shocking baat? NASA ke paas protocols the exactly is tarah ki galti pakadne ke liye. Par schedule pressure ki wajah se teams ne verification steps skip kar diye. Jo reviews hone chahiye the, nahi hue. Warning signs ignore ho gaye. Disaster ke baad, NASA ne mandatory unit verification implement kiya sabhi missions par. Ab har calculation check aur recheck hoti hai. Yeh lesson seekhne mein $327 million lage: assumptions missions khatam karti hain. Engineering mein, tum sab verify karo. Ya kuch nahi.

  1. 01

    Mars Climate Orbiter assembly in a Denver clean room

  2. 02

    Delta II launch of Mars Climate Orbiter at Cape Canaveral

  3. 03

    Mars Climate Orbiter approaching Mars in deep space

  4. 04

    Engineers comparing data in a 1990s navigation room

  5. 05

    Spacecraft skimming Mars atmosphere at low altitude

  6. 06

    Post-accident verification bench with engineers and tools