Космический спутник LightSail на солнечном парусе завис из-за программной ошибки

О LightSail уже рассказывалось на Geektimes, например geektimes.ru/post/250712

Спутник был успешно запущен неделю назад. Телеметрия успешно принималась два дня, все системы работали нормально, раскрытие паруса планировалось в июне, после 28 дней полета, но затем в пятницу спутник «пропал». Инженеры провели отличные выходные пытаясь разобраться с причинами произошедшего.

Результатом их работы стала статья Software Glitch Pauses LightSail Test Mission с описанием событий приведших сбою и дальнейших шагов по возвращению спутника к нормальной работе.

image


Телеметрия передается на частоте 437.435 MHz, Planetary Society призывало радиолюбителей помочь им принимать телеметрию спутника. Первым радиолюбителем принявший полный пакет телеметрии стал Ken Swaggart (W7KKE) из Lincoln City, штат Орегон, событие произошло через пять часов после запуска. За два дня было получено 140 пакетов данных — состояние спутника было хорошее, питание и температура в норме.

Но ошибка была в программном обеспечении спутника на базе Linux. Каждые 15 секунд спутник отправлял сигнал радиомаяка. Одновременно данные дописывались в файл beacon.csv. Неумолимо приближался момент, когда файл занял всё доступное пространство памяти в 32 мегабайта и полетное ПО упало. Оказывается производитель платы управления уже имел версию ПО с исправленной ошибкой, но спутник не был обновлен до актуальной версии. В пятницу команда управления получила уведомление о ошибке в ПО и готовилась к дистанционному обновлению ПО спутника при следующем прохождении его в зоне видимости станции, но спутник завис раньше. Последняя телеметрия была получена 22 мая в 21:31 по UTC. На изображении положение спутника в момент последнего сеанса связи:
image


На данный момент команда пытается перезагрузить спутник, вследствие чего будет стерт файл beacon.csv и будет возможно в нормальном режиме обновить или исправить ПО. Спутник не имеет Watchdog и перезагрузка осуществляется по команде с Земли. В прошедший вторник команда управления при пролете спутника в зоне видимости станций пыталась перезагрузить спутник. Более 18 раз посылалась команда перезагрузки, но ничего не произошло. Команда надеется на то, что спутник перезагрузится самостоятельно — космические частицы часто вызывают перезагрузку систем спутников типа Cubesat. По мнению специалистов перезагрузка спутника может произойти в течении 3-6 недель. Команда Planetary Society просит радиолюбителей слушать частоту Lightsail и прислать им сообщение на lightsail@planetary.org если сигнал будет обнаружен. Свежие TLE спутника публикуются здесь — sail.planetary.org/tles/live.txt

Команда будет продолжать рассматривать варианты исправления работы ПО, например такой как отправить beacon.csv в null, и, при некоторых прохождениях спутника в зоне видимости, посылать команды перезагрузки т.к. необходимо выдержать время между перезагрузкой системы и появлением телеметрии. Если работа со спутником будет восстановлена, то парус будет открыт как можно скорее.
image


P.S. Пример телеметрии LightSail
полный пакет телеметрии
Packet 440500
Type: Telemetry Beacon
Mission: LS
Software: LS-FSW-v2
Hardware: LightSail Flight Unit A
Posted at: Wed May 20 18:32:41 2015 UTC

Human-readable form:

00: RTC =33315 [s]
01: UserTime =1373 [jiffies]
02: SystemTime =7761 [jiffies]
03: Processes =5966
04: Processes_Running =2
05: Processes_Blocked =0
06: Uplink_RX_Counter =0
07: Atmel_Volt =4.351990 [V]
08: Atmel_Curr =0.051117 [A]
09: DaughtAPwr_Volt =0.007996 [V]
10: DaughtAPwr_Curr =0.000000 [A]
11: DaughtATmp =15.500000 [C]
12: DaughtBPwr_Volt =0.007996 [V]
13: DaughtBPwr_Curr =-0.000900 [A]
14: DaughtBTmp =16.750000 [C]
15: FiveV_PlPwr_Volt =4.915985 [V]
16: FiveV_PlPwr_Curr =0.280914 [A]
17: ThreeV_PlPwr_Volt =3.279999 [V]
18: ThreeV_PlPwr_Curr =0.042725 [A]
19: SP1_Temp =22.500000 [C]
20: SP2_Temp =23.250000 [C]
21: SP3_Temp =24.000000 [C]
22: SP4_Temp =24.250000 [C]
23: SP5_Temp =0.000000 [C]
24: Power0_In =0.000250 [A]
25: Power1_Out =0.000250 [A]
26: Power2_In =0.000250 [A]
27: Power3_Out =0.000250 [A]
28: Power4_In =0.000250 [A]
29: Power5_Out =0.000250 [A]
30: Power6_In =0.000250 [A]
31: Power7_Out =0.000250 [A]
32: Power8 =0.664750 [A]
33: Batt0_Voltage =4.309040 [V]
34: Batt0_Current =79.375003 [mA]
35: Batt1_Voltage =4.313920 [V]
36: Batt1_Current =62.500002 [mA]
37: Batt2_Voltage =4.309040 [V]
38: Batt2_Current =97.656253 [mA]
39: Batt3_Voltage =4.299280 [V]
40: Batt3_Current =109.531254 [mA]
41: Batt4_Voltage =3.747840 [V]
42: Batt4_Current =10.156250 [mA]
43: Batt5_Voltage =4.313920 [V]
44: Batt5_Current =104.218753 [mA]
45: Batt6_Voltage =4.318800 [V]
46: Batt6_Current =106.562503 [mA]
47: Batt7_Voltage =4.313920 [V]
48: Batt7_Current =100.781253 [mA]
49: Gyro_Sens_1 =-7.062500 [deg/s]
50: Gyro_Sens_2 =-0.100000 [deg/s]
51: Gyro_Sens_3 =0.137500 [deg/s]
52: Sun_Sens1_X =150.300003 [deg]
53: Sun_Sens1_Y =131.399994 [deg]
54: Sun_Sens2_X =126.000000 [deg]
55: Sun_Sens2_Y =63.900002 [deg]
56: Sun_Sens3_X =58.500000 [deg]
57: Sun_Sens3_Y =80.099998 [deg]
58: Sun_Sens4_X =80.099998 [deg]
59: Sun_Sens4_Y =150.300003 [deg]
60: Sun_Sens5_X =180.000000 [deg]
61: Sun_Sens5_Y =180.000000 [deg]
62: Mag_Sens1_X =99 [mG]
63: Mag_Sens1_Y =382 [mG]
64: Mag_Sens1_Z =47 [mG]
65: Mag_Sens2_X =190 [mG]
66: Mag_Sens2_Y =149 [mG]
67: Mag_Sens2_Z =189 [mG]
68: Mag_Sens3_X =128 [mG]
69: Mag_Sens3_Y =259 [mG]
70: Mag_Sens3_Z =256 [mG]
71: Mag_Sens4_X =119 [mG]
72: Mag_Sens4_Y =18 [mG]
73: Mag_Sens4_Z =156 [mG]
74: Torque_Curr_X =0 [A]
75: Torque_Curr_Y =0 [A]
76: Torque_Curr_Z =0 [A]
77: Panel_Switch_Status =f
78: Motor_Current_Position =0 [Counts]
79: Camera_0_onOff =0
80: Camera_1_onOff =0
81: Sail_stowedDeployed =0
82: Motor_onOff =0
83: Camera_0_Remaining_Pics=0
84: Camera_1_Remaining_Pics=0
85: Bang_onOff =1
86: Sail_Damping_Executed =0
87: Pib_Met =4.000000 [s]
Поделиться публикацией
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама
Комментарии 27
  • +7
    Космический спутник завис на геостационарной орбите.
    • +31
      Каждые 15 секунд спутник отправлял сигнал радиомаяка. Одновременно данные дописывались в файл beacon.csv. Неумолимо приближался момент, когда файл занял всё доступное пространство памяти в 32 мегабайта и полетное ПО упало.

      Простите, не удержался.

      image
      • 0
        Зачем вообще писать, что-то на память устройства, если оно вряд ли планируется возвращаться на Землю?
        • +4
          Возможно по команде с Земли есть возможность отправить содержимое файла на Землю — там будут все данные, когда спутник был вне зоны приема. Формат csv позволяет предположить что там таблица ВРЕМЯ — ПАРАМЕТРЫ. Что-то вроде напряжения на батареях, зарядные/разрядные токи. Т.к. цель запуска тестирование систем и значит надо знать их состояние не только когда спутник пролетает по 10 минут несколько раз в сутки над приемной станцией.
          • +1
            Причем тут это, чистить логи надо, о чем часто многие забывают.
        • +18
          Watchdog не включили — молодцы.
          • +8
            Пусть пошлют перезагружать того, кто не догадался включить watchdog. Ещё и на обратном билете можно сэкономить.
            • +1
              Десяток спутников выйдут дешевле чем один билет этого красавчика туда…
              • +6
                Но нет того воспитательного эффекта.
              • +4
                Тогда я готов взять вину на себя. При условии обратного билета, конечно.
                • +2
                  В видео про спутник, был момент, когда чувак увидел кнопку «Reset» на макетке спутника. Они там ещё посмеялись, что надо бы кого-нить со спутником послать нажимать эту кнопку.
                  • +1
                    Всё логично, это кнопка для космических частиц, они её нажимают
            • +11
              Интересно, есть хоть какое-нибудь логичное объяснение, почему watchdog отсутствует? Это же просто безответственно! Или они надеются, что космическая радиация будет сама достаточно часто перезагружать спутник?
              • +1
                вочдог разный тоже бывает, да и его реализация, например самая распространенная ошибка сбрасывать его в прерывании по таймеру
                • +1
                  Аппаратный вочдог можно сделать на одном конденсаторе и резисторе. Тут даже контроллера не надо. Я не могу найти причин экономить на этом. Не говоря уже про программные вочдоги, если у них там линукс.
                  • 0
                    а никто не говорил, что они экономили на этом, они могли поставить отдельный контроллер на сброс, но нафакапить с его уже прошивкой
              • –12
                32 мегабайта — бохато.
                • +15
                  А больше (обычно) и не надо. Зато эти 32мБ должны быть класса space, защищенные от радиации и работающие при самых разных температурах.
                • +17
                  Самое грустное, что именно эту ошибку можно было прекрасно отловить еще на земле. Воспроизводимость 100% и довольно быстро, это не те генераторы Боинга
                  • +3
                    Надежда на авось и прочие особенности разработки людьми не несущими ответственность. Что интересно из одной это ошибки видно очень много допущений и ошибок которые совершили разработчики ПО для данного КА.
                    • 0
                      А что за история с генераторами?
                      • +2
                        Я в исходном комментарии вставлял ссылку, но почему-то парсер ее вырезал. И продолжает делать это и сейчас, поэтому текстом:

                        geektimes.ru/post/249870
                  • +4
                    Комментарий про дятла, разрушившего цивилизацию.
                    • 0
                      Я в шоке. Пренебрежение элементарными требованими к «выживаемости» и тестированием. Не простительно для космоса.
                      • +2
                        Ошибки у всех бывают, для этого и существуют тестовые запуски. К тому же легко все делать правильно (ирония), когда у тебя годы опыта и бюджет NASA. В общем, не вижу оснований для злорадства.

                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.