exponenta event banner

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

В этом примере показано, как создать сценарий вождения и создать детекторы датчиков зрения и радара из сценария с помощью приложения Конструктор сценариев вождения. Эти синтетические данные можно использовать для тестирования контроллеров или алгоритмов слияния датчиков.

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

Создание сценария управления

Чтобы открыть приложение, в командной строке MATLAB ® введитеdrivingScenarioDesigner.

Добавить дорогу

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

Side-by-side images. In the first image, a dashed line extends from the bottom-right corner of the canvas to the top-left corner. In the second image, the dashed line is replaced by a straight road.

Чтобы создать кривую дороги, добавьте центр дороги, вокруг которого ее нужно искривить. Щелкните правой кнопкой мыши середину дороги и выберите «Добавить центр дороги». Затем перетащите добавленный центр дороги в один из пустых углов полотна.

Side-by-side road images. In the first image, the middle road center is being dragged down slightly. In the second image, the middle road center is being dragged down even more to form a curved road.

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

Добавить полосы движения

По умолчанию дорога представляет собой одну полосу движения и не имеет разметки полосы движения. Чтобы сделать сценарий более реалистичным, преобразуйте дорогу в двухполосное шоссе. На левой панели на вкладке «Дороги» разверните раздел «Полосы движения». Задайте для параметра «Количество полос» значение [1 1]. Приложение устанавливает для параметра «Ширина полосы» значение 3.6 метров, что является типичной шириной полосы движения шоссе.

A curved road with a double-solid line indicating a divided highway.

Белая сплошная разметка полос на любом краю дороги указывает на обочину дороги. Жёлтая, двойная сплошная разметка полосы в центре указывает на то, что дорога является дорогой с двусторонним движением. Для проверки или изменения этих полос в списке «Разметка полосы движения» выберите одну из полос движения и измените ее параметры.

Добавить барьеры

Чтобы добавить барьеры вдоль краев криволинейной дороги, используйте панель инструментов приложения или контекстное меню дороги. На панели инструментов приложения щелкните Добавить актера > Барьер Джерси. Переместите курсор к правому краю дороги и щелкните мышью, чтобы добавить вдоль нее барьер. Также откроется вкладка Барьеры на левой панели. Чтобы добавить зазор 1 м между сегментами барьера, измените значение свойства «Зазор сегмента (m)» на вкладке «Барьеры» на 1.

A curved road with jersey barrier along its right edge

Чтобы добавить ограждение к левому краю дороги с помощью контекстного меню дороги, щелкните его правой кнопкой мыши и выберите «Добавить ограждение» > «Левое ребро». С помощью свойства «Зазор между сегментами» на вкладке «Барьеры» задайте расстояние между сегментами ограждения в 1 м.

A curved road with jersey barrier along its right edge and a guardrail along its left edge

Добавить транспортные средства

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

Добавить транспортное средство Ego

Чтобы добавить эго-автомобиль, щелкните правой кнопкой мыши один конец дороги и выберите «Добавить автомобиль». Чтобы задать траекторию автомобиля, щелкните его правой кнопкой мыши, выберите «Добавить ППМ» и добавьте ППМ вдоль дороги для прохождения автомобиля. После того, как вы добавите последний ППМ вдоль дороги, нажмите Enter. Автомобиль autorotates в направлении первого ППМ. Для большей точности по траектории можно скорректировать ППМ. Можно также щелкнуть контур правой кнопкой мыши для добавления новых ППМ.

A blue car with a trajectory that extends to the end of the lane. A triangle on the car points in the direction of the trajectory.

Треугольник обозначает позу транспортного средства, при этом начало координат расположено в центре задней оси транспортного средства.

Отрегулируйте скорость автомобиля. На левой панели на вкладке «Исполнители» установите для параметра «Постоянная скорость» значение 15 м/с. Для дополнительного контроля скорости автомобиля установите скорость между ППМ в столбце v (м/с) таблицы «ППМ», «Скорости», «Время ожидания» и «Время ожидания».

Добавить второй автомобиль

Добавьте транспортное средство для обнаружения датчиков эго-транспортного средства. На панели инструментов приложения щелкните Добавить актера и выберите Автомобиль. Добавьте второй автомобиль с ППМ, проезжающий по полосе напротив эго-транспортного средства и на другом конце дороги. Оставьте без изменений скорость и другие настройки автомобиля.

An orange car added to the opposite lane and opposite end of the road

Добавление пешехода

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

A pedestrian added to the side of the road

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

Чтобы проверить скорость автомобилей и пешехода, проведите симуляцию. При необходимости настройте скорости актера или другие свойства, выбрав актера на левой панели вкладки «Актеры».

The "Car (ego vehicle)" option selected from the drop-down list

Например, если автомобили сталкиваются с пешеходом, в столбце v (м/с) таблицы Waypoints, Speeds, Wait Times и Yaw отрегулируйте скорости автомобилей или пешехода. В качестве альтернативы, в столбце «ожидание» («s») таблицы, установите время ожидания для автомобилей на ППМ до того, как пешеход пересечет улицу.

По умолчанию моделирование заканчивается, когда первый исполнитель завершает свою траекторию. Чтобы завершить моделирование только после того, как все участники завершат свою траекторию, на панели инструментов приложения сначала щелкните Настройки. Затем установите для параметра Stop Condition значение Last actor stops.

Добавить датчики

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

Добавить камеру

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

The sensor canvas with a camera attached to the front bumper of the ego vehicle.

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

По умолчанию камера обнаруживает только актеров, а не полосы движения. Чтобы включить обнаружение полос движения, на вкладке «Датчики» на левой панели разверните раздел «Параметры обнаружения» и установите для параметра «Тип обнаружения» значение Objects & Lanes. Затем разверните раздел «Параметры полосы движения» и при необходимости обновите параметры.

Добавить радары

Привязать радиолокационный датчик к переднему левому колесу. Щелкните правой кнопкой мыши заданное местоположение датчика для колеса и выберите Добавить радар (Add Radar). По умолчанию датчики, добавленные к колесам, являются датчиками малой дальности.

Наклоните датчик радара к передней части автомобиля. Наведите курсор на зону покрытия, затем щелкните и перетащите угловую маркировку.

An animation of the radar sensor being rotated

Добавьте идентичный радиолокационный датчик к переднему правому колесу. Щелкните правой кнопкой мыши датчик на переднем левом колесе и выберите «Копировать». Затем щелкните правой кнопкой мыши заданное местоположение датчика для переднего правого колеса и выберите Вставить (Paste). Ориентация скопированного датчика отражает ориентацию датчика на противоположном колесе.

The sensor canvas with both radar sensors tilted toward the front

Добавить Лидар

Прикрепите лидарный датчик к центру крыши транспортного средства. Щелкните правой кнопкой мыши на заданном местоположении датчика для центра крыши и выберите «Добавить лидар».

The sensor canvas with the lidar sensor added to the roof center

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

An zoomed-out view of the sensors. The lidar coverage area encircles the vehicle and the radar and camera coverage areas.

Создание данных синтетического датчика

Чтобы создать данные от датчиков, щелкните Выполнить (Run). По мере выполнения сценария график птичьего глаза отображает обнаруженные объекты и данные облака точек.

A bird's-eye plot of the scenario

В Ego-Centric View отображается сценарий с точки зрения транспортного средства ego.

An ego-centric view of the scenario

Поскольку указан лидарный датчик, в Ego-Centric View и Bird 's-Eye Plot вместо кубовидных представлений отображаются сетчатые представления актёров. Лидарные датчики используют эти более подробные представления субъектов для генерации данных облака точек. Холст сценария по-прежнему отображает только кубовидные представления. Датчики радара и зрения основывают свои обнаружения на кубоидных представлениях.

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

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

Затем экспортируйте обнаружение датчика:

  • Чтобы экспортировать данные датчика в рабочую область MATLAB, на панели инструментов приложения выберите Экспорт > Экспорт данных датчика. Назовите переменную рабочего пространства и нажмите кнопку ОК. Приложение сохраняет данные датчика как структуру, содержащую данные датчика, такие как позиции актера, обнаружения объектов и обнаружения полос движения на каждом шаге времени.

  • Для экспорта функции MATLAB, генерирующей сценарий и данные датчика, выберите Экспорт > Экспорт функции MATLAB. Эта функция возвращает данные датчика в виде структуры, сценарий в виде drivingScenario и модели датчиков как системные объекты. Путем изменения этой функции можно создать варианты исходного сценария. Пример этого процесса см. в разделе Программное создание вариантов сценария управления.

Сохранить сценарий

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

Этот файл сценария можно повторно открыть из приложения. Кроме того, этот синтаксис можно использовать в командной строке MATLAB.

drivingScenarioDesigner(scenarioFileName)
Можно также повторно открыть сценарий с помощью экспортированного drivingScenario объект. В командной строке MATLAB используйте этот синтаксис, где scenario - имя экспортируемого объекта.
drivingScenarioDesigner(scenario)
Для повторного открытия датчиков используйте этот синтаксис, где sensors является объектом датчика или массивом ячеек таких объектов.
drivingScenarioDesigner(scenario,sensors)
При разработке алгоритма управления в Simulink ® можно использовать блок чтения сценариев для чтения дорог и актеров из файла сценария илиdrivingScenario объект в модели. Этот блок не считывает данные датчика напрямую. Чтобы добавить датчики, созданные в приложении, в модель Simulink, создайте модель, содержащую сценарий и датчики, выбрав Экспорт > Экспорт модели Simulink. В модели сгенерированный блок чтения сценариев считывает сценарий, а сгенерированные блоки датчиков определяют датчики.

См. также

Приложения

Блоки

Объекты

Связанные темы