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