Создайте дорожные спецификации маршрута
Объект lanespec
задает спецификации маршрута дороги, которая была добавлена к объекту drivingScenario
с помощью функции road
. Для получения дополнительной информации смотрите Спецификации Маршрута.
lnspec = lanespec(numlanes)
lnspec = lanespec(numlanes,Name,Value)
создает спецификации маршрута для дороги, имеющей маршруты lnspec
= lanespec(numlanes
)numlanes
. numLanes
устанавливает свойство NumLanes
объекта lanespec
.
NumLanes
— Количество маршрутов на дорогеЭто свойство доступно только для чтения.
Количество маршрутов на дороге, заданной как положительный целочисленный или двухэлементный вектор положительных целых чисел, [N L, N R]. Когда NumLanes
является положительным целым числом, всем потоком маршрутов в том же направлении. Когда NumLanes
является вектором:
N L является количеством левых маршрутов, все текущие в одном направлении.
N R является количеством правильных маршрутов, все текущие в противоположном направлении.
Общее количество маршрутов на дороге является суммой этих векторных значений: N = N L + N R.
Можно установить это свойство, когда вы создаете объект. После того, как вы создадите объект, это свойство только для чтения.
Пример: [2 2]
задает два левых маршрута и два правильных маршрута.
Width
Ширины маршрута3.6
(значение по умолчанию) | положительный действительный скаляр | 1 N вектором положительных действительных скаляровШирины маршрута, заданные как положительный действительный скаляр или 1 N вектором положительных действительных скаляров, где N является количеством маршрутов на дороге. N должен быть равен numlanes
и соответствующему набору значений в свойстве NumLanes
.
Когда Width
является скаляром, то же значение применяется ко всем маршрутам. Когда Width
является вектором, векторные элементы применяются к маршрутам слева направо. Модули исчисляются в метрах.
Пример: [3.5 3.7 3.7 3.5]
Типы данных: double
Marking
— Маркировки маршрутаМаркировки маршрута дороги, заданной как маркировка маршрута, возражают или 1 M массивом объектов маркировки маршрута. M является количеством маркировок маршрута. Для дороги с маршрутами N, M = N + 1.
Чтобы создать объекты маркировки маршрута, используйте laneMarking
, функционируют и задают тип маркировки маршрута.
'Unmarked' | 'Solid' | 'Dashed' | 'DoubleSolid' | 'DoubleDashed' | 'SolidDashed' | 'DashedSolid' |
---|---|---|---|---|---|---|
Никакая маркировка маршрута | Сплошная линия | Пунктирная линия | Две сплошных линии | Две пунктирных линии | Сплошная линия на левой, пунктирной линии на праве | Пунктирная линия на левой, сплошной линии на праве |
|
|
|
|
|
|
|
По умолчанию, для односторонней дороги, самые правые и центральные маркировки маршрута являются белыми, и крайняя левая маркировка маршрута является желтой. Для двухсторонних дорог цвет делящейся маркировки маршрута является желтым.
Пример: [laneMarking('Solid') laneMarking('DoubleDashed') laneMarking('Solid')]
задает маркировки маршрута для дороги 2D маршрута. Крайние левые и самые правые маркировки маршрута являются сплошными линиями, и делящаяся маркировка маршрута является двойной пунктирной линией.
Создайте ведущий сценарий и дорожные центры прямой, 80-метровой дороги.
sc = drivingScenario; roadCenters = [0 0; 80 0];
Создайте объект lanespec
для дороги с четырьмя маршрутами. Используйте функцию laneMarking
, чтобы задать ее пять маркировок маршрута. Центральная линия является двойным чистым и двойным желтым. Наиболее удаленные строки являются твердыми и белыми. Внутренние строки подчеркиваются штриховой линией и белые.
solidW = laneMarking('Solid','Width',0.3); dashW = laneMarking('Dashed','Space',5); doubleY = laneMarking('DoubleSolid','Color','yellow'); lspec = lanespec([2 2],'Width',[5 5 5 5], ... 'Marking',[solidW dashW doubleY dashW solidW]);
Добавьте дорогу к ведущему сценарию. Отобразите дорогу.
road(sc,roadCenters,'Lanes',lspec);
plot(sc)
Моделируйте ведущий сценарий с одним автомобилем, перемещающимся на S-кривой. Создайте и постройте контуры маршрута.
Создайте ведущий сценарий с одной дорогой, имеющей S-кривую.
sc = drivingScenario('StopTime',3);
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(sc,roadcenters,'Lanes',ls);
Добавьте автомобиль, оборудованный датчиком и задайте его траекторию от его скорости и waypoints. Автомобиль перемещается на уровне 30 метров в секунду.
car = vehicle(sc, ... 'ClassID',1, ... 'Position',[-35 20 0]); waypoints = [-35 20 0; -20 -20 0; 0 0 0; 20 20 0; 35 -20 0]; speed = 30; trajectory(car,waypoints,speed);
Постройте сценарий и соответствующий график преследования.
plot(sc)
chasePlot(car)
Запустите цикл симуляции.
Инициализируйте видимый с большого расстояния график и создайте плоттер схемы, лево-маршрут и плоттеры контура правильного маршрута и дорожный граничный плоттер.
Получите дорожные контуры и прямоугольные контуры.
Получите контуры маршрута налево и право на автомобиль.
Усовершенствуйте симуляцию и обновите плоттеры.
bep = birdsEyePlot('XLim',[-40 40],'YLim',[-30 30]); olPlotter = outlinePlotter(bep); lblPlotter = laneBoundaryPlotter(bep,'Color','r','LineStyle','-'); lbrPlotter = laneBoundaryPlotter(bep,'Color','g','LineStyle','-'); rbsEdgePlotter = laneBoundaryPlotter(bep); legend('off'); while advance(sc) rbs = roadBoundaries(car); [position,yaw,length,width,originOffset,color] = targetOutlines(car); lb = laneBoundaries(car,'XDistance',0:5:30,'LocationType','Center', ... 'AllBoundaries',false); plotLaneBoundary(rbsEdgePlotter,rbs) plotLaneBoundary(lblPlotter,{lb(1).Coordinates}) plotLaneBoundary(lbrPlotter,{lb(2).Coordinates}) plotOutline(olPlotter,position,yaw,length,width, ... 'OriginOffset',originOffset,'Color',color) end
Маркировки маршрута в пересечениях не поддержаны.
Количество маршрутов для дороги фиксируется. Вы не можете изменить спецификации маршрута для дороги во время симуляции.
Дорога может иметь только однополосную спецификацию.
Схема показывает компоненты и геометрические свойства дорог, маршрутов и маркировок маршрута.
Левый и правый заданы относительно дорожных центров. Задайте дорожные центры как матричный вход к функции road
. Дорожные центры создают направленную строку, запускающуюся от первой строки до последней строки матрицы. Левое и правое среднее значение, левое и правое из направленной строки. Ширина дороги является суммой всех ширин маршрута плюс половина ширин маркировок контура левого края и правого края.
Объект спецификации маршрута, lanespec
, задает дорожные маршруты.
Свойство NumLanes
задает количество маршрутов. Необходимо задать количество маршрутов, когда вы создаете этот объект.
Свойство Width
задает ширину каждого маршрута.
Свойство Marking
содержит спецификации каждой маркировки маршрута на дороге. Marking
является массивом объектов маркировки маршрута с одним объектом на маршрут. Чтобы создать эти объекты, используйте функцию laneMarking
. Спецификации маркировки маршрута включают:
Ввод
Тип маркировки маршрута (тело, подчеркнутое штриховой линией, и так далее)
Width
Ширина маркировки маршрута
Color
— Цвет маркировки маршрута
Длина
Для пунктирных маршрутов, длины каждой пунктирной линии
Spacing
— Для пунктирных маршрутов, интервала между тире
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.