export

Экспортируйте ведущий сценарий в OpenDRIVE или файл ASAM OpenSCENARIO

Описание

пример

export(scenario,'OpenDRIVE',filename) экспортирует дороги, маршруты, соединения и агентов в ведущем сценарии к формату файла OpenDRIVE® 1.4H, описывая статическое содержимое ведущего сценария. Могут быть изменения между исходным сценарием и экспортируемым сценарием. Для получения дополнительной информации смотрите Ограничения.

пример

export(scenario,'OpenSCENARIO',filename) экспортирует дорожную сеть, агентов и траектории в ведущем сценарии к формату файла ASAM OpenSCENARIO® 1.0, описывая динамический контент ведущего сценария. Экспорт в файл ASAM OpenSCENARIO также экспортирует несколько файлов данных. Для получения дополнительной информации смотрите Файлы данных, Экспортируемые с Файлом ASAM OpenSCENARIO.

Примеры

свернуть все

Создайте ведущий сценарий.

inputScenario = drivingScenario;

Импортируйте дорожную сеть OpenStreetMap в ведущий сценарий. Для получения дополнительной информации о osm файле, см. [1].

fileName = 'chicago.osm';
roadNetwork(inputScenario,'OpenStreetMap',fileName);

Экспортируйте в файл OpenDRIVE.

fileName = 'chicago.xodr';
export(inputScenario,'OpenDRIVE',fileName);
Warning: There may be minor variation between the actual driving scenario and the exported OpenDRIVE road networks. For more information, see <a href="matlab:helpview(fullfile(docroot,'toolbox','driving','helptargets.map'),'exportOpenDriveCLI')">export</a>.

Считайте экспортируемый файл OpenDRIVE при помощи roadNetwork функция.

scenario = drivingScenario;
roadNetwork(scenario,'OpenDRIVE',fileName);

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

figure
plot(inputScenario)
zoom(2);
title('Actual Scenario')

figure
plot(scenario)
zoom(2);
title('Exported Scenario')

Приложение

[1] osm файл загружается с https://www.openstreetmap.org, который обеспечивает доступ к полученным толпой данным о карте во всем мире. Данные лицензируются под Открытыми Данными палата общин Открытая Лицензия Базы данных (ODbL), https://opendatacommons.org/licenses/odbl/.

Создайте ведущий сценарий с одной дорогой, имеющей S-кривую.

scenario = drivingScenario;
roadcenters = [-35 20 0; -20 -20 0; 0 0 0; 20 20 0; 35 -20 0];

Создайте маршруты и добавьте их в дорогу.

lm = [laneMarking('Solid','Color','w') ...
     laneMarking('Dashed','Color','y') ...
     laneMarking('Dashed','Color','y') ...
     laneMarking('Solid','Color','w')];
ls = lanespec(3,'Marking',lm);
road(scenario,roadcenters,'Lanes',ls);

Постройте сценарий.

plot(scenario)

Экспортируйте дорожную сеть в сценарии к файлу OpenDRIVE.

fileName = 'scurveroad.xodr';
export(scenario,'OpenDRIVE',fileName)
Warning: There may be minor variation between the actual driving scenario and the exported OpenDRIVE road networks. For more information, see <a href="matlab:helpview(fullfile(docroot,'toolbox','driving','helptargets.map'),'exportOpenDriveCLI')">export</a>.

Можно импортировать файл OpenDRIVE к рабочему пространству MATLAB при помощи roadNetwork функция.

scenario = drivingScenario;
roadNetwork(scenario,'OpenDRIVE',fileName)
plot(scenario)

Создайте ведущий сценарий.

scenario = drivingScenario('StopTime',6);

Импортируйте дорожную сеть из файла OpenDRIVE в сценарий.

fileName = 'parking.xodr';  
roadNetwork(scenario,'OpenDRIVE',fileName);

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

egoVehicle = vehicle(scenario,'ClassID',1);
waypoints = [-80 43; -34 29; -18 15; -10 -2; 4 -17; 38 -24; 52 -20];
speed = [50 20 20 20 20 50 50];
trajectory(egoVehicle,waypoints,speed);

Добавьте агента неэго и установите его метать икру во время симуляции путем определения временной стоимости записи. Сгенерируйте траекторию для агента неэго.

truck = vehicle(scenario,'ClassID',2,'Position',[4 -17 0],'EntryTime',3);
waypoints = [4 -17; 20 -24; 38 -24; 60 -16];
speed = [40 40 40 40];
trajectory(truck,waypoints,speed);

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

plot(scenario,'Waypoints','on');
while advance(scenario)
    pause(0.01)
end

Figure contains an axes. The axes contains 9 objects of type patch, line.

Экспортируйте сценарий в файл ASAM OpenSCENARIO.

export(scenario,'OpenSCENARIO','parking.xosc');
Warning: Exported road network to OpenDRIVE may have minor variations than actual road network in the scenario. For more information, see <a href="matlab:helpview(fullfile(docroot,'toolbox','driving','helptargets.map'),'exportOpenDriveCLI')">export</a>.

Входные параметры

свернуть все

Ведущий сценарий в виде drivingScenario объект. Ведущий сценарий должен содержать одну или несколько дорожных сетей для того, чтобы экспортировать его в формат файла OpenDRIVE.

Ведущий сценарий должен содержать одного или несколько агентов, чтобы экспортировать его в формат файла ASAM OpenSCENARIO.

Если ведущий сценарий не имеет технических требований маршрута, то export функционируйте присваивает спецификацию маршрута по умолчанию при экспорте дорожной сети в OpenDRIVE или формат файла ASAM OpenSCENARIO.

Имя целевого файла в виде вектора символов или строкового скаляра. Можно задать имя файла с или без расширения файла. Если вы принимаете решение задать расширение файла, расширение файла должно быть одним из них:

  • Файл OpenDRIVE — .xodr (значение по умолчанию) или .xml

  • Файл ASAM OpenSCENARIO — .xosc (значение по умолчанию) или .xml

Если заданное имя файла, включая расширение файла, уже существует, то функция перезаписывает данные в существующем файле с ведущим сценарием, заданным в scenario аргумент.

Типы данных: char | string

Ограничения

Ограничения экспорта OpenDRIVE

Дороги

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

    Инпут-РоудЭкспортируемая ОПЕНДРАЙВ-Роуд

    Original road

    Exported road

  • Когда сегменты смежного перекрытия дорог друг с другом, функция не экспортирует перекрывающиеся сегменты дорог.

    Введите дорогиЭкспортируемые дороги OpenDRIVE

    Input overlapping roads

    Exported roads

Маршруты

  • Когда дорога с несколькими техническими требованиями маршрута имеет любой сегмент, содержащий только одну полосу, функция не экспортирует несколько технических требований маршрута. Вместо этого технические требования первого дорожного сегмента применяются к целой дороге при экспорте.

    Инпут-РоудЭкспортируемая ОПЕНДРАЙВ-Роуд

    Первый сегмент исходной дороги имеет только одну полосу.

    Original road with lane add

    Целая экспортируемая дорога имеет ту же спецификацию как первый сегмент входной дороги.

    Exported road without lane add

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

    Инпут-РоудЭкспортируемая ОПЕНДРАЙВ-Роуд

    Original road with taper

    Exported road without taper

  • Когда дорога, состоящая из нескольких сегментов, соединяется с соединением, функция не экспортирует дорогу.

Соединения

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

    Инпут-РоудЭкспортируемая ОПЕНДРАЙВ-Роуд

    Original junction

    Exported junction

Агенты

  • export функция не экспортирует агента, который присутствует или на соединении или на дороге с несколькими дорожными сегментами.

  • При экспорте пользовательского агента функция устанавливает тип объекта к 'none'.

Импорт OpenDRIVE

  • Когда вы экспортируете ведущий объект сценария, который содержит импортированный сценарий OpenDRIVE, ограничения импорта OpenDRIVE применяются к экспорту OpenDRIVE. Можно импортировать сценарий OpenDRIVE к drivingScenario объект при помощи roadNetwork функция. Для получения информации об ограничениях импорта OpenDRIVE смотрите roadNetwork.

Больше о

свернуть все

Файлы данных, экспортируемые с файлом ASAM OpenSCENARIO

При экспорте ведущего сценария в файл ASAM OpenSCENARIO функция также экспортирует несколько файлов данных. Каждый файл данных описывает информацию об определенном элементе, таком как транспортное средство или пешеход. Имя каждого файла данных имеет префиксный filename_, где filename имя, заданное в filename аргумент, исключая расширение.

Файл данныхЭлемент сценария
OpenDRIVE.xodrДорожная сеть в сценарии
VehicleCatalog.xoscСвойства транспортных средств
RouteCatalog.xoscТраектории агентов
PedestrianCatalog.xoscСвойства пешеходов
MiscCatalog.xoscСвойства статических объектов

Примечание

  • Функция экспортирует только соответствующие файлы данных согласно сценарию. Например, если сценарий не содержит пешеходов, то файл данных PedestrianCatalog.xosc не экспортируется.

  • Когда ведущий сценарий содержит одну или несколько дорожных сетей, ограничения экспорта OpenDRIVE применяются к экспортируемому OpenDRIVE.xodr файл данных.

Введенный в R2020b