laneType

Создайте дорожный текстовый объект маршрута

Описание

пример

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')

Figure contains an axes. The axes contains 4 objects of type patch, line. These objects represent 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]);

Задайте траектории транспортного средства при помощи waypoints. Установите скорости траектории транспортного средства.

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

Figure contains an axes and an object of type uipanel. The axes contains 10 objects of type patch, line.

Входные параметры

свернуть все

Тип маршрута в виде 'Driving''Граница' , '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' и триплет 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' и действительный скаляр в области значений [0, 1]. Значение 0 desaturates цвет и цвет маршрута кажется серым. Значение 1 полностью насыщает цвет, и цвет маршрута является чистым цветом. Можно варьироваться значение силы, чтобы изменить уровень насыщения.

Примечание

Используйте силу пары "имя-значение" цвета маршрута, чтобы установить Strength свойство текстового объекта маршрута.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Тип маршрута, возвращенный как a

  • DrivingLaneType объект

  • BorderLaneType объект

  • RestrictedLaneType объект

  • ShoulderLaneType объект

  • ParkingLaneType объект

Возвращенный объект lt зависит от значения входа type.

typelt
'Driving'DrivingLaneType объект
'Border'BorderLaneType объект
'Restricted'RestrictedLaneType объект
'Shoulder'ShoulderLaneType объект
'Parking'ParkingLaneType объект

Можно создать неоднородный LaneType массив путем конкатенации этих различных текстовых объектов маршрута.

Больше о

свернуть все

Создайте ведущий сценарий с дорогами, которые имеют несколько типов маршрута

Можно добавить дороги, которые имеют несколько типов маршрута к ведущему сценарию путем выполнения этих шагов

  1. Создайте пустой drivingScenario объект.

  2. Создайте текстовый объект маршрута, который задает различные типы маршрута на дороге при помощи laneType.

  3. Используйте текстовый объект маршрута в качестве входа к lanespec возразите и задайте технические требования маршрута для дороги.

  4. Используйте lanespec возразите, как введено против road функционируйте и добавьте дороги, которые имеют заданные типы маршрута к ведущему сценарию.

Можно использовать plot функция, чтобы визуализировать ведущий сценарий.

Можно также импортировать ведущий сценарий, содержащий дороги, которые имеют различные типы маршрута в приложение Driving Scenario Designer. Импортировать drivingScenario возразите названному scenario в приложение используйте синтаксис drivingScenarioDesigner(scenario). В сценариях вы можете:

  • Добавьте или отредактируйте дорожные центры.

  • Добавьте агентов и задайте траектории агента.

  • Смонтируйте датчики на автомобиле, оборудованном датчиком и симулируйте обнаружение контуров маршрута и агентов.

Примечание

Редактирование параметров маршрута сбрасывает все маршруты на импортированной дороге к типу маршрута 'Driving' со значениями свойств по умолчанию.

Смотрите также

Функции

Объекты

Введенный в R2019b