В этом примере показано, как реализовать моделирование синтетических данных для отслеживания и слияния датчиков в Simulink ® с использованием среды моделирования Unreal Engine ® от Epic Games ®. В примере Simulink он точно соответствует синтезу датчиков с использованием синтетических данных радара и зрения.
Automated Driving Toolbox предоставляет инструменты для разработки, моделирования и визуализации сценариев виртуального вождения. С помощью этих сценариев можно моделировать редкие и потенциально опасные события, создавать синтетические радиолокационные и видимые детекторы из сценариев и использовать синтетические детекторы для тестирования алгоритмов транспортного средства. В этом примере рассматривается весь поток операций синтеза данных в Simulink с использованием среды моделирования 3D.
Перед запуском этого примера дороги, актеры и траектории в сценарии были созданы с помощью следующей процедуры:
Извлеките расположение центра из части дороги в программной 3D сцене «Определение компоновки дороги», используя методы, представленные в разделе «Выбор ППМ для моделирования нереального двигателя».
Создайте в конструкторе сценариев движения дорогу, в которой эти извлеченные местоположения будут использоваться в качестве значений центра дороги.
Определите несколько движущихся транспортных средств на дороге, которые имеют траектории, аналогичные траекториям в сценарии, определенном в Sensor Fusion Using Synthetic Radar and Vision Data in Simulink.
Сохраните файл сценария curved_road.mat из конструктора сценариев и загрузите его в модель с помощью блока чтения сценариев.
Вывод позиций транспортных средств из блока «Считыватель сценариев» и преобразование их в мировые координаты. Используйте блок «Cuboid to 3D Simulation» для преобразования в X, Y и Yaw, требуемые 3D блоком транспортного средства.
Для определения местоположения эго-транспортного средства, ведущего транспортного средства и других транспортных средств на каждом этапе моделирования используются позиции актора, обеспечиваемые блоком Считывателя сценариев, который используется блоком имитационного 3D транспортного средства с блоками наземного следования.
close; if ~ispc error(['3D Simulation is supported only on Microsoft', char(174), ' Windows', char(174), '.']); end open_system('SimulateSensorsIn3DEnvironmentModel');

В этом примере моделируется эго-автомобиль с датчиком зрения на переднем бампере и шестью радиолокационными датчиками, охватывающими поле обзора в 360 градусов. Эго-транспортное средство оснащено радиолокатором дальнего действия как спереди, так и сзади транспортного средства. Каждая сторона транспортного средства имеет два радара малой дальности, каждый из которых охватывает 90 градусов. Один радар с каждой стороны закрывает от середины транспортного средства до задней части. Другой радар с каждой стороны закрывается от середины транспортного средства вперед.
Подсистема Ego Sensors содержит один блок Simulation 3D Vision Detection Generator и шесть блоков Simulation 3D Probabilistic Radar, моделирующих ранее описанные датчики. Выходные сигналы радиолокационных блоков объединяются с помощью блока обнаружения конкатенации. В модели верхнего уровня выходной сигнал радара затем совмещается с выходным сигналом зрения для создания единого потока обнаружений, которые должны быть слиты блоком Multi-Object Tracker.
open_system('SimulateSensorsIn3DEnvironmentModel/Ego Sensors')

Вероятностные радары «видят» не только физические размеры актера (например, длину, ширину и высоту), но и чувствительны к электрическим размерам актера. Электрический размер актера называется его радиолокационным сечением (RCS). Модели RCS для транспортных средств, участвующих в моделировании, определяются с помощью блока «Моделирование 3D вероятностная конфигурация радара».

Этот блок используется для определения шаблонов RCS для всех участников моделирования. Все субъекты, не имеющие указанного шаблона RCS, используют значение RCS по умолчанию.
Обнаружения, генерируемые набором радаров ego-транспортного средства, предварительно обрабатываются с помощью вспомогательного блока кластеризации обнаружения перед их слиянием с использованием блока многообъектного трекера. Многообъектный трекер конфигурируется с теми же параметрами, которые используются в соответствующем примере Simulink, Sensor Fusion Using Synthetic Radar и Vision Data in Simulink. Выходные данные блока Multi-Object Tracker представляют собой список подтвержденных дорожек.
Bird 's-Eye Scope - это инструмент визуализации на уровне модели в Simulink, открытый на панели инструментов Simulink. После открытия области щелкните Найти сигналы (Find Signals), чтобы настроить сигналы. Затем выполните моделирование для отображения ego-актера, радаров и визуальных обнаружений, а также следов. На следующем рисунке показан экран области для этого примера.

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

Смоделированные транспортные средства отображаются в окне моделирования. Обнаруженные объекты и дорожки, созданные при моделировании, отображаются только в области действия «Птичий глаз».
В этом примере показано, как извлекать дорожные центры из 3D сценария для использования в приложении Конструктор сценариев вождения. Также показано, как экспортировать траектории транспортных средств, созданные из сегментов дорог, для использования в среде моделирования 3D в Simulink. Затем вы научились настраивать вероятностную модель камеры и несколько вероятностных моделей радаров в среде Unreal Engine, а также предохранять детекторы от нескольких датчиков, расположенных по периметру эго-транспортного средства, с помощью многообъектного трекера. Подтвержденные дорожки, генерируемые трекером, могут затем использоваться для алгоритмов управления, таких как адаптивный круиз-контроль (ACC) или предупреждение о столкновении в прямом направлении (FCW).
close_system('SimulateSensorsIn3DEnvironmentModel');