Как устроен полигон для беспилотных автомобилей «Яндекса».
Примерно в двух часах езды на машине к югу от Москвы находится небольшое двухэтажное кирпичное здание с гаражом на три-четыре автомобиля, мастерской и офисами для работы. Всё скромно: никаких вывесок, современных фасадов или креативных пространств вокруг.
Единственное, что выделяется в довольно типичном загородном индустриальном пейзаже, так это стоящий в открытом гараже и обклеенный в фирменные цвета «Яндекса» автомобиль Hyundai Sonata. На его крыше установлена уже стандартная для беспилотников компании коробка с набором лидаров, радаров и камер.
Зайдя в здание через гараж и пройдя через небольшой коридор, оказываешься в гостиной, объединённой с кухней. Офисный интерьер отличается разве что двумя мониторами на стене, на которых в прямом эфире транслируется изображение с десятка беспилотников и их текущий статус.
Дверь из кухни ведёт к большой асфальтированной площади с автомобильной разметкой разных типов, перекрёстками, пешеходными переходами, светофорами, дорожными знаками.
Вдалеке слева стоит большой синий ангар с открытыми с обоих концов въездами. Справа разбросаны грузовые контейнеры, конусы и пластиковые дорожные барьеры, которые можно встретить на участках с ремонтом дороги.
Всё это для того, чтобы сымитировать сложные дорожные ситуации, с которыми может столкнуться автомобиль в городе.
У синего ангара тоже есть своя роль — это прототип тоннеля, в котором автомобиль может потерять GPS-сигнал. Инженер «Яндекс.Такси» сразу уточняет: GPS не служит основным источником данных о положении машины в пространстве, однако при разработке беспилотника нужно протестировать все сценарии.
При въезде в тоннель датчик GPS не сразу теряет сигнал, а сначала сильно снижает точность определения координат и даёт неверные данные — например, что машина находится не в тоннеле, а на соседней улице.
Среди всей этой искусственной инфраструктуры круглосуточно и в любую погоду ездят десятки беспилотников «Яндекса». У каждого из автомобилей свой маршрут. Машины не обмениваются данными друг с другом, поэтому каждый из беспилотников воспринимает другой автомобиль как обычного участника дорожного движения.
Перерывы машины делают только на заправку — за это отвечают мобильные заправки, обслуживающие автомобили «Яндекс.Драйва», — а также на скачивание технических логов.
Во время каждого заезда беспилотник накапливает большой массив данных — записи с камер, показания сенсоров, датчиков, данные о работе алгоритмов. За одну непродолжительную поездку машина собирает сотни гигабайт информации, которые затем выгружаются на серверы «Яндекса» для последующего анализа. Это делается здесь же, в гараже кирпичного здания.
Логи реальных поездок помогают выявлять проблемные места в работе алгоритмов и датчиков, которые сложно обнаружить на компьютерных симуляторах: тень на камере, препятствие на пути радара, сбой связи. Сбор данных особенно актуален во время поездок в городской среде, когда водитель вмешивается в управление беспилотника.
К примеру, во время тестирования машин в Москве водители постоянно сбавляли скорость в районе Хамовники — на участках с неинтенсивным движением и без каких-либо видимых преград и ограничений.
Как выяснилось позже, причиной оказались большие лужи рядом с тротуаром — водители не хотели облить водой пешеходов. Благодаря анализу логов и последующему обучению алгоритмов беспилотники с каждой поездкой становятся «умнее».
Полигон для роботов
Полигон «Яндекса» условно поделён на несколько частей. Самая большая — это комбинация из улиц, сложных перекрёстков, кругового движения, затяжного поворота и тоннеля. Здесь машины беспрерывно ездят по условному городу и небольшому шоссе, уступая друг другу дорогу, следуя указаниям дорожных знаков, разгоняясь на длинных участках и сбавляя скорость перед поворотами.
Так команда инженеров проводит базовый тест работы сенсоров и датчиков при нормальном движении в вымышленном городе — без неожиданных сюрпризов, нарушающих правила водителей и перебегающих дорогой пешеходов, но с теряющимся сигналом спутниковой навигации и контейнерами, перекрывающими обзор на перекрёстках.
Таким образом тестируются все новые беспилотники, которые вводятся в эксплуатацию.
Вторая часть полигона состоит из светофоров, пешеходных переходов, конусов и прочих препятствий, которые могут неожиданно возникнуть на пути автомобиля. Однако здесь беспилотник взаимодействует в первую очередь с виртуальными участниками дорожного движения.
Программное обеспечение генерирует на пути машины различные опасные ситуации: проезжающую на красный сигнал светофора машину, пешехода, неожиданно вышедшего на дорогу, незапланированный ремонт асфальта.
Беспилотник реагирует на возникающие внештатные ситуации: резко останавливается перед появившимся виртуальным пешеходом, сбрасывает скорость, увидев машину, которая не собирается уступать дорогу.
Эта часть полигона нужна для тестирования алгоритмов, которые обрабатывают непредвиденные дорожные ситуации. Инженеры обучают систему реагировать на них: объезжать сломавшийся автомобиль или учитывать ремонт дороги при повороте, чтобы машина сразу занимала свободный ряд.
Разработчики следят за перемещением машин на полигоне удалённо. Они могут «отключить» полигон одной кнопкой, остановив все беспилотники, либо поменять маршрут для любого из автомобилей.
Случаются и казусы. Ночью на одном из автомобилей случился сбой тестируемого программного обеспечения. Согласно настройкам системы, в такой ситуации машина просто останавливается. Но так как это произошло на дороге со сплошной разметкой, а настройки других испытываемых машин запрещали объезжать препятствие, на полигоне образовалась, вероятно, одна из первых пробок из беспилотников.
Отдельная часть полигона используется для тестирования водителей, сидящих за рулём беспилотников во время испытаний в городе. Их задача — вовремя перехватить управление автомобилем, если машина неправильно отреагирует на внештатную ситуацию.
Испытание выглядит так. Разработчик с компьютера принуждает машину совершать разные ошибки во время движения: резко ускориться после поворота, свернуть на обочину при движении по прямому участку или, самое неожиданное, не успеть выпрямить руль после крутого поворота. В таком случае водитель должен мгновенно перехватить управление машиной, не дав ей создать аварийную ситуацию.
Оказалось, что управление беспилотником — довольно нетривиальная задача. Нужно одновременно сканировать взглядом знаки и разметку, сверяться с изображением на планшете: правильно ли машина распознала дорожную ситуацию и верно ли построила маршрут, и следить за тем, какие действия она совершает.
К концу 2019 года «Яндекс» планирует вывести на дороги 100 беспилотных автомобилей. Учитывая, что испытания машин проходят круглосуточно, и в каждой из них должен находиться человек, компании вскоре потребуется внушительный штат водителей, которых нужно тренировать для работы с непредвиденными ситуациями на дорогах.
Флот роботов
Сейчас флот беспилотников «Яндекса» состоит из 50 автомобилей Toyota Prius, 15 из которых постоянно задействованы на полигоне компании. У них нет номерных знаков, так как они не покидают закрытую территорию.
Выбор модели не случаен. Для создания беспилотника команда «Яндекса» искала автомобиль, которым можно управлять с помощью электроники: это заметно облегчает процесс разработки.
Инженеры хотели поворачивать руль, нажимать на газ, тормоз и менять передачи без использования дополнительных механических устройств — лишь отправляя команды через блок управления автомобиля.
Многие современные автомобили оснащены такими системами. Например, наличие в машине ABS, системы, которая предотвращает блокировку колёс при торможении, свидетельствует о том, что торможение может контролироваться электроникой.
А наличие системы помощи при парковке или удержания полосы означает, что бортовой компьютер может управлять рулём. Круиз-контроля — нажимать на газ.
По словам инженеров, сложность возникла только с переключением режимов коробки передач. На многих автомобилях с автоматической трансмиссией переключение режимов всё еще происходит через механическую связь между рычагом переключения и коробкой.
В Prius задача решается электроникой. Кроме того, это гибрид, а значит, машина оснащена мощными аккумуляторами и хорошей системой энергообеспечения, которая необходима для работы компьютеров, устанавливаемых в беспилотники.
«Яндекс» собирает свой флот беспилотников на базе модели XW30. Эта модификация Prius выпускалась с 2009-го по 2015 год, поэтому в последние годы компания в основном скупает подержанные автомобили и собирает беспилотники из них.
Toyota, выпускающая Prius, никак не участвовала в проекте — инженеры «Яндекса» самостоятельно изучали устройство систем автомобиля и разрабатывали ПО для управления.
У каждого из 50 автомобилей в парке «Яндекса» есть своё имя: Долорес, Тедди, Логан, Шарлотт. Беспилотники называют в честь андроидов из фантастического сериала «Мир Дикого Запада».
Беспилотники собирают в Москве, в здании бывшего дилерского центра, которое теперь переоборудовано в гараж «Яндекса». Процесс сборки поставлен на поток и занимает три дня.
Недавно компания принимала участие в CES — крупнейшей технологической выставке, которая проходит каждый год в Лас-Вегасе. Тогда один инженер смог самостоятельно собрать беспилотник из приобретённого в США автомобиля.
Новые беспилотные автомобили компания планирует собирать уже на базе Hyundai Sonata 2020 года, один из первых тестовых автомобилей как раз припаркован в гараже при полигоне. По словам инженеров, задача по сборке беспилотника из Sonata оказалась проще, ведь в случае с Hyundai у них была прямая связь с производителем.
Интерьер беспилотника
Салон беспилотника почти не отличается от салона обычного автомобиля. Руль, педали, приборная панель и все органы управления на своих привычных местах.
Единственное отличие — один из подстаканников занят пластиковой заглушкой с двумя кнопками. Большая красная кнопка, похожая на «аварийную», полностью отключает от управления автомобилем все системы автономного передвижения. То есть кнопка превращает Prius в обычную машину, которой должен управлять человек.
Небольшая металлическая кнопка подключает все системы для управления беспилотником обратно к машине. Светящийся индикатор отображает статус работы. Если горит зелёный, машина едет под управлением алгоритмов. Красный — машиной управляет человек.
У пассажира на переднем кресле — здесь во время тестовых поездок по полигону сидел один из инженеров «Яндекса» — есть ещё одна красная кнопка на длинном проводе. Это тормоз. Кнопка чувствительна к силе нажатия, поэтому позволяет плавно сбросить скорость в случае необходимости.
Прошлым летом я ездил на одном из беспилотников «Яндекса» по улицам Москвы. Тогда рядом с водителем был установлен монитор Dell, который выводил всё, что видит беспилотник. Мониторы заменили на iPad Pro, техническую информацию «упаковали» в простую визуализацию.
На планшет выводится информация о маршруте (обозначается широкой цветной линией), возможных траекториях движения (зелёные тонкие линии), распознанные объекты, знаки, разметка, изображения с камер. С планшета можно задать маршрут движения и посмотреть техническую информацию, необходимую для отладки.
Экстерьер беспилотника
Самое интересное у беспилотника находится снаружи. На крыше под пластиковым кожухом собраны основные «органы чувств»: три лидара, один из них установлен вертикально, другие два под углом в 45°, а также пять камер, охватывающие практически всё окружение машины.
Внутри кожуха, помимо оборудования, обеспечивающего работу датчиков, находятся четыре антенны мобильной связи GSM и одна — спутниковой системы навигации GNSS.
Ещё один набор датчиков расположен в районе переднего бампера. Один лидар — на месте логотипа Toyota. Там же, в бампере, спрятаны четыре радара: два направлены вперёд, по ходу движения, два — налево и направо. Сзади под бампером — ещё два радара.
У каждого из сенсоров есть свои недостатки и преимущества, о которых подробно рассказывал пользователь vc.ru. Например, радары мгновенно и точно определяют расстояние до других объектов, причём делают это на большом расстоянии — до 150 метров.
Они умеют «видеть» в темноте и при плохой видимости. Однако с помощью радаров формируется слишком неточное изображение. Кроме того, они плохо справляются с распознаванием неподвижных объектов.
Лидары позволяют создавать более детализированную по сравнению с радарами карту ближайшего окружения автомобиля. Внутри них расположен вращающийся несколько раз в секунду лазер, который с точностью до нескольких сантиметров вычисляет расстояние до объектов и скорость их движения.
Картинка, формируемая лидаром, позволяет определить даже наличие разметки на дороге или изображение на знаке — благодаря характеру отражения луча от разных поверхностей. При этом с помощью лидара не получится узнать, какой сигнал горит на светофоре.
Другой существенный недостаток лидаров — их высокая цена. Впрочем, руководитель группы разработчиков беспилотного автомобиля «Яндекса» Дмитрий Полищук считает, что удешевление датчиков — лишь вопрос времени.
Цвет светофора можно определить при помощи камеры. Она также позволяет распознавать здания, машины, людей, знаки. Однако камера не может с такой же скоростью и точностью, как лидар или радар, определить расстояние до объекта. А точность её работы сильно зависит от освещения, чистоты линзы и погодных условий.
Разработчики «Яндекса» постоянно тестируют и изучают различные комбинации лидаров, радаров, камер и их расположения. Например, в последних сборках Prius боковые лидары с крыши перенесли к аркам у передних колёс. А радары, находившиеся за номерным знаком, переехали на крышу. Такая перекомпоновка позволила увеличить охват сенсоров беспилотника, объясняет Полищук.
Как работает беспилотник
Все данные с датчиков по проложенным в автомобиле проводам поступают в багажник. Там, под сетчатым металлическим дном, вместо запасного колеса расположен компьютер, отвечающий за вычисления. Здесь же расположена ещё одна кнопка отключения системы от управления автомобилем.
Сначала с точностью до нескольких сантиметров система определяет местоположение автомобиля в пространстве. Для этого используется всё, что есть на вооружении беспилотника: изображения с камер, данные с лидаров и радаров, положение и скорость вращения колёс, сигнал GPS и информация с карт высокой точности, которые загружены в автомобиль.
Использование разных источников позволяет свести к минимуму вероятность ошибки при определении местоположения машины. Например, если будут сомнения в достоверности изображения с испачкавшейся камеры, данные подтвердятся с помощью лидаров, радаров, GPS, карт, информации о скорости вращения колёс и угле поворота руля. Аналогично машина сможет вычислить своё местоположение при отсутствии GPS-сигнала.
Весь входящий поток с датчиков и сенсоров анализируется в режиме реального времени с помощью обученных на большом массиве данных нейросетей и алгоритмов. Всё, что окружает машину, классифицируется — так система понимает, где находятся другие автомобили, пешеходы, какая разметка на дороге, какие дорожные знаки установлены.
Классификация нужна для того, чтобы беспилотник мог решить самую сложную задачу — предсказать движение каждого из объектов. Например, что автомобиль, перестаивающийся в правую полосу перед перекрёстком, вероятно, собирается повернуть направо, сбросив скорость. Пешеход, идущий по тротуару, вероятно продолжит движение в том же темпе и в том же направлении. И так далее.
По словам разработчиков, сложнее всего предсказать поведение пешеходов. У человека небольшая скорость движения и при этом широкий диапазон вероятных траекторий движения. Например, человек, приближающийся к светофору, может пойти на красный свет или резко свернуть в противоположную сторону.
В реальности поведение беспилотника можно сравнить с поведением человека, управляющего машиной. Если постепенно приближаться к дороге, по которой едет беспилотник, автомобиль начнёт заранее сбавлять скорость, готовясь к остановке — машина за несколько десятков метров распознала пешехода и предположила, что, если он продолжит движение в том же направлении, траектории пересекутся.
Если на дороге остаться без движения, машина предположит, что человек не будет двигаться, и его можно безопасно объехать.
Поведение беспилотника также меняется, если замереть у края дороги и затем резко сделать шаг в её сторону. Для беспилотника, как и для любого водителя, это станет неожиданностью, поэтому торможение будет резче.
Директор по развитию бизнеса беспилотных автомобилей «Яндекса» Артём Фокин считает, что проехать на беспилотном автомобиле по Москве можно будет в течение ближайших четырёх лет. Сейчас запуску автономных автомобилей на улицы городов мешают два основных ограничения: законодательное и технологическое.
Первое ограничение связано с тем, что текущий свод законов не допускает использование автомобилей без водителей на дорогах общего пользования для коммерческих целей. Однако постепенно положение дел в этой области меняется, появляются нормы, способствующие развитию беспилотного транспорта, считает Фокин.
Технологические ограничения связаны в первую очередь с надёжностью и стоимостью компонентов, используемых в беспилотнике: радаров, лидаров, камер, процессоров. Они должны обеспечивать бесперебойную работу всей системы, предусматривать сценарии с отказом любого из них.
Эта проблема решается как производителями оборудования, которые совершенствуют датчики, так и инженерами «Яндекса». Компания собирает и анализирует большие объёмы данных, чтобы научить беспилотник справляться с любой непредвиденной ситуацией, и планирует увеличить свой флот в два раза — для ускорения процесса.
Как только проблемы будут решены, появление беспилотников на дорогах станет стихийным, считают в «Яндексе». Каршеринг и такси сольются в единый сервис, люди перестанут покупать личные автомобили и перейдут на подписку на беспилотник, изменится отношение к пробкам и машинам в целом. По словам Фокина, изменения на рынке наступят быстро и неизбежно.
Источник: https://vc.ru/transport/79199-24-chasa-bez-voditeley-i-pereryvov?from=yandex