Создайте дорожный объект маркировки маршрута
создает объект маркировки маршрута по умолчанию заданного типа (твердый маршрут, подчеркнутый штриховой линией маршрут, и так далее). Этот объект задает характеристики контура маршрута, отмечающего на дороге. При создании дорог в ведущем сценарии можно использовать объекты маркировки маршрута в качестве входных параметров к lm
= laneMarking(type
)lanespec
объект. Для получения дополнительной информации смотрите Спецификации Маршрута.
установите свойства объекта маркировки маршрута, использующего одну или несколько пар "имя-значение". Например, lm
= laneMarking(type
,Name,Value
)laneMarking('Solid','Color','yellow')
создает чисто желтую маркировку маршрута.
Создайте ведущий сценарий и дорожные центры прямой, 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]; speed = 30; trajectory(car,waypoints,speed);
Постройте сценарий и соответствующий график преследования.
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
type
— Тип маркировки маршрута'Unmarked'
| 'Solid'
| 'Dashed'
| 'DoubleSolid'
| 'DoubleDashed'
| 'SolidDashed'
| 'DashedSolid'
Тип маркировки маршрута, заданной как одно из этих значений.
'Unmarked' | 'Solid' | 'Dashed' | 'DoubleSolid' | 'DoubleDashed' | 'SolidDashed' | 'DashedSolid' |
---|---|---|---|---|---|---|
Никакая маркировка маршрута | Сплошная линия | Пунктирная линия | Две сплошных линии | Две пунктирных линии | Сплошная линия на левой, пунктирной линии на праве | Пунктирная линия на левой, сплошной линии на праве |
|
|
|
|
|
|
|
Тип маркировки маршрута хранится в Type
, свойство только для чтения возвращенного объекта маркировки маршрута.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
laneMarking('Dashed','Width',0.25,'Length',5.0)
создает маршрут с тире, которые 0,25 метра шириной и расположенные с интервалами на расстоянии в 5 метров.'Width'
— Ширины маркировки маршрута
(значение по умолчанию) | положительный действительный скалярШирины маркировки маршрута, заданные как разделенная запятой пара, состоящая из 'Width'
и положительный действительный скаляр. Для двойного маркера маршрута та же ширина используется в обеих линиях. Модули исчисляются в метрах.
Пример: 0.20
'Color'
— Цвет маркировки маршрута
(белое) (значение по умолчанию) | название цвета | триплет RGBЦвет маркировки маршрута, заданной как разделенная запятой пара, состоящая из 'Color'
и название цвета или триплет RGB. Для двойного маркера маршрута тот же цвет используется в обеих линиях.
Для пользовательского цвета укажите триплет RGB. Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должны быть в диапазоне [0,1]; например, [0,4 0,6 0,7]. Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета и эквивалентные значения триплета RGB.
Название цвета | Триплет RGB | Внешний вид |
---|---|---|
'red' | [1 0 0]
|
|
'green' | [0 1 0]
|
|
'blue' | [0 0 1]
|
|
'cyan'
| [0 1 1]
|
|
'magenta' | [1 0 1]
|
|
'yellow' | [0.98 0.86 0.36]
|
|
'black' | [0 0 0]
|
|
'white' | [1 1 1]
|
|
Пример: [0.8 0.8 0.8]
'Strength'
— Сила насыщения цвета маркировки маршрута
(значение по умолчанию) | действительный скаляр в области значений [0, 1]Сила насыщения цвета маркировки маршрута, заданного как разделенная запятой пара, состоящая из 'Strength'
и действительный скаляр в области значений [0, 1]. Значение 0
соответствует маркировке, цвет которой является полностью ненасыщенным. Маркировка является серой. Значение 1
соответствует маркировке, цвет которой полностью насыщается. Для двойной маркировки маршрута та же сила используется в обеих линиях.
Пример: 0.20
'Length'
— Длина тире в пунктирных линиях
(значение по умолчанию) | положительный действительный скалярДлина тире в пунктирных линиях, заданных как разделенная запятой пара, состоящая из 'Length'
и положительный действительный скаляр. Для двойной маркировки маршрута та же длина используется в обеих линиях. Тире является видимой частью пунктирной линии. Модули исчисляются в метрах.
Пример: 2.0
'Space'
— Продолжительность пробела между тире в пунктирных линиях
(значение по умолчанию) | положительный действительный скалярПродолжительность пробела между концом одного тире и начало следующего тире, заданного как разделенная запятой пара, состоящая из 'Space'
и положительный действительный скаляр. Для двойной маркировки маршрута та же длина используется в обеих линиях. Модули исчисляются в метрах.
Пример: 2.0
lm
— Маркировка маршрутаLaneMarking
возразите | SolidMarking
возразите | DashedMarking
объектМаркировка маршрута, возвращенная как LaneMarking
объект, SolidMarking
объект или DashedMarking
объект. Тип возвращенного объекта зависит от типа входной маркировки маршрута, заданной для type
входной параметр.
InputType | Выведите отмечающий маршрут | Свойства отмечающего маршрута |
---|---|---|
'Unmarked' |
|
|
'Solid' |
|
|
'DoubleSolid' | ||
'Dashed' |
|
|
'DashedSolid' | ||
'SolidDashed' | ||
'DoubleDashed' |
Можно установить эти свойства, когда вы создаете объект маркировки маршрута при помощи соответствующих пар "имя-значение" laneMarking
функция. Чтобы обновить эти свойства после создания, используйте запись через точку. Например:
lm = laneMarking('Solid');
lm.Width = 0.2;
Type
, который только для чтения.
Схема показывает компоненты и геометрические свойства дорог, маршрутов и маркировок маршрута.
Левый и правый заданы относительно дорожных центров. Задайте дорожные центры как матричный вход к road
функция. Дорожные центры создают направленную линию, запускающуюся от первой строки до последней строки матрицы. Левое и правое среднее значение, левое и правое из направленной линии. Ширина дороги является суммой всех ширин маршрута плюс половина ширин маркировок контура левого края и правого края.
Объект спецификации маршрута, lanespec
, задает дорожные маршруты.
NumLanes
свойство задает количество маршрутов. Необходимо задать количество маршрутов, когда вы создаете этот объект.
Width
свойство задает ширину каждого маршрута.
Marking
свойство содержит спецификации каждой маркировки маршрута на дороге. Marking
массив объектов маркировки маршрута, с одним объектом на маршрут. Чтобы создать эти объекты, используйте laneMarking
функция. Спецификации маркировки маршрута включают:
Type
— Тип маркировки маршрута (тело, подчеркнутое штриховой линией, и так далее)
Width
— Ширина маркировки маршрута
Color
— Цвет маркировки маршрута
Length
— Для пунктирных маршрутов, длины каждой пунктирной линии
Spacing
— Для пунктирных маршрутов, интервала между тире
Type
свойство содержит спецификации типа маршрута каждого маршрута на дороге. Type
может быть гомогенный текстовый объект маршрута или неоднородный массив типа маршрута.
Гомогенный текстовый объект маршрута содержит спецификации типа маршрута всех маршрутов на дороге.
Неоднородный массив типа маршрута содержит массив текстовых объектов маршрута с одним объектом на маршрут.
Чтобы создать эти объекты, используйте laneType
функция. Спецификации типа маршрута включают:
Type
— Тип маршрута (управление, граница, и так далее)
Color
— Цвет маршрута
Strength
— Сила цвета маршрута
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.