Путь к 240 миллионам виртуальных километров: Путешествие BMW по автономному вождению с Unity

NICK DAVIS / UNITY TECHNOLOGIESContributor
Aug 10, 2020|6 Мин
Путь к 240 миллионам виртуальных километров: Путешествие BMW по автономному вождению с Unity
Эта веб-страница была переведена с помощью машинного перевода для вашего удобства. Мы не можем гарантировать точность или надежность переведенного контента. Если у вас есть вопросы о точности переведенного контента, обращайтесь к официальной английской версии веб-страницы.

Прежде чем технология автономного вождения (AD) BMW будет готова к серийному производству, ей предстоит проехать 240 миллионов виртуальных километров. Узнайте, как Unity помогает BMW каждый день записывать на одометр больше. В нашей первой статье мы рассказали о том, как команда BMW Fully Autonomous Driving & Driver Assistance Systems использовала Unity для разработки пользовательских инструментов для визуализации симуляций и создания сценариев. С помощью этих инструментов BMW Group хорошо подготовлена к решению самых сложных повседневных задач в области развития AD. Давайте рассмотрим несколько областей, в которых Unity оказывает существенную помощь.

Обеспечение непрерывного тестирования днем и ночью
Автомобили на дороге
Редактор сценариев BMW на базе Unity позволяет разработчикам AD проводить тесты с точным контролем. На этих изображениях показан смоделированный тест, параметризованный для разного времени суток и погодных условий.
Машины на темной дороге
Ночью все происходит по тому же сценарию.
машины на темной дороге
Тот же сценарий в дождь.

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

Эти тесты бывают разных видов:

  • Мелкомасштабные испытания функций - эти испытания являются наиболее распространенным типом тестирования и позволяют BMW быстро оценить некоторые части системы AD, такие как планирование траектории движения автомобиля. За обычный день команда BMW проходит десятки тысяч виртуальных километров; большинство из них - это тесты на коротких дистанциях (от сотен метров до 1 километра) с шагом менее минуты.
  • Крупномасштабные системные тесты - вместо серии мини-тестов для конкретной функции, этот тип симуляции предназначен для тестирования всей системы AD. Игра представляет собой расширенный сценарий, который может длиться часами и стремится воспроизвести реальные сценарии, например, поездку по автобану между немецкими городами Мюнхен и Штутгарт. Эти симуляции более сложны, часто включают в себя виртуальный мир с движущимися транспортными средствами, пешеходами и переменными погодными условиями, а также картографические данные, модели датчиков в качестве входных данных для алгоритмов восприятия, планирование траектории движения, динамику транспортного средства и многое другое.

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

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

После первого сбоя в этом сценарии усовершенствования обеспечивают правильное торможение этого автомобиля в ответ на агрессивное вклинивание транспортного средства в его полосу движения.

Создание угловых ситуаций
Автомобиль в редакторе Unity

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

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

BMW использует моделирование для проверки сценариев, которые слишком необычны или слишком рискованны, чтобы создавать их в реальных условиях вождения. Здесь показаны три крайних случая: 1) Пешеход, неожиданно появившийся на полосе движения автомобиля-хозяина на скоростной трассе; 2) Транспортное средство, внезапно пересекающее полосу движения; 3) Остановившийся автомобиль на полосе движения автомобиля-хозяина.

Повышение качества кода с помощью визуального тестирования и отладки

Unity используется ежедневно, чтобы помочь 1800 разработчикам AD в BMW Group постоянно совершенствовать код, за который они несут индивидуальную ответственность. Когда они вносят изменения в кодовую базу, чтобы добавить новую функцию или улучшить существующую, они проводят интеграционные тесты перед слиянием с мастером.

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

Разработчик может визуально проверить свои результаты, а также использовать метрики оценки для выявления улучшений или подтверждения того, что функция готова к включению в мастер-версию (например, автомобиль каждый раз подстраивается под установленное ограничение).

Разработчики могут одновременно тестировать и визуализировать результаты инкрементных обновлений кода. После слияния они могут запустить приемочные тесты, чтобы выявить сбои в других функциях, возникшие в результате их фиксации, или наоборот. Например, слияние с коллегой может внести ошибку, которая влияет на восприятие знаков ограничения скорости. Разработчики могут использовать Unity для визуальной отладки и легко наблюдать за происходящим, чтобы быстрее исправить ситуацию. Система BMW устроена таким образом, что разработчики могут устанавливать точки останова в функции управления автомобилем и в коде симуляции. Функция AD и симуляция всегда синхронизированы друг с другом, поэтому команда может просматривать код строка за строкой и переключаться между двумя мирами в процессе отладки. Синхронность отражается и в визуализации, позволяя одновременно наблюдать за кодом и симулированным миром. Поскольку разработчики по-прежнему могут перемещаться и проверять значения в приложении на базе Unity, они могут сократить количество инструментов, которые должны быть открыты одновременно, сохраняя при этом прозрачность данных. Все эти элементы гарантируют, что производственный код, который в конечном итоге будет использоваться в автономных автомобилях BMW, соответствует стандартам безопасности и надежности.

---

Ознакомьтесь с коллекцией Unity Industrial Collection или узнайте больше о том, как Unity используется для моделирования AD, в нашем техническом документе: Топ-5 способов, с помощью которых 3D в реальном времени революционизирует жизненный цикл автомобильных продуктов.