Сразу за поворотом направо, на двухполосную дорогу, путь перегородил широкий черный внедорожник: какой-то недисциплинированный водитель припарковался прямо под запрещающим знаком, включив аварийные сигналы. Обойти его было возможно, лишь заехав колесом на сплошную полосу, — и мы встали, дожидаясь, пока проезд освободится.
Сзади мигом выросла гудящая пробка, и тогда наш водитель впервые взялся за руль: пока что роботу запрещено совершать потенциально опасные маневры, и в этом ему должен помочь человек. Но как только объезд был закончен, он опять опустил руки, а умная машина перехватила управление. Можно было посмотреть по сторонам — за окном проплывал город, рулевое колесо крутилось само по себе, на экране облака точек складывались в движущиеся силуэты, среди которых автоматически выделялись светофоры и автомобили, велосипедисты и прохожие.
На переходе беспилотник притормозил, пропуская пешеходов, и ловко подгадал удобный момент, проехав между двумя группами. «Одна из самых сложных задач, над которыми мы работаем сейчас, состоит как раз в том, чтобы система понимала намерения пешеходов и других водителей», — прокомментировал глава группы разработчиков беспилотного автомобиля из «Яндекса» Дмитрий Полищук. Первая тревога перед поездкой по городу в «неуправляемой» машине рассеялась, прошло и раздражение на водителя черного внедорожника. В конце концов, мы всего лишь люди и даже на автомобильных роботов смотрим со своей биологической колокольни.
Между тем, с их точки зрения, управление машиной выглядит совершенно иначе. Самые сложные для нас маневры — движение в пробке или параллельная парковка — не представляют никаких трудностей для компьютера, способного сверхточно и быстро контролировать движения руля и педалей. Зато невероятно сложны для него задачи, которые мы решаем легко и походя, — например, угадать, не собирается ли пешеход внезапно перебежать дорогу, или немного отступить от правил, чтобы не создать опасную ситуацию.
Неправильный «человеческий» взгляд на беспилотные автомобили не всегда безобиден. Скажем, автоматизированные системы помощи водителю, которыми оснащены электромобили Tesla, многие ошибочно принимают за полноценное беспилотное управление — и отсутствие контроля за машинами в режиме автопилота уже стало причиной нескольких аварий. Их продвинутый круиз-контроль способен удерживать дистанцию до впереди идущего транспорта или оставаться в своей полосе на трассе, но не сориентируется в сложном городском потоке. Международное сообщество автомобильных инженеров (SAE) различает пять уровней автоматизации транспорта, начиная с нулевого, при котором бортовой компьютер лишь уведомляет водителя о важных событиях. Самые совершенные из серийных моделей достигают третьего уровня, позволяя отдать управление роботу на трассах с неплотным и предсказуемым движением. Беспилотные автомобили пятого уровня автоматизации существуют лишь в виде проектов разной степени готовности — и все их можно пересчитать по пальцам. Таким машинам достаточно лишь указать точку назначения, в живом водителе они не нуждаются вовсе.
Локализация и восприятие
Базовые шаги вождения и для человека, и для компьютера одинаковы. Прежде всего нужно локализовать себя в пространстве, выяснить, где мы находимся, куда и какой дорогой едем. И люди, и роботы используют для этого датчики, воспринимающие объекты в окружающем пространстве. Эта информация анализируется и используется для предсказания дорожной ситуации в следующий момент. Наконец, планируется точная траектория движения, и готовые команды передаются на органы управления машиной. В беспилотном автопарке «Яндекса» их около десятка, почти все — Toyota Prius: эти изначально высококомпьютеризованные машины легко модифицируются под автоматизированное управление. Каждый робот получил собственное имя в честь одного из андроидов — героев фантастического сериала «Мир Дикого Запада». Нашего звали Тедди, его компьютер гудел под сетчатым — для лучшей вентиляции — дном багажника, на месте запасного колеса. Внешне он почти не отличается от серийных машин: передний и задний радары скрыты под бамперами, смонтированные на крыше лидары и камеры защищены пластиковым кожухом.
Глазами машины
Конкуренция между различными датчиками для беспилотных автомобилей — вопрос во многом надуманный. По словам Дмитрия Полищука, разные «органы чувств» Тедди не столько соперничают, сколько дополняют друг друга. Радары эффективны на больших дистанциях, до 100−150 м; лидары кругового обзора, быстро вращаясь, ощупывают ближнее пространство, позволяя измерить расстояние до нужной точки с сантиметровой точностью. На установленный в салоне экран выводятся целые облака этих точек, в которых даже человек легко различит очертания машины, велосипедиста или столба. Картинки с камер помогают беспилотнику и на близких, и на далеких дистанциях: распознавание образов на изображении — задача, прекрасно знакомая программистам «Яндекса».
«Технологии радаров и камер уже отработаны, они давно используются и в автомобилях с продвинутым круиз-контролем. Претензии к высокой стоимости и далеко не стопроцентной надежности лазерных лидаров тоже рано или поздно уйдут, — считает Дмитрий. — Беспилотники, которые лет через 5−10 начнут массово появляться на дорогах, будут, видимо, использовать все эти инструменты для ориентации в мире». Они помогут локализовать себя и на карте: обычные приемники GNSS позволяют лишь приблизительно узнать координаты, к тому же сигналы GPS, ГЛОНАСС и других систем навигации не всегда надежны. Зато картинки, полученные датчиками самого автомобиля, позволяют ему легко распознать знакомую улицу и, выстроив трехмерную модель, выяснить свое положение с точностью до сантиметра. Так ориентируемся и мы, люди, оглядываясь по сторонам и замечая привычные приметы местности.
Глазами машины
Распознавание и предсказание
Сочетание независимых источников данных о мире позволяет вовремя скорректировать ошибки: тень, которую на камере можно принять за пешехода, будет правильно определена за счет работы дальномеров. Интегрировать и анализировать эти потоки информации в режиме реального времени помогает сочетание алгоритмов и нейросетей, которые строят и десятки раз в секунду обновляют трехмерную модель окружающего пространства. В их обучении приняли участие тысячи пользователей проекта «Яндекс.Толока» — они провели разметку необработанных данных, выделив на них автомобили, пешеходов, дорожные знаки и т. п. Натренированная на этом массиве система автоматически выстраивает упрощенные трехмерные модели — цилиндрические пешеходы, параллелепипеды автомобилей — оценивает их скорость и направление. Ей знакомы особенности движения разных типов объектов, которые дополняют данные датчиков. «Допустим, машину закрыл от нас какой-то щит, и на некоторое время она стала невидимой, — объясняет Дмитрий Полищук. — Трекер будет помнить, где она находилась и куда двигалась, и продолжит ее «вести»». Каждый объект отслеживается с момента появления и до тех пор, пока не исчезнет из поля зрения.
Исходя из этого, беспилотник формирует предсказания о дальнейших изменениях в обстановке. Эта задача требует понимания намерений других участников движения и остается едва ли не самой сложной для роботов-водителей. Поведение пешеходов может быть довольно непредсказуемым, и водители-люди часто угадывают его по позе и даже по выражению лица. Но, если мы с детства совершенствуем навыки взаимопонимания, компьютеры делают в этом лишь первые шаги. Часто в этом им помогают другие водители: их реакции позволяют беспилотнику скорректировать собственное поведение в соответствии с известным водительским правилом «следуй за потоком». Такой подход способен помочь и в сложных ситуациях планирования, в том числе с опасными маневрами.
«Часто обсуждается альтернативный подход — единая «чистая» нейросеть, которая обучена на поведении самих водителей, знает, в каких ситуациях и как реагируют люди, и поступает так же, как мы. Ей даже правила как таковые знать необязательно, — говорит Дмитрий. — Однако обосновать безопасность такой системы пока невозможно, и первые беспилотники, которые выедут на дорогу, будут принципиально построены так же, как наши. Они используют некоторые элементы нейросетей, но обязательно в сочетании с детерминистическими алгоритмами, благодаря которым мы уверены, что машина ни за что не выедет куда-то, куда не надо».
Планирование и управление
Каждая итерация этого цикла занимает доли секунды: локализовав себя в пространстве, зная маршрут до точки назначения и точную трехмерную картину своего окружения, беспилотник выстраивает траекторию движения с точностью до сантиметра и, наконец, соблюдает ее с той же аккуратностью. Передать правильные команды на органы управления автомобилем для робота не представляет никаких трудностей, и наш Тедди это тут же продемонстрировал. Как только в потоке, едущем по главной дороге, образовался просвет, беспилотник с неожиданной ловкостью встроился в него, не нарушив ни одно из правил и никого не подрезав. Водители из плоти и крови даже не заметили, что между ними затесался робот.
«Есть разные интересные идеи о том, каким образом беспилотник сможет «общаться» с людьми на дороге, — говорит Дмитрий Полищук. — Можно установить экраны и выводить на них сообщения — например, пешеходу: «Проходите» — или проецировать пешеходную зебру прямо на дорогу. Но, конечно, когда роботы будут общаться уже между собой, они смогут передавать свои намерения друг другу очень четко». Такие решения будут испытываться уже не в Москве, а на подмосковном полигоне, где разработчики «Яндекса» создают имитацию городских улиц и перекрестков. Здесь допустимы даже довольно опасные тесты, в том числе и без присутствия человека внутри. Через специальное мобильное приложение можно вызвать пустой автомобиль, сесть и отправиться до точки назначения. «Это совершенно другие ощущения, — добавляет Дмитрий, — ехать пассажиром, пока водительское место остается незанятым».
«Когда система будет готова, когда пройдет все тесты и будет «упакована» для коммерческого использования, она станет более миниатюрной, дешевой и надежной, станет потреблять меньше энергии, — продолжает Дмитрий Полищук. — Думаю, что поначалу автомобили не слишком изменятся внешне: дизайнеры смогут скрыть датчики и камеры в обводах кузова. В конце концов, так делают и сейчас на моделях с продвинутым круиз-контролем». К работе подключились и производители «железа» — компания Nvidia уже выпустила несколько специализированных чипсетов для беспилотных автомобилей. Глобальная гонка разработчиков близится к завершению. «Лет через десять мы перестанем им удивляться, — говорит Дмитрий. — Но и сегодня они уже не просто фантастика».
Тройка лидеров
Самые совершенные решения для высокоавтоматизированных беспилотных автомобилей созданы в Waymo (Google), Uber и Mobileye (Intel) — но и они лишь проходят испытания в реальных городских условиях, причем не всегда успешно. Пока же Mobileye предлагает покупателям «интеллектуальную» опцию — систему ADAS, предупреждающую водителя о риске столкновения.