Создайте дорожные технические требования маршрута
lanespec
объект задает технические требования маршрута дороги, которая была добавлена к drivingScenario
объект с помощью road
функция. Для получения дополнительной информации см. Технические требования Маршрута.
создает технические требования маршрута для дороги, имеющей lnspec
= lanespec(numlanes
)numlanes
маршруты. numLanes
устанавливает NumLanes
свойство lanespec
объект. Порядок для нумерации маршрутов на дороге зависит от ориентации дороги. Для получения дополнительной информации смотрите, Чертят Направление Дороги и Нумерацию Маршрутов.
свойства наборов с помощью одной или нескольких пар "имя-значение". Например, lnspec
= lanespec(numlanes
,Name,Value
)lanespec(3,'Width',[2.25 3.5 2.25])
задает трехполосную дорогу с ширинами от левого до права 2,25 метров, 3,5 метров и 2,25 метров. Для получения дополнительной информации о геометрических свойствах маршрута см. Технические требования Маршрута.
NumLanes
— Количество маршрутов на дорогеЭто свойство доступно только для чтения.
Количество маршрутов на дороге в виде положительного целочисленного или двухэлементного вектора из положительных целых чисел, [N L, N R]. Когда NumLanes
положительное целое число, весь поток маршрутов в том же направлении. Когда NumLanes
вектор:
N L является количеством левых маршрутов, все текущие в одном направлении.
N R является количеством правильных маршрутов, все текущие в противоположном направлении.
Общее количество маршрутов на дороге является суммой этих векторных значений: N = N L + N R.
Можно установить это свойство, когда вы создаете объект. После того, как вы создадите объект, это свойство только для чтения.
Пример: [2 2]
задает два левых маршрута и два правильных маршрута.
Width
— Ширины маршрута
(значение по умолчанию) | положительный действительный скаляр | 1 N вектором из положительных действительных скаляровШирины маршрута в виде положительного действительного скаляра или 1 N вектором из положительных действительных скаляров, где N является количеством маршрутов на дороге. N должен быть равен numlanes
и соответствующий набор значений в NumLanes
свойство.
Когда Width
скаляр, то же значение применяется ко всем маршрутам. Когда Width
вектор, векторные элементы применяются к маршрутам слева направо. Модули исчисляются в метрах.
Пример: [3.5 3.7 3.7 3.5]
Типы данных: double
Marking
— Маркировки маршрутаLaneMarking
объект (значение по умолчанию) | SolidMarking
возразите | DashedMarking
возразите | CompoundMarking
возразите | 1 M массивом объектов маркировки маршрутаМаркировки маршрута дороги в виде одного из этих значений:
LaneMarking
объект. Это значение по умолчанию.
SolidMarking
объект
DashedMarking
объект
CompoundMarking
объект
1 M массивом объектов маркировки маршрута.
M является количеством маркировок маршрута. Для дороги с маршрутами N, M = N + 1.
Чтобы создать объекты маркировки маршрута, используйте laneMarking
функционируйте и задайте тип маркировки маршрута.
'Unmarked' | 'Solid' | 'Dashed' | 'DoubleSolid' | 'DoubleDashed' | 'SolidDashed' | 'DashedSolid' |
---|---|---|---|---|---|---|
Никакая маркировка маршрута | Сплошная линия | Пунктирная линия | Две сплошных линии | Две пунктирных линии | Сплошная линия на левой, пунктирной линии на праве | Пунктирная линия на левой, сплошной линии на праве |
|
|
|
|
|
|
|
По умолчанию, для односторонней дороги, самые правые и центральные маркировки маршрута являются белыми, и крайняя левая маркировка маршрута является желтой. Для двухсторонних дорог цвет делящейся маркировки маршрута является желтым.
Пример: [laneMarking('Solid') laneMarking('DoubleDashed') laneMarking('Solid')]
задает маркировки маршрута для дороги 2D маршрута. Крайние левые и самые правые маркировки маршрута являются сплошными линиями, и делящаяся маркировка маршрута является двойной пунктирной линией.
Type
— Типы маршрутаDrivingLaneType
объект (значение по умолчанию) | RestrictedLaneType
возразите | ShoulderLaneType
возразите | ParkingLaneType
возразите | 1 M массивом текстовых объектов маршрутаТипы маршрута дороги в виде гомогенного текстового объекта маршрута или 1 M массивом текстовых объектов маршрута. M является количеством типов маршрута.
Чтобы создать текстовые объекты маршрута, используйте laneType
функционируйте и задайте тип маршрута.
'Driving' | 'Border' | 'Restricted' | 'Shoulder' | 'Parking' |
|
|
|
|
|
Пример: [laneType('Shoulder') laneType('Driving')]
задает типы маршрута для дороги 2D маршрута. Крайний левый маршрут является маршрутом плеча, и самый правый маршрут является ведущим маршрутом.
Создайте ведущий сценарий и дорожные центры прямой, 80-метровой дороги.
scenario = 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(scenario,roadCenters,'Lanes',lspec);
plot(scenario)
Симулируйте ведущий сценарий с одним автомобилем, перемещающимся на S-кривой. Создайте и постройте контуры маршрута.
Создайте ведущий сценарий с одной дорогой, имеющей S-кривую.
scenario = 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(scenario,roadcenters,'Lanes',ls);
Добавьте автомобиль, оборудованный датчиком и задайте его траекторию от его waypoints. По умолчанию автомобиль перемещается со скоростью 30 метров в секунду.
car = vehicle(scenario, ... 'ClassID',1, ... 'Position',[-35 20 0]); waypoints = [-35 20 0; -20 -20 0; 0 0 0; 20 20 0; 35 -20 0]; smoothTrajectory(car,waypoints);
Постройте сценарий и соответствующий график преследования.
plot(scenario)
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(scenario) 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
функционируйте, задайте дорожные центры как матричный вход. Функция создает направленную линию, которая пересекает дорожные центры, начинающие с координат в первой строке матрицы и заканчивающиеся в координатах в последней строке матрицы. Координаты в первых двух строках матрицы задают draw direction дороги. Эти координаты соответствуют первым двум последовательным дорожным центрам. Направление ничьей является направлением, в котором дороги представляют в графике сценария.
Чтобы создать дорогу при помощи приложения Driving Scenario Designer, можно или задать параметр Road Centers или в интерактивном режиме привлечь Scenario Canvas. Для подробного примера смотрите, Создают Ведущий Сценарий. В этом случае направление ничьей является направлением, в котором дороги представляют в Scenario Canvas.
Для дороги с направлением ничьей от начала до конца различие между x - координаты первых двух последовательных дорожных центров положительно.
Поскольку дорога с нижней частью к верхней части чертит направление, различие между x - координаты первых двух последовательных дорожных центров отрицательны.
|
|
Для дороги со слева направо чертят направление, различие между y - координаты первых двух последовательных дорожных центров положительны.
Для дороги со справа налево чертят направление, различие между y - координаты первых двух последовательных дорожных центров отрицательны.
|
|
Маршруты должны быть пронумерованы слева направо с левым краем дороги, заданной относительно направления ничьей дороги. Для односторонней дороги, по умолчанию, левый край дороги является чисто желтой маркировкой, которая указывает на конец дороги в поперечном направлении (перпендикуляр направления, чтобы чертить направление). Для двухсторонней дороги, по умолчанию, оба ребра отмечены чистыми белыми линиями.
Например, эти схемы показывают, как маршруты пронумерованы на односторонней и двухсторонней дороге с направлением ничьей сверху донизу.
Нумерация маршрутов на Он-Вей-Роуд | Нумерация маршрутов на Туо-Вей-Роуд |
Задайте количество маршрутов как положительное целое число для односторонней дороги. Если вы устанавливаете целочисленное значение как 1, 2, 3 обозначает первые, вторые, и третьи маршруты дороги, соответственно. | Задайте количество маршрутов как двухэлементный вектор из положительного целого числа для двухсторонней дороги. Если вы устанавливаете вектор как [ 1L обозначает единственный левый маршрут дороги. 1R и 2R обозначают первые и вторые правильные маршруты дороги, соответственно. |
Технические требования маршрута применяются согласно порядку, в котором пронумерованы маршруты.
Схема показывает компоненты и геометрические свойства дорог, маршрутов и маркировок маршрута.
Объект спецификации маршрута, lanespec
, задает дорожные маршруты.
NumLanes
свойство задает количество маршрутов. Необходимо задать количество маршрутов, когда вы создаете этот объект.
Width
свойство задает ширину каждого маршрута.
Marking
свойство содержит технические требования каждой маркировки маршрута на дороге. Marking
массив объектов маркировки маршрута, с одним объектом на маршрут. Чтобы создать эти объекты, используйте laneMarking
функция. Технические требования маркировки маршрута включают:
Type
— Тип маркировки маршрута (тело, подчеркнутое штриховой линией, и так далее)
Width
— Ширина маркировки маршрута
Color
— Цвет маркировки маршрута
Strength
— Степень насыщения для цвета маркировки маршрута
Length
— Для пунктирных маршрутов, длины каждой пунктирной линии
Space
— Для пунктирных маршрутов, интервала между тире
SegmentRange
— Для составной маркировки маршрута, нормированной длины каждого сегмента маркера
Type
свойство содержит технические требования типа маршрута каждого маршрута на дороге. Type
может быть гомогенный текстовый объект маршрута или неоднородный массив типа маршрута.
Гомогенный текстовый объект маршрута содержит технические требования типа маршрута всех маршрутов на дороге.
Неоднородный массив типа маршрута содержит массив текстовых объектов маршрута с одним объектом на маршрут.
Чтобы создать эти объекты, используйте laneType
функция. Технические требования типа маршрута включают:
Type
— Тип маршрута (управление, граница, и так далее)
Color
— Цвет маршрута
Strength
— Сила цвета маршрута
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.