А ведь в прошлом году это делали senior-разработчики.
Возможно, вы помните, что мы говорили про то, как можно сильно улучшить работу обычного сельскохозяйственного комбайна, если использовать нейросетки для распознавания культур и препятствий и робота для автопилотирования. Всё это (кроме процессоров Nvidia и ещё части железа) — наша разработка. А радость в том, что в некоторых южных регионах страны закончилась уборочная страда, и наши комбайны показали себя лучше, чем ожидалось. Слава роботам!
В этом году мы поставили несколько сотен блоков из мощного графического ядра (для нейросетей), камер, гидравлических насосов или CAN-модулей для подруливания. Если в прошлом году агропилоты были в опытной эксплуатации, то сейчас речь идёт уже про серийные модели. И они справились.
Более того, они справились лучше, чем мы ждали. Кроме того, в релиз вошли далеко не все фичи. В релизе осталось, по сути, ядро, но одно только это позволило получить очень заметный экономический эффект.
Конечно, обошлось не без сюрпризов. Но давайте расскажу более конкретно, с числами и примерами.
Можно разглядеть камеру 2 Мп сверху. NVIDIA TX2 в специальном кожухе и с огромным радиатором монтируется внизу в подкабинном пространстве. Экран — в кабине.
О чём идёт речь
Сельскохозяйственный комбайн по сложности управления похож на церковный орган. Когда в кабине — комбайнёр и помощник, то один рулит (держит кромку), а второй управляет мотовилом, ветрами, барабанами и вообще следит за сбором. Третий в это время может делать отгрузку на ходу в грузовик, едущий рядом. Четвёртый следит за препятствиями. В эпоху СССР в кабине было двое, потом остался один. В итоге он или рулит, или собирает зерно нормально. Стоя на месте, собирать зерно нормально не выходит, поэтому он рулит. Про то, как там всё хитро закручено и почему комбайны регулярно перемалывают людей, врезаются в тракторы и бегущие через поле столбы ЛЭП, — наш первый пост.
Вторая особенность — каждая из ролей, даже если выполнять её не отрываясь, очень монотонная и требует постоянной бдительности. Это как смотреть на трассу 10 часов в день при условии, что нужно поймать буквально два момента за сутки, когда нужна быстрая реакция.
Третья особенность — комбайнёры часто предпочитают убирать быстрее с меньшим КПД (поскольку оплата идёт за отгруженные тонны), а не получать максимум зерна с гектара.
В серию вошли фичи удержания кромки (комбайн сам следит за тем, как едет, и сам рулит) и предотвращения столкновений (комбайн внимательно смотрит по сторонам и прогнозирует движение всего, что видит, — от людей до тракторов). Тут наработки беспилотного трамвая после езды вокруг ВДНХ очень пригодились. В поле куда спокойнее с препятствиями. Про видеоаналитику есть вот здесь.
Отдельное подразделение занимается обучением нейросетей (фотографированием ситуаций и разметкой данных), чтобы определять, где какая культура, как выглядит полёгшая пшеница и так далее. Поскольку обучающих выборок нет, мы ездим в поля и снимаем сами. Это важно, потому что одна и та же культура от сорта к сорту и от климата к климату отличается визуально.
Ещё одно подразделение занимается разработкой железа. У нас есть радар собственной разработки для тепловозов и трамваев, но на комбайне — только камеры, потому что оснащать их нужно как можно дешевле. Сложная история — это разбор протоколов управления (иногда утерянных вместе с производителем, и тогда нужно реверсить) или же установка гидравлики для подмешивания нашего сигнала в руление. Вычислительные модули на каждом комбайне автономные.
Что случилось в этом году
В поля вышли не инженеры и специально обученные испытатели, а обычные работяги, для которых всё это и разрабатывалось. Они убирали реальный урожай. И да, они проверяли нашу систему на прочность, как в том анекдоте про бензопилу.
Больше всего мы боялись, что именно конечные пользователи (комбайнёры) станут мешать внедрению, потому что почувствуют угрозу своей работе. Но всё обошлось успешно. Они понимают ограничения автопилота, понимают, что нужны в кабине, понимают, как он их разгружает и что именно они могут делать лучше. У них увеличивается выработка, а значит, увеличивается заработок за уборочную. Причём значительно: примерно на 10–15 %. Они хотят работать с нашим роботом в паре. В одном хозяйстве они бились за машины с ним.
Человек полностью разгружен. Он включает систему, отпускает руль, в лучшем случае контролирует работу машины, в худшем — сидит в телефоне. Недели уборочной для комбайнёров — это работа-сон-работа-сон-работа. Сил ни на что не бывает в принципе, потому что за месяц нужно заработать на полгода. Наши пилоты стали рассказывать, что у них остаются силы для домашней работы. Машины стали лучше смотреть, потому что после работы хотелось не упасть и уснуть, а можно было заняться техобслуживанием. Те, кто осознанно выбирал больший рабочий день, говорили, что можно легко работать на два часа больше. Они и работали бы больше, но совсем ночью нельзя: роса.
Вот пара картинок, которые соседние механизаторы увидели из своих машин и потом полезли смотреть, как всё устроено:
«Сидит там, чай пьёт, гад! *** [зачем] теперь механизатор нужен?». Потом смотрели, что робот всё же может далеко не всё, и понимали, что это просто как новый комбайн с парой особенностей. И успокаивались.
Есть числа:
- Увеличилась производительность смены по времени — комбайнёр не устаёт. Это может показаться численным преимуществом в 10–15 %, но там всё гораздо интереснее. Дело в том, что это даёт три дополнительных дня на уборку. Это значит, что если будет плохая погода (проливные дожди, в которые зерно прорастает или осыпается), то урожай не пропадёт, а будет убран целиком с куда большей вероятностью.
- Комбайнёр разгружен. Он может смотреть за функционалом комбайна, высотой подъёма жатки и забивкой жатки всё время. Это работа на чувствительность и навык, и раньше она не могла быть качественной из-за постоянного поворота головы в другую сторону, где кромка. Теперь мастера могут вытаскивать из машины 100 % возможной производительности. Это уменьшает себестоимость зерна.
- Внимания начало вполне хватать для выгрузки на ходу. Это важно, потому что не нужно ездить куда-то на край поля опустошать бункер в грузовик. Грузовик может ехать за комбайном, а комбайнёр будет сгружать в него урожай — меньше простоев, меньше пробег, больше производительность смены.
- Поскольку комбайн контролирует режим, наш робот защищает от ошибок. Владельцы сельхозхозяйств говорят, что теперь можно смело сажать менее опытных комбайнёров. Обычно нужно три сезона, чтобы человек набил руку (это примерно 1,6 единицы «убитой» техники).
- Меньше зазоры: раньше промежутки контролировал человек, и они брались с допуском на усталость (к концу смены получались очень большие непрокошенные участки). А роботу плевать, он держит норматив в любое время смены.
Получается — механизаторы и руководители в один голос говорят, что работа стала проще. У кого не было перегрузчиков зерна, задумались, чтобы их докупить. В разных хозяйствах — разные дневные нормы, обычно это 20–25 гектаров. Мы видели, что спокойно ставят 30, и люди на этом не выматываются. Для кого-то это оказалось возможностью сократить парк комбайнов на следующий год: не нужно будет закупать две-три машины. Знаю, звучит очень странно, но два хозяйства (примерно из сотни) сказали, что сделают именно так.
Уборочная началась с того, что Герман Греф попробовал в Песчанокопской аграрной группе (на крупной серийной партии) и сказал, что освоил за три минуты. Мы гордимся этим видео. Если президент банка справился, то работяги в полях справятся точно.
Ну и если вдруг у кого-то освободится в регионе несколько сотен чиновников, то можно быстро переквалифицировать их в операторов техники. Вы задумайтесь. «Русагро» подписала контракт на 240 машин. Многие хозяйства дозаказали на следующий год комплекты на весь парк.
Не без сюрпризов
К слову о том, как мужики быстро освоили технику. Хозяйство взяло четыре комплекта протестировать, мы приехали, установили их на машины, сделали пусконаладку. Не до конца откалибровали одометрию, потому что для этого нужен дневной свет. Решили сделать с утра. Утром приходят установщики, а мужики на этих машинах на дефолтных настройках уже вышли в поле, всё инициализировали и снимают из кабины, что творит робот. Возможно даже, это был стрим в Инстаграме для остальных на поле. С одной стороны, конечно, хотелось сделать калибровку, а с другой — приятно, что мужики всё сами запустили и всё поднялось на настройках по умолчанию.
После первых дней во многих хозяйствах в нашего робота то ли начинали верить, как во всемогущий интеллект вроде Терминатора, то ли просто тестировали на прочность. Так или иначе, в одном хозяйстве решили попробовать убирать ночью. Иногда люди думают, что робот должен думать, как человек. Были несколько разочарованы тем, что ночью он справляется хуже. Дело в том, что в боевом релизе нет ночной уборки: это требует дообучения и немного других алгоритмов обработки данных. Пока мы гарантируем нормальную ночную работу только при достаточно широком освещении (оно такое на иностранных комбайнах трёх-четырёхлетней давности почти везде), а здесь наши испытатели вышли в поле на отечественном комбайне 16-летней давности с узким мерцающим конусом света впереди. Поскольку ночную уборку большая часть хозяйств не практикует, мы отложили эту фичу на следующий год.
Второе место, где были завышенные ожидания, — это сложные условия по пыли. Например, комбайны, когда идут друг за другом, поднимают облака пыли. Ветер иногда такой, что порывом тучу пыли сносит на комбайн, который сзади. Поскольку ориентируется он не по дорогущему радару, а по обычной камере, ему не видно, что впереди. Видимость в облаках пыли бывает шесть метров. В такие моменты наша система перестаёт видеть: она сигнализирует механизатору и отпускает управление. Нам даже говорили, что лидар отказал. Но лидара на комбайне нет. Механизаторы ругались: «Ну как он не видит?». В итоге именно это почему-то их успокоило насчёт работы. Человек-то помнит и понимает: до комбайна — метров 10, мы едем с такой-то скоростью, порыв пронесёт через минуту, ничего не случится, если дольше — надо вставать. И Пётр Михалыч впереди точно не встанет. Наверное. Система жизненным опытом не обладает и с Михалычем годами не бухала, поэтому она в таком случае останавливает машину и отпускает управление. Так в очередной раз человеческий интеллект побеждает бота.
В релиз не вошли автоповороты. Это та фича, которая невероятно поражала всех комбайнёров, но она же оказалась самой сложной по тестированию: при огромной ширине жатки нужно строить очень много гипотез про то, что выпадает из поля зрения. На каждой машине — свои особенности. Плюс это же требует сложной системы управления с тем, чтобы задавать маршрут заранее или как-то его программировать. Мы — за естественное управление: щёлкнул рубильником робота, ведёшь машину, выходишь на поле, начинаешь убирать. Робот говорит: «Мужик, дай я порулю», щёлкаете вторым рубильником — и он рулит. Нужно повернуть — просто делаете это, ко-пилот отпускает управление, потом ищет новую кромку. Когда находит — снова просит вернуть управление. Всё интуитивно понятно и просто. В итоге поворачивать между проходами мы доверили людям. С автоматизацией ждём конца тестов на сложном рельефе. Обычно проходка — длиной до пяти километров, то есть сами повороты занимают меньше 1 % времени работы комбайнёра.
Камера на комбайне одна, потому что приоритет — цена. Вторая не очень увеличивает цену, но очень увеличивает нагрузку на вычисления, а вычислительный блок на 4 Tflops — большая часть стоимости железа. Камера смотрит влево на жатку. Есть несколько экзотических схем (редко используемых в РФ), когда всё интересное происходит не только слева, но и справа. Вообще у нас две основные системы уборки: загонкой и челноком. Работа загонкой: отрезается кусок поля, и вокруг него всё обкашивают по сужающемуся прямоугольнику или кругу, стремясь к центру. Соответственно мы это делаем против часовой стрелки. Челноком: с одной стороны заезжают и ездят туда-сюда — как на принтере. Образуются пустые прогоны между проходками, но зато можно взять участок любой формы. Так вот, для полей сложной формы есть более оптимизированные схемы, которые требуют смотреть в обе стороны. Возможно, в одном из следующих релизов предложим переключение между камерами.
«Канадская» схема.
Потом — монтаж. В середине лета в самый разгар карантина наши комбайны впервые с прошлого года вдруг все увидели и заметили. Точнее, наверное, заметили ещё в том году, но заказывать комплекты стали прямо перед уборочной (это связано, возможно, с кредитованием хозяйств с короткими сроками). В итоге мы ездили по стране в условиях карантина, что наложило неповторимый отпечаток на работу специалистов по нейросетям. Установщики где-то сидели 14 дней, где-то ходили чуть ли не в скафандрах, но получилось справиться с 50 хозяйствами (и предстоит ещё столько же).
Сталкивались с техсложностями: на некоторых зарубежных моделях (и одной российской) компоновка отсеков крайне плотная. Разница — как между заглянуть под капот «Жигулей» и заглянуть в Макбук. Из полей присылали размеры, мы срочно заказывали новые кронштейны или новые системы крепления под конкретную модель.
Из-за пандемии сменили поставщика оборудования. Гидроблоки были от немецкого производителя. Они нам в марте сказали: «Приходите через четыре месяца». Это была паника, потому что от этого зависела вся история. Нашли российского производителя, они всё поняли, оказались лёгкими на подъём и сделали нам гидравлику. Оперативно, но тоже не без сюрпризов да и не без нервов при постановке задачи, конечно. Но до этого года мы не верили, что это вообще возможно в России.
Что дальше
Роботы убирали злаковые: пшеницу, ячмень, овёс, рожь в южных регионах. Ещё не было серийной эксплуатации на кукурузе и подсолнечнике (это позже по агрономическим срокам). Нам интересны ещё рапс и соя. Рапс — это Центральная Россия, пока там ждём уборки. Соя — Сибирь, Алтай, юг Сибири, Хабаровский край, это уже совсем скоро.
Сарафанное радио не стоит на месте. За последние месяца полтора пришло около десятка очень крупных холдингов из первых 50 со своими кастомными запросами. Какие-то уже приобретают комплекты для тестирования на эту уборочную. Кто-то делает для нас собственное ТЗ и особые хотелки — мы будем думать в межсезонье. Задачи стоят подвязать мониторинг урожайности (комбайн же считает зерно в телеметрии и видит координаты, то есть можно снимать данные по урожайности участков почв до метра), мониторинг работы комбайна (отправка телеметрии в центр). Какие-то хозяйства приходят только к цифре, многим для севооборота важно, чтобы были отмечены критические точки на полях. Важно понимать годовую среднюю урожайность и оценивать каждый год «живые» деньги. Аналитика нужна для того, чтобы примерно понимать загрузку тракторов и технику: докупить или убавить. Там много нюансов вплоть до заказа ГСМ перед сезоном: это всё неприятные предоплаты. Как сказал крупный руководитель крупного хозяйства: «Мы работаем с рынком. Рынок мы не контролируем. Чтобы больше зарабатывать, можем только уменьшать себестоимость. Если не уменьшать — нас съедят тупо».
Срок жизни комбайна пишут 10–12 лет (но мы часто видим 2005 год, ставили в этом году даже на 2001-й). Мы их все дооснащаем. Потому что, пока лошадка живая, на ней ездят. Когда починка становится дороже стоимости нового, берут новый. Кончается, кстати, тем, что старый комбайн становится донором запчастей для других таких же. Да, это просаженная печень и сломанные ноги, но год-два они работают. Потом всё это сгнивает.
И ещё замечательное — отзывы о том, что с этой экономикой комбайн окупается быстрее. Стоит машина, например, 25 миллионов рублей (зависит от производителя и модели). В хозяйстве считают: пять лет — на отечественные машины, иномарка окупается за восемь лет. Теперь — минус год примерно.
Сейчас мы закончим уборку в этом году на серийных моделях и ещё нескольких экспериментальных, сведём экономику и будем публиковаться в международных экономических обзорах. Наши модули будут ставиться как в таком виде — отдельной коробки на комбайны, так и войдут в виде интегрированных устройств в новые комбайны, если всё кончится хорошо. У нас получилось. Два с половиной года жизни команды, кажется, немного меняют мир.
P.S. Если вашего агронома нет на Хабре, а ему это интересно, можно вот тут вот найти контакты: promo.cognitivepilot.com и предметно обсудить, для какого комбайна, какой конкретно набор техники нужен, сколько примерно стоит, и как это можно быстро посмотреть-испытать.
P.S.