К основному контенту

Как устроены первые в мире соревнования беспилотных болидов Formula 3 на Indy Autonomous Challenge 2021. Команда TUM

 

Команда Мюнхенского технического университета (TUM Autonomous Motorsport team) только что выиграла первые в мире соревнования беспилотных болидов Formula 3 во время Indy Autonomous Challenge 2021 (далее, IAC 2021) проведённого 23 октября 2021 года компанией Cisco и большим количеством других компаний-партнёров.

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

Вы безусловно можете найти всю эту информацию начав с главной страницы соревнований, но это займёт какое-то время. Я потратил два дня только чтобы собрать воедино разные технические детали и сделал это просто из собственного интереса. Так что, надеюсь, кому эта «компиляция» покажется удобной и интересной. В конце я постараюсь дать список ссылок на материалы, он тоже довольно длинный. Также, буду благодарен за корректировки и недостающие подробности от посвященных. Осторожно, под катом огромное количество изображений.

Что вообще только что произошло?

Ну, на самом деле, всё началось не только что, а 16 лет назад, когда в 2005 всем известная около военная организация DARPA провела соревнования первых беспилотных автомобилей Grand Challenge в пустыне Мохав. Это привело к возросшему интересу к этой области и в результате родилось множество R&D команд в разных университетах по всему миру. Небезызвестный учёный и автор курсов по робототехнике и селф-драйвингу Sebastian Thrun (на платформе Udacity), был тим лидом выигравшей тогда команды. В этот раз он был одним из главных эдвайзоров соревнований.

 

Трасса Индианаполиса – одна из известнейших трасс США для проведения гоночных соревнований. Соревнования IAC состояли из 38 университетских команд со всего мира. В течение года каждая из них прошла серию тестов и испытаний на виртуальных стендах симуляции (уж простите за термин) и было отобрано 9 лучших команд для соревнований на «живых» автомобилях. IAC анонсировали главный приз в 1 миллион долларов, чтобы достаточно простимулировать команды (как и в 2005 году). Стоит ли говорить, что к соревнованиям присоединилось огромное количество технологических компаний-партнёров, множество экспертов из разных областей, а также сотни студентов и даже школьников из физ-мат школ (STEM) штата Индиана. Масштабное, в общем, событие.

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

Гоночный болид

Всем 9 командам был предоставлен практически одинаковый автомобиль. Встречайте, полностью автономный болид Формула 3 от компании Dallara: Dallara AV-21. Автомобиль AV-21 создан совместно двумя подразделениями этой глобальной компании: специалистам штаб-квартиры в Италии в Парме, а также Dallara IndyCar Factory в штате Индиана. Беспилотный автомобиль создан на базе «человеческого» болида Dallara IL-15: 


 

Вот что у него внутри:

Спецификации Dallara AV-21

Шасси

Карбоновое

Вес

640 - 649 кг (с полным баком и водителем)

Двигатель

4-цилиндровый турбированный AER P63 2.0L

Мощность

450 л.с. (+50 с Push-to-Pass)

Коробка передач

6-скоростная полуавтоматическая коробка Ricardo

Сцепление

3-х дисковое керамическое сцеплениеTilton

Подвеска

Двойные поперечные рычаги

Амортизаторы

Multimatic DSSVs

Топливо

Гоночное топливо VP

Диски

15-дюймовые алюминиевые диски Motegi Racing

Шины

Слики и дождевая резина Cooper/IndyLights

Электроника

Соединения Cosworth, панель и сенсоры, блок управления Life Racing ECU, электронный контроль газа drive-by-wire, и проч.

Аэродинамика

Настраиваемые передние и задние крылья и подкрылки

 


Подготовка к IAC началась 2 года назад когда центр исследований Clemson University International Center for automotive research (CU-ICAR) начал проект Deep Orange 12, в котором приняло участие более 200 студентов университета и сотрудников факультетов. Их задачей была доработка каждого AV-21 до степени, в которой автомобиль имел бы на борту все необходимые датчики и оборудование, готовое к запуску алгоритмов управления автомобилем от каждой университетской команды соревнований. Чтобы все участники понимали детали происходящего, проводились ежемесячные собрания (созвоны) всех участвующих сторон с обсуждениями изменений в дизайне.

 

В результате работы команды CU-ICAR машина получила набор лидаров и камер, радар, блоки управления и коммутаторы, а также доработанную электрику (например, дополнительные батареи), чтобы можно было запитать всё это на борту автомобиля. Были также добавлены системы охлаждения батарей и электроники.

Автомобиль получился «из коробки» уже не «глупый». Благодаря контроллеру AdLink AVA-350, он мог уже проезжать по трассе Indianapolis Motor Speedway. Однако, этого было недостаточно для соревнований. Командам необходимо было создать набор алгоритмов для сбора и анализа данных с датчиков и принятия решения о наборе скорости, торможении, обгоне, всем остальным атрибутам соревнований.



Короткое видео из Instagram, о том как проходили доработки

Команды

38 команд (по некоторым данным их было 39, а где-то писали что вообще 21) собралось со всего мира чтобы пройти через целую серию хакатонов и тренировочных испытаний, в течение которых они учились использовать инструменты симуляции Ansys (о них ниже), собирали прототипы, тренировали модели, в общем, старались пройти отбор для финального соревнования на болидах Формула 3.



Каждый этап был обязательным для прохождения на следующий. Было пять основных этапов (и два дополнительных хакатона между ними):

1. Запуск 28 февраля, 2020: первая стадия состояла из формальностей вроде регистрации и написания дизайн-решений (white paper) от каждой команды, которые включали используемые результаты исследований, типы ПО для симуляции, план проектов и т.д. Я не смогу в рамках статьи пройти по всем этим деталям, поэтому очень рекомендую пройтись по ним самостоятельно: ссылки на скачивание на страницах каждой из команд. Будет интересно, если специалисты в этой теме (например, из Яндекса, или где там у нас профессионально занимаются этой темой) напишут разборы решений команд.

2. Демонстрация 19 августа, 2020: Команды должны были доказать, что их решения вообще способны вести пассажирский автомобиль (а не только какого-нибудь робота), совершая манёвры, вроде поворотов, наборов скорости и торможения, а также объезжать препятствия. Для проверки команды должны были либо загрузить видео живых испытаний, либо пройти серию испытаний evGrandPrix Autonomous Series.

3. Гонка симуляторов, проводимая компанией Ansy 30 июня, 2021: Студенты загрузили свои алгоритмы чтобы побороться за места в двух фазах испытаний. Первая фаза демонстрировала возможность управления автомобилем в течение 10 кругов, которые нужно было завершить за меньше, чем 15 минут. Во второй стадии автомобили должны были пройти 20 кругов вместе с другими автомобилями (head-to-head) в гонке преследовании, в течение которых они не должны были соприкасаться, сталкиваться, оставаться в границах трассы и завершить гонку с лучшим квалификационным кругом в 105% от лучшего времени сессии (похоже на правило 107% в F1). 

4. Квалификация 21-22 октября, 2021: После инспекции безопасности и технических проверок, каждая команда должна сделать 10 кругов за меньше чем 15 минут со средней скоростью 100 миль в час. Один из этих кругов должен быть завершен меньше чем за 75 секунд со средней скоростью больше 120 миль в час. Стартовая решетка для финального заезда формировалась после безопасного завершения квалификационного испытания. 

5. Финальная гонка 23 октября, 2021: Победитель определен в 20 кругах со средней скоростью больше 120 миль в час, завершенных меньше чем за 25 минут. Техническая инспекция перед гонкой могла дисквалифицировать команду за любое нарушение правил, как касание другого болида или читерство. За первое место отдали 1 миллион долларов, за второе 250 тысяч, а за третье 50 тысяч долларов.


Девять команд-финалистов участвовали в гонке 23 октября (простите, переводить названия не буду): 

1. AI Racing Tech – University of Hawai’i, University of California San Diego

2. Autonomous Tiger Racing – Auburn University

3. Black & Gold Autonomous Racing – Purdue University, United States Military Academy at West Point

4. Cavalier Autonomous Racing – University of Virginia (UVA Engineering)

5. EuroRacing team – University of Modena and Reggio Emilia (Italy), University of Pisa (Italy), ETH Zürich (Switzerland), Polish Academy of Sciences (Poland)

6. KAIST – Korea Advanced Institute of Science and Technology (South Korea)

7. MIT-PITT-RW – Massachusetts Institute of Technology, University of Pittsburgh, Rochester Institute of Technology, University of Waterloo (Canada) - (Pitt Robotics and Automation Society)

8. PoliMOVE Autonomous Racing Team – Politecnico di Milano (Italy), University of Alabama

9. TUM Autonomous Motorsport – Technische Universität München (Germany) - (FTM Institute of Automotive Technology TUM)

Победители

Хотя команда TUM выиграла первый приз, быстрый круг оказался у команды, Euroracing, занявшей второе место. Быстрейший круг составил 228.5 км/ч или 142 миль в час. В последний момент команда Euroracing допустила ошибку на миллион долларов, из-за чего алгоритм недосчитал всего 1 разогревочный круг и машина начала снижать скорость раньше положенного.  


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

Под капотом автомобилей было много всего интересного, давайте заглянем.

Железо

1. Лазерные детекторы, LIDARs (Light Detection and Ranging sensors). Каждая машина имела на борту по три лидара Luminar Hydra (от компании AutonomousStuff, ко-бренда Hexagon). На рисунках ниже это коробочки серого цвета. Каждый из них «видит» на 250 метров в даль и в сумме они покрывали 360 градусов вокруг автомобиля.


2. Камеры Allied Vision Mako G-319C с драйверами для ROS.

 


3. Многорежимный радар-детектор Aptiv Electronically Scanning RADAR (ESR) 

4. Модуль GPS IMU (инерциальный измеритель)


5. Робототехнический контроллер AdLinkTech AVA-3501 для бортовых вычислений, специально разработанный для использования в автомобилях. Однако, он заимствует конфигурацию от системы ROScube, что позволяет командам проекта evGrandPrix легче перейти на технику для новых соревнований IAC.


Контроллер AVA-3501 обрабатывает гигабайты изображений почти в реальном времени используя AI, чтобы успевать за тем массивом данных, который производится во время беспилотного заезда. Вся работа по анализу с помощью AI должна быть произведена прямо в автомобиле, сразу при поступлении данных. Поэтому контроллер содержит последние процессоры Intel® Core™ и Xeon®, имеет по два слота для полноценных видеокарт NVIDIA RTX для ускорения обработки AI. В зависимости от конфигурации, в компьютере могут быть жесткие диски Samsung 970 EVO Plus NVME M.2 SSDs до 3 ТБ и двух дисков по 512ГБ, подключаемых «на горячую» через слоты 2.5" SSD SATA 6 Гб/с. Также присутствуют двойные порты 40GbE QSFP+ и шесть каналов шины CAN. Всё это в дополнение к стандартному набор ввода-вывода, как DP++, DVI-I, GbE, 8-канальному Digital IO, и 6 портов вездесущего USB. Также рекомендую брошюру с деталями.

Наверное, не нужно говорить, что вся эта мощь нужна для принятия решения в доли секунды, основываясь на миллионах параметров (data points), описывающих происходящее вокруг. Например, если одна из машин впереди внезапно уходит влево или вправо, что делать?  

 

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

«Домашние» решения WiFi и 5G не предоставляют нужной точности и скорости. Когда автомобиль мчится по трассе, то необходимо мгновенно и гарантированно получать информацию. То же самое касается бортовых сенсоров (лидаров, камер, радаров) и компьютеров, которые должны иметь возможность коммуникации на высочайшей скорости для того чтобы успеть просчитывать алгоритм поведения или иметь возможность взятия автомобиля под контроль в чрезвычайных обстоятельствах. Любая сетевая задержка на порядки увеличивает шансы аварии или как минимум уменьшает шансы на победу в гонке.

Организаторы IAC и инженеры CU-ICAR исследовали характеристики разных беспроводных технологий включая 5G, DSRC/V2X, и CV2X. В заключение они сделали вывод о том, что данные технологии пока не обеспечивают должных характеристик.  


Поэтому для боротвых систем были выбраны следующие технологии и устройства:

· V2i через Cisco Ultra-Reliable Wireless Backhaul (ранее, Fluidmesh) – беспроводная технология с производительностью, схожей с оптоволоконными сетями и скоростью до 500 Мб/с.

· Бортовой коммутатор Cisco Catalyst Industrial Switches поддерживающий до 40Гб/с.

· Специально разработанная антенна, расположенная в самой верхней точке автомобиля (на рисунке слева).  

 


Радиопередача осуществлялась в следующих сценариях:

  • Передача информации о текущем статусе гоночного флаг
  • Телеметрия 
  • Передача видео с машин
  • Чрезвычайная остановка
  • Сердцебиение (heartbeat) каждые 50мс для проверки доступности связи с машиной
  • Выравнивание времени через Ultra-HD GPS  

Трек также был оборудован передатчиками по кругу трассы для максимизации доступности сетевого соединения:

 7. Колеса Bridgestone с датчиками состояния резины и заноса. Многие гонщики в основном управляют болидами на уровне мышечной памяти и инстинктов, т.к. «подумать» на скоростях выше 200 миль в час нет времени. Поэтому определение состояния, при котором резина теряет контакт с дорогой, представляет отдельную задачу для компьютерных систем.


8. Система «руления автомобилем» Schaeffler SpaceDrive включающая как модули управления, так и сопутствующий софт. Это устройство позволяет убрать стандартную рулевую колонку и сопутствующие железки. Система воспринимает команды и транслирует их в точные углы поворота колес для совершения манёвра, управляет уровнем газа и торможения.


Вот так выглядит коробочка, заменяющая рулевую колонку:

 

Наверное, стоит отметить также участие робота Spot от Boston Dynamics, который размахивал клетчатым флагом гонки и всячески развлекал публику.

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

Вот тут, к сожалению, самое интересное, но и самое сложное. Думаю, что если попытаться описать всё ПО, используемое всеми командами, то выйдет список-трехтомник. Однако, попробуем уделить внимание отдельным продуктам, которые особенно упоминались в разных источниках, как наиболее важные. 

1. Организаторы использовали ПО для управления гонкой (Race Control) и транслирования событий, чтобы можно было передавать автомобилям сигналы о чрезвычайных обстоятельствах, состоянии флага гонки, а также необходимости разгона или торможения, или же полной остановки.

2. Симулятор GAIA Platform, управляющий тактикой и стратегией гонки, используя Race Decision Engine (RDE). Части информации о ней можно найти в сопутствующих материалах гонки и документации проекта. Если коротко, то этот пакет берет на себя обработку событий сохранения и обновления данных в хранилище (на C++), пока вы фокусируетесь на написании логики управления роботом (focus on your mission’s goal). 

3. Дополнительно, ADLINK предоставила Docker-контейнер для работы со своим робототехническим контроллером. Это позволило командам соревнований использовать  систему Open Robotics ROS 2 с библиотеками Autoware.Auto, Eclipse Zeno V2X и Eclipse Cyclone DDS. 

4. Симулятор Kvaser DevKit и высокоточные устройства для работы с шиной CAN.

5. Многие команды использовали open-source проект PlotJuggler для визуализации и анализа телеметрии и других данных. to visualize and analyze all their data.

6. Пакет симуляции вождения Ansys VRXPERIENCE powered by SCANeR.

7. Пакет Ansys SCADE Suite для построения и разработки модели поведения.

8. Microsoft Azure Cloud предоставил вычислительные мощности для запуска тысяч экспериментов симуляции одновременно во время тренировки моделей.


Роли в каждой команде

Все команды были устроены по-разному, в зависимости от ресурсов (очевидно), а также планируемого решения (алгоритмов, инструментов, и прочего). Но в среднем, в каждой команде нужно было «закрыть» следующие роли и экспертизу:

  • Организация и управление
  • Симуляции
  • Динамика автомобиля
  • Планирование движения и управление
  • Безопасность, логирование, телеметрия и визуализация
  • Восприятие информации с сенсоров
  • Экспертиза по автомобилю Dallara AV-21

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

Восприятие

На скриншоте с камеры видно, как детектируются объекты вокруг. Чтобы сделать такую картинку были взяты видеозаписи с автомобилей пропущены на вход нейронной сети, детектирующей объекты: она классифицирует коллекции объектов по заранее обозначенным классам, как например автомобилей. Благодаря этому мы можем знать, что рядом находятся именно оппоненты (найденные классы объектов), а не конусы.

Планирование

Как только модуль восприятия определяет состояние автомобиля и окружающих его объектов (скорость, позицию, и т.д.), модуль планирования берет на себя управление автомобилем в данный момент времени. Он отвечает за ряд поведенческих правил, как например наиболее быстрые и безопасные траектории движения для обгона или другого манёвра. Чтоб корректно следовать пути, высокоуровневый контроллер использует соответствующую модель, подходящую под конкретную ситуацию (их много), например вход и выход из поворота, обгон и т.д. Множество деталей работы этих моделей и алгоритмов нужно читать в материалах команд, на их сайтах, Git-Hub акккаунтах, и презентациях на youtube и т.д.

 

Динамика

Цель этого модуля: смоделировать поведение колес, двигателя и других механических деталей во время движения на скорости около 300 км/ч. Для этого тоже используется моделирование, интерфейсы и инструменты мониторинга систем автомобиля. 

Среда симуляции

Модуль планирования решает множество задач. Чтобы натренировать его на разные такие задачи используются среды симуляции. В данном соревновании команды использовали пакеты от Ansys, но такого ПО достаточно много, тот же Microsoft Air, Blender или OpenFOAM. Кстати, в одном из своих прошлых постов я сделал пошаговый туториал постановки эксперимента симуляции физических параметров модели мотоцикла с помощью open-source пакета OpenFOAM, настройки его в облаке и отображении результатов в web. И хоть я коснулся этой области совсем недавно, она сразу показалась мне интересной. Сейчас эта область исследований получает всё больше внимания, хотя существует она довольно давно и на рынке присутствует множество компаний, оказывающих услуги и предоставляющих экспертизу по симуляциям. Много статей на эту тему вышло за 2021 год у Wevolver


Выводы

В статье я постарался раскрыть некоторые технические детали соревнований IAC 2021, но далеко не все. Эти соревнования действительно являются единственными в своём роде. Такие события происходят далеко не каждый год. Уверен, что в будущем команды проанализируют свои результаты, и выложат больше информации о «внутренностях», а значит нас ждет ещё более увлекательные подробности. Уже сейчас достаточно заглянуть в доступные ресурсы каждой из команд, чтобы понять, что ими уже накоплены результаты исследований и испытаний порой по десятку лет. Честно говоря, до этих соревнований, мне казалось, что в этой области работают всего несколько известных всему миру «гигантов», однако на самом деле этой темой уже занимаются многие десятки команд и компаний. С удовольствием будем наблюдать дальше, читать подробности, и будем надеяться, что доведётся как-то и поучаствовать в чем-то близком.

Используемые материалы

Комментарии

Популярные сообщения из этого блога

Делаем себе бесплатный VPN на Amazon EC2

Читать этот пост в Telegraph. Другие посты в канале в Telegram. Кто только не расписывал уже пошаговые инструкции по этой теме. Однако, время идёт, ПО меняется, инструкции нуждаются в обновлении, а люди в современной России всё больше нуждаются в применении VPN. Я собираюсь описать все шаги для создания бесплатного сервера на Amazon EC2 с операционной системой Linux и необходимые команды для настройки VPN сервера на нём. Чтобы не повторяться о деталях, которые были много раз описаны на русскоязычных и англоязычных ресурсах, по ходу статьи я просто приведу целую кипу ссылок, где можно почерпнуть необходимую информацию, а где информация устарела - опишу подробнее что нужно сдеать. В итоге, сервер будет доступен для вас из любой точки планеты, с любой операционной системы, и бесплатно (с определёнными ограничениями по трафику). Шаг первый - Регистрируемся на Amazon AWS Нужно зайти на сайт https://aws.amazon.com/ru и сразу перейти к Регистрации, нажав одноимённую кнопку. При р

В помощь программисту: инструкции по работе с Ubuntu сервером

Программистам чаще приходится писать код и заботиться о его чистоте, правильных абстракциях в коде, корректных зависимостях и прочих сложностях профессии. При этом, настройка и обслуживание серверов, хоть и связанная область - это отдельный навык, необходимый не каждому, и помнить о котором в деталях сложно. Поэтому, я делаю ряд микро-инструкций, которыми буду пользоваться и сам, когда необходимо. Это не статьи, а пошаговые помощники, которые я буду дополнять и наполнять по мере надобности. Делаем бесплатный VPN на Amazon EC2 Создание ключей SSH Подключение к серверу через SSH Передача файла с Linux сервера наWindows машину Делаем VPN сервер на Ubuntu 20.04 используя OpenVPN и EasyRSA  Отображение GUI с Linux сервера на Windows машине

Выбираем все плюсы из трех парадигм Entity Framework

Между парадигмами разработки с Entity Framework (Code First, Model First, Database First) я выбрал промежуточную, потому что ни одна меня не устраивала полностью. В Code First меня радуют чистые POCO классы, но не устраивает невозможность моделирования базы. В Database First и Model First мне не нравится генерация EDMX и другого всего лишнего. Таким образом, я нашел для себя такое решение: 1. Я моделирую схему в любой удобной программе (тут любая внешняя программа моделирования, генерирующая SQL Server-совместимые скрипты генерации базы) Рис. Смоделированная схема БД. 2. Создаю базу в SQL Management Studio 3. Делаю Reverse Engineering базы в POCO классы (как в Code First) с помощью плагина Entity Framework Power Tools Рис. Установленный плагин для Reverse Engineer. Рис. Вот так делается Reverse Engineer базы данных в POCO классы. Рис. Результат генерации POCO классов на основе базы данных: папочка Models с готовым контекстом, классами объектов и маппинг-классами.