Получите контуры маршрута актёра
задает опции с использованием одной или нескольких пар "имя-значение". Для примера, 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'
- Расстояния от ego vehicle, на которых можно вычислить контуры маршрута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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.