Программное обеспечение для агроробота

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


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

Запрос

К специалистам КЕДР Solutions фермер обратился с идеей создать сельскохозяйственный робот с манипулятором – роборукой – для прикорневой подкормки растений на грядках.

Робот должен ехать вдоль ряда, определять местонахождение лунки с растением, направлять туда манипулятор и распылять удобрение. Затем устройство должно повернуть роборуку и таким же образом обработать соседнюю лунку. Дойдя до края грядки, устройство переезжает на другой ряд и продолжает подкормку, двигаясь в обратном направлении.

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

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

Решение

Грядка представляет собой дорожку, застеленную геотекстилем с лунками в 2 ряда. Ширина робота совпадает с шириной гряды, а высоты достаточно, чтобы ехать над растениями.
Так выглядит грядка, укрытая геотекстилем, в котором проделаны отверстия для растений. Геотекстиль повышает эффективность полива, не дает прорасти сорнякам, позволяет почве равномерно нагреться.
Устройство с небольшой постоянной скоростью движется вдоль грядки, вращает 3-осевой рукой-манипулятором, внося удобрения в каждую лунку или на растение, если куст достаточно большой и лунка не видна. В конце каждого ряда стоит табличка, ориентируясь на которую, робот понимает, что обработал все растения этой грядки и нужно повернуть в соседний ряд.
Агроробот двигается вдоль грядок, поворачивает манипулятор то в одну, то в другую сторону и обрабатывает посадки в двух параллельных рядах.
Двигаясь вдоль грядок, робот обрабатывает сразу 2 ряда посадок.
Агроробот работает автономно. При остановке устройство подает световой сигнал. На роботе установлена емкость с раствором, которого должно хватить на обработку всего поля. Тем не менее внутрь канистры помещен датчик уровня жидкости. Если уровень опускается до минимального, подается световой сигнал и робот останавливается.

Устройство не боится ни дождя, ни грязи – все его узлы защищены от влаги.

На основе библиотеки OpenCV и инструментария Jetson Nano мы разработали алгоритмы компьютерного зрения, с помощью которых робот видит лунку, поворачивает манипулятор в ее сторону, опускает руку и производит распыление определенного количества раствора. Все работает в режиме реального времени, роботу не нужно останавливаться у каждого растения. В устройстве использована камера глубины Intel RealSense, которая определяет расстояние до объекта.
Специалисты КЕДР Solutions обучают систему распознавать лунки растений на грядке, застеленной геотекстилем.
Процесс обучения системы распознаванию лунок.

Сложности проекта и их решение

Проект, связанный с технологиями компьютерного зрения, как правило, непросто реализовать.

Мы вручную собирали видеоматериалы, на основе которых система должна была учиться распознавать нужные объекты. Определенные сложности возникли и с контрастом картинки: черные лунки плохо распознавались на черном геотекстиле, но в итоге эти проблемы были решены.
Лунки с землей сливаются с черным полотном геотекстиля и плохо распознаются алгоритмами компьютерного зрения.
Нам также потребовалось время, чтобы изучить все особенности весьма специфичного микрокомпьютера Jetson Nano и наладить его работу.

Выполненные работы

  • Разработка и тестирование встроенного ПО
  • Разработка алгоритмов компьютерного зрения

Использованные технологии

  • Для разработки алгоритмов мы использовали Python и библиотеку OpenCV.
  • Для проекта был выбран одноплатный компьютер NVIDIA Jetson Nano, который позволяет делать необходимые вычисления в области ИИ, потребляя всего 5 Вт. Мы также использовали его инструменты для разработки алгоритмов.
  • Для написания встроенного ПО использовался язык С++.
  • В качестве среды имитационного моделирования мы использовали симулятор робототехники CoppeliaSim.
  • Для агроробота была выбрана камера глубины Intel RealSense.
  • Мы использовали набор инструментов ROS для разработки программного обеспечения для робота.

Итоги

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

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

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