Инженерный блог

АО «Равенство»

В поисках льда. Как два программиста бороздили бескрайние просторы Финского залива

Какова вероятность того, что два программиста в один прекрасный день могут стать частью команды ледокола и провести две недели в окружении моряков, льдов и тюленей? Оказывается, очень высока, если ты программист, работающий над радиолокационным индикатором ледовой обстановки. В течение последних нескольких лет в АО «Равенство» велась разработка нового изделия, которое обеспечивает обнаружение ледовых объектов, измерение их линейных размеров, координат и элементов движения, оценку параметров сплоченности и торосистости ледовых полей. И одно дело тестировать подобный продукт, сидя в офисе, попивая чай с печеньками, и другое – рано или поздно приходит пора оценить возможности индикатора в суровых условиях реальной жизни.

В этой статье мы расскажем о том, как два программиста и одна «Льдинка» две недели на ледоколе «Мурманск» бороздили просторы ледяных морей.

Глава 1. На старт.

Заводские испытания изделия под кодовым названием «Льдинка» подходили к концу. Изделие уже с успехом противостояло всевозможным раздражающим факторам среды: жара, холод, влажность, вибрация.

Одновременно с этим неизбежно напрашивалась необходимость объектовых испытаний для тестирования аппаратной и программной части продукта в «боевых» условиях. Эта необходимость стала фундаментом для заключения соглашения с ФГУП «Росморпорт», которое предложило установить «Льдинку» на борт ледокола «Мурманск».

Первая возможность испытаний появилась за несколько дней до ухода ледокола в рейс. Однако в этих условиях выяснилось, что монтаж приставки практически невозможен. Операция «Льдинка» могла провалиться, не успев начаться.

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

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

И вот День Х настал. Вещи были собраны, коллеги-инженеры сконцентрированы. В воздухе витало лёгкое напряжение. Ледокол «Мурманск» вновь прибыл в Санкт-Петербург.

Глава 2. Внимание.

В пасмурный дождливый понедельник, типичный мартовский день в Санкт-Петербурге, к причалу на набережной Лейтенанта Шмидта подъехал микроавтобус. Из автомобиля на улицу, поёживаясь от промозглой погоды, с серьёзным выражением лиц и с не менее серьёзными намерениями вышли шестеро мужчин. Двое старших по званию отправились на разведку на борт пришвартованного ледокола, пока остальные выгружали оборудование из микроавтобуса.

Не дожидаясь возвращения начальства, оставшиеся члены команды с сумками наперевес отправились к трапу корабля. На борту нас уже поджидал, полный надежд и ожиданий, второй помощник капитана. Оставив оборудование под присмотром экипажа ледокола, мы приступили к самому тяжёлому этапу погрузки – транспортировке «Льдинки».

В ходе установки (как и всегда бывает в жизни) выяснилось несколько неприятных сюрпризов: схема подключения не совсем соответствовала реальности, а программное обеспечение оказалось не готово к заданному потоку навигационных данных. И если первый момент легко и непринуждённо решался перепайкой контактов (благо был предусмотрительно заготовлен паяльник), то второй вынудил нас буквально на коленках «допиливать» сервис приёма информации с датчиков корабля.

Глава 3. Марш.

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

Следует отметить, что нам посчастливилось оказаться на борту ледокола новой серии. Этот корабль внутри показался скорей отелем на воде, чем узкоспециализированным судном (возможно, у нас отсутствовало понимание, как это должно выглядеть). Здесь было всё: и бильярдный стол, и тренажёрный зал, и сауна с бассейном. Каюта же представляла собой удобное купе со спальными местами, столом, шкафами и выделенным санузлом.

В общем, предстояло путешествие в условиях повышенного комфорта.

Перед обедом прошёл общий сбор экипажа корабля. Капитан ледокола обозначил цели предстоящего рейса и представил пассажиров команде. Теперь-то уж точно можно было спокойно начинать процесс испытаний.

Глава 4. Отдать швартовы!

Перейдем к главному. Радиолокационный индикатор ледовой обстановки «Льдинка» - новинка на рынке подобных продуктов – и у нас не было ясного понимания, как изделие поведёт себя в условиях объектовых испытаний.

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

Ещё на заре разработки «Льдинки» для алгоритма выделения контуров льда нам предоставили несколько старых ледовых записей. В тот момент достоверно интерпретировать картинку по данным материалам казалось невозможным. Отсутствовала убеждённость в том, что наш алгоритм будет работать не хуже алгоритма зарубежных аналогов.

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

Изображение ледовой обстановки
Вид с мостика

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

Режим «Сплоченность»

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

Режим «Торосистость»

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

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

Режим «3D вид»

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

Авторы статьи: Андрей Ловлин и Александр Алексеев