Получить границы полосы актера
задает параметры, использующие одну или несколько пар имя-значение. Например, 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);
Добавьте эго-транспортное средство и укажите его траекторию из его ППМ. По умолчанию автомобиль едет со скоростью 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



ac - АктерActor объект | Vehicle объектАктер, принадлежащий drivingScenario объект, указанный как Actor или Vehicle объект. Для создания этих объектов используйте actor и vehicle соответственно.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'LocationType','center' указывает, что границы полосы движения центрируются на разметке полосы движения.'XDistance' - Расстояния от эго-транспортного средства для расчета границ полос движения0 (по умолчанию) | 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.