Получите контуры маршрута маршрута агента
задает опции с помощью одной или нескольких пар "имя-значение". Например, lbdry
= laneBoundaries(ac
,Name,Value
)laneBoundaries(ac,'AllLaneBoundaries',true)
возвращает все контуры маршрута дороги, на которой перемещается агент автомобиля, оборудованного датчиком.
Симулируйте ведущий сценарий с одним автомобилем, перемещающимся на 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
ac
— АгентActor
возразите | Vehicle
объектАгент, принадлежащий drivingScenario
объект в виде Actor
или Vehicle
объект. Чтобы создать эти объекты, используйте actor
и vehicle
функции, соответственно.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'LocationType','center'
указывает, что контуры маршрута сосредоточены на маркировках маршрута.'XDistance'
— Расстояния от автомобиля, оборудованного датчиком, в котором можно вычислить контуры маршрута
(значение по умолчанию) | N - элемент вектор с действительным знакомРасстояния от автомобиля, оборудованного датчиком, в котором можно вычислить контуры маршрута в виде разделенной запятой пары, состоящей из 'XDistance'
и N - элемент вектор с действительным знаком. N является количеством значений расстояния. При обнаружении маршрутов от камер, расположенных "против движения", задайте отрицательные расстояния. При обнаружении маршрутов от обращенных к передней стороне камер задайте положительные расстояния. Модули исчисляются в метрах.
По умолчанию функция вычисляет контуры маршрута на расстоянии 0
от автомобиля, оборудованного датчиком, которые являются контурами налево и правом на источник автомобиля, оборудованного датчиком.
Пример: 1:0.1:10
вычисляет контур маршрута каждый 0,1 метра по диапазону от 1 до 10 метров перед автомобилем, оборудованным датчиком.
Пример: linspace(-150,150,101)
вычисляет 101 контур маршрута по диапазону от 150 метров позади автомобиля, оборудованного датчиком к 150 метрам перед автомобилем, оборудованным датчиком. Эти расстояния линейно расположены с интервалами на расстоянии в 3 метра.
'LocationType'
— Местоположение контура маршрута'Center'
(значение по умолчанию) | 'Inner'
Местоположение контура маршрута на маркировках маршрута в виде разделенной запятой пары, состоящей из 'LocationType'
и одна из опций в этой таблице.
Местоположение контура маршрута | Описание | Пример |
---|---|---|
'Center' | Контуры маршрута сосредоточены на маркировках маршрута. | Трехполосная дорога имеет четыре контура маршрута: один на маркировку маршрута. |
'Inner' | Контуры маршрута помещаются во внутренние края маркировок маршрута. | Трехполосная дорога имеет шесть контуров маршрута: два на маршрут. |
'AllBoundaries'
— Возвратите все контуры маршрута на дорогеfalse
(значение по умолчанию) | true
Возвратите все контуры маршрута, на которых автомобиль, оборудованный датчиком перемещается в виде разделенной запятой пары, состоящей из 'Value'
и false
или true
.
Контуры маршрута возвращены слева направо относительно автомобиля, оборудованного датчиком. Когда 'AllBoundaries'
false
, только контуры маршрута налево и право на автомобиль, оборудованный датчиком возвращены.
lbdry
— Контуры маршрутаКонтуры маршрута, возвращенные как массив граничных структур маршрута. Эта таблица показывает поля для каждой структуры.
Поле | Описание |
| Контур маршрута координирует в виде N с действительным знаком-by-3 матрицу, где N является количеством координат контура маршрута. Координаты контура маршрута задают положение точек на контуре на заданных продольных расстояниях далеко от автомобиля, оборудованного датчиком вдоль центра дороги.
Эта матрица также включает граничные координаты в нулевое расстояние от автомобиля, оборудованного датчиком. Эти координаты налево и право на источник автомобиля, оборудованного датчиком, который расположен под центром задней оси. Модули исчисляются в метрах. |
| Искривление контура маршрута в каждой строке Coordinates матрица в виде N с действительным знаком-by-1 вектор. N является количеством координат контура маршрута. Модули исчисляются в радианах на метр. |
| Производная искривления контура маршрута в каждой строке Coordinates матрица в виде N с действительным знаком-by-1 вектор. N является количеством координат контура маршрута. Модули исчисляются в радианах на квадратный метр. |
| Начальный контур маршрута направляющийся угол в виде действительного скаляра. Направляющийся угол контура маршрута относительно заголовка автомобиля, оборудованного датчиком. Модули в градусах. |
| Расстояние от контура маршрута от положения автомобиля, оборудованного датчиком в виде действительного скаляра. Смещение к контуру маршрута слева от автомобиля, оборудованного датчиком положительно. Смещение справа от автомобиля, оборудованного датчиком отрицательно. Модули исчисляются в метрах. |
| Тип контура маршрута, отмечающего в виде одного из этих значений:
|
| Сила насыщения контура маршрута, отмечающего в виде действительного скаляра от 0 до 1. Значение |
| Ширина контура маршрута в виде положительного действительного скаляра. В маркере маршрута двойной линии та же ширина используется в обеих линиях и в пробеле между линиями. Модули исчисляются в метрах. |
| Длина тире в пунктирных линиях в виде положительного действительного скаляра. В маркере маршрута двойной линии та же длина используется в обеих линиях. |
| Продолжительность пробела между тире в пунктирных линиях в виде положительного действительного скаляра. В пунктирном маркере маршрута двойной линии то же пространство используется для обеих линий. |
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.