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

Сельская хозяйство — это весьма наукоемкое направления деятельности человека. Агротех-специалисты работают со многими сложными биологическими, инженерными системами и устройствами. Сложность делает очень востребованными множество современных цифровых технологий, таких как: дроны и роботы; интернет вещей; геоинформационные системы; системы виртуальной реальности; инструменты data science; blockchain; 3D-принтеры; компьютерное зрение. Подробнее о дронах, роботах и их программировании вы сможете узнать из этой статьи. Откуда взялись дроны? Сфера разработки дронов одна из наиболее интенсивно развивающихся. Такое положение вещей вызвано множеством факторов, но ключевым здесь является то, что дроны позволяют существенно снизить операционные затраты. Большие территории и необходимость выполнять множество рутинных технологических операций делают дроны идеальными помощниками.

ShutterstockИсточник: Shutterstock

Чем дроны отличаются от роботов?

Происхождение термина «дрон» до сих пор вызывает споры среди лингвистов. Предполагается, что название возникло на рубеже 1934-го 1935 г., когда низко летающими самолеты гудели, не могли резко маневрировать и ускоряться, а также издавали характерная монотонная жужжание, как трутни. Drone с английского как раз переводится как трутень. Длительное время дронами называли только самолёты мишени, но в 1950-ые и особенно в 1960-ые года к дронам как-то само собой причислили все беспилотники, начиная от крылатых ракет и заканчивая не пилотируемыми в то время космическими аппаратами.

Что такое дрон?

Вот так ChatGPT с помощью искусственного интеллекта объясняет, что такое дрон:

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

Дроны подразделяются на:

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

По способу применения дроны могут быть:

  • одиночными;
  • групповыми;
  • роевыми.

Изображение сгенерировано искусственным интеллектомИзображение сгенерировано искусственным интеллектом

Летающие дроны подразделяется на три основных подвида:

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

Летающие дроны могут применяться в сельском хозяйстве для:

  • десекации (обезвоживания тканей растений перед уборкой урожая);
  • распыления пестицидов, гербицидов, инсектицидов и т.д.;
  • засева посевным материалом;
  • мониторинга оборудования, систем орошения садов и полей;
  • анализа состояния посадок;
  • контроля выполнения заданий;
  • охраны территорий.

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

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

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

Дроны и роботы в сельском хозяйстве

Дроны и роботы сегодня активно используются в сельском хозяйстве. Задачи у них разные: вносить удобрения, засевать поля, лечить растения ультрафиолетом, мониторить поля, пасти овец. Приведем только некоторые примеры использования умных помощников «в полях»:

  • Оценка состояния посадок. Дрон собирает данные за счёт сенсоров, далее анализирует их и сигнализирует агроному о проблемах. Такой аппарат оснащён рукой-манипулятором, которая собирает спелые плоды. Если за таким дроном будет тянуться тележка, то он может ещё вносить необходимые препараты;
  • Прополка. Роботы-пропольщики могут целый день находиться в полях — до восьми часов. У них есть компьютерное зрение и специальные лазеры, которые выжигают сорняки. Они не только выполняет прополку, но и собирает данные и отправляют их на анализ;
  • Прогнозирование нападения вредителей на основании анализа изображения со спутников и дронов;
  • Картографирование и наблюдение за всходами, орошение плантации;
  • Дроны-спасатели: некоторые дроны ищут больных животных или растения и сигнализирует фермерам о проблеме, тем самым спасая урожай и скот от болезней и вымирания.

ShutterstockИсточник: Shutterstock

В подкасте РСХБ в цифре «Цифровая грядка» основатель и генеральный директор стартапа Agrofly Сергей Терёхин рассказал, выгодно ли сегодня фермеру в России покупать дрон или лучше взять его в аренду. А ещё — как можно применять летающих роботов.

Чем занимается программист дронов?

Инженер-конструктор проектирует дроны, занимается их сборкой и тестированием. Программист же разрабатывает программное обеспечение, без которого летательный аппарат не сможет выполнять практические задачи. Индустрия программирования дронов значительно прогрессировала около 10 лет назад, когда в рамках Open Source проекта по созданию Robot Operating System (ROS) были разработаны библиотеки и инструменты, позволяющие компилировать приложения для управления роботами. Создатели проекта в то время о коммерческом использовании ROS даже не задумывались. Сейчас ROS считается ведущей оперативной системой для создания робототехнических приложений. Платформа дает программистам массу возможностей и инструментов, работающие алгоритмы, а также доступ к глобальной экосистеме инженеров и научных специалистов.

Robot Operating System обеспечивает корректное взаимодействие сенсоров, 3D-карт, планировщика безопасного маршрута и SLAM. Программная среда состоит из набора отдельных узлов (node), которые взаимодействуют между собой. Основной узел ROS — «master node». Главная функция  этого модуля —  регистрация других узлов приложения. Каждый из таких узлов – это процесс Linux. Система ROS обеспечивает механизм синхронизации и передачи сообщений между отдельными узлами. Этими сообщениями могут быть сенсорные данные, облака точек, видеокадры, параметры и команды управления. Узлы могут запускаться на разных машинах и взаимодействовать через сетевой интерфейс.

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

Что делает программист дронов:

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

Требования к программисту дронов:

  • знание языков программирования C++ или Python на продвинутом уровне;
  • опыт работы с ROS или OpenCV;
  • отличные знания технического английского языка;
  • опыт разработки алгоритмов для дронов или любого встроенного программного обеспечения.

ShutterstockИсточник: Shutterstock

Программисты помогают ориентироваться в пространстве роботам и дронам с помощью маппинга. Автономная навигация робота строится на трёх фундаментальных принципах:

  • построение карт — Mapping;
  • локализация в пространстве — Localization;
  • планирование пути — Path planning.

Задача маппинга состоит в том, чтобы ответить роботу на вопрос: «Как выглядит окружающее пространство?» Во время картографирования данные с различных датчиков передаются роботу. На основе обработанных данных строится карта окружающего мира.

Задача локализации состоит в том, чтобы ответить на вопрос робота: «Где я нахожусь?» Во время локализации робот определяет своё положение относительно карты, которая может быть уже ему известна или сформирована в режиме реального времени. При локализации на заранее известной карте робот должен уметь определять своё положение, где бы он ни находился.

Задача планирования пути состоит в том, чтобы ответить на вопрос робота: «Как я могу добраться до целевой точки?» Целевая точка на карте может быть установлена оператором робота или самим роботом. Робот должен уметь самостоятельно прокладывать траекторию движения к целевой точке на карте и добираться до неё. Кроме этого, траектория движения должна быть оптимальна и безопасна.

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

  • SLAM (Simultaneous Localization and Mapping) —самый популярный в робототехнике метод одновременной локализации и построения карты. Существует тесная связь между маппингом и локализацией: оба процесса не могут быть разделены в условиях неизвестной среды вокруг робота. При использовании данного метода робот должен знать своё точное текущее положение, чтобы построить карту. Ему нужна качественная карта, чтобы определить своё текущее положение. Пример использования метода: оператор дистанционно управляет движением робота, который не имеет подготовленной карты, а строит её в режиме реального времени с помощью сенсоров и локализуется в пространстве через одометрию и сенсоры.
  • Active localisation — метод активной локализации, который использует планирование пути, чтобы направлять робота к целевым точкам на карте для уточнения его текущего положения (локализации). Пример использования метода: робот имеет подготовленную карту окружающего его пространства и движется к целевой точке самостоятельно (автономно без оператора). При этом в процессе движения робот может специально проезжать через контрольные точки на карте, например, чтобы зафиксировать установленными на его корпусе камерами специальные черно-белые маркеры, расположенные на стенах. Анализируя каждый замеченный подобным образом маркер, робот уточняет свое положение на карте.
  • Exploration — метод исследования, который предполагает, что робот способен определять своё точное местоположение. Метод фокусируется на эффективном движении робота в неизвестной среде для построения им карты в реальном времени. Пример использования метода: робот не имеет подготовленной карты и движется самостоятельно без участия оператора. При этом в режиме реального времени робот движется в неизвестную для него территорию, непрерывно строит карту и планирует свой маршрут.
  • SPLAM (Simultaneous Planning, Localization and Mapping) — метод, комбинирующий локализацию, построение карт и планирование пути.  Пример использования метода: робот автономен, не имеет подготовленной карты и практически никакой готовой информации об окружающем мире. Он в режиме реального времени самостоятельно строит карту, локализуется на ней и планирует своё дальнейшее движение.

www.microstrain.comИсточник: www.microstrain.com

Аппаратная часть

Полетный контроллер отвечает за полет дрона и вращение его моторов. Примером универсальной платформы является плата Pixhawk, оснащенная процессором ARM, а также прошивкой PX4. Программный код прошивки компилируется в специальном режиме «software in the loop», что позволяет проводить тесты на ПК.

ardupilot.org/Источник: ardupilot.org/

Симуляция

Для симуляции работы дрона и оценки ПО используется программный симулятор реальности Gazebo.

В качестве базовой модели в виртуальной среде выступает виртуальная роботизированная овечка Долли, которая служит практическим введением в Gazebo и ROS2. Долли следует за вами повсюду, неся тяжелые вещи. Тележка оснащена двумя моторизованными колесами, которые позволяют роботу маневрировать и обнаруживать объекты, находящиеся впереди, с помощью лазерного сканера.

infoq.comИсточник: infoq.com

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

  • лидарами;
  • камерами глубины;
  • лазерными/ультразвуковыми/инфракрасными дальномерами;
  • контактными датчиками;
  • радарами;
  • датчиками ускорения;
  • гироскопами;
  • магнитометрами;
  • барометрами.

Какие перспективы есть у программистов роботов и дронов?

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

Программисту доступны следующие ниши:

  • IT-компании;
  • поставщики и производители квадрокоптеров и дронов;
  • госкорпорации;
  • научно-исследовательские институты робототехники;
  • правоохранительные органы (ФСБ, ГИБДД, ФСО);
  • органы военного управления;
  • промышленные предприятия (строительство, добыча полезных ископаемых и др.);
  • рранспортные компании и службы доставки;
  • фермерские хозяйства и агрокомпании.

Автор: @AMAgeev
Источник: https://habr.com/