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

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

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.

    Входная дорогаЭкспортированная дорога 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

Актеры

  • The 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