В рамках хакатона «Кубок РТК: Нефтяное месторождение», который проходил в марте 2025 года в Архангельске, наша команда misis_robo_club разработала автономного робота для инспекции нефтепромысла. Соревнование заключалось в том, чтобы робот в полностью автономном режиме обследовал макет нефтяного месторождения: собирал данные с оборудования, распознавал утечки нефти и посторонние объекты, а также считывал специальные QR-коды. Проект объединил современные технологии компьютерного зрения, сенсоров и автономной навигации, вдохновив нас на новые идеи в области промышленной робототехники.
О соревнованиях
Организатором соревнований выступил ГНЦ РФ ЦНИИ РТК, а сам хакатон длился два дня на специально оборудованном полигоне, имитирующем реальный нефтедобывающий участок. Полигон представлял собой модель нефтяного месторождения с разнообразными объектами: устьевой арматурой скважин, резервуарами-нефтехранилищами, гаражом, песчаным карьером и даже элементами окружения вроде лесополосы. Роботам предстояло проехать по маршруту от старта до финиша, выполняя по пути ряд задач технического зрения и навигации. Это позволило проверить не столько проходимость и механические характеристики, сколько «интеллектуальные» способности разработанных систем вблизи условий, приближенных к реальным промышленным сценариям.

Основная цель: реализовать автономное обследование объектов нефтяного месторождения. Робот должен был проехать по полигону, последовательно обследуя устьевую арматуру скважин: считать показания давления с манометров, обнаружить возможные протечки нефти, а также распознать другие объекты на местности (например, животное, якобы забредшее на полигон) и считать информационные QR-коды.
Технологии и инструменты
Для реализации проекта мы использовали следующие компоненты и технологии:
NVIDIA Jetson Nano — бортовой вычислительный модуль с GPU для обработки данных и работы нейросетей в реальном времени.
Камера — основной сенсор для компьютерного зрения, снимала окружающую обстановку для распознавания объектов.
Octoliner — восьмиканальный датчик линии, использовался для следования по размеченной линии маршрута на поверхности полигона.
Python — основной язык программирования, связующее звено между всеми модулями, позволяющий быстро прототипировать алгоритмы.
OpenCV — библиотека компьютерного зрения, применялась для обработки изображений: распознавания стрелок манометров, декодирования QR-кодов и других визуальных задач.
YOLOv8 — современные нейросетевые модели (использовались две отдельные модели) для детекции объектов на изображении, таких как утечки нефти или животные на полигоне.
Кастомные датасеты — собственноручно собранные и размеченные наборы данных изображений, на которых мы обучили модели YOLO под специфические задачи (поиск протечек, распознание коров и прочих объектов, характерных для полигона).
Реализованный функционал
1. Считывание данных манометров (датчиков давления):
Робот подъезжал к каждой устьевой арматуре скважины и с помощью камеры «смотрел» на манометр (аналоговый измеритель давления). Алгоритмы на базе OpenCV распознавали положение стрелки на циферблате и определяли текущее давление.
2. Обнаружение утечек нефти:
В конструкции устьевой арматуры могло присутствовать условное «место протечки» — визуальная отметка, сигнализирующая о разливе нефти. Специально обученная нейросеть YOLOv8 анализировала изображение и выдавала сигнал, если идентифицировала подобный признак протечки.
3. Распознавание посторонних объектов на местности:
Ещё одной задачей было обнаружение нештатных объектов вокруг скважин. Например, на полигоне находился макет коровы. Вторая модель YOLOv8 была обучена на распознавание таких объектов. При попадании, скажем, фигуры животного в поле зрения, алгоритм определял её наличие и классифицировал объект.
4. Считывание QR-кодов:
На некоторых объектах полигона были размещены QR-коды с дополнительной информацией (например, идентификатор скважины или подсказки для команды). Робот должен был найти камеру эти метки и считать их. Мы реализовали распознавание QR-кодов с помощью библиотек OpenCV и декодировали заложенную информацию.
Работа в команде
Наша команда состояла из трёх человек, и мы распределили задачи следующим образом:
Георгий Бондарь — капитан команды, отвечал за общую архитектуру решения, интеграцию всех аппаратных модулей и стратегию прохождения полигона.
Андрей Рейтлингер — занимался навигацией и движением: подключением лидара и Octoliner, разработкой конструкции робота.
Кристина Егорова — разрабатывала алгоритмы компьютерного зрения: сбор и разметка данных, обучение нейросетей YOLOv8, реализация программного считывания показаний манометра и QR-кодов с помощью OpenCV.
Технические аспекты
Обработка изображений
Детекция объектов на изображении. Камера, установленная на роботе, постоянно передавала видеопоток на Jetson. Мы задействовали две параллельные модели YOLOv8: первая искала признаки утечки нефти, вторая — разные объекты окружения.
Распознавание приборов и символов. Для считывания давления с манометров мы применяли алгоритмы классического компьютерного зрения. Предварительно определив область циферблата (с помощью фильтров и контурного анализа), алгоритм находил стрелку и вычислял угол её отклонения. Зная калибровку шкалы, мы преобразовывали угол в численное значение давления. Кроме того, OpenCV использовался для обнаружения и распознавания QR-кодов: стандартные методы позволили быстро декодировать зашифрованный текст, как только код попадал в поле зрения камеры.
Интересной особенностью стало то, что для успешной работы компьютерного зрения нам потребовалось собрать собственные датасеты изображений. Прямо на месте мы фотографировали элементы полигона (манометры при разном освещении, метки, утечки) и дополнительно генерировали данные вручную, чтобы дообучить нейросеть. Благодаря этому наши модели были адаптированы под конкретные условия площадки – освещение в зале, размеры и цвет объектов и т.д. Результат — достаточно хорошая точность распознавания уже в первой попытке.
Навигация и движение
За навигацию робота отвечал алгоритм следования по линии. Датчик Octoliner с восемью инфракрасными сенсорами считывал положение чёрной линии относительно робота, а наш код корректировал траекторию, поворачивая колёса так, чтобы линия оставалась по центру датчиков. Этот метод позволил роботу уверенно доехать от старта до каждой контрольной точки (скважины) в нужной последовательности.
Алгоритм управления движением был тесно связан с блоком компьютерного зрения. Как только камера определяла, что все необходимые действия около текущего объекта выполнены, она передавала сигнал навигационному модулю продолжать движение к следующей цели. Таким образом, получилась своего рода система состояний: ехать по линии -> обнаружить цель -> остановиться и выполнить распознавание -> продолжить путь, и так до финиша. Все манёвры мы отрабатывали вручную во время тренировки, добиваясь стабильности.
Тестирование и результаты
Подготовка и отладка
В первый день хакатона, получив доступ к полигону, мы сразу приступили к тестированию и отладке робота в реальной обстановке. Некоторые аспекты, которые прекрасно работали в лаборатории, потребовали корректировки на месте. Например, освещение в помещении отличалось от наших тренировочных условий — пришлось настроить параметры камеры и пороги срабатывания нейросети, чтобы уверенно отличать тёмное пятно нефти от тени. Линейный датчик также откалибровали на цвет и материал покрытия пола: важным оказалось учесть блики на глянцевой поверхности, чтобы робот не «потерял» линию.
Отдельное внимание мы уделили тестированию алгоритма чтения манометров. Для этого на одной из устьевых арматур наклеили собственный распечатанный циферблат с стрелкой и меняли положение стрелки вручную, проверяя, правильно ли программа считывает угол. Такой подход помог избежать ошибок на соревновательных попытках, особенно учитывая, что в условиях ограниченного времени перепроверить результаты не было возможности.
Во второй день начались официальные заезды. Каждой команде предоставлялось две попытки, чтобы показать максимальный результат. Наш робот уже в первой попытке успешно проехал весь маршрут и выполнил большую часть задания: собрал данные с 5 из 6 всех заданных манометров, корректно распознал корову, но к сожалению пропустил все утечки. Алгоритм был недоработан: в адре достаточно часто попадались ошибочные темные объекты, принимаемый алгоритмом за протечки. Однако полученные командой баллы оказались достаточно высокими. Во время второй попытки, на которую мы возлагали надежды для оттачивания результата, нам не удалось выйти на старт вовремя – сказалась спешка при дополнительной настройке кода. Тем не менее, набранных баллов первой попытки было достаточно, чтобы заявить о себе как об одной из сильных команд на этом этапе.
Демонстрация





Важность и перспективы
Наш проект показал, что автономные роботы и ИИ могут эффективно решать прикладные задачи в промышленности. Такие системы способны повысить безопасность и снизить риски, беря на себя мониторинг оборудования. Архитектура решения универсальна и может применяться как на наземных платформах, так и на дронах. Участие в хакатоне дало нам ценный опыт, у же на награждении мы думали про то, как улучшить код и довести его до совершенства.