LINUX.ORG.RU
ФорумTalks

У марсианского зонда случилось переполнение

 ,


1

5

Такая новость сегодня вышла про зонд Schiaparelli: https://www.gazeta.ru/science/2016/11/24_a_10365155.shtml

Вскоре после раскрытия парашюта произошел «глюк» - переполнение отсчетов так называемого Инерциального измерительного устройства (Inertial Measurement Unit — IMU), в состав которого входят гироскопы и который следит за параметрами вращения аппарата в пространстве.

Из-за этого переполнения, которое длилось всего одну секунду, в бортовой компьютер была передана неверная информация. Обработав ее, компьютер неверно рассчитал высоту зонда, которая оказалась отрицательной: по сути, он посчитал, что аппарат уже приземлился или был у поверхности.

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

Не является ли это очередным свидетельством того, что профессия программиста дискредитирует саму себя, превращаясь из инженерной специальности в профессию для ПТУ?

PS: Наверняка код написан на каком то языке не очень высокого уровня, например на Си. Было бы лучше, если бы писали на лиспе, например?

★★★★★

Последнее исправление: Puzan (всего исправлений: 2)
Ответ на: комментарий от rezedent12

Ты считаешь это принципиально невозможным?

Принципиально - возможно. Но обычно на марсианских модулях не получается установить два фонаря с растоянием в десяток метров друг от друга.

Pythagoras ★★
()
Ответ на: комментарий от Puzan

Да, есть более общий способ фильтрации показаний датчиков, о котором здесь уже упоминали - фильтр Калмана.

Фильтр Калмана работает только с белым шумом, а здесь говорится, что неверные значения шли довольно долго.

Pythagoras ★★
()
Ответ на: комментарий от Pythagoras

Принципиально - возможно. Но обычно на марсианских модулях не получается установить два фонаря с растоянием в десяток метров друг от друга.

Не фонаря, а лазера. Не в метрах, а в сантиметрах.

rezedent12 ☆☆☆
()
Ответ на: комментарий от Pythagoras

Одна система быстро уходит, но зато хорошо показывает «резкие движения», вторая слишком редко показывает точные абсолютные.

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

http://wiki.ros.org/ethzasl_sensor_fusion

psv1967 ★★★★★
()
Ответ на: комментарий от Pythagoras

Ну ты совсем белым мелом присыпан... Сколько истории сигнала в фильтр поместить так он и работать будет.

Имея такую шикарную модель падения + точное время с часов + точное наведение в район посадки и соорудить такую позорную студенческую поделку... (да еще отдать её пленным румынам проверять)

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

Имея такую шикарную модель падения + точное время с часов + точное наведение в район посадки и соорудить такую позорную студенческую поделку

Ты так говоришь, будто видел эту поделку.

да еще отдать её пленным румынам проверять

Зависть - это плохо.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Ты так говоришь, будто видел эту поделку.

Аппарат способен «совершить посадку» вообще принципиально _не_включая_ двигателей... гениальное решение, до такого наверное не всякий и студент додумается.

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

Одна система быстро уходит, но зато хорошо показывает «резкие движения», вторая слишком редко показывает точные абсолютные.

Если так, то согласен. В том посте, на который я отвечал, я не увидел никакой второй системы, непосредственно измеряющей высоту, хоть и не точно.

Pythagoras ★★
()
Ответ на: комментарий от psv1967

Ну ты совсем белым мелом присыпан... Сколько истории сигнала в фильтр поместить так он и работать будет.

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

Pythagoras ★★
()
Ответ на: комментарий от Pythagoras

только данные с предыдущего шага

Ага, например такие «сколько была высота 1 минуту назад, 30 секунд назад, 15 секунд назад на предыдущем шагу» + соответствующую матрицу

psv1967 ★★★★★
()

А вот если бы этот софт был написан на жаве или пхп... :)

drull ★☆☆☆
()
Ответ на: комментарий от psv1967

Аппарат способен «совершить посадку» вообще принципиально _не_включая_ двигателей... гениальное решение, до такого наверное не всякий и студент додумается.

Пока очевидно только то, что ты додумался - насчет всего остального мира есть сомнения.

tailgunner ★★★★★
()
Ответ на: комментарий от lenin386

Ты просто смешал в кучу коней и людей. САПР с параметрическими модулями для обсчета узлов и деталек с блэкджеком и шлюхамис возможностью дописывать свои расширения типа «автолишпа» — это одно. «Системы автоматизированного проектирования» — т.е. деталей и машин. Не программ.

Обсчет прочности и прочих твердых тел — это другое — CAE — «системы автоматизированного инженерства» и прочего сопромата :)

Системы, в которых забивают декларативно некую модель информационной системы, а они потом генерят кот, это «Средства автоматизации разработки программ» — «САРП» (фигасе, буковки переставились!), если угодно, но никакого отношения к ним автолишп не имеет — это ErWinUmbrello и его старшие братья типа IBM Rational Rose и т.д, отдельно сбоку всякие там «Драконы» с блоксхемами вместо UML.

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Они спорят пра слона с разных сторон: один перепутал теплое с мягким, второй... хочит пруфов (т.е. понимает, что тот попутал, но... тролет :))

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

Нет, ты либо не в теме, либо тролешь тоже :)

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

Автолишп никогде не был CASE средством.

Единственный, кто смешивал Автолисп и CASE - это ты.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Нет, я не смешивал (лехко убедицца если почитать выше) — смешивал ленин с его автокадом и зонтичным пониманием САПР :) А я привел примеры конкретных каце срецтв, которые генерят кот :)

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

Единственный, кто смешивал Автолисп и CASE - это ты.

Нет, я не смешивал (лехко убедицца если почитать выше) — смешивал ленин с его автокадом и зонтичным пониманием САПР :)

Автолисп с CASE смешивал именно ты. Не виляй, всё же записано.

tailgunner ★★★★★
()
Ответ на: комментарий от lenin386

Не. Они не все сапры :) У всех там по классам разбивка и конкретная область применения: CAD/CAM/CAE/CASE/CALS :) Автолишпы — это мелкая лужа в большом болоте :) «Очень разные сапры» — все CADы. А кодогенерация ИСов по описаниям это CASE. Про недоучек — очень самокритинично :)

slackwarrior ★★★★★
()
Ответ на: комментарий от tailgunner

Понтов много, знаний мало.

Там выше было в самокритичность — ты в нее определенно могёшь :)

slackwarrior ★★★★★
()
Ответ на: комментарий от tailgunner

Что опять не так то? Двигатели включались? Нет.

Вывод — императивное гуано (а возможность «сесть не включая двигатели» это голая императивщина) подтвердило, что оно гуано (и уже не по определению, а по факту).

psv1967 ★★★★★
()
Ответ на: комментарий от lenin386

Единственное средство разработки гарантирующее (насколько это возможно) отсутствие ошибок это https://en.wikipedia.org/wiki/Modelica .

И это язык описания системы (причем системы проектируемой в связи с той частью окружающего мира которая касается работы проектируемой системы), а не САПР.

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

Что опять не так то?

То, что ты излагаешь свое мнение с таким апломбом, будто тебя наняли проводить аудит кода управления зондом. При этом есть сомнения, что ты читал статью на сайте ESA, в которой ясно сказано:

«Its output was generally as predicted except for this event, which persisted for about one second – longer than would be expected.»

Запроектная авария.

Вывод — императивное гуано

Конкретно этот вывод высосан из пальца.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 2)
Ответ на: комментарий от rezedent12

Отлично! Теперь, если ты решишь эту задачку, ты обнаружишь, что в ответе у тебя будет расстояние между лазерами, делённое на тангенс этого угла. То есть чем меньше это расстояние, тем меньше тангенс, тем больше погрешность от деления малой величины на малую величину, и тем выше требования к разрешающей способности этого угломера. На высоте 3 км, с растоянием в 2 см между лазерами, разрешающей способности Хаббла хватит на точность примерно ± пол километра.

Pythagoras ★★
()
Ответ на: комментарий от psv1967

Ага, например такие «сколько была высота 1 минуту назад, 30 секунд назад, 15 секунд назад на предыдущем шагу»

Нет, фильтр Калмана не оценивает прошлые состояния.

Pythagoras ★★
()
Ответ на: комментарий от Pythagoras

На высоте 3 км, с растоянием в 2 см между лазерами, разрешающей способности Хаббла хватит на точность примерно ± пол километра.

А если расстояние будет равно размеру зонда?

rezedent12 ☆☆☆
()
Ответ на: комментарий от rezedent12

Размер зонда значения не имеет. Посчитай. Если разнести лазеры, погрешность уменьшится кратно. Так как у нас нет аппаратуры как у Хаббла, разнести придётся порядочно. Моё инженерное чутьё подсказывает, что нужны десятки метров для приемлемой погрешности.

Pythagoras ★★
()
Ответ на: комментарий от Pythagoras

Размер зонда значения не имеет. Посчитай. Если разнести лазеры, погрешность уменьшится кратно. Так как у нас нет аппаратуры как у Хаббла, разнести придётся порядочно. Моё инженерное чутьё подсказывает, что нужны десятки метров для приемлемой погрешности.

Ну задача не точный показатель получить, а «подстраховать» радар. Что если для большой дистанции сделать малый угол, а для последнего километра использовать угол побольше.

rezedent12 ☆☆☆
()
Ответ на: комментарий от Pythagoras

Нет, фильтр Калмана не оценивает прошлые состояния.

Хочется заплакать...

То есть, если датчик высоты «запаздывает» на 15 секунд с показаниями, то его нельзя подключать к фильтру Калмана? :)

psv1967 ★★★★★
()

А вот и противоположный пример, где программист(ка) из старой гвардии сделала отказоустойчивое ПО: https://m.gazeta.ru/science/2016/11/26_a_10376453.shtml

Хотя, этот пример больше подтверждает, чем опровергает мой тезис о деградации профессии. Как думаете?

PS: Не знаю, на сколько ученые покусали журналистов, в первоисточника лень копаться.

Puzan ★★★★★
() автор топика
Ответ на: комментарий от rezedent12

Ну задача не точный показатель получить, а «подстраховать» радар.

Если есть радар - это по-любому точнее.

Что если для большой дистанции сделать малый угол, а для последнего километра использовать угол побольше.

Если ты имеешь в виду угол между лучами, то на точность он не влияет.

Pythagoras ★★
()
Ответ на: комментарий от psv1967

Хочется заплакать...

А как насчёт вдоль?

То есть, если датчик высоты «запаздывает» на 15 секунд с показаниями, то его нельзя подключать к фильтру Калмана? :)

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

Pythagoras ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.