Космический аппарат NASA Mars Climate Orbiter должен был изучать атмосферу планеты, однако из элементарной человеческой ошибки вошел в плотные слои атмосферы Красной планеты, где загорелся и распался на фрагменты.
Даже самые талантливые и преданные своему делу ученые совершают большие ошибки.Вот история одной из таких ошибок, которая стоила NASA космического корабля для Марса стоимостью 125 миллионов долларов. И все это из-за путаницы в метрической системе.
Художественная концепция марсианского климатического орбитального аппарата. NASA
Mars Climate Orbiter
Mars Climate Orbiter (MCO) — 338-килограммовый (745 фунтовый) роботизированный космический зонд был запущен NASA 11 декабря 1998 года для изучения Красной планеты и в качестве ретранслятора связи для Mars Polar Lander.
Но по прибытии космического аппарата на Марс что-то пошло не так. «В 09:00:46 UT 23 сентября 1999 года орбитальный аппарат, как и планировалось, начал спуск на орбиту Марса. После прохождения за Марсом космический аппарат должен был восстановить контакт, но, к сожалению, никаких сигналов от него получено не было», — говорится в заявлении NASA.
NASA провело расследование и вскоре выяснило, что навигационная ошибка произошла из-за того, что команды с Земли были отправлены в английских единицах (фунт-секунда) без преобразования в метрический стандарт (Ньютон-секунда). И хотя это может кому-то показаться пустяком, астронавигация — очень точная наука, ошибка привела к тому, что орбитальный аппарат не вышел на запланированную орбиту.
MCO вошел в марсианскую атмосферу на высоте примерно 35 миль (57 километров), загорелся и распался на множество мелких фрагментов. В результате космический корабль был навсегда потерян.
Проблемы культуры
Инженер Ричард Кук, который в то время был руководителем марсианских проектов NASA, рассказал WIRED, что эта ошибка стала культовой. «С этого момента история с единицами измерения стала легендой,
примером в учебнике каждого ребенка», — сказал Кук. «Все были поражены, что мы не заметили этого».
Эта история свидетельствует о том, что даже самые лучшие замыслы могут иметь сбои. Такая простая вещь, как путаница в метрической системе, может иметь катастрофические последствия.
Однако Кук считает, что в этом инциденте было нечто большее, чем просто ошибка. В то время в NASA существовала единая корпоративная культура, в рамках которой сотрудников всё время заставляли работать слишком быстро.
«Лучше, быстрее, дешевле» — такова была мантра в то время», — сказал Кук. «Безусловно, в рамках этого проекта мы пытались сделать очень многое за ограниченные деньги». Возможно, лучший урок, который можно извлечь из этого трагического события, — не торопиться и не выбирать короткие пути для таких важных миссий, как исследование планет.
Судя по всему, NASA сделало правильные выводы, и теперь все миссии на Марс осуществляются на самом высоком уровне.
рекомендации
3060 дешевле 30тр в Ситилинке
3070 Gigabyte Gaming за 50 тр с началом
<b>13900K</b> в Регарде по СТАРОМУ курсу 62
3070 Gainward Phantom дешевле 50 тр
10 видов <b>4070 Ti</b> в Ситилинке — все до 100 тр
13700K дешевле 40 тр в Регарде
MSI 3050 за 25 тр в Ситилинке
13600K дешевле 30 тр в Регарде
4080 почти за 100тр — дешевле чем по курсу 60
12900K за 40тр с началом в Ситилинке
RTX 4090 за 140 тр в Регарде
Компьютеры от 10 тр в Ситилинке
3060 Ti Gigabyte дешевле 40 тр в Регарде
3070 дешевле 50 тр в Ситилинке
-7% на 4080 Gigabyte Gaming
Источники:
https://solarsystem.nasa.gov/missions/mars-climate-orbiter/in-depth/
https://www.wired.com/2010/11/1110mars-climate-observer-report/
Этот материал написан посетителем сайта, и за него начислено вознаграждение.

Прохладная история про погодный зонд, НАСА и невнимательных менеджеров
Золотой фонд менеджерских косяков
Прохладная история про погодный зонд, НАСА и невнимательных менеджеров
Золотой фонд менеджерских косяков
Помните историю о том, как из-за одной переменной космическая ракета взорвалась в воздухе после старта? На этот раз ошибки в коде не было, но результат получился тот же самый: навсегда утрачен зонд с научным оборудованием на сумму 125 миллионов долларов.
Что произошло
История начинается в 1996 году, когда в США запускали ракету-носитель Ariane-5. Она пролетела 40 секунд, у неё случился программный сбой, и ракета взорвалась в воздухе. С тех пор в НАСА стали более тщательно проверять код и тестировать его в различных условиях.
Два года спустя НАСА запустило научный космический зонд Mars Climate Orbiter — он должен был изучать климат Марса, а заодно работать вспомогательным маяком для навигации других научных зондов.
В течение 9 месяцев полёта всё было отлично — «Орбитер» летел к Марсу по расчётной траектории. Но при заходе на орбиту связь с зондом была потеряна, а сам он распался на куски в атмосфере и упал на планету.

В чём причина
Расследование комиссии показало, что зонд должен был начать торможение перед заходом на орбиту на высоте 110 километров от поверхности Марса, но он начал тормозить только на 57 километрах. Из-за этого зонд вошёл в атмосферу планеты со слишком высокой скоростью и разрушился от перегрузок.
Когда комиссия стала искать причины, которые вызвали такое позднее торможение, то сначала все подумали про ошибки в коде — после инцидента с Ariane-5 это была очевидная мысль. Но в коде всё было идеально — ни один модуль управления не выдал ошибку после сотни тестов.
Оказалось, что дело не в коде, а в разных системах измерения. Команда-подрядчик, которая писала софт для модуля управления, использовала в формулах и расчётах метрическую систему, а командный центр в НАСА — английскую (там где футы, дюймы, мили, фунты). Когда настало время корректировки скорости и высоты для выхода на орбиту, зонд ожидал данные в метрах и ньютонах, а получил в футах и фунт-силах. Программисты и менеджеры не согласовали с НАСА стандарты разработки и не проверили, какие именно данные и в каком виде будет получать конкретный модуль.
В итоге вместо 110 000 метров зонд получил от НАСА 360 892 фута. Бортовой компьютер подумал, что лететь ещё долго, и не стал снижать скорость. В итоге зонд снизился на критическую высоту и не выдержал перегрузок.
Сейчас в мире используются две основные системы измерения: международная и английская.
Международной (метрической) системой СИ пользуются почти все страны мира, в том числе и мы с вами. Это значит, что мы измеряем вес в килограммах, силу — в ньютонах, расстояние — в метрах и так далее. Она была разработана как раз для того, чтобы учёные и инженеры из разных стран могли общаться на одном языке, читать и понимать научную документацию друг друга и делиться опытом.
Английская (она же британская имперская) система мер используется только в Великобритании, США, Либерии, Мьянме и немного в Канаде. Вместо метров и сантиметров там футы и дюймы, вместо килограмма — фунты, унции и граны, а вместо литров — галлоны. И так во всём, от измерения давления до температуры. Английская система не лучше и не хуже международной, она просто другая.
Что в итоге
Эта авария постепенно заставила НАСА пересмотреть свой подход к системам измерения. Они поняли, что международные компании-разработчики используют метрическую систему как стандартную для написания кода. Отказаться от подрядчиков НАСА не может, потому что у него нет такого штата высококвалифицированных программистов и инженеров, которые могут написать софт к любому модулю.
В итоге с 2007 года НАСА использует метрическую систему измерений. Вот так невнимательность менеджеров и программистов поменяла стандарт в космической отрасли целой страны.
Вёрстка:
Кирилл Климентьев
NASA Mars Climate Orbiter — $193000000 убытков
В американских исследованиях Марса, после Global Surveyor-1996 и Polar Lander-1999 был запланирован третий зонд — Orbiter.
Все три зонда должны были прибыть к Марсу приблизительно в одно “орбитальное окно” — конец сентября 1999 г. Каждому зонду предназначалась своя сфера исследований — поверхность планеты, ее климат, и атмосфера.
Люди в NASA надеялись, что третий зонд в целом успешной серии, после прибытия в целевую точку будет исследовать историю климата Марса, а также искать следы воды на поверхности. После завершения миссии аппарат планировали использовать как коммуникационный передатчик для последующих миссий. После прохода на близком расстоянии от планеты, аппарат должен был восстановить радиоконтакт. Но в назначенное время на связь аппарат не вышел.
Расследование показало, что сбой случился из-за навигационной ошибки. Точнее, из-за того, что кто-то не учел разницу между английскими-имперскими (и американскими) — и общепринятыми в остальном мире “континентальными” единицами измерения. Отправляемые команды были рассчитаны на формат ускорения “фунт в секунду”, а должны были — “ньютон в секунду”. Если бы управляющий код был кем-то добросовестно протестирован….
В результате Orbiter просрочил свой выход из навигационного маневра, приблизился слишком сильно к поверхности планеты — всего лишь на 57 километров от поверхности, где разумеется атмосфера была уже слишком плотной, для околокосмической скорости аппарата. Аппарат разрушился, то есть сгорел от трения в воздухе.
Mariner 1 — $18000000 убытков
“Инцидент с Mariner 1”, известный также как “самый дорогой минус в истории”, это второй эпический фэйл NASA. Кто-то забыл поставить “минус”, а кто-то не проверил код, что повлекло убытки на миллионы долларов.
Аппарат был запущен 22.06.1962 в 9 утра. На 5-й минуте полета резко поменял траекторию. “Маринер”, на которой NASA возлагала большие надежды, самые жаркие месяцы космической гонки, бравурный запуск Кеннеди уже назвал историческим — и спутник упал и разрушился.
Официальный отчет NASA гласит: “В начале полета ускорители работали в штатном режиме. Затем случилось непредвиденное отклонение от запланированной траектории, это зафиксировал сотрудник, отвечающий за точность траектории. Причиной отклонения оказалась ошибка в коде управления полетом. Это привело аппарат к резкому отклонению и угрозе падения в океан, в районе активного судоходства. Сотрудник, обнаруживший отклонение, дал команду самоликвидации аппарата.”
Через несколько дней в “Нью-Йорк Таймс” вышла статья, в которой NASA попыталась объяснить налогоплательщикам, почему дорогостоящий спутник потерпел крушение. Было сказано, что это случилось в результате ошибочного пропуска знака “-” в математических уравнениях в коде программы. Программист NASA пропустил нужный символ во время пакетного ввода огромного количества информации в бортовую систему аппарата.
Еще через несколько дней Ричард Моррисон, пресc-офицер NASA, представлял причины катастрофы перед Конгрессом, где выражался более конкретно и подчеркнул важность маленькой ошибки. “Этот знак минуса фактически дал указание аппарату игнорировать поступающие данные, пока не восстановится связь со станцией управления. Если этого минуса нет, получается что в компьютер поступает ошибочная информация. В данном случае бортовой компьютер направил команду “резко влево, нос к земле”, в результате чего аппарат упал с разрушением”.
Крушение ракеты Ariane 5 — запуск 501 — $8000000 убытков
В 1996 году ракета-грузовик без экипажа, принадлежавшая Европейскому космическому агентству, запущенная на экваториальном космодроме Куру в Латинской Америке, взорвалась на 40-й секунде полета. Это был первый запуск ракетоносителя. На разработку и доводку ракеты ушло 10 лет и миллионы долларов.
Причины прояснились через две недели. Комиссия выяснила, что причиной взрыва был сбой в программе управления инерциальной системой ориентировки. Оказалось, что софт не обновляли от 4-й версии ракеты, а просто установили “как есть” на 5-ю. А новая версия ракеты была оснащена более мощным двигателем, с которым старая система управления попросту не справилась.
Дальнейшее расследование уточнило причины. Оказалось, что дело не только в смене версий. В программе 64-битное число с плавающей точкой, описывающее горизонтальную скорость, конвертировалось в 16-битное целое число. Число оказалось больше чем допустимые 32767 (самое большое число для 16-битного целого как ты помнишь?), и преобразование не было обработано корректно. Двигатель перешел в нештатный режим на 39-й секунде, ракета сразу же начала разрушаться “от неправильного баланса аэродинамических сил”.
Ошибка в процессоре Pentium — $475000000 убытков
“Ошибка FDIV” в процессоре Pentium стала самым известным багом микропроцессоров Intel. Новое разрекламированное поколение процессоров заявлялось как “быстрое и точное”, вместо этого стало печально известно как буквально кишевшее багами, а самый крупный из них — ошибка в таблице поиска в интелловском SRT-алгоритме (“выбор кратчайшего времени”).
Руководство Intel поставило инженерам задачу: в новом процессоре ускорить вычисление скалярного кода с плавающей точкой в 3 раза, и векторного кода в 5 раз, по сравнению с древней серией 486DX. В Intel решили применить перспективный SRT-алгоритм, генерирующий по два коэффициентных бита на такт. Старый алгоритм “сдвига с вычитанием” в 486-й серии генерировал один коэффициентный бит на такт. Такой SRT-алгоритм задействует таблицу поиска в вычислении промежуточных коэффициентов, связанных с делением чисел с плавающей точкой. Таблица поиска изготовленная инженерами Intel состояла из 1066 ячеек. Из них, “благодаря” ошибке программиста, 5 ячеек некорректно передавались в логическую матрицу (PLA). Если любая из этих бракованных 5 ячеек запрашивалась из модуля вычислений с плавающей точкой (FPU), она выдавала значение “0” вместо положенного “+2”. Это искажало вычисления в модуле и иногда приводило к заметно менее точному результату (ошибка в четвертом разряде после точки), причем из-за “рекурсивной” природы SRT-алгоритма такие ошибки “накапливались”.
В основном, все же, точность вычислений “пентиума” страдала лишь в 9 или 10 разряде после точки. Впрочем, покупатели и клиенты не очень-то слушали эти оправдания, и бодро подавали в суд, как поодиночке так и целыми компаниями, что и сформировало впечатляющую сумму убытков Intel.
Червяк Моррис — $100000000 убытков
Оказывается бывает не только в плохом кино, когда студент-программист, пытающийся решить свою учебную задачу, случайно создает червя, приносящего убытков на 100 миллионов долларов (учитывая выплаченные компенсации и неустойки, как и в остальных случаях выше и ниже). Это произошло в далеком 1988 году. Роберт Моррис, студент последнего курса Корнуэльского университета, судя по всему действительно случайно создал опаснейший зловред. (Детальнее об этом сюжете можно почитать на сайте Университета Юты). Он выполнял “невинный эксперимент”, и сделал, как он уверял под присягой, случайную ошибку в коде. Червь вырвался на свободу и заразил тысячи компьютеров, которые в то время в Америке уже стали вполне обычным рабочим инструментом в офисах.
Роберта обвинили в хакерстве, и для начала оштрафовали на 10 тысяч долларов. Позже сумма причиненных убытков — всем потерпевшим — достигла 100 миллионов, так как компаниям пришлось восполнять недополученную прибыль, простои и т.п.
Адвокат Роберта доказывал, что не все так плохо, что червь “помог усовершенствовать системы безопасности”, создать такую вещь как антивирусы, а также познакомил широкую публику и компании с такой опасной вещью как компьютерные вирусы. Как-то выпутавшись из проблем (суд ему, в целом, поверил — что это был случайный непроверенный баг), Роберт основал фирму “Y Combinator”. Сейчас он профессор в самом уважаемом американском вузе — Массачусетском Технологическом (МИТ). Изъятая как вещественное доказательство 3,5-дюймовая дискета покоится в Музее Бостонского университета.
Банкротство спекулянтов из Knight — 440 миллионов долларов
Что будет, если самая хайповая из компаний-спекулянтов на американском фондовом рынке начинает некорректно работать с акциями: покупать слишком дорого, а продавать слишком дешево? Плохая идея, впереди банкротство? Именно это и случилось.
В разгар летних отпусков, 1 августа 2012, случилось нечто — кошмар для СЕО любой компании. То, что строилось 17 лет, рухнуло буквально за пару часов. Новый трейдинговый софт компании Knight содержал баг, который активировался когда Нью-Йоркская биржа открылась утром. Некорректный софт заставил компанию перейти в режим автоматической покупки акций, и пока руководство пыталось понять что происходит, то оказалось что куплены акции 150 компаний, на сумму 7 миллиардов долларов — и это лишь за первый час такого “трейдинга”.
Компания попыталась отменить последние торги, но американская Комиссия по фондовым биржам не дала разрешения: даже такая крупная компания как Knight, и даже при таком огромном объеме покупок акций, все-таки не превысила установленный правилами порог в 30% роста цен, при котором торги могут отменить. Исключение составили лишь 6 крупных транзакций, которые и были отменены, а все остальные убытки пришлось принять.
Катастрофа для компании: менеджменту стало ясно, что все ошибочно купленные активы нужно распродавать с большим убытком. Ситуацию немного смягчила Goldman Sachs, выкупив остатки этой некогда мощнейшей и перспективной компании.
Баг 2000 года. Полтриллиона долларов убытков
Одна неправильная буква, точнее цифра, способна принести убытков в полтриллиона долларов. Так случилось более двадцати лет назад, в канун нового столетия и тысячелетия. В англоязычном мире этот феномен был известен как Y2K Bug, или “миллениум-баг”. Коротко: компьютеры неправильно обрабатывали все даты позже 31 декабря 1999 г.
Как оказалось, в большинстве компьютеров той эпохи подсистема времени, а именно дат, оставалась почти без изменений с 1960х-1980х и до конца 1990х. Тогда было принято строжайше экономить место в памяти, довольствуясь всего двумя цифрами даты, последними, а “19” (почти) всегда отбрасывали (впрочем, так и сейчас, но конечно выводы из Y2K Bug сделаны). Дефицит места в памяти, из-за дороговизны компьютеров вообще, и планок памяти в частности, а потом инерция — отсюда жесткие ограничения на каждый байт.
Неумолимо приближалось новое столетие, и лишь немногие программисты понимали, что компьютеры, спроектированные, на своем базовом уровне в 1960е-1970е, могут неправильно принимать введенную дату. А именно, дату “00” компьютер принимал как “1900”-й год. Конечно, подобное недоразумение могло повлечь серьезнейшие последствия если речь шла об инфраструктуре, или повреждение пользовательских данных.
Громче всех паниковали СЕО банков — например, как считать проценты, если депозит “вернулся в прошлое” на сто лет? Множились опасения также в транспортной сфере, на электростанциях, и в других объектах инфраструктуры.
Реагируя на панику в СМИ, в США приняли специальный закон “О готовности к 2000 году”, призванный подготовить инфраструктуру и банки к знаменательной дате “миллениума”. Президент Клинтон создал “Совет по проблеме 2000 года”, с собой во главе. Совет, помимо государственной критической инфраструктуры, надзирал над банками, и советовался с их директорами как избежать убытков (которых полностью избежать все-таки не удалось). Общие мировые затраты на проверку инфраструктуры и банков превысили 600 миллиардов (да, миллиардов долларов), по подсчетам компании Gartner.
Такие дела.
Остается лишь надеяться, что сейчас тестируют лучше.
Возможно будет интересно также: