Делаем беспилотник, год спустя

Привет! Я Роберт, основатель сервиса ЯКурьер. Мы сделали и развиваем платформу, которая решает все задачи логистики. Начиная от SaaS для автоматизации своего подвижного состава с использованием алгоритма для построения оптимального маршрута, заканчивая услугами фулфилмента и доставкой до маркетплейсов. Все это в рамках одного личного кабинета.

Делаем беспилотник, год спустя

Благодаря сильной IT-компетенции, мы выделили небольшой отдел и вот уже больше двух лет мы развиваем беспилотные технологии. Сегодня я хочу рассказать, какие задачи логистики это решает и с какими трудностями мы столкнулись.

Две задачи для реализации беспилота

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

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

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

Железо

Мы начали искать разработчиков железа для определения местоположения платформы в пространстве. Такая система называется РТЛС, по сути это тот же gps/gnss, только автономный, независимый, имеет более высокую точность и может использоваться в помещениях. Система состоит из неподвижных анкеров (или маяков) с заведомо известными координатами и подвижных меток. Она должна обеспечивать извлечение измерительных данных и вычисления локально на метках, то есть на транспортных платформах, где они устанавливаются.

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

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

Доработки

Доработки нужны были в отношении расчета и оценки не только точечного местоположения (мультилатерации), но и контроля ориентации в пространстве. Основная трудность была в том, что одному и тому же набору отдельных отметок положения (точек) соответствует математически бесконечное число траекторий. И точно в срок все было готово. При доставке в Россию, мы очень переживали, что будет не то, работать будет не так или вообще не будет. По деньгам ушло около 150К, но их устройства превзошли все наши ожидания по всем параметрам.

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

Система позиционирования

Что сделали:

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

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

машинка-робот на базе микрокомпьютера Raspberry Pi
машинка-робот на базе микрокомпьютера Raspberry Pi

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

Оказалось, что из-за избыточной простоты напряжение питания на ШИМ-драйверах его приводов не стабилизировано, и базовая скорость «плавает», в зависимости от заряда батареи. Также при отсутствии инерциальных датчиков довольно жутко обеспечивать надлежащие углы поворота, как, впрочем, и стабильное движение по прямой и много-много чего еще…

Машинка, что сделали:

  • разработали математическую модель;
  • интегрировали систему RTLS;
  • применили алгоритм итерационной мультилатерации;
  • реализовали алгоритм адаптивной фильтрации по Калману;
  • разработали алгоритм автоматического управления как для «свободного» движения, так и для ведения по маршруту;
  • провели успешные тесты.

И что в итоге?

Теперь у нас есть стабильный, неприхотливый продукт, который может перемещаться, следуя виртуальным меткам и останавливаться, обнаруживая помеху обычным парктроником. Параллельно с этим, мы долго выдумывали и писали свою интеллектуальную сеть. Единственное, что нас отличает от больших корпоратов, это креатив :). Мы придумали, как принято говорить всем стартапам), уникальную нейронку, которая обучается по эволюционным алгоритмам, рассматривающим многообразие видов (паттернов). Что позволяет принимать решение и при возникновении препятствия, объезжать его. Видео презентация работы системы

Главная особенность в том, что она заранее устойчива в условиях открытого мира (Open Set), когда приходится сталкиваться с чем-то непредсказуемым, с тем, чего не было в обучении.

Вторая — способность помнить ранее полученные навыки нам удалось преодолеть так называемое «катастрофическое забывание»!

Третья особенность: мы видим, как нейронка учится. На первом релизе, на дата сете MNIST, она допустила 0,25% ошибок. Мы подружили ее с нашей Toyota Prius, и сеть учится измерять курсовой угол и уровни газ/тормоз по видеопотоку.

Для обеспечения нейронки релевантными видеоданными мы разработали time-domain — фильтр видеопотока, подавляющий статические, малоподвижные области изображений, а также разработали подходящие для этого сверточные пространственные фильтры.

time-domain — фильтр видеопотока

Вместо заключения

Сейчас мы делаем полноразмерную платформу для перемещения грузов. Для этого мы возьмем шасси Портера, добавим немного дизайна, поставим контроллеры для управления и приправим электродвигателем. И второй, более компактный вариант, формата AGV-автоматически управляемая тележка. Имея готовую технологию, уже сейчас, мы можем организовать перемещение грузов, пассажиров на любой закрытой территории: склады, парки, заводы, аэропорты. А вот систему для перемещения грузов между городами мы планируем закончить в 2022 г. Ждем пилотов)

44
2 комментария

Круто, за этими технологиями будущее. Классно, у вас все получится!

Ответить