Как устроены беспилотные автомобили

Как устроены беспилотные автомобили

В них много алгоритмов и датчиков, но водитель всё равно нужен

Беспилотный автомобиль — это когда машина сама умеет ездить по дорогам общего пользования, как будто ей управляет настоящий водитель. Она сама выбирает маршрут, следит за обстановкой на дороге, объезжает препятствия и не нарушает правила дорожного движения. Разбираемся, как это работает.

Уровни автопилота

В зависимости от того, что машина умеет делать сама, инженеры разделили автопилот на 6 уровней:

Level 0 — автопилота нет, водитель всё делает сам. Газель-маршрутка — это как раз машина с автопилотом Level 0.

Level 1 — помощь водителю. Автомобили такого уровня могут сами ускоряться или тормозить. Если на машине установлен круиз-контроль — это Level 1. Сюда же можно отнести некоторые системы автопарковки, когда водитель нажимает кнопку, а машина сама паркуется в сложном месте.

Level 2 — начальный уровень. Здесь машина уже может сама ехать, тормозить и ускоряться, но в разных ситуациях она сразу передаёт управление водителю. Первые Теслы умели как раз вот так.

Level 3 — средний уровень. Машина справляется почти со всеми ситуациями, но водитель всё равно нужен, чтобы среагировать, если что-то пойдёт не так. Сейчас это стало стандартом, и большинство беспилотных машин так умеют.

Level 4 — высокий уровень. В теории тут уже можно отпустить руль — машина сама со всем справится, а если нет — просто остановится. Но на практике водитель всё равно нужен — мало ли что, вдруг машина не сможет правильно среагировать и передаст управление. Самые современные беспилотники — здесь, их работу мы и будем разбирать.

Level 5 — полный автопилот. Можно ездить не держась за руль, можно сесть на пассажирское сиденье или вообще убрать руль из машины. Так пока никто не умеет, кроме робокаров-грузчиков на складах и закрытых площадках, где нет людей.

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

Чтобы превратить обычную машину в беспилотную, в неё нужно установить дополнительное железо и алгоритмы:

  • радар;
  • лидар;
  • камеры;
  • датчики погодных условий;
  • датчики работы основных узлов автомобиля;
  • система компьютерного зрения и распознавания образов;
  • алгоритмы принятия решений — что машина должна сделать в разных штатных и нештатных ситуациях.

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

Как устроены беспилотные автомобили
Беспилотный автомобиль Яндекса на базе серийной Тойоты. На крыше видны основные датчики, но это не всё, что нужно, чтобы машина стала беспилотной

Радар

Задача радара — провести первичную разведку того, что находится вокруг машины.

Основной радар на беспилотной машине всё время крутится на крыше, посылает радиоимпульсы и смотрит, какие из них вернулись раньше других. Чем раньше вернулся импульс — тем ближе объект к радару. Радар крутится быстро, и алгоритм анализирует изменения в сигналах. Так машина примерно понимает:

  • какое расстояние до каждого объекта;
  • что из этого движется, а что не движется.

Это очень грубые данные, но благодаря им машина понимает, на чём нужно сосредоточиться, а что пока не представляет опасности. Ещё есть несколько радаров спереди и сзади автомобиля — они контролируют скорость и расстояние до машин спереди и сзади.

Как устроены беспилотные автомобили

Лидар

Лидар — это более крутая версия радара, построенная на лазерах. Вместо радиосигнала лидар посылает лазерные лучи и моментально узнаёт точное расстояние до объекта:

Как устроены беспилотные автомобили

Но главный плюс лидара в том, что он позволяет строить трёхмерную модель окружающего пространства с точностью ±1 сантиметр. Для этого лидар сканирует пространство 50—100 раз в секунду, совмещает данные и формирует трёхмерное изображение:

Как устроены беспилотные автомобили
Пример работы лидара с дрона

Камеры

Задача камер в беспилотных авто — получать картинку вокруг машины, чтобы с ней могли потом работать алгоритмы распознавания образов. Обычно в машины ставят несколько камер для кругового обзора, камеру для анализа дорожного покрытия и несколько дополнительных камер для увеличения обзора.

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

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

Алгоритмы компьютерного зрения

Компьютер постоянно распознаёт кадры, поступающие с камер, чтобы найти на них что-то знакомое:

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

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

Как «видит» машина окружающий мир — зависит от алгоритма, который там используется:

Как устроены беспилотные автомобили
Компьютер нашёл все припаркованные машины, разметку, шлагбаум и принял решение остановиться
Как устроены беспилотные автомобили
Технология распознавания Nvidia — выделены машины, светофоры и дорожные знаки

Датчики погоды

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

Система управления основными узлами автомобиля

Чтобы компьютер мог управлять машиной, её нужно доработать — добавить блоки управления на основные части:

  • педали газа и тормоза,
  • руль,
  • поворотники,
  • фары и фонари,
  • сигнал клаксона.

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

Алгоритмы принятия решений

Это самый важный компонент в любой беспилотной машине — от него зависит, что будет делать машина в любой ситуации:

  • как объехать препятствие;
  • когда включать поворотник;
  • когда нужно снизить скорость перед поворотом;
  • что делать, если на дорогу внезапно выбежит человек.

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

Но если с такими ситуациями компьютер уже справляется, то с остальными всё пока сложно. И это нас приводит к моральной проблеме беспилотных машин.

Моральная проблема беспилотных машин

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

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

Текст:

Михаил Полянин

Редактор:

Максим Ильяхов

Художник:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Виталий Вебер

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
easy