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

OSCAR (Open-Source CAR) – это исследовательский проект беспилотного автомобиля StarLine с открытым исходным кодом, объединяющий лучшие инженерные умы России. Мы назвали платформу OSCAR, потому что хотим сделать каждую строчку кода, касающуюся автомобиля, открытой для сообщества.

StarLine open-source car

Анатомия платформы


Как пользователь транспортного средства, автовладелец хотел бы добраться из точки А в точку В безопасно, комфортно и вовремя. Пользовательские истории разнообразны, начиная с поездки на работу или за покупками и заканчивая времяпровождением с друзьями или семьей без постоянной необходимости следить за дорогой.

Платформа OSCAR

Поэтому самый верхний уровень платформы – это пользовательские приложения и среды. Мы рассчитываем на три группы пользователей: индивидуальные пользователи, коммерческие, а также разработчики платформы. Для каждой из этих групп сегодня мы проектируем отдельный интерфейс. Второй уровень – это серверная часть, включающая карты высокого разрешения, модуль симуляции, а также API, обслуживающие автомобиль. Уровень программного обеспечения — это создание программ, которые будут встроены в автомобиль. И два нижних уровня платформы – работа на самом автомобиле, которая подразумевает исследование цифрового интерфейса самой машины и установку оборудования.

Автомобиль


Современный автомобиль может иметь до 70 электронных блоков управления для различных подсистем. Обычно самым мощным процессором является блок управления двигателем, а другие используются для контроля трансмиссии, подушек безопасности, антиблокировочной тормозной системы, аудиосистем, регулировки зеркал… Некоторые из них образуют независимые подсистемы, а другие обмениваются информацией и командами между собой.
Для обеспечения связи между устройствами автомобиля был разработан стандарт CAN.

CAN-шина – это стандарт промышленной сети, а также система цифровой связи и управления электрическими устройствами автомобиля. Автомобильные устройства подключаются к CAN-шине параллельно для отправки и приема данных. Имея доступ к этому цифровому интерфейсу, можно, например, включать двигатель, открывать двери, складывать зеркала автомобиля с помощью управляющих команд.

CAN шина автомобиля и устройства, подключенные к ней

Чтобы контролировать ускорение и рулевое управление автомобилем, нам нужно было получить доступ к CAN-шине и понять соответствующие типы пакетов. НПО СтарЛайн является производителем электронных устройств, поэтому мы разработали собственный адаптер шины CAN.

Модуль сигма – адаптер CAN шины от СтарЛайн

В настоящее время мы можем рулить, тормозить и ускоряться с помощью ноутбука.

Управление автомобилем с помощью цифрового интерфейса

Оборудование


Важная область работ – это оснащение автомобиля датчиками и сенсорами. Существует ряд подходов к оборудованию беспилотного транспортного средства. Например, некоторые компании используют дорогостоящие лидары, в то время как другие отказываются от них, ограничиваясь показаниями других приборов.

Оборудование первого прототипа OSCAR

Сейчас беспилотный автомобиль StarLine оборудуется несколькими моно- и бинокулярными камерами, радарами, лидарами, а также спутниковой навигацией.

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

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

Но во время движения автомобиль может оказаться в тоннеле или под мостом, где сигналы от спутников слишком слабы либо отсутствуют вовсе. Из-за этого точность GNSS-RTK приемника упадет, либо позиционирование окажется вовсе невозможным. В этих случаях автомобиль будет уточнять свое положение, используя показания одометра и акселерометра. Такие алгоритмы, которые объединяют данные с нескольких разнородных источников, чтобы уменьшить неопределенность, называются алгоритмами sensor fusion.

Пример лидарных данных

Кроме задачи локализации беспилотного автомобиля необходимо также иметь представление о динамических препятствиях, которых нет на карте, например, движущиеся рядом автомобили или перебегающий дорогу человек. Для этих целей беспилотный автомобиль использует данные радаров и лидаров. Радар использует радиоволны для обнаружения препятствий, а также, благодаря допплер-эффекту, позволяет вычислить их радиальные скорости. Лидар – это активный оптический дальномер, который постоянно сканирует окружающее пространство и формирует его трехмерную карту, так называемое облако точек.

Каждое устройство, которое используется в беспилотном автомобиле (от камеры до блока RTK GNSS), нуждается в настройке, прежде чем его можно будет установить.

Программное обеспечение


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

image

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

Затем данные из первых трех источников объединяются для получения информации о препятствиях рядом с автомобилем.

В то же время, как спутниковые, так и лидарные показания используются для решения проблемы SLAM, которая означает одновременную локализацию и построение карты местности. Это подход для создания карты неизвестной среды с отслеживанием местоположения объекта в ней. Эта информация используется для расчета 6 координат автомобиля, которые включают в себя три пространственные координаты и трехмерную скорость.

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

К настоящему времени мы заняты настройкой и установкой оборудования и также работаем над модулем управления автомобилем.

Облако


Серверная часть состоит из четырех блоков:

  • HD карты
  • API телеметрии
  • API команд
  • модуль симуляции

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

Первый набросок архитектуры сервера

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

Как выглядит HD карта

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

Пример симулятора

Дорожная карта


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

OSCAR roadmap

Так что же у беспилотника в сердце?


В основе автоуправляемого автомобиля лежат продвинутые алгоритмы, потоки данных, высокопроизводительные интерфейсы и сложное оборудование. Кроме того, автомобиль нуждается не только в аппаратном и программном обеспечении, но и в серверных и клиентских приложениях. Это технологическое сердце открыто, и мы полагаемся не только на инициативу команды StarLine, но также на помощь open-source сообщества.

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

GitLab проекта

Комментарии (12)


  1. lelik363
    22.02.2019 15:42

    К чему подключены все лидары и камеры?
    На чём крутится вся математика?


    1. Avadon
      22.02.2019 16:05

      К чему подключены все лидары и камеры?

      К IPC (Industrial PC)


      1. lelik363
        22.02.2019 16:25

        Что он себя представляет?


        1. Avadon
          22.02.2019 16:31

          en.wikipedia.org/wiki/Industrial_PC
          от Neousys и подобных


      1. kababok
        22.02.2019 16:43

        эээ, то есть там допуск по IEC 61508, но не по ISO 26262?


        1. lingvo
          22.02.2019 17:21

          А какая разница, если все равно их надо будет 2 а то и 3, чтобы пройти сертификацию всей системы на 26262? И я думаю, что сейчас такой цели вообще нет.


  1. Arcuen
    22.02.2019 16:06

    Используете ли AUTOSAR?


    1. kababok
      22.02.2019 16:25

      Как минимум автомобиль "сам по себе" точно использует. :)))


  1. lingvo
    22.02.2019 16:38

    В настоящее время мы можем рулить, тормозить и ускоряться с помощью ноутбука.

    Этого маловато. Вы подумали как часто вам надо будет отдавать команды на поворот руля, ускорение и торможение? Что делать, если ваш CAN-адаптер отвалится во время езды?


    Уровень программного обеспечения — это создание программ, которые будут встроены в автомобиль. И два нижних уровня платформы – работа на самом автомобиле, которая подразумевает исследование цифрового интерфейса самой машины и установку оборудования.

    Эти уровни мне видятся мало-проработанными у вас. По всем понятиям у вас на этих уровнях должен быть контроллер реального времени, к которому будут предъявляться определенные и достаточно тяжелые требования по скорости реакции, надежности, интерфейсам и т.д. Чтобы потом не понадобилось все переделывать, так как контроллер вдруг стал не подходить, надо бы уже сейчас определиться с основными требованиями по производительности и реальному времени. Например, какое время реакции системы вы считаете достаточным для автопилота и на каком уровне?


    1. Arcuen
      22.02.2019 17:36

      Скорее всего разработка ещё не так далеко ушла, чтобы о ISO26262 беспокоиться. Но тут Вы правы, надо бы заранее прорабатывать все слабые места.


  1. striver
    22.02.2019 20:42
    -2

    В настоящее время мы можем рулить, тормозить и ускоряться с помощью ноутбука.
    Кхм… где же комментаторы, которые скажут, что даже этот автопилот лучше Теслы.


    1. striver
      22.02.2019 23:17

      Был не прав, когда написал выше. Перепутал с Vision Zero. Подумал, что очередная статья…