image
Вот и весь комплект, если есть CAN-шина.

Всего пять лет назад не было нормально работающих нейросетей для того же определения препятствий и краёв стеблестоя, поэтому не было и видеоаналитики. Были «слепые» GPS-методы, которые на практике оказались далеко не лучшими и сильно подмочили престиж автоматизации в сельском хозяйстве. Через пять лет, как мы считаем, все комбайны будут автоматизированы именно визуальными автопилотами, чтобы смотреть из кабины и в стороны и контролировать все аспекты уборки урожая.

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

Такой проект мог стартовать у нас, в Бразилии и ещё в паре стран из-за особенностей рынка. Нужна страна с сельским хозяйством, разработчиками внутри, неэффективной уборкой (то есть чёткой болью сэкономить) и новым парком комбайнов. Повезло со всем, включая парк: после СССР всё развалилось, и сейчас мы наблюдаем машины примерно четырёх- пятилетней давности в основных хозяйствах.

В России 350 тысяч комбайнов, и поставляется ещё 35 тысяч в год. Это не рынок автомобилей, конечно, но, сделав правильное решение сейчас, пока туда ещё никто не пришёл, можно получить его весь.

Но давайте расскажу лучше, как именно это работает и как мы модифицируем комбайны в России.

image
Как проходит рабочий день оператора комбайна с нашим Agro Pilot.

Комбайнёр — оператор или механизатор — приходит в семь утра на поле. Если это не первый день, то машина стоит уже непосредственно посреди сельхозкультуры. Проводятся настройки под следующий участок, прогревание. В девять утра роса сходит с полей, можно начинать. Закончить нужно к темноте, когда влажность снова повысится. В дождь работать нельзя. Примерно за две недели надо успеть собрать всё зерно, пока оно не переспеет и не высыплется на землю: чем дальше, тем больше будут потери. Начинать раньше нельзя: зерно ещё не созрело. Поэтом�� именно в этот пик нагрузок любой простой, любая ошибка или авария стоят очень дорого.

Смена длится до 14 часов монотонной работы. Оператору нужно:

  • Очень аккуратно и ровно рулить, стараясь двигаться по прямой параллельно скошенному участку. Это основной приоритет живого человека. Это муторная работа по наблюдению вбок.
  • Следить за режимом уборки культуры: в зависимости от зрелости, высоты и частоты стеблестоя нужно менять 20–22 параметра, включая скорость движения на участке. Это работа по наблюдению за тем, как вращается шнек. Весь день.
  • Смотреть за качеством зерна на выходе — надо иногда смотреть назад.
  • Думать про транспорт для выгрузки зерна — когда и как его звать.
  • Двигаться при этом согласованно с другими комбайнами.

Вот здесь мой коллега Эдуард рассказал подробнее про особенности того, почему в итоге операторы сосредотачиваются только на рулении, оставляют настройки по умолчанию в механизме сбора и часто пропускают опору ЛЭП или трактор впереди и врезаются на 10-й час смены.

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

Если снять нагрузку по рулению, то внезапно чудесным образом повышается сбор зерна. В нашей практике прошлого года с одного и того же участка — на 3 % за счёт того, что у оператора есть возможность точнее смотреть за тем, что творится впереди. И ещё примерно на 3–5 % — за счёт удержания захвата без «пупков» и больших непрокошенных частей. Плюс нет аварий.

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

Техническая возможность появилась


Вот что делает автопилот:

image

То есть:

  • Ведёт комбайн так как надо по особенностям роста текущей культуры и по тому, как прошли комбайны до него.
  • Позволяет работать вместе смешанному парку: как тем машинам, у кого есть автопилот, так и с ручным управлением. Автопилоту нет никакой разницы.
  • Очень чётко держит расстояние между проходами, обеспечивая минимум непрокошенных.
  • Ищет препятствия, классифицирует их и принимает решение, что делать: объезжать, тормозить или, пока есть время, предупреждать оператора.
  • Поддержка оптимальной скорости для конкретной ситуации. Есть такая особенность: чтобы комбайн убирал чисто, нужно держать интервал от 6 до 6,5 километра в час для, скажем, пшеницы на конкретной модели. Если переходим через эту черту, то объём массы будет больше, бичи перестанут выбивать все зёрна, и дальше потери увеличиваются в геометрической прогрессии от скорости: семь километров — 0,2 %, восемь — 0,5 % и так далее.

Агротехническая оценка одного из комбайнов по результатам лабораторно-полевых испытаний
Как влияет скорость на эффективность сбора
Показатель Значение показателя по данным испытаний
Пшеница Рапс Соя
Фон 1 Фон 2 Фон 3
Режим работы
Скорость движения агрегата, км/ч 4,1 5,4 6,3 4,5 5,6 7 2,8 3,6 4,3
Рабочая ширина захвата адаптера, м 4,8
Установочная высота среза, см 14 23 6
Показатели качества выполнения техпроцесса
Высота среза:
— средняя фактическая, см 13 13 22 22 22 5 5 5
1,4 1,42 1,65 1,86 3,37 1,35 1,47 1,19
— стандартное отклонение, см 9,6 9,5 8 8,6 14,8 12,2 12,1 9,4
— коэффициент вариации, %
Потери зерна за адаптером при полеглости хлебов до 20%, всего, % 0,13 0,17 0,27 0,35 0,36 0,56 0,62 0,74
В том числе зерном:
— свободным 0,08 0,11 0,2 0,24 0,25 0,29 0,32 0,31
— в срезанных колосьях 0,05 0,06 0,07 0,11 0,11 0,24 0,27 0,4
— в несрезанных колосьях 0 0 0 0 0 0,03 0,03 0,03
Производительность, т/ч 10,7 15,3 16,1 2,7 3,4 4,5 3,6 4,1 6,1
Подача фактическая, кг/с 5,28 6,75 7,72 2,09 2,68 4,84 4 5,3 7
Подача приведённая, кг/с 3,85 4,15 5,37 2,23 2,87 5,99 5 7 8,7
Потери зерна за молотилкой, всего, %, 0,83 0,93 1,01 0,39 0,44 0,5 0,33 0,49 0,53
в том ч��сле: 0,24 0,37 0,42 0,27 0,32 0,37 0,26 0,42 0,45
— за соломотрясом
— за очисткой 0,43 0,41 0,45 0 0
— из-за недостаточного уплотнения молотилки комбайна 0,003 не определялись не определялись
— потери зерна распылом, % 0,16 0,15 0,14 0,12 0,12 0,13 0,06 0,07 0,08
Качество зерна из бункера комбайна, %:
— дробление 1,56 1,5 1,41 1,18 1,2 1,27 0,62 0,6911,27 0,83
— сорная примесь 0,42 0,5 0,57 0,88 0,89 1,09 1,32 98,04 1,72
— содержание зерна (семян) основной культуры 98,02 98 98,02 97,94 97,91 97,64 98,06 97,45
Ширина валка при укладке соломы в валок, мм 1052 1048 1063 не определялась не определялась



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

Что в начинке


1. Камера 2 МП на кронштейн зеркала. Мы ориентируемся только по камере: это основной датчик. Больше ничего не требуется.

image

2. Дисплей в кабине: это интерфейс для оператора. Через него делаются предупреждения и настройки.

image

3. Блок управления под кабину: там NVIDIA TX2. Там крутится основной стек алгоритмов, обрабатывается видео, и оттуда отдаются команды на CAN-шину.

image

Блок 340х290х60 мм, 40 ватт.

image

Модуль для отдачи команд подключается к CAN-шине или другому системному вводу-выводу комбайна. Здесь есть пара засад, в частности, с тем, что не везде такое возможно, и не везде управление гидравликой возможно через этот интерфейс.

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

Датчик поворота колёс нужен на тот случай, если комбайн старый или без подготовки, и мы не можем получить эти данные из системной шины. Нам нужны данные для одометрии (скорость движения и угол поворота колёс):

image

Насос-дозатор в систему гидравлики нужен для непосредственного управления гидравликой нашим ко-пилотом:

image

Первая засада с CAN-шиной в том, что не всегда есть понятная документация. В теории попадаются и другие варианты получения сигналов из шины, но на практике России это очень редкие случаи. В общем, в лучшем случае есть какое-то системное API и дырка для кабеля. В простом случае мы связываемся с производителем этой дырки и просим прислать описание протокола. Через пару недель переговоров они понимают, кто мы и что нужно, и присылают. Не все это воспринимают просто, но крупные производители нам отчасти рады, потому что знают: в прошлом году мы поставили наши решения в ряд хозяйств и крупных агрокомплексов, чем навели немного шума в СМИ.

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

В идеальном мире этим бы и закончилось. К сожалению, иногда всё-таки попадаются случаи, когда документации нет или у производителя не удаётся получить внятного описания. В таком случае мы подключаемся и реверсим шину. Конечно, есть протокол J1939, которому производители должны бы следовать, вот только не все это делают. Обычно подключаешься с отладочной утилитой, получаешь все пакеты с переменными и просто сидишь с оператором, нажимающим на кнопки. Поехал — где-то ноль стал положительным числом. Ускорился — число выросло. Замедлился — снизилось. Ага, скорость попалась. И так — весь день. Дальше надо поймать корреляцию и подобрать коэффициенты преобразования. Один раз поймали очень неприятный баг с тем, что на тестовой площадке работало, а в поле — нет. Комбайн в мирном режиме слал одни пакеты, а со включёнными жаткой и мотовилом переходил в особый боевой режим и начинал в тех же отловленных пакетах слать свои особые боевые сообщения. Нам пришлось собирать адовыми способами признаки данных. Как оказалось, в те же пакеты в те же переменные жатка нормально давала свою информацию, а разработчик шины всё это дико соптимизировал, чтобы не задавать новые переменные. Наверное, он в конкурсе 256b-intro в свободное время участвует.

На гидравлике тоже были сюрпризы. Хоть в партнёрах есть Danfoss, хоть они и помогли всем, чем возможно, и дали подробные схемы, проверить всё можно, только запустив комбайн. Где-то комплектующие слегка встали на границе, поэтому система для заказчика приехала к уборке урожая (и это только один из случаев). То есть надо было ночью смонтировать это всё, запуститься, проверить и, если хоть что-то не так, снять, чтобы утром комбайн можно было использовать дальше. Приехали к восьми вечера и начали шаманить с гидравликой. Первый монтаж мы закончили в четыре часа ночи. Не знали, заведётся или нет. Если не получится, то надо будет разбирать и вернуть штатное состояние. Завели — работает. Рулит как надо. Это самый крутой hello world в нашей жизни. Я не так себе представлял работу с нейросетями, но куда без этого.

В комплект можно добавить сотовый модем для отправки телеметрии. При этом в комплекте не нужен GPS. Это огромный плюс. Чтобы обычное GPS-вождение нормально работало, нужно заранее составить карту, выставить RTK-станцию для поправок либо купить пакет сигналов и так далее. И ещё нажимать кнопки и менюшки, а механизаторы очень не любят пользовательские интерфейсы. У нас камера-коробка-сели-поехали. Не требуется картировать поле, чтобы нарезать его на загонки. Нужно подъехать к полю. Робот скажет: «О, ура, поле!» И просто поедет.

Почему только камера для вождения


В 2014 году мы взяли научный грант на прототип комплексной системы управления сельскохозяйственным предприятием с использованием ИИ. Погрузились в бизнес сельхозпроизводителей и посмотрели самые очевидные точки автоматизации. Россия — очень рисковое земледелие (один урожай в год, а в Бразилии — пять). Целый год возделываешь поле: дорогой посевной материал (это самое дорогое), потом прыскаешь дорогими химикатами (вторая статья расходов), проводишь цикл работ по подготовке почв, культур. Это целый год с марта по осень. И только осенью у тебя две недели, когда надо собрать урожай. Если что-то идёт не так, то плюс-минус день может быть 10 % потери урожая.

Комбайн не вышел, комбайнёр запил, криво покосил — сломал по дороге. Всё, простой часами и днями.

Именно с распознавания препятствий мы и начали. Сразу напрашивался лидар, но он дорогой, поэтому камера. Раз монокамера — нужно сразу распознавание образов. Потому что нужно не только увидеть, но и понять, что это, какого оно размера, как себя поведёт, чего ждать. Мы либо стоим на месте, либо движемся вперёд, а нужно знать относительное расстояние до объекта и ещё помнить про жатку 7,5 или 9 метров в разные стороны (и это не максимум, часто на ходовых моделях встречается и 12-13 метров). Всё равно на таких размерах можно на развороте случайно смолотить механизатора трактора или заправщика, вышедшего по малой нужде.

image

Нейросетки отлично справляются. Но всё же, поскольку у нас монокамера, можно обмануть алгоритм моделью комбайна 1:40 в редких случаях (потому что по монокамере в движении тоже можно получить геометрию). Но в поле такие попадаются редко.

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

image

А это уже автопилот второго уровня:

image

image

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

Вот так можно добрасывать целевую выборку:

image

Как говорит Эдуард, который это объясняет сельхозхозяйствам, люди сами прекрасно понимают, что уборка — это основная точка автоматизации. Там день год кормит. И они стараются всеми силами исключить человеческие ошибки. В итоге мы договариваемся на «посмотреть». До сезона приезжает сервисная группа наша или дилеров, устанавливают всё. Дальше проводят проверку-калибровку. Или перед уборочным периодом сразу калибруются, день-полтора займёт.

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

P. S. Если вашего агронома нет на Хабре, а ему это интересно, то можно вот тут вот найти контакты: promo.cognitivepilot.com и предметно обсудить, для какого комбайна какой конкретно набор техники нужен, сколько примерно стоит, и как это можно быстро посмотреть-испытать.