exponenta event banner

экспорт

Экспорт сценария управления в файл OpenDRIVE или ASAM OpenSCRIPTION

Описание

пример

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

пример

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

Примеры

свернуть все

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

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, что обеспечивает доступ к данным карты, полученным от толпы, по всему миру. Данные лицензированы по лицензии Open Data Commons Open Database License (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);

Добавьте ego-транспортное средство к сценарию. Задайте траекторию движения транспортного средства по кривой с изменяющейся скоростью.

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 OpenSCRIPTION.

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 OpenSCRIPTION.

Если сценарий движения не имеет спецификаций полосы движения, то export функция назначает спецификацию полосы движения по умолчанию при экспорте дорожной сети в формат файлов OpenDRIVE или ASAM OpenSCRIPT.

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

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

  • Файл ASAM OpenSCRIPTION - .xosc (по умолчанию) или .xml

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

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

Ограничения

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

Дороги

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

    Входная дорогаЭкспортированная дорога OpenDRIVE

    Original road

    Exported road

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

    Входные дорогиЭкспортированные дороги OpenDRIVE

    Input overlapping roads

    Exported roads

Переулки

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

    Входная дорогаЭкспортированная дорога OpenDRIVE

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

    Original road with lane add

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

    Exported road without lane add

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

    Входная дорогаЭкспортированная дорога OpenDRIVE

    Original road with taper

    Exported road without taper

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

Соединения

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

    Входная дорогаЭкспортированная дорога OpenDRIVE

    Original junction

    Exported junction

Актеры

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

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

Импорт OpenDRIVE

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

Подробнее

свернуть все

Файлы данных, экспортированные с помощью файла ASAM OpenSCRIPTION

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

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

Примечание

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

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

Представлен в R2020b