Помните, они софт перезаливали ещё перед полетами сразу после посадки? Программисты они такие выдумщики!
В результате ошибки системы навигации марсианский вертолет оказался в опасности
Ошибка расчета времени, производимого навигационной системой, привела к тому, что марсианский вертолет Ingenuity («Изобретательность») НАСА оказался в опасности – впервые с того времени, как вертолет взлетел в марсианское небо в прошлом месяце.
Этот экспериментальный винтокрылый аппарат, несмотря на возникшую неисправность, все же смог совершить безопасную посадку, сообщили вчера, в четверг, представители Лаборатории реактивного движения НАСА.
Сбой произошел примерно через минуту после начала шестого по счету пробного полета вертолета, состоявшегося в субботу на прошлой неделе, когда вертолет находился на высоте 10 метров над поверхностью. Один из многочисленных снимков, получаемых при помощи бортовой камеры, не был зарегистрирован в навигационной системе, в результате чего произошел сдвиг по времени для всей последовательности снимков, и аппарат «потерял представление» о его реальном положении в пространстве.
Аппарат Ingenuity стал раскачиваться вперед-назад на угол до 20 градусов, а потребляемая мощность начала изменяться скачками, согласно «главному пилоту» вертолета Ingenuity Ховарду Грипу.
Встроенная резервная система стабилизации «пришла на помощь», указал он в обновлении статуса миссии. Вертолет совершил посадку на расстоянии не более 5 метров от планируемой изначально зоны.
Вертолет Ingenuity в апреле стал первым летательным аппаратом, который совершил управляемый полет над поверхностью другой планеты. Вертолет был доставлен на планету двумя месяцами ранее на борту ровера Perseverance («Настойчивость»).
1,8-килограммовый вертолет успешно выполнил первые 5 полетов, каждый из которых являлся более сложным, чем предыдущий. НАСА было настолько впечатлено этой демонстрацией технологии с бюджетом в 85 миллионов USD, что продлило миссию не менее чем на один месяц.
Неудачный полет, состоявшийся в субботу, стал первым полетом, выполненным на протяжении этого дополнительного периода. Инженеры провели несколько последних дней в попытке выявить первичную причину возникшей неисправности.
(Добавил: Hot Temp)
Помните, они софт перезаливали ещё перед полетами сразу после посадки? Программисты они такие выдумщики!
Так их софт допускает толи 10,толи 15 процентов отказов, вот эти проценты и вмешались в план полёта, хорошо, если резервная система отработала не "на отвали".
Ну софт никто делать не умеет (почти никто), это известно. Когда говорят "программист", мне представляется подобие горбуна из Нотр-Дама, но однорукий, одноглазый, с одним полушарием мозга. Сидит, рот открытый, слюни текут, лупит своим красным глазом в заплёванный экран и пытается что-то натыкать. Так производятся программы, которыми мы все пользуемся.
Любой грамотный инженер может написать софт, отказоустойчивость которого стремится к 100%. Вопрос времени. Но в реальности почти всегда присутствует фактор "давай-давай".
Всегда присутствует "фактор отличника", по настоящему отказоустойчивый софт может написать только троечник. Парадокс, однако.
В живую видел только одну среду разработки, которая не содержит ни одной ошибки (или ошибок так мало, что они не проявляются при обычных условиях) - это, извините, старые как г* мамонта Дельфи-7. Но рыночек порешил так, что контора, их писавшая разорилось, а то, что от нее осталось кому-то досталось, и то, во что это превратилось на сегодня не выдерживает критики, там ошибки на каждом шагу.
---
Собственно, современное програмирование в современных дрявых и корявых средах разработки - это, в основном, обход и компенсация ошибок среды разработк. Поэтому алгоритмизация задачи мало что дает - все равно невозможно предсказать те выверты, которые будут необходимы, чтобы заставить программу работать. Именно поэтому "отличники" не могут написать "отказоустойчивый софт" - они делают все правильно, по инструкции, а потом это не работает, т.к. среда разработки корявая и ниструкции кривые. И по той же причине немцы - плохие программисты, несмотря на то что первый компьютер "по Фон Нейману", т.е. современного типа, построили именно они. Они любят порядок, и пишут программы так же, как отличники - согласно документации на среду разработки. А потом программа не работает, и немцы приходят в ступор. "Хорошими" программисами оказались анлосксы (изворотливые), русские (пофигисты), индусы (фокусники).
Рыночк хорош для торговли товарами, которые можно принести в мешке на базар. А для таких сложных вещей, как программирование, рыночек вреден, т.к. он убивает хорошие (т.е. очищенные от ошибок и медленно развивающиеся) среды разработки и оставляет жить тех, кто выпускает новую версию каждый месяц, а "ошибки потом исправим" и сопровождает это агрессивным маркенигом и неспортивными приемами конкуренции.
Среда разработки не играет роли. Надёжность работы программы определяется следующими факторами: 1) среда выполнения (железо + операционная система); 2) компилятор/интерпретатор; 3) используемые библиотеки; 4) надёжность самой программы. На данный момент существует немало компиляторов и библиотек, которые можно считать исключительно надёжными. Самое отказоустойчивое ПО (например, ядра операционных систем) всегда писали и продолжают писать на С (даже не С++). Причина - он достаточно прост, чтобы можно было применять к исходному коду методы формальной верификации, что позволяет оценивать надёжность алгоритмов не на глаз, а с математической точностью. Баги в софте космических аппаратов обусловлены чем угодно, но только не надёжностью инструментов разработки.
Иногда бывает так, что проблема возникает не из-за бага в софте, а от несоответствия ТЗ и сигналов, поступающих от приборов. Разработчикам говорят "нет, такая комбинация входных сигналов невозможна", а потом оказывается, что возможна.
Но вообще-то ПО такого уровня должно "сохранять спокойствие" при любых входных сигналах, хоть белый шум на них подавай.
Проблема систем автоматического управления в том, что штатных состояний, условно говоря, 10, а нештатных - 10000, и для каждого нужен алгоритм адекватного реагирования.
Немцы писали отличные программы. Англосаксы ввели в софтостроение принцип "as is". То есть за ошибки в софте не отвечаю. Это главная причина того, что полно программ, которые даже основной свой функционал не выполняют.
Плюс рыночные технологии вроде эджайл. Раньше это называлось говнокод (пардон, из песни слова не выкинуть), потом стало называться тяп-ляп и в продакшн, а потом эджайл.