Как устроен полигон для беспилотных автомобилей Яндекса
Уже в недалеком будущем на улицах городов могут появиться машины без человека за рулем. Редакция N + 1 побывала в этом будущем — на полигоне, где идет «обучение» и тесты беспилотных автомобилей. Рассказываем, как устроен город беспилотников, где «улицы» перебегают виртуальные пешеходы, как чувствуют себя инженеры-испытатели, и что будет, если сесть на дороге прямо перед движущейся машиной.
Полигон для котиков
Полигон Яндекса расположен на юге Подмосковья. Раньше здесь была стоянка старой техники, от которой осталась лишь заасфальтированая площадка — практически идеальное место.
Инженеры компании не стали тратить много усилий и денег на создание искусственного города для машин. На большей части полигона нет ничего, кроме разметки, имитирующей различные участки дороги и перекрестки, а также знаков и светофоров.
Размер полигона составляет примерно 600 на 300 метров, поэтому сотрудники перемещаются по нему в основном на гироскутерах и электросамокатах. Кстати, на полигоне есть «пасхалки» — например, одна из «улиц» полигона носит название Третьего закона.
Полигон поделен на две основные зоны: «город» и «шоссе». На «шоссе» отрезки дороги более длинные, есть плавные съезды, а скоростной режим установлен на уровне 60 километров в час.
Самое необычное место этой зоны представляет собой старый ангар, переоборудованный в имитацию тоннеля. Он нужен для того, чтобы проверять, как датчики и алгоритмы реагируют на резкий перепад освещенности.
В «городской» зоне, помимо разметки, есть «здания» — грузовые контейнеры, стоящие по бокам от дороги и закрывающие беспилотнику обзор перед поворотом, подобно настоящим домам. Любопытно, что во время нашего посещения беспилотники не учитывали слепые зоны и не тормозили перед ними.
Такая имитация города кажется очень условной, слабо похожей на реальные условия и оттого бесполезной. Но на самом деле подобные полигоны — это часть стандартной практики по подготовке беспилотного автомобиля к езде по настоящим улицам. К примеру, полигоны Waymo и Uber выглядят практически так же, и на то есть свои причины.
Дело в том, что тестирование на полигоне и не рассчитано на то, чтобы подготовить на нем машину, уже завтра готовую превратиться в такси без водителя. Полигон нужен для целого ряда других задач.
Во-первых, он позволяет отработать «рутину» — базовые сценарии, описывающие большинство стандартных дорожных ситуаций.
Во-вторых, на полигоне можно протестировать новые версии алгоритмов без опасности сбить пешехода или врезаться на большой скорости в другой автомобиль с людьми. В-третьих, полигон нужен для подготовки водителей-испытателей.
Наконец, в-четвертых, все новые беспилотники сначала в течение нескольких дней обкатывают на полигоне, чтобы проверить их на работоспособность и корректность.
Обычно на полигоне Яндекса находятся около десятка беспилотников без людей в салоне, причем функционируют они, в отличие от людей, круглосуточно, даже глубокой ночью.
Сотрудники, работающие на полигоне, называют их котиками, и после целого дня, проведенного рядом с беспилотниками, к ним действительно проникаешься симпатией и начинаешь относиться как к полуживым существам.
Останавливаются машины лишь по двум причинам: если уровень бензина упал до 15 процентов или если данных о поездке накопилось слишком много и их пора выгружать.
Вторую причину можно было бы устранить, передавая данные по беспроводной связи, но объем логов за один заезд, продолжающийся полдня или даже больше, составляет несколько десятков гигабайт. Такой объем данных гораздо проще и быстрее «сливать» в гараже, подключив автомобиль к компьютеру по сетевому кабелю.
Инженеры и разработчики видят, что происходит с каждой машиной, в реальном времени. Для этого на мониторе в небольшом двухэтажном офисе на полигоне отображаются прямые трансляции из салона всех активных автомобилей.
Кроме того, на панели можно видеть местоположение каждого беспилотника, ключевые метрики и другое. На соседний монитор выводятся данные о том, сколько уже проехал этот автомобиль, а также статус собираемых им логов.
Пешеходы виртуальные и настоящие
На полигоне машины ездят довольно медлительно и предельно осторожно. Это связанно с форматом тестирования — автомобили ездят по полигону без человека в салоне. Поскольку подстраховать алгоритмы некому, на полигоне инженеры выставляют им крайне «осторожные» параметры.
Кстати, в городе алгоритмы управления способны самостоятельно определять, что дальность обнаружения объектов снизилась, к примеру из-за дождя, и выставлять похожие настройки, чтобы успевать замечать все опасности в таких условиях.
Также у автомобилей без водителей есть выставляемые вручную параметры для зимнего и летнего вождения, хотя сами алгоритмы остаются теми же.
У беспилотников на полигоне есть больше десяти стандартных маршрутов, по которым они ездят сами по себе, отрабатывая штатные ситуации. Но это — самый простой и рутинный режим. Гораздо интереснее становится, когда в дело вступают люди, причем не только реальные, но и виртуальные.
Программисты Яндекса разукрасили серые будни самоуправляемых автомобилей, разработав режим смешанной реальности. В нем к объектам, распознанным в реальном мире, добавляются посторонние объекты, причем не самые законопослушные. Например, перед беспилотником может внезапно перебежать дорогу виртуальный пешеход или выехать дрифтующий водитель.
Несмотря на то, что все эти объекты и ситуации виртуальны, машина реагирует на них так же, как и на настоящие объекты, тормозя и уклоняясь от столкновений.
Визуализация всего происходящего выводится на iPad, установленный на передней панели. На экране можно видеть автомобиль, перемещающийся по карте, а также все объекты вокруг, будь то другие машины или люди.
Самое главное, что показывает визуализация, — это логика действий алгоритмов. На экране постоянно виден текущий планируемый маршрут и потенциальные маршруты. Например, помимо текущего маршрута по своей полосе алгоритм показывает, как будет выглядеть маршрут, если он решит перестроиться в другой ряд.
Кроме того, на экран выводятся причины остановок и маневров. Например, если беспилотник притормозит перед знаком «Уступи дорогу» или статическим препятствием, на планшете будет отображаться соответствующий знак.
То, как беспилотные автомобили Яндекса взаимодействуют с пешеходами, мы проверили на себе, отправившись в ту часть полигона, где расположен «город» и проходят подобные испытания.
Так, мы убедились, что машина заблаговременно тормозит перед человеком на дороге и либо объезжает его, либо, если места для этого нет, просто останавливается и ждет.
Кроме того, мы экспериментально выяснили, что беспилотник не считает за препятствие лежащую на асфальте куртку.
Мы также обнаружили у автономных автомобилей вероятный «баг»: один из них начал объезжать сидящего на асфальте человека, остановился рядом с ним, а затем вывернул руль и двинулся дальше по рискованной траектории, угрожая задеть сидевшего.
Обычно же алгоритмы как раз для таких случаев добавляют к габаритам огибаемого объекта небольшую зону безопасности.
QA-инженеры за рулем
Важная задача, ради которой компания использует полигон — это обучение испытателей, которые во время поездок по «городу» сидят на водительском сиденье и следят за работой алгоритмов.
Яндекс называет своих водителей QA-инженерами. Каждый водитель-испытатель должен, пускай и не в мельчайших подробностях, понимать, как работают датчики и алгоритмы автомобиля, причем как с точки зрения поведенческой логики, так и восприятия окружающей среды.
В рамках теоретической подготовки QA-инженеров Яндекс проводит совместные встречи, в которых участвуют и водители, и разработчики. Это позволяет им обменяться мнениями о том, как должны работать те или иные системы и как они работают на самом деле.
Зачастую именно водители могут подсказать разработчикам, что именно, предположительно, вызвало нестандартное поведение автомобиля. Это, в свою очередь, повышает скорость исправления «багов».
Конечно, одной теории водителю-испытателю недостаточно. Его главная задача все же заключается в том, чтобы реагировать на нештатное поведение во время езды. Для этого QA-инженер должен быть готовым к нестандартной ситуации не только в первые десять минут, а во время всего заезда.
Проверяют эту готовность во время заездов на полигоне в специальном режиме, в рамках которого беспилотник в случайном порядке имитирует ошибки. Например, во время медленного поворота он может резко повернуть в другую сторону и выехать на обочину, а во время подъезда к стене резко ускориться.
Если что-то пойдет не так, человек всегда может перехватить управление. Для этого ему достаточно приложить к рулю даже небольшое усилие. Через мгновение после этого система отдаст управление и сообщит об этом звуковым сигналом.
Есть и более хитрые способы проверки. Например, тестировщики в ходе испытаний могут незаметно отключить один или несколько датчиков. Ничего не подозревающий инженер-испытатель должен был по косвенным признакам понять, что машина начала воспринимать мир по-другому, и остановить заезд.
Кроме того, у каждого беспилотника в салоне и в багажнике есть по большой красной кнопке, способных мгновенно отключить всю беспилотную часть машины и превратить ее в обычный автомобиль. В реальности водители их не применяют — кнопка нужна на случай совершенно экстренных ситуаций, таких как пожар в отсеке с компьютером.
Мы протестировали режим водителя-испытателя на себе, правда, не в случайном режиме, а под управлением оператора. Нам дали проехать пару кругов по маршруту, чтобы мы привыкли к тому, что автомобиль ускоряется и поворачивает самостоятельно.
К этому действительно необходимо привыкнуть, потому что поначалу водительские инстинкты противятся автономности автомобиля. Еще более неуютно стало потом, когда инструктор начал давать команды машине с клавиатуры, нажимая на «стрелочки», как в компьютерной игре.
Самое главное в этой работе — научиться быть всегда наготове, но при этом не находиться в постоянном напряжении от ожидания резкого поворота руля или ускорения. У нас за несколько минут тестирования это не получилось.
А вот водители-испытатели Яндекса проводят за рулем суммарно до шести часов в сутки с перерывами, чтобы не терять концентрацию.
Как заглянуть за угол
Для N + 1 эта поездка на беспилотнике Яндекса была не первой, поэтому мы оценили, насколько сумели продвинуться инженеры.
За последний год Яндекс заметно поменял конфигурацию своей системы беспилотного вождения, причем в разных направлениях и не на всех машинах одновременно.
Самое заметное изменение коснулось основы — в парк добавили другие автомобили. В основном компания использует все те же Toyota Pruis Alpha, но теперь среди них встречается и обновленная модель, представленная в 2014 году.
Как и другие разработчики беспилотников, инженеры Яндекса любят эти машины за то, что все основные действия — активация педалей, повороты руля и даже переключение коробки передачи — можно сделать через электронный блок управления без каких-либо дополнительных механических приводов.
Кроме того, «мозг» беспилотника довольно прожорлив — около одного киловатта. Prius может обеспечить такой компьютер энергией благодаря мощному аккумулятору и эффективной выработке энергии.
А еще недавно у проекта появилась беспилотная Hyundai Sonata, потому что компания заключила с Hyundai Mobis соглашение о сотрудничестве в области беспилотного транспорта.
Но в целом то, какой автомобиль используется в качестве основы, не так важно, потому что все беспилотные возможности дает ему «обвес» в виде датчиков и компьютеров.
Стандартная конфигурация в беспилотнике Яндекса включает в себя шесть камер, шесть радаров и четыре лидара. Такой большой и разнообразный набор нужен потому, что различие этих датчиков заключается прежде всего не в качестве данных, а в их сути.
Лидар работает, посылая вокруг лазерные лучи и регистрируя их отражения от объектов. Зная время и направление отправки луча, время его возврата и скорость света, лидар с большой точностью определяет то место в трехмерном пространстве, от которого отразился луч. Поэтому лидар — это основной датчик для получения высокоточной объемной картины мира.
Камера получает двумерное изображение мира. Казалось бы, такой тип данных менее ценен, однако на самом деле именно данные с камер благодаря своему разрешению и цвету позволяют проводить смысловой анализ окружающей среды, к примеру распознавать знаки.
Радар отчасти похож на лидар, но он посылает радиоволны, а его поле зрения у́же, чем у лидара. Этот тип датчиков в основном используется, чтобы заблаговременно обнаруживать большие двигающиеся объекты, например машины на встречной полосе.
Различие в принципах работы датчиков позволяет объединять в одной системе восприятия мира множество передовых технологий и постоянно перепроверять показания. Жесткого приоритета датчика одного типа над другими нет, однако лидар все же можно назвать основным в беспилотном автомобиле.
Приоритет в другом: при конфликте данных с карт и данных о реальной ситуации на дорогое, полученной с датчиков, предпочтение отдается датчикам.
Кстати, под картами в области беспилотных автомобилей подразумеваются вовсе не только обычные карты, используемые людьми, но и высокоточные трехмерные карты, составляемые во время проезда беспилотников. Они используются в качестве дополнительного виртуального датчика и позволяют автомобилю быстрее «понимать» свое положение и заранее готовиться к маневрам.
Конфигурация датчиков в беспилотных автомобилях Яндекса за последний год тоже изменилась. Теперь они расположены на новых местах.
Во-первых, инженеры добавили к трем прежним лидарам еще один, расположенный спереди на месте знака Toyota. Прежде всего это позволяет машине хорошо смотреть по сторонам, «выглядывая» из-за угла, а также улучшает обзор в целом.
Во-вторых, боковые лидары также сменили местоположение и на новых модификациях теперь располагаются не на крыше, а на крыльях автомобиля.
Кроме того, инженеры экспериментируют не только с расположением, но и с самими датчиками. К примеру, помимо стандартных для индустрии беспилотников лидаров от Velodyne появились китайские лидары от Hesai, а что касается радаров, инженеры вообще перепробовали практически все доступные на рынке устройства подходящего класса.
Для таких экспериментов у Яндекса есть отдельный автомобиль — своего рода «монстр Франкенштейна», оснащенный множеством разных датчиков. Это позволяет менять конфигурацию машины на лету, просто включая нужные из них, а затем анализировать, какие устройства обеспечивают автомобилю наилучшее восприятие окружающего мира.
Изменения коснулись и «мозга» беспилотника, расположенного в багажнике, но их радикальными не назовешь: машина получила новые процессоры, а видеокарты NVIDIA GeForce GTX 1080 Ti заменили на более свежие RTX 2080. Разработчики отмечают, что этого уже вполне достаточно для работы алгоритмов и безопасной езды даже в сложных условиях.
Основная задача инженеров Яндекса сейчас заключается в доработке алгоритмов, а не простом наращивании вычислительной мощности.
Кстати, данные с датчиков попадают на эти компоненты не напрямую. Сначала они собираются в отдельном компьютере на базе NVIDIA Jenson TX2.
Этот шаг необходим, потому что двумерные кадры с камер и трехмерные облака точек с лидаров и радаров — это принципиально разные и к тому же не синхронизированные данные. Специальный компьютер приводит их к единому виду и дает основному компьютеру в виде единых пакетов за короткий промежуток времени.
Все еще дорого
Оборудование автомобиля такими сложными устройствами обходится недешево. Как и раньше, бóльшая часть стоимости каждого беспилотника приходится на датчики.
Представители Яндекса отказались называть конкретную стоимость аппаратной части системы беспилотного вождения, но отметили, что переоборудование одного автомобиля стоит уже меньше ста тысяч долларов. Отчасти этому помогло снижение стоимости лидаров — самых дорогих датчиков в составе беспилотника.
Сейчас у Яндекса около 50 беспилотных автомобилей, из которых около 35 ездят по Москве. До конца года компания намерена довести их количество до сотни и продолжить наращивать парк. Это нужно для того, чтобы собирать как можно больше данных о реальных дорожных ситуациях вне полигона и оттачивать алгоритмы.
Одним из препятствий на пути масштабирования парка была сертификация модифицированных автомобилей, раньше занимавшая до 20 дней. Для сравнения, на то, чтобы переоборудовать Toyota Prius в беспилотник, достаточно двух дней. Сейчас процесс сертификации значительно ускорился.
Демонстрация показала, что разработка беспилотного автомобиля идет достаточно быстрыми темпами, а компания явно всерьез делает на это ставку.
С поправкой на сверхосторожный режим работы на полигоне уже сейчас можно сказать, что в большинстве случает беспилотник едет спокойно, своевременно обнаруживает все препятствия и в целом ведет себя адекватно.
Однако, как известно, дьявол кроется в деталях. Например, как и другим разработчикам, программистам из команды беспилотников Яндекса так и не удалось пока научить свои автомобили полностью безопасно перестраиваться и особенно вклиниваться в поток.
Сейчас в таких ситуациях беспилотник сдвигается к краю полосы, обозначая свои намерения, но дожидается, пока его пропустят, что на московских дорогах не всегда случается быстро.
Есть и много нереализованных мелочей, которые находятся только в планах у разработчиков. К примеру, беспилотник технически способен определять сигналы «поворотников», но не учитывает их при планировании маршрута, а также не умеет двигаться задним ходом.
С другой стороны, Яндекс, как и другие крупные компании-разработчики, не планирует выводить десятки тысяч беспилотных автомобилей на дороги уже завтра или даже через год. Помимо технических ограничений, этому мешает отсутствующее полноценное регулирование беспилотников в России и слишком высокая стоимость датчиков.
Однако во всех трех областях виден явный прогресс, поэтому есть надежда, что уже через 3–5 лет беспилотные автомобили превратятся из прототипа в реальный транспорт, доступный обычным людям.
Григорий Копиев
Источник