Экстремальное программирование по-марсиански




Программистам NASA ежедневно приходится выдавать по тысяче строк программного кода для марсохода, исследующего поверхность Красной планеты

10:28 16.06.2008   |   1401 | 

Рубрика Предприятие



Поддержание ежедневного бесперебойного функционирования роботизированной руки, а также других элементов Mars Lander требует от программистов огромного объема рутинной работы (иллюстрация: NASA/JPL) Взятие образцов грунта и поиск элементов, которые могли бы свидетельствовать в пользу возможности жизни на Марсе, -- весьма ответственное мероприятие, и пока Mars Lander вполне успешно с этим справляется.

Непростая задача стоит и перед 30 инженерами и программистами NASA, которым ежедневно приходится выдавать от одной до полутора тысяч строк уже протестированного программного кода, после чего тот преодолевает расстояние почти в 270 млн километров. Ведущий инженер-программист лаборатории реактивного движения NASA Мэтью Робинсон принимает самое непосредственное участие в написании последовательностей кода, с помощью которых осуществляется управление различными компонентами космического аппарата Phoenix, включая роботизированную руку, предназначенную для взятия образцов, камеры съемки и аналитическое оборудование. Достаточно одной ошибки, и Lander будет простаивать, бесцельно тратя драгоценное время, вместо того чтобы использовать его для изучения планеты, возможно пригодной для жизни.

До сих пор весь программный код, отправленный на Марс, успешно работал.

"Нам постоянно приходится решать довольно сложные задачи, -- отметил Робинсон в интервью Computerworld. -- Сначала определяется стратегия действий на два-три дня, а затем этот план ежедневно уточняется. Окончательный его вариант утверждается накануне. В результате программистам поручается написать 20-30 последовательностей, каждая из которых включает в себя около 50 строк кода. Различные инструменты активно взаимодействуют друг с другом, потому необходимо убедиться в том, что последовательности кода не просто работают, а еще и хорошо сочетаются друг с другом. Для создания таких последовательностей нам ежедневно приходится прибегать к методам экстремального программирования (eXtremal Programming, XP)".

Причем разработчикам, привыкшим использовать язык программирования Си для создания программ в среде Linux, подобным экстремальным программированием, судя по всему, придется заниматься на протяжении целых трех месяцев. Аппарату Mars Lander, совершившему запланированный перелет в один конец, в течение трех летних месяцев предстоит собирать и анализировать образцы грунта. Затем температура на планете упадет ниже своих нынешних безопасных колебаний от -112 до 0 гр. С, после чего Lander замерзнет и прекратит функционировать.

Задача зонда заключается в том, чтобы собрать образцы льда и почвы и проанализировать их состав. Для этого на борту аппарата размещены восемь термических печей, четыре инструмента для химического анализа растворенных образцов и микроскоп с блоком формирования цифровых изображений. Как пояснил Робинсон, исследователи не занимаются поисками признаков жизни. Они пытаются лишь найти элементы, которые могли бы способствовать поддержанию жизни на планете.

Важнейшим компонентом обеспечения исследований является роботизированная рука, весившая на Земле от 9 до 14 кг. На конце ее закреплен ковш, позволяющий забирать образцы льда и грунта и доставлять их аналитическим приборам. Ведь если нет образцов грунта, нечего и анализировать.

Поддержание ежедневного бесперебойного функционирования роботизированной руки, а также других элементов Lander требует выполнения огромного объема рутинной работы.

По словам Робинсона, при написании кода, управляющего перемещением руки и забором грунта, использовалась трехмерная цифровая карта подъема. В процессе ее создания разработчикам пришлось подумать о том, какую точность должны обеспечивать подобные карты, насколько просто можно будет осуществить добычу грунта и насколько хорошо им до сих пор удавалось управлять рукой.

"Это действительно был очень волнующий момент, -- признался Робинсон. -- Впервые с момента появления здесь в 70-е годы аппарата Viking ковш коснулся поверхности Марса. Механический зонд лишь сейчас в первый раз появился на полюсе планеты. Нам удалось наконец добраться и прикоснуться к северному полюсу Марса".

Роботизированной руке были направлены необходимые инструкции, и в понедельник она выкопала немного грунта, удерживая его, с тем чтобы камеры, размещенные на борту, смогли сфотографировать образцы. Затем пробы были брошены обратно на поверхность планеты. А во вторник рука вновь начала копать.

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

Так, на прошлой неделе инженеры выслали код, предназначенный для проведения фактического анализа, но спутник, находящийся на орбите Марса и отвечающий за передачу сигналов на Lander, оказался отключен. Выяснилось, что спутник подвергся воздействию радиации и автоматически переключился в безопасный режим функционирования.

"Космос представляет собой довольно агрессивную среду, и спутники время от времени приходится переводить в безопасный режим, -- указал Робинсон. -- В этом нет никаких особых проблем. Спутник просто отменяет все начатые операции и ждет дальнейших команд".

На следующие сутки повторная пересылка кода завершилась успешно. В конце дня Робинсон сообщил, что исследователи ждут получения на Землю информации с отчетом о ходе проведения работ в течение последних суток.

"С точки зрения интероперабельности компонентов нынешняя экспедиция является одной из самых сложных, поскольку различные инструменты активно взаимодействуют друг с другом, -- добавил Робинсон. -- Здесь все должно быть отлажено до мелочей, как у биржевых маклеров, потому что, как и на бирже, сбой одного элемента приведет к отказу всего сложного механизма".

Дополнительные затруднения обусловлены тем, что продолжительность суток на Марсе составляет 24,5 часа. В результате рабочий день инженеров на Земле ежедневно сдвигается на полчаса. И если, скажем, вчера пересылка кода аппарату Lander начиналась в 21 час, то сегодня выполнение операций инициируется уже в 21:30.

"Все наши сотрудники находятся в состоянии постоянного возбуждения, -- заметил Робинсон. -- Ведь к этому моменту мы готовились на протяжении пяти лет. Переход от испытаний к реальным действиям всегда сопровождается сильным волнением. Выразить это словами просто невозможно".


Теги: