Создайте объект типа дорожной полосы
возвращает объект типа дорожной полосы со свойствами lt
= laneType(type
)Type
, Color
, и Strength
для определения различных типов маршрутов для дороги.
Можно использовать этот объект для создания сценариев вождения с дорогами, которые имеют ведущие полосы, пограничные полосы, ограниченные полосы, обочины и парковочные полосы. Можно также загрузить этот сценарий в приложение Driving Scenario Designer.
Для получения дополнительной информации о шагах, связанных с использованием laneType
функция со drivingScenario
объект и приложение Driving Scenario Designer, см. «Подробнее».
устанавливает свойства объекта типа выхода маршрута с помощью одних или нескольких пар "имя-значение".lt
= laneType(type
,Name,Value
)
В этом примере показано, как задать типы маршрутов и моделировать сценарий вождения для четырехполосной дороги с различными типами маршрутов.
Создайте объект движущей полосы с значениями свойств по умолчанию.
drivingLane = laneType('Driving')
drivingLane = DrivingLaneType with properties: Type: Driving Color: [0.8000 0.8000 0.8000] Strength: 1
Создайте объект типа парковочной полосы. Задайте цвет и значения свойств прочности.
parkingLane = laneType('Parking','Color',[1 0 0],'Strength',0.1)
parkingLane = ParkingLaneType with properties: Type: Parking Color: [1 0 0] Strength: 0.1000
Создайте трехэлементный, неоднородный массив типов маршрутов путем конкатенации объектов вождения и типа парковки. Массив типов маршрутов содержит типы маршрутов для четырехполосной дороги.
lt = [parkingLane drivingLane drivingLane parkingLane];
Создайте спецификацию маршрута для четырехполосной дороги. Добавьте массив типа маршрута в спецификацию маршрута.
ls = lanespec([2 2],'Type',lt);
Создайте объект сценария вождения. Добавьте четырехполосную дорогу со спецификациями маршрута ls
к сценарию вождения.
scenario = drivingScenario;
roadCenters = [0 0 0;40 0 0];
road(scenario,roadCenters,'Lanes',ls)
ans = Road with properties: Name: "" RoadID: 1 RoadCenters: [2x3 double] RoadWidth: 14.5500 BankAngle: [2x1 double]
Постройте график сценария. Сценарий содержит четырехполосную дорогу, которая имеет две парковочные полосы и две ведущие полосы.
plot(scenario) legend('Driving Lane','Parking Lane')
Создайте гетерогенный объектный массив типа маршрута, чтобы задать типы движущей, обочины и пограничной полосы для четырехполосной дороги.
lt = [laneType('Shoulder') laneType('Driving') laneType('Driving') laneType('Border','Color',[0.5 0 1],'Strength',0.1)];
Отобразите объектный массив типа маршрута.
lt
lt=1×4 object
1x4 heterogeneous LaneType (ShoulderLaneType, DrivingLaneType, BorderLaneType) array with properties:
Type
Color
Strength
Проверьте значения свойств.
c = [{lt.Type}' {lt.Color}' {lt.Strength}']; cell2table(c,'VariableNames',{'Type','Color','Strength'})
ans=4×3 table
Type Color Strength
________ ____________________ ________
Shoulder 0.59 0.59 0.59 1
Driving 0.8 0.8 0.8 1
Driving 0.8 0.8 0.8 1
Border 0.5 0 1 0.1
Передайте объектный массив типа маршрута как вход в lanespec
, а затем создайте объект спецификации маршрута для четырехполосной дороги.
lspec = lanespec([2 2],'Type',lt);
Определите центры дорог.
roadCenters = [0 0 0; 40 0 0];
Чтобы добавить дороги, создайте объект сценария вождения.
scenario = drivingScenario('StopTime',8);
Добавить дороги с указанными центрами дорог и типами маршрутов в сценарий вождения.
road(scenario,roadCenters,'Lanes',lspec);
Добавить два транспортных средств в сценарий. Разместите транспортные средства на движущейся полосе.
vehicle1 = vehicle(scenario,'ClassID',1,'Position',[5 2 0]); vehicle2 = vehicle(scenario,'ClassID',1,'Position',[35 -2 0]);
Задайте траектории транспортного средства при помощи точек пути. Установите скорости траектории транспортного средства.
waypoints1 = [5 2;10 2;20 2;25 2;30 5;34 5.5]; smoothTrajectory(vehicle1,waypoints1,10) waypoints2 = [35 -2;20 -2;10 -2;5 -2]; smoothTrajectory(vehicle2,waypoints2,5)
Постройте график сценария. Чтобы продвинуть симуляцию один временной шаг за раз, вызовите advance
функция в цикле. Пауза каждые 0,01 секунды, чтобы наблюдать движение транспортных средств на графике. Первое транспортное средство перемещается по траектории по движущейся полосе. Он дрейфует до обочины для экстренной остановки.
% Create a custom figure window and define an axes object fig = figure; movegui(fig,'center'); hView = uipanel(fig,'Position',[0 0 1 1],'Title','Scenario with Shoulder, Driving, and Border Lanes'); hPlt = axes(hView); % Plot the generated driving scenario along with the waypoints. plot(scenario,'Waypoints','on','Parent',hPlt); while advance(scenario) pause(0.01) end
type
- Тип маршрута'Driving'
| 'Border'
| 'Restricted'
| 'Shoulder'
| 'Parking'
Тип маршрута, заданный как 'Driving'
, 'Border'
, 'Restricted'
, 'Shoulder'
, или 'Parking'
.
Тип маршрута | Описание |
'Driving' | Полосы для вождения |
'Border' | Полосы на границах дорог |
'Restricted' | Маршруты, зарезервированные для транспортных средств с высокой вместимостью |
'Shoulder' | Полосы, зарезервированные для аварийной остановки |
'Parking' | Полосы рядом с движущимися полосами, предназначенные для стоянки транспортных средств |
Примечание
Вход типа маршрута устанавливает Type
свойство объекта типа выхода маршрута.
Типы данных: char
| string
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
laneType('Driving','Color','r')
'Color'
- Цвет маршрутаЦвет маршрута, заданный как разделенная разделенными запятой парами, состоящая из 'Color'
и триплет RGB или название цвета.
Триплет RGB задается как трехэлементный вектор-строка, содержащий интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]
, для примера, [0.4 0.6 0.7]
. В этой таблице перечислены значения триплетов RGB, которые определяют цвета по умолчанию для различных типов маршрутов.
Тип маршрута | Триплет RGB (значения по умолчанию) | Внешность |
'Driving' | [0.8 0.8 0.8] |
|
'Border' | [0.72 0.72 0.72] |
|
'Restricted' | [0.59 0.56 0.62] |
|
'Shoulder' | [0.59 0.59 0.59] |
|
'Parking' | [0.28 0.28 0.28] |
|
Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены именованные опции цвета и эквивалентные значения триплета 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] |
|
Примечание
Используйте пару "имя-значение" цвета маршрута, чтобы задать Color
свойство объекта типа выхода маршрута.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| char
| string
'Strength'
- Прочность цвета маршрутаСила цвета маршрута, заданная как разделенная разделенными запятой парами, состоящая из 'Strength'
и действительный скаляр в области значений [0, 1]. Значение 0
десатурирует цвет, и цвет маршрута выглядит серым. Значение 1
полностью насыщает цвет, и цвет маршрута является чистым цветом. Можно изменить значение прочности, чтобы изменить уровень насыщения.
Примечание
Используйте силу пары "имя-значение" цвета маршрута, чтобы задать Strength
свойство объекта типа маршрута.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
lt
- Тип маршрутаDrivingLaneType
| объекта BorderLaneType
| объекта RestrictedLaneType
| объекта ShoulderLaneType
| объекта ParkingLaneType
объектТип маршрута, возвращенный как
DrivingLaneType
объект
BorderLaneType
объект
RestrictedLaneType
объект
ShoulderLaneType
объект
ParkingLaneType
объект
Возвращенный объект lt
зависит от значения входного сигнала type
.
type | lt |
'Driving' | DrivingLaneType объект |
'Border' | BorderLaneType объект |
'Restricted' | RestrictedLaneType объект |
'Shoulder' | ShoulderLaneType объект |
'Parking' | ParkingLaneType объект |
Можно создать неоднородную LaneType
массив путем конкатенации этих различных объектов типа маршрута.
Можно добавить дороги с несколькими типами маршрутов в сценарий вождения, выполнив следующие шаги
Создайте пустую drivingScenario
объект.
Создайте объект типа маршрута, который задает различные типы маршрутов на дороге при помощи laneType
.
Используйте объект типа маршрута как вход в lanespec
объект и определить спецификации маршрута для дороги.
Использование lanespec
объект как вход в road
выполнять функции и добавлять дороги с заданными типами маршрутов в сценарий вождения.
Вы можете использовать plot
функция для визуализации сценария вождения.
Можно также импортировать сценарий вождения, содержащий дороги с различными типами маршрутов в Driving Scenario Designer приложения. Чтобы импортировать drivingScenario
объект с именем scenario
в приложение используйте синтаксис drivingScenarioDesigner(scenario)
. В сценариях можно:
Добавьте или отредактируйте центры дорог.
Добавьте актёров и задайте траектории актёра.
Монтируйте датчики на автомобиль , оборудованный датчиком и моделируйте обнаружение актёров и контуров маршрута.
Примечание
Редактирование параметров маршрута сбрасывает все полосы в импортированной дороге в тип маршрута 'Driving'
со значениями свойств по умолчанию.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.