Состав команды

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

Торопов Н.В.

Николай Торопов

  • Разработчик среды в симуляторе Gazebo

  • Разработчик машины состояний

Счетчиков Ю.А.

Юрий Счетчиков

  • Системный программист (настройка бортовых вычислителей)

  • Разработчик алгоритмов машинного зрения

Маршалов М.С.

Максим Маршалов

  • Программист нижнего уровня

  • Схемотехник

Скопцов Д.С.

Дмитрий Скопцов

  • Конструктор

  • Технический писатель

all
Рис. 1. Команда и аппарат

Рабочий процесс

Рабочий процесс состоял из двух различных этапов:

  • эскизное планирование: выбор основных способов прохождения заданий, принятие ключевых решений, составление плана работ;

  • работа по недельным циклам с коррекцией планов.

Для организации работы использовались следующие инструменты:

  • openproject - программное обеспечение для управления задачами и для планирования;

  • gitlab - сервер, развёрнутый на нашем оборудовании, обеспечивающий хранение исходных кодов, как программных, так и электронных схем и документации (включая данный документ), обеспечивая автоматическую сборку и развёртывание некоторых материалов.

Эскизное планирование

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

  • возможность применения 3d-камеры;

  • обнаружение синих шаров на синем фоне.

Кроме того было найдено и заказано необходимое оборудование.

В результате проверок был сделан выбор в пользу обычных видеокамер вместо 3d-камеры, а также распределены работы в соответствии с возможностями посещения бассейна.

Недельные циклы, привязанные к доступу в бассейн

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

Задачи по этапам были распределены в соответствии с приоритетами.

otchet
Рис. 2. Общий вид диаграммы Ганта

Как создавалась "Водомерка"

Общая информация

kat
Рис. 3. Вид сбоку
kat2
Рис. 4. Вид сверху
general view
Рис. 5. Для соревнований

"Водомерка" - катамаран для автономного выполнения работ на закрытых, спокойных акваториях.

Аппарат прошёл как лабораторные испытания в опытовом бассейне СПбГМТУ, так и испытания в реальных условиях. Были проведены промерные работы на закрытых акваториях Санкт-Петербурга и Ленинградской области.

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

Технические характеристики катамарана

габариты: 726 × 448 × 283 мм;
масса 10 кг;
автономность: 3 часа;
максимальная скорость: 1 м/с на воде;
мореходность: до 2 баллов;
средства связи: WiFi 2.4 ГГц, кабельное подключение по Ethernet.
karta
Рис. 6. Карта глубин озера, полученная катамараном
proizvodstvo
Рис. 7. Серийные корпуса катамаранов
B72A9021
Рис. 8. Команда школьников запускает катамаран

Корпусная часть

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

Пробоотборник

Двигатели - два бесщёточных мотора постоянного тока F2838 350KV с их стандартными трёхлопастными винтами. Выбор данной модели обусловлен доступностью, экономической целесообразностью, и отсутствием необходимости их герметизировать.

Пробоотборник

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

Пробоотборник

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

Пробоотборник

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

Пробоотборник

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

Пробоотборник

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

Пробоотборник

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

Пробоотборник

Электроника

strscheme
Рис. 9. Струкутрная схема аппарата

"Сердцем" (или же "спинным мозгом") электроники аппарата является коммутационная плата (А6), разработанная специально для катамарана. Она обеспечивает ряд важных функций:

  • стабилизацию и преобразование питания;

  • преобразование интерфейсов (интерфейсы приводятся к USB);

  • обеспечение унификации соединения с компьютером верхнего уровня (от ПК верхнего уровня требуется только USB);

  • обеспечение функционирования систем реального времени (за счёт встроенного микроконтроллера).

Для обеспечения перемещения аппарата применяются два бесколлекторных двигателя, управляемых при помощи драйверов (ESC).

Для навигации аппарат использует магнитный компас Rion DCM250B, а также ориентацию по камерам.

Контроль и управление происходит с помощью микрокомпьютера Nvidia Jetson Nano B01 и отладочной платы с микроконтроллером STM32f103c8t6.

Разработка коммутационной платы катамарана

plata
Рис. 10. Внешний вид платы (рендер)
plata1
Рис. 11. Реальное фото платы
Основные характеристики платы
  • входное напряжение постоянного тока: 10 - 24 В

  • Интерфейсы:

    • ШИМ: 7

    • RS-485: 1

    • UART: 1

    • USB 2.0: 6

    • Входы АЦП: 4

    • Дискретные входы: 2

    • Силовые дискретные выходы: 4

    • Разъём под микроконтроллер: STM32 Blue Pill

Особенности:
  • плата является собственной разработкой, выполненной в среде KiCad;

  • на плате реализован полноценный USB-хаб;

  • на плате предусмотрены разъёмы с фиксацией, обеспечивающие надёжное соединение, в т.ч. USB-кабелей.

Перспективы:
  • переход на отечественный микроконтроллер MIK32 Амур;

  • внедрение дополнительных периферийных блоков (CAN, RS-422, RS-232, 4..20mA).

Программное обеспечение нижнего уровня

Использованный стек технологий: Stm32CubeIde, Stm32CubeProgrammer, PulseView.

Функции:

  • Реализация Slave-роли в протоколе Modbus RTU;

  • Управление периферией: движители, кубомет, шаролов, пробоотборник;

  • Самодиагностика: измерение тока, напряжение, внутренняя температура;

  • Реализация независимой автоматической системы управления пробоотборником;

  • Опрос и калибровка магнитного компаса по интерфейсу RS-485.

Программное обеспечение верхнего уровня

Общие сведения

Стек технологий: ROS2, ROS bag, Gazebo (plankton), SMACH, OpenCV.

В разработке широко использовался фреймворк ROS2, и связанные с ним технологии: запись и проигрывание log-файлов (bag), симулятор Gazebo, пакет машины состояний SMACH.

Машина состояний

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

Симулятор

Во время подготовки к соревнованиям из-за отсутствия постоянного доступа в бассейн для тестовых запусков исполнения миссии было принято решение использовать симулятор Gazebo, как наиболее интегрированный с ROS2 и наиболее знакомый разработчикам. Для симуляции работы в воде использовался плагин plankton.

Была создана физическая модель катамарана, приближенная к реальному устройству, была смоделирована работа трёх камер, аналогичных установленным на катамаран.

Кроме того, была создана модель бассейна, где были расставлены объекты заданий (шары, нефтяное пятно, точка на дне и плакаты на стенах).

В симуляции отрабатывали этапы прохождение миссии: проход через ворота, сближение с объектами, удержание точки и прочие элементы необходимые для выполнения заданий.

Прохождение задания в симуляторе pdfwidth=80%
Рис. 12. Прохождение задания в симуляторе. Слева видна машина состояний SMACH. Справа - работа системы технического зрения.
Прохождение задания в симуляторе pdfwidth=80%
Рис. 13. Этапы алгоритма

Техническое зрение

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

  1. преобразование RGB-изображений в YUV и HSV-пространства;

  2. по заранее выбранным границам для каждого объекта и для каждого из цветовых компонентов мы бинаризуем изображения;

  3. проводим медианную фильтрацию изображений;

  4. выделяем контуры изображений;

  5. проводим фильтрацию по площади, по сложности контура и т.д.

  6. выделяются "точки интереса" - нужные нам объекты, включая "виртуальные" (например - центр между буями).

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

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

bui1
Рис. 14. Изображение буя
bui
Рис. 15. Маска изображения
bui m
Рис. 16. Маска изображения корректированная
bui2
Рис. 17. Выделение буёв по маске

Заключение

При разработке аппарата мы старались придерживаться двух основных принципов: opensource и ориентации на практические работы. Нашу приверженность первому принципу мы подтверждаем выкладыванием всех исходных материалов (включая данный текст) в общий доступ.

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

Планы

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

Благодарности

Особая благодарность: УОИР и лично И.В. Кожемякину, сотрудникам университета К.Д. Овчинникову и В.А. Рыжову, руководителю бассейна А.И. Полякову.

Тренерам: Андрею Синишину и Михаилу Чемоданову.

Старшим выпукникам СКБ: Арине Алеевской, Максиму Базанову, Роману Бруку, Антону Кречину, Артемию Одышеву, Андрею Рыжкову, Ивану Шестакову.

Спонсорам:

smtu1
Нониус Инжиниринг
Нониус Инжиниринг
Trionix lab