Life: Activity

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

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

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

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

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

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

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

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

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



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

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



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

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

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


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

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

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

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

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





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

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

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

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

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


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

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

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