Космическая программа для компьютера
Обновлено: 24.11.2024
1944 г.
IBM помогает спроектировать и построить автоматический вычислитель, управляемый последовательностью, для Гарвардского университета. Он используется учеными ВМФ для подготовки баллистических таблиц.
1951 г.
Карточный программируемый калькулятор IBM (CPC), система с карточным управлением и первый цифровой компьютер, использованный в космической программе, используется при разработке ракеты Redstone для армии США. CPC добавляет цифры со скоростью 2174 в минуту.
1952
Исследовательский центр Лэнгли в Хэмптоне, штат Вирджиния, в то время входивший в состав Национального консультативного комитета по аэронавтике (предшественника НАСА), начинает исследования многоступенчатых твердотопливных ракет. Лэнгли использует один из программируемых калькуляторов IBM Card для своих инженерных расчетов.
1953 г.
IBM представляет компьютер среднего размера 650 Magnetic Drum Calculator. Модель 650 используется в конструкции ракеты Jupiter C.
IBM поставляет один из своих первых компьютеров 701 компании Convair, разработчику ракеты Atlas (которая позже используется в программе Mercury).
1954 г.
IBM представляет компьютер 704, который применяется для отслеживания спутников и разработки ракет.
1955 г.
Вычислительная лаборатория армии США в подразделении управляемых ракет, которая позже становится частью Центра космических полетов им. Маршалла Национального управления по аэронавтике и исследованию космического пространства (НАСА), использует два компьютера IBM 650 для разработки Jupiter C (Composite Reentry Test Vehicle), который состоит из модифицированной ракеты Redstone и верхних ступеней. IBM 650 — это мощный цифровой компьютер общего назначения, способный выполнять 78 000 операций сложения в минуту.
1956 г.
ВМС США объявляют, что компьютер IBM 704 будет получать данные телеметрии с беспилотного спутника Vanguard для расчета и прогнозирования орбиты 20-дюймовой сферы.
Приоритетная разработка ракеты «Юпитер» ведется с использованием IBM 704, первого крупномасштабного электронного компьютера, используемого армией США в Хантсвилле, штат Алабама. Его система с магнитной лентой способна складывать цифры со скоростью 1 496 000 в минуту. .
1957 г.
Два компьютера IBM 704 используются для отслеживания советского спутника I, первого в мире искусственного спутника.
1958 г.
Компьютер IBM 705 в вычислительном центре IBM Vanguard помогает в запуске и отслеживании Explorer I, первого несоветского спутника Земли. Спутник обнаруживает свидетельства радиационных поясов, вращающихся вокруг Земли. Система обработки данных 705 представляет собой мощный компьютер с магнитной лентой, способный принимать 1 364 000 логических решений в минуту.
Спутник Vanguard I весом 3,2 фунта достиг рекордной высоты.
Компьютер IBM 704 помогает проектировать и отслеживать космические аппараты.
IBM разрабатывает компьютер наведения ASC-15 для ракетного компьютера Titan II ВВС США.
Одним из величайших достижений человечества является исследование космоса над нами, использование наших технологий на пределе возможностей для совершения вдохновляющих научных подвигов. Вот обзор аппаратного и программного обеспечения, которое соответствовало требованиям миссии, а также особые соображения, связанные с созданием и обслуживанием критически важных операционных систем, которые будут работать в условиях невесомости с высоким уровнем радиации.
Dragon 2 и Starlink компании SpaceX
В мае многоразовая ракета SpaceX Falcon 9 запустила небольшую грузовую космическую капсулу Dragon, на этот раз доставив двух астронавтов НАСА на Международную космическую станцию, где они пробыли два месяца, прежде чем благополучно вернуться на Землю. В июне ZDNet пошутил, что стартующая ракета «работает на жидком кислороде, ракетном керосине и Linux».
«Подобно суперкомпьютерам, устройствам Интернета вещей и многим критически важным устройствам, Falcon 9 работает с Linux».
Но это не обязательно стандартный дистрибутив. Вместо этого бортовая операционная система ракеты использует «упрощенный Linux, работающий на трех обычных двухъядерных процессорах x86», которые управляют двигателями ракеты, а также ее решетчатыми стабилизаторами, направляющими траекторию полета. На каждом процессоре работает отдельная версия ПО для полетов, написанная на C/C++, и «если есть какие-либо разногласия, решение отбрасывается и процесс перезапускается».
В июне разработчики программного обеспечения капсулы Dragon ответили на вопросы на Reddit, объяснив, что «мы не используем сторонние дистрибутивы, а поддерживаем собственную копию ядра и связанных инструментов». Хотя они называют это «в основном немодифицированным», им, очевидно, пришлось добавить собственные драйверы для оборудования SpaceX. Джефф Декстер, отвечающий за полетное программное обеспечение и кибербезопасность Dragon, добавил, что как для ракет Falcon 9, так и для капсулы Dragon: «Мы используем C++ для всех систем управления транспортными средствами, Python для инструментов, тестирования и автоматизации и Javascript/HTML/CSS для наши дисплеи».
А Мэтт Монсон, который перешел из проекта Dragon в спутниковый интернет-сервис SpaceX Starlink, сообщил, что Starlink использует много специализированных интегральных схем (ASIC) и что у них также есть большой опыт работы с Linux. «Для некоторого уровня охвата Starlink каждый запуск 60 спутников содержит более 4000 компьютеров с Linux. Сейчас в созвездии находится более 30 000 узлов Linux (и более 6 000 микроконтроллеров).
"А поскольку мы делим большую часть инфраструктуры нашей платформы Linux с Falcon и Dragon, они получают преимущество от наших более чем 180 лет испытаний на орбите".
На космической станции
ZDNet язвительно замечает, что использование Linux для капсулы Dragon доказывает, что «пингвины могут летать, имея за собой достаточную ракетную мощность». ZDNet также сообщил, что интерфейс сенсорного экрана Dragon отображается с помощью Chromium и JavaScript (хотя есть и физические инструменты управления космическим кораблем на случай возникновения проблем с интерфейсом сенсорного экрана).
Но они также отмечают, что сама Международная космическая станция работает на процессорах Intel 80386SX с тактовой частотой 20 МГц конца 1980-х годов, хотя астронавты используют ноутбуки в качестве удаленных терминалов «для обычной повседневной работы». В 2017 году HPE сообщила, что астронавты станции заменили ThinkPad T61p под управлением Debian, Scientific Linux и Windows 7 на аналогичную комбинацию HP ZBook 15, некоторые из которых теперь обновлены до Windows 10. TechRepublic сообщает, что у НАСА на 20% больше ноутбуков, чем им нужно в космосе. станции — лишние служат запасными. Или, как выразился ZDNet: «Это обычные ноутбуки, которые должны выйти из строя. Действительно, на МКС более сотни ноутбуков, и большинство из них уже не работают».
«Технологии, которые конкурируют на поверхности, также являются лишь частью плавильного котла различных систем, используемых на борту», — заметил TechRepublic. В статье 2016 года сайт отмечает, что НАСА использует системы Linux для «авионики, критически важных систем, которые удерживают станцию на орбите и позволяют воздуху дышать», в то время как машины Windows обеспечивают «общую поддержку, выполняя такие роли, как размещение руководств и графиков для процедуры, запуск офисного программного обеспечения и обеспечение этой важной связи с домом, поддержка связи по электронной почте, а в последнее время и по видеочату».
Машины Windows также используются для воспроизведения музыки и фильмов, и Стивен Хантер, менеджер по компьютерным ресурсам на МКС, сказал TechRepublic, что астронавты лучше знакомы с операционной системой.
В статье поясняется, что на космической станции работают десятки ноутбуков, которые используются для самых разных целей: от просмотра руководств до проверки зрения. В нем перечислено оборудование, которое использовалось членами экипажа НАСА на Международной космической станции, с IBM ThinkPad, работающими под управлением Windows 95 и «раннего Linux». Большинство системных обновлений выполняются «удаленно» — с планеты Земля — в конечном итоге уступая место Lenovo ThinkPad.
Были также телефоны iPhone и Android, причем некоторые телефоны использовались для удаленного управления простыми экспериментальными дронами. Были также iPad — британский астронавт Тим Пик использовал приложение для iPad для удаленного участия в Лондонском марафоне — а также планшеты Microsoft Surface Pro 3, один из которых использовался в качестве секвенатора био-ДНК. Астронавты на космической станции даже тестировали Microsoft HoloLens.
В наличии и вне планеты
ZDNet отмечает, что из-за более высоких уровней радиации в космосе (а также космических лучей) для разработки и тестирования чипов требуются годы. Они проходят строгий процесс, известный как радиационная закалка, который включает в себя либо добавление избыточных цепей, либо даже разработку полупроводниковых пластин со специальными изолирующими подложками. В 2017 году НАСА и HPE объединились для совместного годичного эксперимента, в ходе которого готовое суперкомпьютерное оборудование было протестировано на космической станции, чтобы определить, будет ли достаточно просто снизить его скорость во время радиационных опасностей, таких как солнечные вспышки. /p>
«Если мы подозреваем, что параметры какого-либо компонента не соответствуют параметрам, мы переходим в безопасный режим, — объяснил Марк Фернандес, специалист по технологиям высокопроизводительных вычислений HPE в Америке, в своем блоге HPE. «Мы остаемся в этой безопасной конфигурации бездействия, чтобы пережить этот период времени.После того, как это событие прошло, мы выполняем проверку работоспособности, чтобы убедиться, что все работает правильно, прежде чем возобновить работу».
VentureBeat сообщила, что в качестве используемой системы использовался сервер Apollo pc40 с четырьмя графическими процессорами Nvidia Tesla, который прошел более 146 тестов безопасности и сертификации. HPE с гордостью назвала это своими услугами «над облаком». Его операционная система? Red Hat Enterprise Linux 6.8.
И результаты? Согласно сообщению в блоге Фернандеса, в течение следующего года он работал без проблем. "Сказать, что мы в восторге, было бы преуменьшением".
Система получила название Spaceborne. «Учитывая, что Spaceborne исключительно хорошо работает в течение почти года в условиях, сильно отличающихся от земных, мы задаемся вопросом, что мы можем принести в космос дальше? Частное облако на МКС, чтобы вывести интеллект на край космоса?» Фернандес написал.
И остальное
А в этом месяце на Ars Technica писатель из Варшавы, посвященный науке и технологиям, Яцек Кривко более подробно рассмотрел другие операционные системы, использовавшиеся в течение многих лет во внеземных миссиях. Его заголовок? «Определенно не Windows 95: какие операционные системы поддерживают работу в космосе?»
Крывко отмечает, что программное обеспечение для миссий НАСА в 1960-х годах разрабатывалось индивидуально для каждой миссии. Но все изменилось с миссией «Клементина» 1994 года, которая наблюдала за Луной и околоземным астероидом, тестируя датчики и компоненты космического корабля. Во многих последующих миссиях НАСА начало использовать проприетарную операционную систему WindRiver VxWorks, которая, по словам Кривко, имеет микроядро, управляющее всеми взаимодействиями оборудования и приложений, тщательно отслеживая статус каждой задачи и доступ к ресурсам.
Мария Хернек, руководитель отдела полетных программных систем в ЕКА, сообщила Ars, что они также использовали операционную систему VxWorks для космического корабля в своей спутниковой программе Copernicus (впервые запущенной в 2014 г.), но затем перешли на открытый исходный код и весьма настраиваемая операционная система Real-Time Executive для многопроцессорных систем (первоначально разработанная военными США для управления ракетами). НАСА также использовало эту операционную систему, указывает Кривко, добавляя, что «две основные операционные системы полета даже работали параллельно на одном космическом корабле, управляющем разными инструментами».
Эти операционные системы могут быть критически важными. Кривко отметил, что в феврале этого года Европейское космическое агентство запустило спутник на семилетнюю орбиту вокруг Солнца. Он будет двигаться по орбите даже ближе к Солнцу, чем планета Меркурий, где температура поднимается до 450 ° C, или 842 ° F, что требует быстрых решений со стороны программного обеспечения, контролирующего положение его теплозащитного экрана. «Иначе Solar Orbiter поджарится».
Кривко также рассматривает операционную систему SpaceChain – проект, в результате которого было создано несколько узлов биткойнов в космосе, а также инвестиции Европейского космического агентства. Разработчик ядра Биткойн Джефф Гарзик говорит ему, что оно основано на ядре Sylix с открытым исходным кодом, которое в пять раз меньше, чем ядро Linux, и которое Китай использует для космических и военных приложений.
Существует множество разнообразных космических аппаратов и самых разных технологий. Один технический сайт даже пошутил, что исторический космический зонд НАСА «Новые горизонты», который пролетел мимо Плутона на пути к краю нашей Солнечной системы, «питан от PlayStation», поскольку он управляется радиационно-стойким процессором Mongoose-V на базе MIPS. «получен непосредственно от MIPS R3000 [32-разрядный процессор для рабочих станций и консолей], на котором работала оригинальная Sony PlayStation».
Его операционная система — Mentor Graphics Nucleus PLUS, и она работает по сей день — на расстоянии более четырех миллиардов миль от земли.
Веб-сокращение
- IBM открывает исходные коды двух проектов кода, связанных с космосом.
- Уникальный хакатон Z Hacks отмечает лучшие проекты в коде или графике.
- Объявлены победители конкурса на лучшую игру на JavaScript размером менее 13 КБ.
- IBM объявляет финалистов конкурса Call for Code, посвященного изменению климата и решению проблемы COVID-19.
- Новое видео рассказывает о «заброшенном месте рождения 6502 и Commodore 64».
The New Stack является дочерней компанией Insight Partners, которая является инвестором следующих компаний, упомянутых в этой статье: Shelf, Real.
Несмотря на то, что все говорят о мощности современных устройств, они далеко не так эффективны, как знаменитая ранняя система НАСА.
Маргарет Гамильтон руководила командой из 350 человек, разработавших программное обеспечение для миссии "Аполлон-11". ( АП )
Примечание редактора. Эта статья является частью серии статей, посвященных миссии "Аполлон-11" 50 лет спустя.
Без компьютеров на борту космического корабля "Аполлон" не было бы ни высадки на Луну, ни триумфального первого шага, ни высшей точки для космических полетов человека. Пилот никогда не смог бы добраться до Луны, как если бы космический корабль был просто более мощным самолетом. Расчеты, необходимые для корректировки в полете, и сложность управления тягой превышали человеческие возможности.
Компьютер управления Apollo в обоих вариантах — один на борту основного космического корабля, а другой — на лунном модуле — был триумфом инженерной мысли. Компьютеры были размером с комнату и заполнены электронными лампами, и если компьютер «Аполлон» весом 70 фунтов еще не был совсем миниатюрным, он положил начало «переходу между людьми, хвастающимися тем, насколько велики их компьютеры… и хвастающимися тем, насколько малы их компьютеры». компьютеры», — пошутил однажды на лекции Дэвид Минделл, историк аэрокосмической отрасли Массачусетского технологического института.
Тенденции, предсказанные этим компьютером, развивались в геометрической прогрессии на протяжении десятилетий: от больших к малым, от электронных ламп к кремнию, от аппаратного к программному обеспечению. Теперь, если вы сравните вычислительную мощность, которую НАСА использовало с любым обычным устройством, от часов до поздравительной открытки и микроволновой печи, это вызывает технологическое головокружение. Митио Каку, физик и популярный писатель, сказал об этом так: "Сегодня ваш мобильный телефон обладает большей вычислительной мощностью, чем весь НАСА в 1969 году, когда оно отправило двух астронавтов на Луну".
Но эти пустые слова затемняют реальную мощь компьютера Apollo. Конечно, любое современное устройство обладает гораздо большими вычислительными возможностями, чем ранняя машина, но компьютер «Аполлон» был удивительно способен, надежен и соответствовал поставленной перед ним задаче. Вы не можете направить космический корабль на Луну с помощью умного дверного звонка.
Чтобы понять, насколько важной была система «Аполлон» и почему ее крошечная вычислительная мощность не имеет значения, вам достаточно послушать опытного программиста и историка НАСА-добровольца Фрэнка О'Брайена, который всю свою жизнь с любовью описывал детали. функции компьютера управления Apollo. Отец О’Брайена был пилотом, поэтому Фрэнк стал военным парнем. Он интересовался компьютерами с раннего возраста, и когда один из старых друзей его отца поднялся по служебной лестнице в НАСА, он завладел техническими руководствами по работе с компьютером.
"В 13 лет я получил на Рождество коробку шириной около двух футов и весом в миллион фунтов – рассказал мне О'Брайен. «Я открываю его, и там есть все технические руководства по Аполлону. У вас было множество детей, которые смотрели Playboy; Я читал о навигационных компьютерах».
С тех пор он провел бессчетное количество часов, изучая, как работают эти машины. Еще будучи подростком, он мог летать на симуляторе NASA «Аполлон». Повзрослев, получив степень в области информатики и проработав долгое время корпоративным программистом, он написал книгу Компьютер управления Apollo, оду машине.
Компьютер управления Apollo в командном модуле выполнял две основные функции. Во-первых, он рассчитал необходимый курс к Луне, откалиброванный по астрономическим измерениям, которые астронавты сделали в полете, с помощью секстанта, мало чем отличающегося от того, что используется океанскими навигаторами. Они выстраивали Луну, Землю или Солнце в одном прицеле и фиксировали местоположение звезды в другом. Компьютер точно измерит эти углы и пересчитает свое положение. Во-вторых, он контролировал многие физические компоненты космического корабля. AGC мог связываться со 150 различными устройствами внутри космического корабля — чрезвычайно сложная задача. «У него десятки двигателей, всевозможные интерфейсы, платформа наведения и секстант», — сказал О’Брайен. «Вы начинаете складывать все это и вперед, Святые канноли. Это действительно способно».
Концептуально, Лаборатория приборостроения Массачусетского технологического института, разработавшая систему, построила ее на основе работы, которую они проделали для системы управляемых ракет Polaris, созданной для запуска ядерного оружия с американских подводных лодок. Аппаратное обеспечение компьютера «Аполлон», как отметил Минделл, было достаточно хорошо изучено «в мире военной авионики».
Сначала его создание доминировало в проекте — лаборатория сильно недооценила сложность задачи разработки программного обеспечения. Спустя годы, в середине 1970-х, программисты все еще использовали перфокарты для программирования.Но необходимость иметь астронавтов Аполлона и инженеров НАСА «в курсе», принимая решения, требовала другого типа программного обеспечения. Должен быть интерфейс. Несколько операций должны были выполняться одновременно.
Первоначальный акцент на аппаратном обеспечении закрепился за тем, что О'Брайен назвал "примитивной архитектурой", в то время как Маргарет Гамильтон, женщина из программы "Аполлон", в которой преобладали мужчины, получила возможность возглавить разработку программного обеспечения. Когда стало ясно, что программное обеспечение действительно предназначено для выполнения миссии, команда Гамильтона расширилась до 350 человек на пике своего развития. Созданная ими система была чрезвычайно продвинутой.
Чтобы максимально использовать встроенную архитектуру, Гамильтон и ее коллеги придумали то, что они назвали «Интерпретатор» — теперь мы называем это схемой виртуализации. Это позволяло им запускать от пяти до семи виртуальных машин одновременно на двух килобайтах памяти. Это было ужасно медленно, но «теперь у вас есть все возможности, о которых вы когда-либо мечтали, в программном обеспечении», — сказал О'Брайен.
Астронавты общались с компьютером через DSKY, сокращение от «дисплей и клавиатура». Они вводили цифры и получали ответы. Описать систему пользовательского интерфейса непросто, но она опиралась на ряд программных кодов, а также коды «глагол» и «существительное». Глаголы были тем, что мог сделать компьютер («78 ОБНОВЛЕНИЕ ПРЕДСТАРТНОГО АЗИМУТА»). Существительные были числовыми величинами или измерениями («33 ВРЕМЯ ЗАЖИГАНИЯ»). Это было далеко от простоты «укажи и щелкни».
Большая часть системной памяти была буквально наплетена на веревочную память, но некоторые из них могли быть записаны как астронавтами, так и удаленно из Центра управления полетами. Возможно, самым блестящим достижением в разработке программного обеспечения было программное обеспечение, разработанное Дж. Халкомбом Лэнингом, в котором приоритет отдавался вычислительным задачам системы.
Это помогло Аполлону-11 спасти миссию. Когда лунный модуль спускался, шум от одного из его радаров начал подавать в систему неверные данные. Компьютер наведения понял, что возникла проблема, но смог оставаться работоспособным на протяжении всего спуска, сбрасывая неверную информацию и продолжая более важные операции, спасая миссию.
Популярное повествование об этом моменте — в то время и до сих пор — гласит, что у компьютера были проблемы и что Нил Армстронг, захватив «ручное» управление, пилотировал космический корабль на поверхность Луны. Это сделали люди! Компьютеры нам не помеха!
Но лунный посадочный модуль был электродистанционной системой. Любая команда, которую давал Армстронг, должна была проходить через компьютер. Так что, наверное, правильнее будет сказать, что когда Армстронг приземлился на Луне, он сказал компьютеру, где приземлиться. Не было полезного ручного управления; настоящим триумфом стала гибкость взаимодействия человека с компьютером.
Такие историки, как Минделл, смоделировавший спуск посекундно, не придают большого значения необходимости действий Армстронга. Ему по-прежнему нужен был компьютер, чтобы управлять кораблем. «Если бы он был настроен на автоматическую посадку, [лунный модуль] все равно упал бы, с меньшей шумихой, хотя, возможно, среди валунов», — заключил Минделл. История о человеческой доблести была почти полной противоположностью реальности.
Учитывая все это, возможно, неудивительно, что О'Брайен обижается на мысль о том, что микроволновую печь или калькулятор можно считать «такими же мощными», как компьютер Apollo.
"Как вы определяете силу?" — спрашивает О’Брайен. "Здорово сказать: "Эта машина такая мощная". Что вы имеете в виду?"
Для него важно не простое количество транзисторов, а машина, соответствующая задаче. Возможности, а не мощность. «Мы должны были добраться до Луны, спуститься и вернуться, автономно. Они достигают своих целей точности после четверти миллиона миль, поражая цель в пределах от 500 до 600 футов и одной десятой фута в секунду», — сказал О’Брайен. «А вы говорите: «Мои часы мощнее». Нет, это не так».
Урок, возможно, прост: если ваш телефон намного мощнее компьютеров, отправивших человечество на Луну, то почему вы целыми днями смотрите в Instagram? Вычисление — это средство, а не цель.
Маргарет Гамильтон с исходным кодом программы Apollo Guidance Program (Источник: Wikimedia Commons)
Увлекательность исследования космоса заключается не только в необъятности предлагаемых открытий и знаний, но и в разнообразии дисциплин и областей изучения, которые для этого требуются. С раннего возраста, когда мы думаем о космосе, на ум часто приходят изображения спутников, космических кораблей и/или ракет.Те из нас, кто даже мечтает построить некоторые из этих космических кораблей в ближайшем будущем, не могут не отправиться в трудный, но полезный мир аэрокосмической техники. Цитируя известную фразу из речи Кеннеди: «Мы решили отправиться на Луну в этом десятилетии и заняться другими делами не потому, что это легко, а потому, что это сложно». Но аэрокосмический мир — это результат сотрудничества многих одинаково сложных секторов, включая разработку программного обеспечения.
От компьютера к звездам
Одна из первых историй успеха программного обеспечения в космических полетах связана со знаменитой программой "Аполлон" и высадкой на Луну. В то время на публике почти не говорили о программной инженерии, и даже язык программирования C был только недавно родившимся проектом в лабораториях AT&T. На самом деле, за успехом первой высадки на Луну стоят два компонента, которые оказались решающими для предотвращения отказа от миссии в последнюю минуту: управляющий компьютер «Аполлон» и программное обеспечение для управления процессами, разработанное ученым-компьютерщиком Маргарет Гамильтон. Из-за ошибки конфигурации во время посадки AGC получил больше данных для обработки, чем должен был получить в это время; благодаря программному обеспечению бортовой компьютер смог распознать аномальную ситуацию и прервать лишние процессы, что позволило посадочному модулю продолжить выполнение миссии.
Важность неудач
Марсианский климатический орбитальный аппарат (Источник: NASA/JPL-Caltech)
В истории, которая связывает мир программного обеспечения с миром космоса, есть не только истории успеха, но и рассказы о неудачах, которые иногда приводили к потере всего космического корабля или завершению миссии. Два важных события – это потеря орбитального аппарата Mars Climate Orbiter в 1999 году и взрыв ракеты-носителя Ariane V во время запуска в 1996 году.
Марсианский климатический орбитальный аппарат был одним из двух зондов, которые были частью программы Mars Surveyor (вместе с марсианским полярным посадочным модулем), и их миссия была направлена на изучение метеорологии, климата, количества воды и углекислого газа на Земле. планета Марс. Космический корабль был запущен вектором Delta II 7425 11 декабря 1998 года с мыса Канаверал во Флориде и достиг Марса в сентябре 1999 года. После первоначального маневра, который позволил бы вывести его на орбиту, космический корабль должен был восстановить радиосвязь. с Землей несколько минут спустя, но этого не произошло.
Последовавшее расследование показало, что зонд врезался в поверхность Марса во время входа в атмосферу из-за неправильного коэффициента преобразования для значения изменения скорости. В бортовом и наземном программном обеспечении использовались две разные системы измерения (британская имперская система и метрическая система).
Катастрофа Ариана V 4 июня 1996 года (Источник: ESA)
Возможно, менее трагичной, но не менее катастрофической была потеря ракеты Ariane V из-за дефекта программного обеспечения, вызвавшего ошибку в вычислении положения и скорости ракеты-носителя примерно через 30 секунд после запуска. Неправильное значение положения привело к тому, что бортовой компьютер отправил двигателям команду изменить направление пусковой установки так быстро, что конструкция подверглась сильному напряжению. Программным модулем, обвиняемым в этом деле, была IRS (инерциальная система отсчета), которая не была разработана специально для Ariane V, а была взята из Ariane IV. Значение горизонтального смещения, используемое для представления направления наведения ракеты, никогда не превысит значения, которое не может быть представлено в 16-битной переменной в Ariane IV. Это было не так для Ariane V, где требовалась 64-битная переменная, и представление последней в 16-битной привело бы к неправильной интерпретации ошибки бортовым компьютером и, следовательно, к отправке неправильных команд двигателям. для коррекции траектории. Неправильным выбором в этом случае было повторное использование модуля Ariane IV, который, следовательно, не мог обрабатывать характеристики и физические переменные маршрута Ariane V, гораздо более мощного, чем его предшественник. Попытка сэкономить на этапе тестирования привела к потере миллионов долларов.
Истории миссии "Аполлон", марсианского климатического орбитального аппарата и Ariane V демонстрируют, что программное обеспечение является решающим фактором в успехе космической миссии, но также и то, насколько сложно правильно работать с этой дисциплиной. На самом деле разработка программного обеспечения — это мир, в котором подготовка и сотрудничество играют фундаментальную роль.Однако именно потому, что в компьютерном мире не существует совершенства, а фраза «на ошибках учишься» никогда не перестанет быть правдой, ошибки и дефекты никогда не перестанут существовать. Возьмем более свежий пример. Первый запуск Falcon Heavy 6 февраля 2018 года был успешным только благодаря многочисленным неудачным испытаниям, проведенным SpaceX в предыдущие годы.
Приземление ракет-носителей Falcon Heavy (Источник: SpaceX)
Будущее с открытым исходным кодом
Значок Github за вклад в разработку программного обеспечения Ingenuity (Источник: github.blog)
Уже несколько лет вселенная программного обеспечения с открытым исходным кодом также строится на проектах и миссиях, связанных с космосом. Неоднократно проекты с открытым исходным кодом, рожденные страстью и усилиями энтузиастов космоса, выбирались в качестве основы для создания ядра системы наведения или полета для вездехода или наноспутника. И это случай одной из самых интересных и зрелищных посадок планетарной миссии, осуществленной в феврале прошлого года — миссии НАСА «Марс 2020» с марсоходом Perseverance и его спутником Ingenuity (первым самолетом, совершившим управляемый полет на другую планету). .
Ingenuity использует программную среду F Prime, разработанную несколько лет назад в JPL, а затем сделанную с открытым исходным кодом, что позволяет любому предлагать и внедрять улучшения. 14 апреля 2021 года хостинговая платформа для проектов с открытым исходным кодом GitHub решила отметить специальным значком, посвященным миссии, всех пользователей, внесших свой вклад в создание и улучшение библиотек и проектов, используемых для бортового программного обеспечения Ingenuity. .
Выводы
Хотя описанные выше события тесно связаны исключительно с управляющим программным обеспечением, разработка программного обеспечения широко распространена в аэрокосмической отрасли благодаря своему разнообразию и возможностям применения в различных областях — от робототехники и искусственного интеллекта до все более широкого использования в контексте обработки спутниковых изображений. Трудно думать о будущем освоения космоса без информатики, поэтому каждый из нас, кто увлечен этой областью, может внести свой вклад в достижение звезд!
Ссылки
Андреа Ди Мауро учится на факультете компьютерных наук в Политехническом университете Турина/PoliTO по специальности "Разработка программного обеспечения" и является научным сотрудником программы BMSIS для молодых ученых.
Программа для молодых ученых
Программа BMSIS Young Scientist Program (YSP) предоставляет учащимся возможность участвовать в фундаментальных исследованиях, узнавать об эффективном научном общении и развивать критическое этическое мышление. Подробнее о «Программе молодых ученых»…
Читайте также: