Беспилотник на практике: немного деталей про тестовую машину от StarLine

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

Ниже — небольшой рассказ про устройство беспилотного автомобиля, созданного питерской командой StarLine на базе опенсорсной платформы и цифровой модели дороги.

fa81a47bd9717aa64538456c4ddca18c.png

Мы пошли беседовать с их инженерами потому, что их авто попало в топ-50 проектов Технологического прорыва НТИ, а также выиграло соревнование «Зимний город», где машины с автопилотом проходили на время 50-километровую дистанцию на полигоне с городской обстановкой. Другими словами, это не выставочный образец, который сделал три круга по территории Сколково, а реальная обкатка сложной комбинации платформ и технологий.

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

Выбор носителя и навесного оборудования

Чтобы облегчить управление автомобилем, StarLine подбирал легковушку с автоматом, электроусилителем руля и максимальным количеством автоматических систем помощи водителю — автопарковкой, адаптивным круиз-контролем, ESP, ABS. Выбор пал на Skoda Superb.

Затем выбрали датчики и «органы зрения». Беспилотник ориентируется в пространстве при помощи видеокамер, лидара (для ряда тестов их устанавливали несколько), радара, а также высокоточного приемника ГЛОНАСС/GPS.

Устоявшейся конфигурации всего этого оборудования и мест его размещения на автомобиле пока нет — StarLine, как и другие разработчики подобных проектов, экспериментирует.

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

от так выглядит защищенный блок с камерами и датчикамиот так выглядит защищенный блок с камерами и датчиками

Рядом с камерами на крыше оставили место для высокоточного GPS и основного 128-лучевого лидара. Дальность действия последнего всего 100–120 м, поэтому по ходу движения его показания дублируют фронтальным четырехлучевым лидаром с дальностью около 300 м. Он позволяет лучше видеть динамические объекты, а заодно обеспечивает резервирование. Для расчета маневров задним ходом и перестроения между полосами сзади установили еще один лидар.

Сколько лидаров ставить

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

Некоторые проекты беспилотных автомобилей обходятся без лидаров. Но по цифровой модели города без измерения расстояний далеко не уехать. Чтобы позиционировать автомобиль на модели с точностью до 10 см, приходится дополнять данные высокоточного ГЛОНАСС/GPS-приемника результатами лазерной дальнометрии до объектов, зашитых в модели. В теории задачу определения расстояний до характерных особенностей местности можно решить и с помощью стереокамер. Но лидар выигрывает время и существенно экономит аппаратные ресурсы. Он практически мгновенно получает данные о расстояниях до объектов, которые можно использовать и в других алгоритмах.

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

На некоторые датчики цена упала в десятки раз. Те же высокоточные GPS-приемники еще два года назад стоили порядка 10–20 тыс. долларов, а сейчас их можно приобрести за 50–100 долларов.

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

Дополнительный лидар на заднем бампереДополнительный лидар на заднем бампере

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

Управляющая электроника

Основные вычислительные мощности разместили в багажнике. Обратите внимание, что система имеет жидкостное охлаждениеОсновные вычислительные мощности разместили в багажнике. Обратите внимание, что система имеет жидкостное охлаждение

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

Сложнее всего было интегрировать электронику в автомобиль. Казалось, на старте проекта всё продумали — осталось только провода подключить. Но без сюрпризов и реверс-инжиниринга не обошлось.

Например, изначально механизм торможения автопилота подключили в качестве эдакого адаптивного круиз-контроля. И все было хорошо, пока не потребовалось научить беспилотник ехать задом. Тут-то и выяснилось, что современный автомобиль не умеет ездить задом на «круизе». Пришлось менять логику — врезаться в тормозную систему между главным тормозным цилиндром и системой управления ABS, эмулируя сторонним блоком действия водителя. Блок взяли самый простой из всех, что нашли на рынке, — от Toyota Prius.

Для решения части задач на уровне взаимодействия с автомобилем, например для работы с цифровыми CAN-шинами, StarLine использует компоненты собственного производства. Конкретно в этом случае использовали единственный в беспилотнике компьютер в «автомобильном» исполнении — с защитой от вибраций и температуры. Он мониторит работу остальных блоков. А вот вычислительные системы автопилота — самые обычные с поправкой на резервирование. Разрабатывать под них софт гораздо дешевле и быстрее, а это дает возможность оперативнее проверять гипотезы относительно управления беспилотником.

В системе детекции и классификации объектов, распознавания знаков и сигналов светофоров, предсказания поведения других участников дорожного движения, а также фильтрации данных с датчиков используют пару игровых видеокарт Nvidia 1080Ti.

Электронику собрали внутри рамы из алюминиевого профиля, который прикрепили к кузову через виброгасители. Изначально все это охлаждали воздухом, но так и не решили проблему с отводом тепла из замкнутого пространства. Тогда инженеры перешли на жидкостное охлаждение с дополнительным радиатором снаружи — в нише бампера. Теперь антифриз заливать надо не только под капот, но и в систему управления в багажнике.

Цифровая модель дороги

78bc34dff1d01f89b356d4bbec71c3c7.png

В базовом варианте автомобиль StarLine ориентируется в пространстве, используя точную цифровую модель дороги. Она позволяет упростить алгоритмы управления и сэкономить на аппаратных ресурсах.

Например, необязательно пытаться «разглядеть» знаки начала и конца населенного пункта — вместо этого достаточно опираться на информацию о том, что мы в городе и здесь разрешена скорость не более 60 км/ч.

Техническое зрение с датчиками, камерами и лидарами дополняет цифровую модель, выявляя отличия реального дорожного движения от карты, — распознает препятствия, знаки, движущиеся в зоне видимости объекты. Если стоит знак о дорожных работах и полоса перекрыта, алгоритм не даст въехать в огороженную зону.

Чтобы подход с управлением через цифровую модель был применим, эту модель надо постоянно актуализировать. Для этого данные о дорожных работах и других помехах должны оперативно попадать в цифровую модель где-то в «облаке», а автомобиль — так же быстро получать их. И вот здесь StarLine рассчитывает на процессы цифровизации, которые параллельно идут в городской инфраструктуре. Многие конкурирующие проекты не закладываются на них, но StarLine считает, что эти технологии ближе, чем кажется. 

В той же Москве уже внедрили цифровую модель дорог. Этим проектом занимается Мостранспроект.

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

Оперативно доставлять изменения цифровой модели беспилотнику предполагается через взаимодействие с инфраструктурой V2I — vehicle to infrastructure. Хотя готовых масштабных решений V2I в российских городах пока нет, уже работают пилотные проекты, демонстрирующие простейшие сценарии — взаимодействие транспортного средства со светофорами для получения информации об их состоянии и рекомендованной скорости движения. 

В Питере подобные решения внедряют сразу две компании. Со светофорами одной из них автопилот StarLine уже обменивается информацией. Таких объектов в городе сейчас установлено около десятка.

Глобально же V2X — идея обмена информацией между автомобилем и чем бы то ни было — находится на стадии войны стандартов. StarLine возлагает на эту идею большие надежды. В городе V2X может сделать беспилотные автомобили агентами оперативного обновления цифровой модели дороги и контроля инфраструктуры. 

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

А на трассе V2X можно использовать, чтобы уточнить положение автомобиля в полосе на сложных участках. Вокруг трассы у нас традиционно однотипный лес на сотни километров, поэтому беспилотник не может применять методы локализации по окружающим объектам: рядом с дорожным полотном их просто нет. Зато можно использовать объекты RSU (road side unit) с собственными высокоточными GPS-приемниками для трансляции на борт автомобиля поправок позиционирования. При небольшом расстоянии до RSU итоговая погрешность будет минимальной — единицы сантиметров.

Платформа и алгоритмы управления

Второй инженер на заднем сидении снимает телеметрию и следит за поведением беспилотникаВторой инженер на заднем сидении снимает телеметрию и следит за поведением беспилотника

В основе беспилотника — опенсорсная платформа Autoware. На момент начала работы это был самый развитый проект с открытым исходным кодом, который помог команде погрузиться в тонкости построения подобных систем. Кстати, популярную платформу Nvidia Drive рассматривали, но отвергли из-за недостатка гибкости — выбрали легко модифицируемое решение.

По мере развития своего автомобиля команда разобрала Autoware по винтикам и шаг за шагом переписала его, опираясь на тонкости ПДД и результаты собственных испытаний.

На текущем этапе в ПО беспилотника используют ROS поверх Linux. Большинство программных модулей реализуют на С++. В качестве вспомогательного инструмента, например для быстрого прототипирования решений, широко используют Python. Для тестирования применяют Docker-контейнеры. Для хранения пространственных данных — геопривязанных облаков точек — используют PostgreeSQL. В скором времени StarLine планирует предоставить доступ к этим данным сообществу разработчиков.

Проблемы на практике: когда лидар путает дым из трубы с бетонным столбом

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

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

Фото с соревнований «Зимний город», где машина StarLine первой прошла дистанцию 50 кмФото с соревнований «Зимний город», где машина StarLine первой прошла дистанцию 50 км

Наматывая тестовые часы в Питере, автомобиль StarLine проходит жесткую школу выживания в условиях, когда с утра может быть солнце и –10, а вечером +1 и ливень. 

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

В этом году условия позволили разработчикам от души поработать с фильтром снега, и сейчас алгоритм довольно хорошо «переваривает» сильный снегопад. 

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

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

Отдельная история — учет действий систем помощи вождению, которые есть в современных автомобилях и активируются при езде в сложных условиях. Например, если срабатывает ESP, на низком уровне автомобиль просто не даст увеличить газ, пока не будет сцепления с дорогой. Системе управления надо учитывать этот момент и не пытаться выжать газ на полную. Это знание тоже пришло из практики — из экспериментов на грунтовке.

В целом в сложных условиях вождения именно набор датчиков, работающих по разным физическим принципам, обеспечивает уверенное движение. Данные с одних сенсоров работают как инструмент проверки на валидность информации с других. 

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

Автомобиль фиксирует моменты, когда данные с GPS начинают расходиться с логикой. Для прохода таких участков он применяет алгоритмы, позволяющие определить свое местоположение по окружающим объектам (с использованием цифровой модели дороги), а также считает пройденное расстояние по числу оборотов всех колес — использует одометрию. В совокупности с использованием инерциальной навигации и визуальной одометрии с камер это позволяет доехать до конца тоннеля или пересечь локальный «бермудский треугольник».

Катаясь по городу в разных погодных и дорожных условиях, StarLine накопил огромный опыт. Сейчас за рулем всегда присутствует оператор, который в любой момент может перехватить управление — «перерулить» алгоритмы беспилотника. Это работает как круиз-контроль на современных машинах. Достаточно совершить любое действие: повернуть руль, газануть, нажать на тормоз — и автопилот отключается.

Беспилотник готов ехать в полностью автономном режиме, но только по свободному городу и предполагая, что остальные участники движения соблюдают ПДД. С пробками пока проблемы. Часть водителей «творчески» трактуют ПДД, поэтому тяжело предсказать, как в следующую минуту будут маневрировать автомобили по соседству. Учить автопилот предугадывать «езду по понятиям» команда StarLine планирует через machine learning. Нейросети будут обучать на результатах анализа видеозаписей движения. Посмотрим, пропустит ли он после этого наглеца из правого ряда под стрелкой.

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

Lexus уже на другой платформе — Baidu ApolloLexus уже на другой платформе — Baidu Apollo

У StarLine есть второй проект беспилотного автомобиля — на базе китайской опенсорсной платформы Baidu Apollo. В отличие от первого, он больше смотрит на камеры, чем на данные лидара и цифровую модель дороги. И практика пока не дает однозначного ответа на вопрос, какой из подходов лучше.

© Habrahabr.ru