Top.Mail.Ru

Сенсоры беспилотных автомобилей

25 апреля 2019 ПостНаука

Кандидат физико-математических наук Тимур Идиатуллов о том, как беспилотник ориентируется в пространстве, как используются инерциальные сенсоры и почему автомобили вылетают с дороги.

В проекте «Движение будущего» при поддержке организаторов Технологических конкурсов Up Greatмы рассказываем о главных тенденциях в разработке новых видов транспорта.

Почему так сложно совместить данные со всех сенсоров беспилотника? Объясняет кандидат физико-математических наук Тимур Идиатуллов.

Одна из актуальных задач, которая стоит перед разработчиками беспилотного транспорта, — это проблема sensor fusion, подвид технологии data fusion — смешения данных, но в приложении к тому, что у нас есть данные от оборудования, которое установлено на беспилотном автомобиле. Как правило, главная проблема — определить, какой же сенсор в данный момент будет восприниматься как главный. Следующий из этого вопрос: как определить, когда наступил тот самый момент, когда мы выбираем определенный сенсор в качестве основного источника данных?

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

В зависимости от различных условий эта информация может быть разной степени точности. Беспилотники движутся с использованием оборудования, которое обычным людям редко бывает доступно: здесь и сантиметровая точность, и сантиметровый расчет скорости, и вектор с точностью до градуса при движении в определенном направлении. Проблема возникает, если сигнал вдруг пропадает или в силу погодных условий поправки RTK-системы перестают приходить вовремя. Если не будет внешних дополнительных данных, то автомобиль будет представлять, что информация о позиции, в которой он находится сейчас, актуальная. Но в реальности RTK-система или GNSS-система будет сообщать ему данные, которые она получила две-три секунды назад. Если автомобиль оперирует данными, которые он получил несколько секунд назад, и при этом едет на скорости 100 километров в час, это очень страшная проблема. Беспилотные автомобили улетают с дороги или не поворачивают в нужный поворот чаще всего тогда, когда данные о положении и ориентации автомобиля не соответствуют реальной ситуации. Очень важно уметь предсказать этот момент и на основании дополнительных данных принять решение передать управление и получать базовую информацию от других источников данных.

Четвертый уровень беспилотности предполагает, что, что бы ни случилось с автомобилем, он сможет мягко припарковаться в безопасном месте. Как припарковаться безопасно, если данные отстают секунд на пять-десять и вы даже не знаете, где находитесь? Автомобиль ничего не понимает на дороге и не может принимать решения. Конечно же, остальные сенсоры должны ему помочь. Есть несколько классов сенсоров, которые в данном случае вызывают интерес. Возникает вопрос, какие именно сенсоры, когда и чем могут помочь принять конкретное решение. Системы RTK сами по себе не действуют без помощи карт, которые определяют, как может двигаться транспортное средство, по какому маршруту, в каком направлении. Проблема заключается в том, как попытаться найти соответствие между картой, неправильным пониманием о том, где вы находитесь, и информацией, которая поступает снаружи.

Проблема sensor fusion — попытаться смешать данные с остальных сенсоров таким образом, чтобы ассистировать системе точного позиционирования, за нее принять решение, как двигался автомобиль, насколько не совпадают данные от системы точного позиционирования и от сенсоров. Базовые сенсоры, например сонары, как правило, бесполезны в этом смысле. Они помогают только не врезаться во впереди идущий автомобиль, не задеть стенку и работают только на небольших скоростях. Чаще всего в качестве ассистента к RTK-системам используются камеры или 3D-лидары — объемные сенсоры. Различные алгоритмы вроде SLAM и распознавания разметки могут попытаться дать нам информацию о том, что происходит. В частности, можно использовать карту сантиметровой точности, на которую нанесены все дефекты дорожного полотна и окружающих объектов, геометрические характеристики. Поступившая информация от соответствующих сенсоров и облако точек от 3D-лидаров накладываются на трехмерную карту с некоторым интервалом. Возникает понимание, насколько далеко автомобиль находится от места, которое может быть на этой карте. Если он уехал далеко, это проблема, поэтому нужно резко останавливаться и прекращать движение. Но если удается найти совпадение в пределах нескольких секунд, автомобиль может попытаться построить траекторию, исходя из того, что он теперь более точно понимает, где находится, с какой скоростью движется, и попытаться скорректировать расчеты, найти свое реальное положение на карте и двигаться.

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

Самая большая и важная часть из всех алгоритмов, которые сейчас разрабатываются, — это задача убрать дополнительные объекты, чтобы можно было сопоставить картинку, которая наблюдается на сенсорах, с тем, что должно быть на самом деле, то есть что хранится в памяти у беспилотного автомобиля. Если посмотреть, как выглядят технологические картинки, которые рисуют себе разработчики, которые не показывают сторонним наблюдателям и даже пассажирам, можно увидеть, что на реальное изображение, полученное с камер, накладываются виртуальные трассы, виртуальная разметка: облака точек, призраки домов, различные объекты, помогающие беспилотной системе ориентироваться, пытаться найти себя в конкретном пространстве. Точное позиционирование — это хорошо, но проблема всегда будет. Стандартные RTK-системы всегда отстают от одной до двух секунд, и это нормальная задержка. Автомобиль на скорости 100 километров в час за одну-две секунды может проехать очень большое расстояние — настолько большое, особенно если есть поворот, что вы в принципе потеряете ориентацию относительно карты. Вам нужно всегда «смотреть назад», а после накладывать свое движение вперед. Именно поэтому инерциальные сенсоры тоже находят большое применение в беспилотном транспорте, позволяя оценить, что происходит. Одометрия играет важную роль — это расчет общего пути, пройденного автомобилем в каждый конкретный момент времени. В том числе на базе одометрии вычисляется, например, скорость автомобиля.

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

В связи с этим специфичными выглядят попытки рассуждать над вопросами морали поведения беспилотных автомобилей в критичных ситуациях: нужно выбрать в качестве жертвы пожилую женщину или лучше уничтожить пассажиров внутри автомобиля? Одна из самых больших проблем вовсе не в этом. Автомобиль в любом случае будет стараться действовать таким образом, чтобы максимально эффективно выполнить свою задачу двигаться безопасно и остановиться. Очень большая проблема — это вообще понять, туда ли он движется, так ли он движется и есть ли у него возможность двигаться так, как он хочет. Без решения этой проблемы остальные вопросы являются бессмысленными, это будет просто катание по площадке. Если мы хотим ездить по дорогам, мы должны научиться понимать, где находится дорога, как по ней ехать и с помощью какой информации мы можем понять, туда ли едем, какие объекты находятся на дороге, и решать задачу комплексно. Обработка данных сенсоров и использование различных инструментов — одна из задач, которые необходимо решить в ближайшее время, несмотря на то что задачи работы с каждым отдельным сенсором уже давным-давно решены.



Тимур Идиатуллов
кандидат физико-математических наук, заведующий кафедрой «СМАРТ-технологии» Московского политехнического университета


Источник: ПостНаука