habrahabr

Автопилот на Raspberry Pi для тракториста за 300$

  • понедельник, 24 февраля 2025 г. в 00:00:06
https://habr.com/ru/companies/tractorpilot/articles/880596/


Автопилот больше не прерогатива крупных агрохолдингов с многомиллионными бюджетами. Мы разрабатываем доступную по цене и простую в сборке систему, которую может собрать и установить любой фермер. Всё, что нужно — Raspberry Pi 4 или 5, электромотор, несколько датчиков и немного инженерной смекалки.
Мы делаем технологии доступнее и теперь каждый фермер может превратить свой трактор или комбайн в умного помощника без переплаты — компоненты для сборки автопилота TractorPilot будут стоить от 300$ (программное обеспечение бесплатное), вместо 5000-10000$ за готовую систему, которая при этом ещё и будет уступать TractorPilot по функциональным возможностям.

Автопилот для сельскохозяйственной техники Tractor Pilot — ключевой элемент всей разрабатываемой экосистемы, тесно интегрированный с другими компонентами. Он не только прокладывает маршруты для полевых работ и следует по ним, обходя заранее отмеченные на карте препятствия, но и автоматически управляет подключёнными орудиями (в том числе через ISOBUS), а также обменивается данными с онлайн-системой Tractor Pilot Connect.

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

В настоящий момент ведётся разработка следующих компонентов экосистемы, о которых мы будет рассказывать в наших статьях:
  • Автопилот для сельскохозяйственной техники Tractor Pilot. Пока доступен только в виде конструктора, который можно собрать из компьютера Raspberry Pi с нашим бесплатным программным обеспечением и электронных компонентов с ali или других маркетплейсов
    Также разработаны готовые устройства, которые скоро будут запущены в производство и доступны к покупке.
  • RTK станция. Стационарная или мобильная RTK-станция необходима для обеспечения сантиметровой точности позиционирования. В полях без доступа к мобильному интернету передача RTCM-поправок от RTK-станции к автопилоту осуществляется через радиоканал LoRa.

    Как и автопилот, RTK-станцию можно собрать на Raspberry Pi (Zero 2W / 3B+ / 4) с использованием нашего бесплатного ПО. Также будут доступны готовые RTK-станции для покупки.

    На фото — мобильная DIY RTK-станция на базе Zero 2W, собранная одним из пользователей Tractor Pilot.

  • NTRIP кастер Принимает поправки от RTK-станций и раздаёт их множеству подключающихся абонентов по протоколу NTRIP. Подключение станций к нашему кастеру rtkdata.online бесплатное.
    Соответственно, если кастер раздаёт поправки от станции, расположенной не далее 20км от вас — то можно использовать их и не собирать собственную станцию (при условии, что в поле есть интернет). К кастеру подключено более 200 станций по всему миру, но количество станций из России, к сожалению, пока невелико
  • Онлайн‑сервис Tractor Pilot Connect (TPC).

    В TPC можно в реальном времени отслеживать работу техники через веб-интерфейс, создавать новые поля для автопилота, загружать сгенерированные маршруты, экспортировать треки и многое другое.
    TPC — заготовка под будущую систему управления фермой (FMIS), в которой будут также интеграции с многочисленными ФГИС, обязательными к заполнению для фермеров
  • Наземная станция управления
    Windows-приложение для ПК и ноутбуков, предназначенное для удаленного оператора. Оно повторяет интерфейс и функционал автопилота, дополняясь возможностями дистанционного управления наземными и воздушными дронами с автопилотом Tractor Pilot. Также обеспечивает мониторинг всей техники хозяйства на интерактивной 3D-карте в реальном времени с видеотрансляцией с бортовых камер. Как это выглядит продемонстрировано на видео:

  • Агродроны Пока напраление на уровне концепции. Есть идеи агродронов на PixHawk + RasPi c ПО Tractor Pilot, управляемые через наземную станцию управления, описанную выше.
  • Интеграции с внешними сервисами В настоящее время поддерживаются карты предписаний в формате ISO.XML для дифференцированного внесения удобрений, сгенерированные в сервисах типа OneSoil.


Сборка автопилота


Сборка DIY-версии автопилота TractorPilot подразумевает под собой подключение следующих компонентов к компьютеру Raspberry Pi 5 (рекомендуется именно 5-я модель c 2 или 4Gb оперативной памяти, хотя будет работать и на четверке)

Пара ГНСС приёмников или ГНСС приёмник+IMU



Один или два навигационных приёмника с встроенной поддержкой RTK режима подключаются к RasPi через USB или UART. Как уже выше упоминалось RTK режим необходим для обеспечения сантиметровой точности позиционирования. Мы используем двухдиапазонные (L1+L2) приёмники uBlox F9P, но в будущем перейдём на более современные трёхдиапазонники (L1+L2+L5).

Второй навигационный приёмник необходим для определения направления движения и угла крена. Угол крена необходимо знать для рассчёта точного положения при наклонах рельефа — на наклонных поверхностях координаты, которые рассчитывает навигационный приёмник будут смещены от истинного положения (см. рисунок ниже). Для компенсации этого смещения необходимо знать угол крена.



Сразу отвечу на вопрос, почему нельзя использовать данные о курсе движения от одиночного GPS-приёмника — они недостаточно точны.

Вместо второго навигационного приемника можно использовать инерциальный датчик, мы используем BNO-085.

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

Датчик угла колеса


Датчик угла колеса используется в качестве источника обратной связи для внешнего электромотора, вращающего руль — чем больше разница между текущим углом поворотных колёс и углом, рассчитанным алгоритмом удержания в траектории, тем быстрее вращается мотор (вариация PID-контроллера). Соотвественно, если эта разница достигает нуля — мотор останавливается.
Поддерживаются два типа датчиков:
  1. Аналоговый энкодер от автомобильных систем (например датчик высоты подвески), подключаемый к RasPi через АЦП ADS1115
    image
  2. Магнитный цифровой энкодер, передающий информацию о положении вала через CAN-шину.
    Подключается через CAN-адаптер (с USB или SPI интерфейсом)


Внешний мотор для поворота руля


Поддерживаются два типа моторов:
  1. 12V DC мотор.

    Главное преимущество этого решения — низкая стоимость мотора(около $50), однако его основной недостаток — сложность монтажа.

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

    Мотор подключается через драйвер DC-мотора, например, популярные модели IBT-2 или Cytron MD13S. Управление осуществляется с Raspberry Pi с помощью ШИМ-сигнала, регулирующего скорость вращения мотора.
  2. BLDC мотор с отверстием под рулевой вал.

    Монтаж такого двигателя проще, но стоимость значительно выше — около $500. Управление осуществляется через CAN интерфейс. В этом моторе есть встроенный энкодер, однако из-за особенностей гидросистем рулевого управления (люфты, проскальзывания) применять его для оценки угла поворота колёс проблематично — соответственно используется внешний датчик угла колеса, о котором написано выше.

    Альтернативный вариант — использовать недорогие BLDC-моторы от электросамокатов, однако они имеют высокие обороты и низкий крутящий момент. В нашем случае требуется обратное: большой крутящий момент и малые обороты. Это означает, что придётся продумывать редуктор и его оптимальное размещение.

Сенсорный экран


Рекомендуется брать экран с диагональю 10.1 и минимальным разрешением 1280x720.
На Ali есть экраны в специальном корпусе с отсеком под компьютер Raspberry Pi — их удобно использовать для размещения компонентов автопилота, но сама матрица в таких экранах не очень яркая.
Мне больше нравится вариант покупки яркой матрицы, сенсорного стекла и hdmi-скейлера, но в этом случае придётся думать над корпусом для всей системы.

LoRa модуль


Необходим для приёма поправок, если в поле нет интернета и используется мобильная радио-база с лорой.
Мы используем LoRa модули eByte, подключаемые к GPIO

Мобильный интернет


Мобильный интернет является одним из каналов получения поправок от RTK-станции.
Для доступа к мобильному интернету можно использовать либо 4G модем, либо Wi-Fi роутер.
Поскольку интернет в полях нестабилен, пользуются популярностью W-Fi роутеры на несколько SIM-карт.
Если на одной сим-карте интернет отвалится, то будет задействована вторая.

Камеры


К Raspberry Pi 5 можно подключить пару камер. В настоящий момент у камер в TP поддерживаются два возможных применения — видеорегистрация выполняемых работ и стрим видеопотока удалённому оператору.
Тут есть один нехороший момент относительно Raspberry Pi 5 — разработчики выпилили из неё все апппаратные кодировщики для сжатия видеопотока (оставили только HEVC-декодер), соответственно видеопоток сжимается теперь софтварным h264-кодеком на процессоре.

В перспективе есть планы добавить распознавание динамических препятствий (статические можно заранее нанести на карту поля) и расстояние до них. По поводу расстояния пока нет понимания, что лучше использовать — стереокамеру или лидар, требуется проведение исследований и тестов.
Также в будущем камеры можно будет приспособить для ориентации в зонах, где GPS подавляется комплексами РЭБ.
Но тут есть некоторые нюансы:
  1. Границы (или след маркера) между обработанными и необработанными полосами должны быть хорошо видны.
  2. По камере можно ехать только прямо, развернуться на краю поля уже проблематично. Да, есть SLAM-технологии, позволяющие по смещению ориентиров на кадрах понять траекторию движения, однако среда в полях слишком однородная — мало ориентиров, на которые может опираться алгоритм.
  3. При выполнении многих сельхозопераций поднимается пыль, которая слепит камеру.


Как это выглядит в собранном виде?


Тут всё индивидуально. Вот например один из вариантов от пользователя TP.
На мой взгляд выглядит очень круто




А без тракториста можно ездить?


Если доукомплектовать систему актуатором/сервой, которая будет дёргать рычаг ТНВД для регулировки оборотов двигателя (хотя подозреваю, что в новых моделях техники стоит что-то типа электронной педали газа и достаточно сделать на ЦАПе её эмулятор. А на очень новых моделях можно управлять скоростью через ISOBUS), то на гидростатической или автоматической трансмиссии (а такой техники становится с каждым годом всё больше) такое технически возможно. Не лишним будет прикрутить машинное зрение или лидар для распознавания внезапных препятствий и продумать прочие аспекты безопасности.

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

В любом случае нехватка кадров в селе, а в особенности квалифицированных кадров, делает появление полностью автономных агроботов, контроллируемых удалёнными операторами лишь вопросом времени

P.S


более подробная документация (хотя и неполная, не хватает времени писать) и ссылки на покупку компонентов для сборки автопилота есть на оф. сайте Tractor Pilot. Также в телеграме есть живое сообщество пользователей — туда всегда можно обратиться за помощью по сборке и использованию системы.