Интерактивное создание сценария вождения и генерация синтетических данных о датчике

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

Этот пример показывает весь рабочий процесс создания сценария и генерации синтетических данных о датчике. Также можно сгенерировать данные о датчике из предварительно созданных сценариев. Смотрите Предстроенные сценарии вождения в Driving Scenario Designer.

Создайте сценарий вождения

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

Добавление дороги

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

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.

Чтобы создать кривую дороги, добавьте road center, вокруг которого она будет изогнута. Щелкните правой кнопкой мыши середину дороги и выберите Add Road Center. Затем перетащите добавленный центр дороги в один из пустых углов полотна.

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.

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

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

По умолчанию дорога является одной полосой и не имеет разметки маршрута. Чтобы сделать сценарий более реалистичным, преобразуйте дорогу в двухполосную магистраль. На левой панели на вкладке Roads разверните раздел Lanes. Установите Number of lanes равным [1 1]. Приложение устанавливает параметр Lane Width равным 3.6 метров, что является типичной шириной маршрута шоссе.

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

Белая сплошная разметка полос на любом ребре дороги указывает на обочину дороги. Желтая, двухпозиционная разметка маршрута в центре указывает, что дорога является двухсторонней. Чтобы просмотреть или изменить эти полосы движения, из списка Lane Marking выберите одну из полос движения и измените параметры полосы движения.

Добавление барьеров

Чтобы добавить барьеры по краям изогнутой дороги, используйте панель инструментов приложения или контекстное меню дороги. На панели инструментов приложения нажмите Add Actor > Jersey Barrier. Переместите курсор на правое ребро дороги и щелкните, чтобы добавить вдоль него барьер. Это также открывает вкладку Barriers на левой панели. Чтобы добавить зазор в 1 м между сегментами барьера, измените значение свойства Segment Gap (m) на вкладке Barriers на 1.

A curved road with jersey barrier along its right edge

Чтобы добавить ограждение ограждения к левому краю дороги с помощью контекстного меню дороги, щелкните правой нажатие кнопки на дороге и выберите Add Guardrail > Left edge. Задайте зазор 1 м между сегментами барьера для ограждения, используя свойство Segment Gap (m) на вкладке Barriers.

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

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

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

Добавить Автомобиля , оборудованного датчиком

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

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.

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

Отрегулируйте скорость автомобиля. На левой панели на вкладке Actors установите значение Constant Speed 15 м/с. Для получения дополнительной информации о скорости автомобиля установите скорость между путевыми точками в v (m/s) столбце таблицы Waypoints, Speeds, Wait Times, and Yaw.

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

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

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

Добавить пешехода

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

A pedestrian added to the side of the road

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

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

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

Например, если автомобили сталкиваются с пешеходом, в v (m/s) столбце < reservedrangesplaceholder1 > таблицы регулируйте скорости автомобилей или пешехода. Кроме того, в wait (s) столбце таблицы установите время ожидания для автомобилей на путевой точке перед пересечением пешеходом улицы.

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

Добавление датчиков

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

Добавление камеры

На панели инструментов приложения нажмите Add Camera. Полотно датчика показывает стандартные положения, в которых можно разместить датчики. Щелкните самое переднее предопределенное расположение датчика, чтобы добавить датчик камеры к переднему бамперу автомобиля , оборудованного датчиком.

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

Чтобы разместить датчики точнее, можно отключить опции привязки. В левом нижнем углу холста датчика нажмите кнопку Configure the Sensor Canvas.

По умолчанию камера обнаруживает только актёров, а не дорожки. Чтобы включить обнаружение маршрута, на вкладке Sensors в левой панели разверните раздел Detection Parameters и установите Detection Type равным Objects & Lanes. Затем разверните раздел Lane Settings и обновите настройки по мере необходимости.

Добавление радаров

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

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

An animation of the radar sensor being rotated

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

The sensor canvas with both radar sensors tilted toward the front

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

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

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. Когда сценарий запускается, The Bird’s-Eye Plot отображает обнаружения и данные облака точек.

A bird's-eye plot of the scenario

Этот Ego-Centric View отображает сценарий с точки зрения автомобиля , оборудованного датчиком.

An ego-centric view of the scenario

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

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

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

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

  • Чтобы экспортировать данные о датчике в рабочее пространство MATLAB, на панели инструментов приложения выберите Export > Export Sensor Data. Назовите переменную рабочей области и нажатия кнопки OK. Приложение сохраняет данные датчика как структуру, содержащую данные датчика, такие как положения актёра, обнаружения объектов и обнаружения маршрута на каждом временном шаге.

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

Сценарий сохранения

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

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

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

См. также

Приложения

Блоки

Объекты

Похожие темы