roadNetwork

Добавьте дорожную сеть в ведущий сценарий

Описание

пример

roadNetwork(scenario,'OpenDRIVE',filePath) дороги импорта из файла дорожной сети OpenDRIVE® в ведущий сценарий. Эта функция поддерживает версию 1.4H [1] спецификации формата OpenDRIVE.

пример

roadNetwork(scenario,'OpenDRIVE','ShowLaneTypes',showLaneTypes) использует пару "имя-значение" 'ShowLaneTypes' также маршрут импорта вводит информацию из файла и отображений это в ведущем сценарии.

пример

roadNetwork(scenario,'HEREHDLiveMap',lat,lon) дороги импорта от HD HERE Живая Карта [1] (HERE HDLM) дорожная сеть в ведущий сценарий. Функция импортирует дороги, которые являются самыми близкими к координатам широты и долготы, заданным в lat и lon, соответственно.

пример

roadNetwork(scenario,'HEREHDLiveMap',minLat,minLon,maxLat,maxLon) дороги HERE HDLM импорта, которые являются, по крайней мере, частично в географической ограничительной рамке, заданной minLat, minLon, maxLat, и maxLon.

Примеры

свернуть все

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

scenario = drivingScenario;

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

filePath = 'intersection.xodr';  
roadNetwork(scenario,'OpenDRIVE',filePath);

Постройте сценарий и увеличьте масштаб дорожной сети путем установления пределов осей.

plot(scenario)
xlim([350 800])
ylim([1400 2000])
zlim([0.00 10.00])

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

scenario = drivingScenario;

Импортируйте ОПЕНДРАЙВ-Роуд, состоявшую из управления и парковки маршрутов в сценарий. По умолчанию функция интерпретирует информацию о типе маршрута и импортирует маршруты в ведущий сценарий, не изменяя тип маршрута.

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

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

plot(scenario)
zoom(2)
legend('Driving lane','Parking lane')

Импортируйте ОПЕНДРАЙВ-Роуд в сценарий. Установите 'ShowLaneTypes' значение к false подавить несколько типов маршрута. Функция игнорирует информацию о типе маршрута и импортирует все маршруты как ведущие маршруты.

scenario = drivingScenario;
roadNetwork(scenario,'OpenDRIVE',filePath,'ShowLaneTypes',false);
plot(scenario)
zoom(2)

Импортируйте данные о дорожной сети HERE HDLM, которые являются самыми близкими к координатам заданного ведущего маршрута в ведущий сценарий. Постройте транспортное средство после этого маршрута в ведущем сценарии.

Загрузите последовательность географических координат, которые соответствуют ведущему маршруту.

data = load('geoSequence.mat');
lat = data.latitude;
lon = data.longitude;

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

zoomLevel = 14;
player = geoplayer(lat(1),lon(1),zoomLevel,'HistoryDepth',Inf);
timestep = 10;

for i = 1:timestep:length(lat)
    plotPosition(player,lat(i),lon(i));
end

Создайте ведущий сценарий. Импортируйте данные о дороге HERE HDLM, которые являются самыми близкими к ведущему маршруту в сценарий.

scenario = drivingScenario;
roadNetwork(scenario,'HEREHDLiveMap',lat,lon);

Используйте latlon2local функционируйте, чтобы преобразовать ведущий маршрут от географических координат до локальных Декартовых координат "восточного севера" (ENU), используемых в ведущем сценарии. Для источника системы координат ENU используйте географический источник дорожной сети, сохраненный в GeoReference свойство сценария. Источник является первой координатой, заданной в ведущем маршруте. Поскольку ведущий маршрут содержит только широтные и продольные данные, установите высоту на 0.

alt = 0;
origin = scenario.GeoReference;
[xEast,yNorth,zUp] = latlon2local(lat,lon,alt,origin);

Добавьте транспортное средство в ведущий сценарий. Задайте конвертированный ведущий маршрут как траекторию транспортного средства. Установите скорость транспортного средства 30 метров в секунду.

v = vehicle(scenario);
speed = 30;
trajectory(v,[xEast,yNorth,zUp],speed);

Постройте сценарий и сделайте паузу каждую 0.01 секунды, чтобы замедлить симуляцию. Чтобы обеспечить то же выравнивание с географическими координатными отображениями, Ось X находится на нижней части, и Ось Y слева. В ведущих сценариях, не импортированных из карт, Ось X слева, и Ось Y находится на нижней части. Это выравнивание сопоставимо с системой мировой координаты Automated Driving Toolbox™.

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

plot(scenario)
while advance(scenario)
    pause(0.01)
end

Импортируйте данные о дорожной сети HERE HDLM в ведущий сценарий. Выберите эти данные из области, которая сосредоточена вокруг заданной географической координаты.

Задайте координаты широты и долготы, соответствующие кольцу.

latCenter = 42.302324;
lonCenter = -71.384970;

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

offset = 5e-4;
minLat = latCenter - offset;
minLon = lonCenter - offset;
maxLat = latCenter + offset;
maxLon = lonCenter + offset;

gx = geoaxes;
LineSpec = '.-k';
geoplot(gx, ...
        [minLat maxLat],[minLon minLon],LineSpec, ...
        [maxLat maxLat],[minLon maxLon],LineSpec, ...
        [maxLat minLat],[maxLon maxLon],LineSpec, ...
        [minLat minLat],[maxLon minLon],LineSpec)

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

scenario = drivingScenario;
roadNetwork(scenario,'HEREHDLiveMap',minLat,minLon,maxLat,maxLon);

Постройте сценарий. Чтобы обеспечить то же выравнивание с географическими координатными отображениями, Ось X находится на нижней части, и Ось Y слева. В ведущих сценариях, не импортированных из карт, Ось X слева, и Ось Y находится на нижней части. Это выравнивание сопоставимо с системой мировой координаты Automated Driving Toolbox™.

plot(scenario) 

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

свернуть все

Ведущий сценарий в виде drivingScenario объект. scenario не должен содержать ранее созданные или импортированные дороги.

Путь к допустимому файлу OpenDRIVE типа .xml или .xodrВ виде вектора символов или строкового скаляра.

Пример: 'OpenDRIVE','C:\Desktop\myRoadNetwork.xodr'

Импортируйте информацию о типе маршрута из файла дорожной сети OpenDRIVE и отобразите его в ведущем сценарии в виде разделенной запятой пары, состоящей из 'ShowLaneTypes' и одно из этих значений:

  • true или 1 — информация о типе маршрута Импорта и типы маршрута рендеринга.

  • false или 0 — Проигнорируйте информацию о типе маршрута и импортируйте все маршруты как ведущие маршруты в ведущем сценарии.

Таблица суммировала поддерживаемые типы маршрута и их внешний вид по умолчанию после импорта их в ведущий сценарий.

Поддерживаемые типы маршрутаОписаниеВнешний вид по умолчанию
Ведущие маршрутыМаршруты для управления

Ограничьте маршрутыМаршруты на дорожных границах

Ограниченные маршрутыМаршруты зарезервированы для многоместных транспортных средств

Маршруты плечаМаршруты зарезервированы для чрезвычайной остановки

Парковка маршрутовМаршруты вместе с ведущими маршрутами, предназначенными для парковки транспортных средств

Любые другие неподдерживаемые типы маршрута представляются как маршруты границы.

Пример: 'ShowLaneTypes',false

Широта координирует в виде вектора элементов в области значений [–90, 90]. lat должен быть одного размера с lon. Модули в градусах.

Долгота координирует в виде вектора элементов в области значений [–180, 180]. lon должен быть одного размера с lat. Модули в градусах.

Минимальная координата широты ограничительной рамки в виде скаляра в области значений [–90, 90]. minLat должен быть меньше maxLat. Модули в градусах.

roadNetwork функционируйте импортирует любые дороги, которые являются, по крайней мере, частично в ограничительной рамке, заданной входными параметрами minLat, minLon, maxLat, и maxLon. Эта схема отображает отношение между этими координатами.

Минимальная координата долготы ограничительной рамки в виде скаляра в области значений [–180, 180]. minLon должен быть меньше maxLon. Модули в градусах.

roadNetwork функционируйте импортирует любые дороги, которые являются, по крайней мере, частично в ограничительной рамке, заданной входными параметрами minLat, minLon, maxLat, и maxLon. Эта схема отображает отношение между этими координатами.

Максимальная координата широты ограничительной рамки в виде скаляра в области значений [–90, 90]. maxLat должен быть больше minLat. Модули в градусах.

roadNetwork функционируйте импортирует любые дороги, которые являются, по крайней мере, частично в ограничительной рамке, заданной входными параметрами minLat, minLon, maxLat, и maxLon. Эта схема отображает отношение между этими координатами.

Максимальная координата долготы ограничительной рамки в виде скаляра в области значений [–180, 180]. maxLon должен быть больше minLon. Модули в градусах.

roadNetwork функционируйте импортирует любые дороги, которые являются, по крайней мере, частично в ограничительной рамке, заданной входными параметрами minLat, minLon, maxLat, и maxLon. Эта схема отображает отношение между этими координатами.

Ограничения

Ограничения импорта OpenDRIVE

  • Можно импортировать только маршруты, информацию о типе маршрута и дороги. Импорт дорожных объектов и сигналов трафика не поддержан.

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

  • Маршруты с переменными ширинами не поддержаны. Ширина установлена в самую высокую ширину, найденную в том маршруте. Например, если маршрут имеет ширину, которая варьируется от 2 метров до 4 метров, функция устанавливает ширину маршрута на 4 метра повсюду.

  • Дороги с маршрутом вводят информацию, указанную как driving'Граница' , restricted, shoulder, и parking поддерживаются. Маршруты с любой другой информацией о типе маршрута импортируются как маршруты границы.

  • Дороги с несколькими стилями маркировки маршрута не поддержаны. Функция применяет первую найденную маркировку стиля ко всем маршрутам на дороге. Например, если дорога имеет Dashed и Solid маркировки маршрута, функция применяет Dashed маркировки маршрута повсюду.

  • Маршрут, отмечающий стили Bott Dots, Curbs, и Grass не поддержаны. Маршруты с этими стилями маркировки импортируются как не отмеченные.

HD HERE живые ограничения импорта карты

При импортировании данных HERE HDLM они не поддержаны дорога и функции маршрута:

  • Маршруты с различными ширинами — В сгенерированной дорожной сети, каждый маршрут собирается найти максимальную ширину вдоль ее целой длины. Рассмотрите маршрут HERE HDLM с шириной, которая варьируется от 2 до 4 метров вдоль ее длины. В сгенерированной дорожной сети ширина маршрута составляет 4 метра вдоль своей целой длины.

  • Дороги с различными количествами маршрутов вдоль их длин — В сгенерированной дорожной сети, каждая дорога будет иметь максимальное количество маршрутов вдоль его целой длины. Рассмотрите ХЕР ХДЛМ-Роуд с 3 маршрутами на одной половине и 2 маршрутами на другой половине. В сгенерированной дорожной сети дорога имеет 3 маршрута вдоль своей целой длины.

  • Несколько стилей маркировки маршрута вдоль маршрута — В сгенерированной дорожной сети, каждый маршрут будет иметь стиль маркировки сегмента маршрута с максимальной шириной вдоль дороги. Рассмотрите маршрут HERE HDLM с 2 сегментами маршрута. Первый сегмент маршрута 2 метра шириной и имеет серьезные маркировки. Второй сегмент маршрута 4 метра шириной и подчеркнул штриховой линией маркировки. В сгенерированной дорожной сети маршрут имеет фиксированную ширину 4 метров повсюду и подчеркнутые штриховой линией маркировки вдоль ее целой длины.

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

Дорожная сеть HERE HDLMИмпортированный ведущий сценарий

Советы

  • Если дороги, которые вы импортируете, не смотрят как ожидалось, рассматривают импорт их при помощи приложения Driving Scenario Designer. Приложение может сделать процесс из поиска и устранения неисправностей и исправления дорог легче, чем попытка диагностировать и откорректировать их при помощи roadNetwork функция.

Ссылки

[1] Дюпюи, Мариус, и др. Спецификация Формата OpenDRIVE. Версия 1.4, Выпуск H, Документ № VI2014.106. Бад-Айблинг, Германия: VIRES Simulationstechnologie GmbH, 4 ноября 2015.

Введенный в R2018b


[1]  Необходимо заключить отдельное соглашение с HERE для того, чтобы получить доступ к сервисам HDLM и получить необходимые учетные данные (app_id и app_code) для использования Сервиса HERE.