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

У нас нет единственного «глаза», который решает, ехать дальше или нет. Есть три независимых источника информации, и они работают параллельно.
Первый: детекция. Нейросеть по изображению с камеры детектирует известные классы объектов: людей, технику, автомобили. Дальше мы оцениваем, как это препятствие расположено относительно нашей траектории движения, и если видим опасное сближение, заранее останавливаемся или пропускаем движущийся объект. Лидар в этой связке уточняет 3D-положение объекта: по облаку точек мы понимаем расстояние точнее, чем по одной камере.

Второй: семантическая сегментация для неклассифицированных препятствий. Яма в асфальте, забор, куст, водоем: то, для чего у нас просто нет отдельного класса объекта. У нейросети есть отдельный сегментационный выход, который размечает кадр на проезжую и непроезжаемую зону. Этот слой мы проецируем на поверхность перед трактором и пересекаем с траекторией движения: если впереди «красная» зона, туда ехать нельзя, даже если мы понятия не имеем, что там за объект.
Третий: сырой лидарный point cloud как дополнительный барьер безопасности. Если что-то физически торчит в облаке точек, но нейросеть его не распознала и не сегментировала, мы всё равно остановимся. Это просто ещё один вход в систему принятия решения об остановке, независимый от первых двух.

Что происходит дальше: объехать, остановиться или ждать
Логика зависит от того, выполняем ли мы сейчас технологическую операцию или просто перемещаемся из точки А в точку Б.
Если мы в режиме перегона (например, едем между коровниками или просто в свободном движении в рамках размеченной зоны или полосы) и понимаем, что можем построить объезд препятствия в допустимых границах, мы объезжаем. Если объехать не получается, останавливаемся.
Если же мы находимся на задании и выполняем конкретную технологическую операцию, скажем, вспашку, правило другое: мы не можем самовольно отклониться от маршрута задания. В этом случае трактор останавливается и ждёт, пока препятствие не освободит путь. Логика простая: если перед нами что-то стоит во время выполнения задания, либо это должно уехать и пропустить нас, либо задание изначально было построено некорректно, с препятствием на маршруте, потому что все стационарные препятствия на поле у нас заранее нанесены на карту, и маршрут строится уже с их учётом. А то, чего на карте нет и что появилось динамически, мы объезжаем, если движемся не по заданию, и ждём, если по заданию.
Как боремся с грязной оптикой
Мы специально спроектировали серийную конфигурацию под реальные условия эксплуатации: скорости невысокие, это не трасса, где камеру закидывает грязью на ходу. В подавляющем большинстве случаев одной протирки за смену достаточно, и даже в довольно жёстких условиях не нужно что-то постоянно чистить руками.
При этом мы даём такую возможность опционально: в комплект поставки можно добавить систему обдува и обмыва сенсоров. Делаем это, в частности, под требования одного из заказчиков в газовой отрасли, где условия эксплуатации жёстче, но опция доступна для любой конфигурации.
На какой дистанции трактор остановится
Здесь нет одной фиксированной цифры: расстояние, на котором мы физически распознаём препятствие, всегда заметно больше, чем то, которое требуется для остановки. Мы можем увидеть автомобиль в 50 метрах впереди и понимать, что он вообще не мешает нашей траектории, тогда просто продолжаем движение.
Дистанция срабатывания настраиваема и зависит от скорости движения: есть минимальное расстояние, и есть запас, который растёт вместе со скоростью, чтобы всегда хватало времени на принятие решения и остановку, что-то вроде временного буфера, а не просто фиксированных метров. Чем быстрее едем, тем раньше начинаем тормозить.
Отдельно обрабатываются стеснённые ситуации, например, когда рядом стоит машина, но мы в принципе можем проехать мимо. Тогда трактор заранее сбрасывает скорость, аккуратно проезжает узкий участок и снова разгоняется, когда препятствие осталось позади. То же самое с человеком, который идёт рядом: мимо него мы едем медленно, чтобы он случайно не оказался под колёсами, и набираем скорость только после того, как разъехались.
Что видит и чем управляет оператор

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

Запуск задания происходит либо вручную оператором, либо по расписанию: например, в коровниках трактор просто регулярно, в заданное время, сам выезжает и отрабатывает маршрут без участия человека.
Как трактор держит связь
Здесь несколько вариантов, и выбор зависит от объекта. Где-то используем обычную сотовую связь. Где-то у заказчика уже развёрнут собственный Wi-Fi на территории. А в одном из проектов мы разворачивали собственную дальнобойную радиосвязь, которая покрывает дистанцию порядка пяти километров и достаточно быстро разворачивается на месте.
Если рядом с трактором нет ни одного из этих специальных каналов, остаётся связь непосредственно с ручным пультом: она добивает примерно на несколько километров. А пользовательский веб-интерфейс на трактор через собственную точку Wi-Fi доступен метров на двадцать, то есть буквально рядом с машиной.
Как трактор понимает, где он находится, без спутников
У нас есть заранее построенная лидарная карта местности, и два лидара на борту постоянно сопоставляют текущую картину с этой картой, определяя положение трактора с частотой обновления данных от лидаров. К этому решению подмешиваются данные инерциальной системы и колёсной одометрии, всё сводится в единый навигационный фильтр, который выдаёт итоговое решение о положении машины. Работает полностью автономно, без участия оператора.

Когда трактор периодически выезжает из помещения на улицу, например, между коровниками, предусмотрено автоматическое переключение на GPS для тех участков, которые мы не картировали лидаром. Здесь важна доступность RTK-коррекции: без достаточной точности GPS-решения и уверенности, что сигнал будет устойчиво доступен на объекте, такой переход не имеет смысла.
Точность позиционирования: сантиметровая. Точность выполнения операции на прямолинейных участках: от двух до пяти сантиметров.
Границы и зоны, куда нельзя заезжать
У трактора есть предварительно размеченная карта: где можно ездить, где нельзя, а также правила движения там, где они нужны (направление потока, правила проезда перекрёстков). Плюс поверх статичной карты всегда работает динамическое распознавание в связке с лидаром: если на привычно свободном месте вдруг оказалось препятствие, которого там никогда не было, мы его увидим и остановимся, даже если по карте там разрешено ехать.Сеть семантической сегментации drivable зон в связке с лидаром дает двойную надежность.
Также в основе ситуационной аналитики выступает встроенная нейросетевая подсистема, построенная на архитектуре трансформеров. В режиме реального времени она выполняет семантическую сегментацию видеопотока, пиксельно классифицируя сцену на проходимые (drivable) и непроходимые (nondrivable) зоны. Благодаря механизмам глобального внимания трансформерная модель улавливает тонкие контекстные взаимосвязи между объектами – она не просто выделяет границы дорог, а понимает структуру сцены. Сеть одинаково уверенно распознает динамические объекты: людей, другую технику, случайно оказавшиеся предметы, и учитывает их в семантической карте как временные ограничения. Это незаменимо при работе в коровниках и на подъездных путях, где пространство ограничено, а обстановка постоянно меняется. В итоге сеть корректно интерпретирует сложные неструктурированные участки, где статическая карта бессильна.

Это позволяет системе мгновенно адаптироваться к изменениям рельефа и при этом работать в связке с предварительной картой. Приоритет всегда остается за динамическим распознаванием, обеспечивающим безусловную безопасность движения.
Что если трактор сбился с маршрута
Здесь у нас пока нет полноценного решения. Если трактор по какой-то причине сместился с задания, базовый сценарий: остановиться и запросить у оператора дальнейшие инструкции. При этом есть встроенная функция возврата на заранее заданную «домашнюю» точку: если её выбрать, трактор сам построит траекторию и доедет до дома. А вот отдельного алгоритма «самоспасения», например, автоматической попытки сдать назад и восстановить исходный маршрут без участия человека, пока не существует. Это то, что нам ещё предстоит реализовать.
Коровник: как трактор распознаёт корм и подстраивает движение
Для коровника у нас заранее построена базовая траектория движения вдоль кормового стола. Но количество наваленного корма каждый раз разное, и трактор смещает линию своего движения так, чтобы ехать по краю кормовой массы, а не по номинальной линии: в реальных заездах это смещение может доходить примерно до 30 сантиметров. Распознаём мы это тоже отдельной нейросетью, которая дает семантическое представление где находится корм и в каких границах: чем корма больше, тем сильнее смещение, до определённого порога. Если корма перед трактором нет вообще, он просто едет по базовой номинальной линии без каких-либо смещений.
Само орудие, подталкиватель корма, устроено предельно просто: оно не имеет собственного привода и крутится за счёт трения о землю и корм при движении трактора. Это классическое инженерное решение, мы не первые, кто его применяет для этой задачи, но собственную реализацию спроектировали сами.
Подъём и опускание орудия тоже прописаны заранее в самом задании: например, в галерее, по которой коров прогоняют на дойку, орудие автоматически поднимается, потому что там животные испражняются, и незачем размазывать это по полу.

Что происходит, если во время работы с орудием появляется препятствие
Если трактор выполняет задание с опущенным орудием и перед ним возникает препятствие, он не пытается строить объезд, просто останавливается и ждёт, пока путь освободится. Логика та же, что и в поле: отклонение от маршрута во время выполнения операции означает прерывание самого задания, а мы исходим из того, что нам должны дать возможность проехать дальше. При этом орудие в этот момент остаётся в том же положении, в каком было: опущенным, если было опущено.
Другое дело: режим перегона, когда орудие поднято и трактор просто перемещается. Тогда предполагается, что можно строить полноценный объезд и манёвр в пределах разрешённой зоны.
Коровы у кормового стола
Здесь у нас нет никакой специальной логики распознавания именно коров как отдельного класса объектов. Как ни забавно, отдельного детектора «корова» в системе попросту нет. На практике коровы сами убирают голову от приближающегося трактора. Если корова упорно не убирает голову из-под трактора, мы останавливаемся. В большинстве случаев мы просто аккуратно проезжаем мимо с небольшим зазором.
Звук работающего трактора коров тоже не особо беспокоит: они довольно быстро привыкают к таким вещам. Звуковой сигнал в коровнике мы подаём в основном тогда, когда трактору нужно проехать в галерею, а путь занят проходящими коровами, и на практике это животных заметно не пугает.
Скорость движения в коровнике задана отдельно и ниже полевой: где-то в районе 4–5 км/ч. Единого жёсткого технического требования по скорости здесь нет, мы выбрали значение исходя из безопасности в достаточно тесном и людном (точнее, «коровном») пространстве.
Как разрабатывалось решение именно под коровник
Здесь мы старались придерживаться принципа унификации: базовая функциональность платформы (планирование движения, исполнение траектории, пользовательский интерфейс, распознавание препятствий) одна и та же вне зависимости от объекта, будь то коровник, коммунальная задача на газовом объекте или поле. Отличается по сути только источник навигационного решения: в замкнутых помещениях это лидарная карта, в поле, преимущественно, GPS.
Обучение модели и неожиданные трудности
Отдельного распознавания или классификации коров как объекта у нас, повторюсь, нет, так что этот пункт можно смело вычеркнуть из списка «сложностей с распознаванием коров». А вот что действительно потребовало дообучения, так это распознавание корма и специфических особенностей объекта именно для этой задачи: собирали данные и обучали модель под конкретную задачу оценки кормовой массы.

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

Самой неожиданной проблемой, которую нельзя было в полной мере предугадать на этапе проектирования, оказалась именно неравномерность корма. Изначально мы не планировали динамически подстраиваться под кормовую массу: предполагалось, что на практике корм распределен более-менее равномерно. В реальности его количество вдоль стола отличается очень сильно, и без динамической подстройки трактор просто не мог нормально выполнять свою функцию. Второй момент: коровы иногда сами заходят на кормовой стол и начинают там ходить, мешая движению трактора; отдельно в симуляторе такой сценарий заранее не прорабатывался, и пришлось разбираться с ним уже по факту.
Сколько времени заняла разработка
В целом проект занял около года. Часть этого времени ушла не столько на специфику коровника, сколько на общее «взросление» платформы: доработку аппаратной части и устранение общих детских болезней, характерных для любой новой техники на раннем этапе. Параллельно велась работа над лидарной навигацией как таковой. Сейчас, когда у нас уже есть отработанная технология лидарной навигации и надёжная аппаратная платформа, аналогичную задачу в новой предметной области, по нашей оценке, можно решить примерно за полгода.
Как обычно, если у вас остались вопросы по конкретным узлам: распознаванию, навигации или логике поведения на задании, пишите в комментариях, соберём материал для следующего разбора.
Комментарии (30)

inkelyad
18.08.2026 11:54Возник вопрос - если вы все равно рабочее пространство сканируете, то нет ли смысла прямо в процессе вбить в пол/стены пассивные навигационные маяки? Ну и маркеры/таблички нарисовать в духе "Проход #17". Чтобы что людям, что трактору проще ориентироваться было.

savickiy Автор
18.08.2026 11:54По сути смысл есть.
В данном случае, в коровниках маяки не нужны. Лидарная навигация здесь и так работает надёжно, вполне хватает трёхмерных ориентиров, стойки кормового стола, стены, колонны, оборудование. Добавление физических маяков увеличит стоимость внедрения на объекте (закупка, монтаж, обслуживание), ощутимого прироста в точности это не даст, когда и без того всё работает. Основной наш принцип не усложнять и не удорожать решение там, где оно и так справляется.
А вот там, где трёхмерных ориентиров мало, идея вполне рабочая. Это открытые или геометрически "бедные" пространства - длинные однородные коридоры, аэропроты, летные поля, участки, где лидару буквально не за что зацепиться. Здесь маяки можно использовать.
Nick0las
18.08.2026 11:54А может маяки вообще не нужны? Ведь если естественных ориентиров мало, то можно добавить искусственных пассивных ориентиров для лидарной навигации.

ciuafm
18.08.2026 11:54А сколько тракторов можно повесить на одного оператора?

savickiy Автор
18.08.2026 11:54Оператору нужно только дать задание трактору, дальше он все делает сам. Поэтому ограничений по числу техники на одного оператора фактически нет.

Sencis
18.08.2026 11:54И следить за исполнением его работы не надо, ведь это не условный агродрон, что повиснет на ЛЭП или в лесополке т.е. оператор может идти по своим делам отправлять на задание другие тракторы? Если нет то как он будет следить за 2мя и более с кучей пультов и красных кнопок?

savickiy Автор
18.08.2026 11:54Следить не надо, если что-то пошло не так (не можем проехать из-за препятствия, потерялись, мало топлива) - мы отсигналим пушом что надо подключиться помочь. В отличии от коптера, где если что-то пошло не так, то он может упасть, трактор просто остановится. Поэтому экстренной реакции не нужно.

ionicman
18.08.2026 11:54А можно странный вопрос от вообще не посвещенного? )
А поставить вдоль всего цеха шнэк или актуаторы (бульдозер наоброт - те борт, который умеет прижиматься к противоположному борту), чтобы корм подгребало - не дешевле и проще будет?

Kurochkin
18.08.2026 11:54А где кнопка / рычаг с большой надписью СТОП? Вот то невыразительное круглое нечто на боку между колесами?

savickiy Автор
18.08.2026 11:54
Kurochkin
18.08.2026 11:54Я и в комментарии к прошлой статье об этом спрашивал. Там вы писали, что это прототип и на серийном изделии надпись будет, даже опубликовали фото... но вот ещё один трактор, без очевидного способа его аварийно-экстренно остановить, даже без надписи "стоп" над этой пимпочкой (не могу это кнопкой назвать), а я снова пытаюсь понять эту логику.
Yukr
только один вопрос: сколько стоит?
savickiy Автор
в базовой комплектации 4,5 млн руб
Yukr
гм.. это грубо 2 трактора МТЗ-82 «Беларус».
покупают?
olga_uskova
да
Yukr
Молодцы, желаю удачи!
savickiy Автор
Здесь сравнение с МТЗ-82 работает только если считать чистую стоимость "железа за деньги". Экономика окупаемости у беспилотной техники обычно считается не так: это работа 24/7 без сменщика, отсутствие расходов на зарплату механизатора и решение кадрового дефицита на селе, где с механизаторами реальная проблема, а в коровниках вообще мало желающих круглосуточно работать.
То есть сравнивать нужно не "трактор против трактора", а "трактор + постоянная зарплата человека" против "робот + разовая инвестиция + эксплуатационные расходы".
Yukr
Я так и сравнивал. 4,5 млн = "Беларус" (2,5млн) и на зарплату механизатора 2млн (ну грубо 20 месяцев, если по 50т зп + соц+мед). Тут ещё надо учитывать стоимость обслуживания/ремонта.
В коровниках не работал, но подозреваю, что как в птичниках и свинарниках, круглосуточно там, всё таки, делать нечего (задать корм, убрать навоз, сделать дезинфекцию, помыть, дойку и прочее не берем, там трактор не нужен).
Lirix_vladimir
Извините, но за такую зарплату только спиться можно
savickiy Автор
В коровнике корм нужно подталкивать круглосуточно. Чем чаще, тем лучше. Ночью человек физически не может это делать. А если вовремя не подтолкнуть корм, хозяйство теряет как минимум несколько литров молока на каждой корове. Поэтому робот заменяет не людей в прямом смысле, а повышает эффективность. Одна такая машина закрывает потребность в четырех разнорабочих.
Ну и как уже говорил, что в сельском хозяйстве очень большой дефицит кадров. Найти доярку или скотника — это очень сложно, несмотря на хорошую зарплату. Доярка получает около 150 тысяч, а подталкиватель корма, например, в Вологодской области — 90 000 рублей плюс жилье.
inkelyad
И можно какой-нибудь тупой стационарной техникой смонтированной прямо по месту. Вон, в птичниках, как я понимаю, просто что-то конвеероподобное или другая непрерывная доставка рядом и под птицами едет.
Трактор, я подозреваю, имеет смысл если он еще для чего-то используется, а не круглосуточно по одному коровнику ездит. Хотя я могу, конечно, ошибаться и тупая механика по всему коровнику - это ад в обслуживании.
Yukr
Вы правы, в птичниках это шнековая или цепная кормораздача, всё в автомате.
В коровниках тоже делают, там только силос тяжелее и плотнее, механика посерьёзнее
Radisto
Тут наверное что выгоднее: тупая механизация коровника или робот-трактор. Тупая механизация обойдется тоже недешево, плюс как вы уже заметили, ее обслуживание
Yukr
вот поэтому я и интересовался ценой
Ajex
По поводу кормов , быв в Дании на ферме, которая построена по приницпу карусели. https://www.youtube.com/results?search_query=rotary+milking+parlor
Это доилка, но корма устроены точно также. Вокруг доилки лежанки для коров, и двигается конвеер по которому из диспенсера насыпается корм (просто погрузчиком палеты в размельчитель) , а потом он транспортируется по ленте с которых коровки кормятся.
Эффективность там какая-то запредельная, на всей ферме работает человек 5.
Уборка отходов также автоматизирована (ни каких сверхтехнологий, просто решетки под лежанками). + сбор биогаза.
Lirix_vladimir
Тут бы оценить капиталовложения. Это же все очень дорого сразу на входе
Yuriy_krd
Как-то вы умалчиваете ,что вместо более дешевого механизатора нужен, как минимум, круглосуточный мониторинг и готовность тех.персонала выехать на ремонт или обслуживание трактора, а стоимость такой бригады, как я понимаю, несколько выше, чем оклад механизатора.
savickiy Автор
Думаю про стоимость владения и обслуживания напишу отдельную статью, чтобы закрыть эту тему.
Yukr
это было бы весьма полезно
Sencis
У вас в статье довольного много заморочек с обьездом препяствий и карта и маршруты как вы пишите должны-быть построены заранее. Следовательно для этого нужен хотя-бы один специалист оператор этого трактора + ПО, RTK базовую станцию лучше содержать свою. Тогда почему вы исключаете затраты механизатора? Если трактор не push button решение + его наверняка надо обслуживать, чистить, заправлять?