Offroad Navigator — это как городской навигатор, только для бездорожья, для которого нет карт, да и маршруты прокладываются не всегда по дорогам, а с учетом проходимости местности.
Расскажу о первом этапе работы над проектом: как мы создаем трехмерную карту местности с использованием дрона, анализируем её проходимость, планируем маршрут движения для бульдозера, и как это все отлаживаем с помощью специального симулятора.
Такой планировщик — часть системы роботизированного строительства в будущем и визуальный интерфейс оператора на переходном этапе отладки и внедрения.
Проект ведется в Университете Иннополис для ПАО «Газпром нефть». Статья основана на открытых данных, согласованных к публикации (в частности ролик и новость по ссылке выше, а также статья).
Роботизированное строительство
Роботизированные такси и роверы для доставки уже заполоняют планету. Но это, понятно, не все области, где нужна беспилотная техника. Одна из интереснейших задач роботизации, которая сравнима с задачей создания беспилотных такси по масштабу — роботизация строительства. Для многотриллионной индустрии строительства потенциальная выгода роботизации состоит в ускорении строительства и повышении качества работ.
Вот некоторые проекты на эту тему в мире:
Autonomous Haulage System, Carnegie Mellon University;
HEAP, ETHZ.
Роботизацией занимаются и сами производители спецтехники (но не так ярко): Komatsu, CAT, Deere. Самые интересные ролики, пожалуй, про Built robotics:
В России по успехам в похожих задачах для горнодобывающей промышленности слышно про компанию Цифра, в том числе по интересным статьям здесь.
Проходимость (traversability)
Задач в роботизированном строительстве множество и часть из них похожа на то, что есть для беспилотных такси и роверов — локализация, обнаружение препятствий, а часть совершенно новая, например, планирование движение ковша. Но первым шагом все равно является автономное перемещение. И здесь тоже есть особенности, связанные с тем, что планирование движения нужно осуществлять не в парадигме дорог и полос, а для всей рабочей зоны, во многом основываясь на проходимости — где можно проехать и где нельзя.
В проекте мы использовали следующие характеристики для формализации проходимости:
наклон поверхности, а точнее 2 угла наклона – крен и тангаж, которые будут у единицы спецтехники, если ее поставить в данном участке местности;
неровность – максимальная величина отклонения поверхности от плоскости на данном участке.
Наклон связан с максимальными углами, при которых не будет опрокидывания для единицы спецтехники (бульдозера, экскаватора, самосвала и др.), а неровность — с клиренсом, максимальной высотой препятствия. Наклон измеряется в радианах (или градусах для человекочитаемости), а неровность — в метрах. Эти характеристики основаны на упрощении, когда участок поверхности под единицей спецтехники аппроксимируется плоскостью и вычисляются ее углы наклона и отклонения реальной поверхности от этой плоскости. Возможно более детальное моделирование, когда учитываются расположения колес (или гусениц) спецтехники, но для больших рабочих областей предложенная модель оптимальна с точки зрения вычислительной эффективности при планировании движения.
Цифровая модель местности
Цифровая модель местности (ЦММ, в данном случае имеется ввиду больше DSM, Digital Surface Model) — это представление местности в памяти компьютера. Мы работаем с двумя форматами: облако точек и ортофотоплан.
Для создания ЦММ мы используем дрон и фотограмметрию и воздушное лазерное сканирование. Каждый из этих двух методов имеет свои преимущества и недостатки. Так, для фотограмметрии нужна хорошая освещенность и требуется постобработка (порой длительная), лазерное сканирование можно делать хоть ночью, оно позволяет получить облако точек сразу, но дороже, требует точной локализации, не работает над водой, а также без дополнительной работы как правило не содержит данных о цвете. Для работы системы желательно иметь облака точек с точностью не хуже 5 – 10 см и соответствующим разрешением (десятки точек облака точек или пикселей на 10х10 см).
Для глубокого анализа проходимости поверхности могут понадобиться дополнительные данные (например, данные георадара). Понятно, что не всегда понятна вязкость грунта, что там под травой и т.п., но для начала считаем, что геометрии поверхности и её фотографии (ортофотоплана) должно быть достаточно для анализа ее проходимости на этапе глобального планирования пути.
Terrain assessment
Для анализа проходимости участка местности (terrain assessment) используем одновременно два метода: аналитический и нейросетевой.
Первый работает на облаке точек и геометрически вычисляет наклон и неровность поверхности. Зная допустимые пределы (treshold) наклонов и высоты препятствий для данной единицы спецтехники, можно классифицировать какой-либо участок как проходимый или нет.
Искусственный интеллект применяется, чтобы дополнить аналитический подход данными о типе грунта. Он работает на фотографиях. Мы реализуем сегментацию на классы грунтовая дорога, трава, земля, вода и т.п. и используем эти классы при планировании, чтоб не ехать в болото, например (хотя оно может быть геометрически ровным).
Планирование
Для планирования движения мы реализуем алгоритм, основанный на быстрорастущих случайных деревьях поиска (rapidly exploring random trees, RRT), работающий с учетом проходимости местности и характеристик кинематической модели спецтехники (радиус разворота, габариты). Алгоритм удобен тем, что можно учитывать модель движения спецтехники (в т.ч. интегрировать выражения кинематики и динамики), а также скоростью работы.
Интерфейс
Сделан в Unity3d и собирается под мобильные ОС (iOS и Android). От городского навигатора отличается трехмерной картой, а также внешним источником навигационных данных. Быстрая визуализация трехмерной карты посредством вычислительного шейдера на основе буфера, карты высот и сетки на основе воксельного пространства — это отдельная история и тема двух дипломных работ. Еще одно отличие состоит в том, что оператору надо смотреть в навигатор чаще, чтоб идти вдоль траектории, т.к. не всегда понятно, где, собственно, дорога. В остальном похоже — даже показываем расстояние до ближайшего поворота.
Симулятор
До отладки всего этого дела «в железе» (что, видимо, потянет на несколько эпичных историй) нужно проверить адекватность подходов и работоспособность разработанного софта. Для этого мы создали реалистичный робототехнический симулятор. Это ключевой инструмент для разработки и отладки интеллектуальных систем управления и компьютерного зрения для робототехники. Здесь у нас есть большая виртуальная строительная площадка с карьером, грунтовыми дорогами, растительностью, деревьями, различными стационарными объектами. Мы моделируем день/ночь и различные погодные условия, что важно для тестирования подходов машинного обучения в сложных условиях. Что касается подвижных объектов, у нас есть бульдозер и дрон. Симулятор обеспечивает тот же API что и настоящий беспилотник и наземный робот. У нас есть все датчики: GPS, IMU, LIDAR, камеры, в том числе эталонная камера сегментации.
Оптимизации
Чтобы алгоритм работал быстро (как обычный навигатор с временем построения маршрута не больше нескольких секунд), потребовался ряд ухищрений. Больше всего времени занимает анализ проходимости (terrain assessment). Так что этот процесс было решено вынести на этап развертывания системы. После построения ЦММ выполняется её предобработка: с заданным шагом (соответствующим размеру единицы спецтехники) выполняется проход по всей ЦММ и создается навигационная карта в новом формате сетки (grid), где каждой ячейке ставится в соответствие структура данных с характеристиками проходимости и классом грунта. Для ускорения этого процесса ЦММ разбивается на «тайлы» и выполняется параллельная обработка этих тайлов.
Другие оптимизации связаны с «управлением случайностью» в алгоритме RRT. Например, когда рост дерева приоритетно направляется на участки определенных классов. Тогда путь сначала строится по грунтовым дорогам, а если это невозможно (есть препятствие на дороге), идет в обход. Или приоритетно выбираются такие пути движения спецтехники, на которых меньше перепадов ориентации. Последнее реализуется за счет добавление характеристики «цены» пути, подобно тому, как это делается в алгоритме A*.
Команда и благодарности
Разработчики проекта: Роман Федоренко, Сергей Копылов, Ринат Сабиров, Ильшат Фатхуллин, Ярослав Шумиченко и Руслан Шакиров.
При работе над проектом удалось создать творческую атмосферу, и он во многом стал для нас экспериментальной площадкой для тестирования новых технологий и подходов. Хочу поблагодарить команду, которая со мной работала, прежде всего за этот творческий увлеченный подход, а также Газпромнефть за то, что интересуются такой «deep tech» разработкой.