roadBoundaries

Получите контуры дорог

Описание

пример

rbdry = roadBoundaries(scenario) возвращает контуры дорог, rbdry, сценария вождения, scenario.

rbdry = roadBoundaries(ac) возвращает контуры дорог актёра ac, следует в сценарии вождения.

Примеры

свернуть все

Создайте сценарий вождения, содержащий изогнутую дорогу, две прямые дороги и двух актёров: автомобиль и велосипед. Оба актёра двигаются по дороге на 60 секунд.

Создайте объект сценария вождения.

scenario = drivingScenario('SampleTime',0.1','StopTime',60);

Создайте изогнутую дорогу с помощью точек центра дороги, следующих за дугой окружности с радиусом 800 метров. Дуга начинается с 0 °, заканчивается с 90 ° и дискретизируется с шагами 5 °.

angs = [0:5:90]';
R = 800;
roadcenters = R*[cosd(angs) sind(angs) zeros(size(angs))];
roadwidth = 10;
road(scenario,roadcenters,roadwidth);

Добавьте две прямые дороги шириной по умолчанию, используя точки центра дороги на каждом конце.

roadcenters = [700 0 0; 100 0 0];
road(scenario,roadcenters)
ans = 
  Road with properties:

           Name: ""
         RoadID: 2
    RoadCenters: [2x3 double]
      RoadWidth: 6
      BankAngle: [2x1 double]

roadcenters = [400 400 0; 0 0 0];
road(scenario,roadcenters)
ans = 
  Road with properties:

           Name: ""
         RoadID: 3
    RoadCenters: [2x3 double]
      RoadWidth: 6
      BankAngle: [2x1 double]

Получите контуры дорог.

rbdry = roadBoundaries(scenario);

Добавьте в сценарий автомобиль и велосипед. Поместите автомобиль в начале первой прямой дороги.

car = vehicle(scenario,'ClassID',1,'Position',[700 0 0], ...
    'Length',3,'Width',2,'Height',1.6);

Расположите велосипед дальше по дороге.

bicycle = actor(scenario,'ClassID',3,'Position',[706 376 0]', ...
    'Length',2,'Width',0.45,'Height',1.5);

Постройте график сценария.

plot(scenario,'Centerline','on','RoadCenters','on');
title('Scenario');

Figure contains an axes. The axes with title Scenario contains 1219 objects of type patch, line.

Отображение положений и профилей актёра.

poses = actorPoses(scenario)
poses=2×1 struct array with fields:
    ActorID
    Position
    Velocity
    Roll
    Pitch
    Yaw
    AngularVelocity

profiles = actorProfiles(scenario)
profiles=2×1 struct array with fields:
    ActorID
    ClassID
    Length
    Width
    Height
    OriginOffset
    MeshVertices
    MeshFaces
    RCSPattern
    RCSAzimuthAngles
    RCSElevationAngles

Создайте сценарий вождения, содержащий рисунок-8 дорогу, заданную в мировых координатах сценария. Преобразуйте мировые координаты сценария в систему координат автомобиля , оборудованного датчиком.

Создайте пустой сценарий вождения.

scenario = drivingScenario;

Добавьте рисунка -8 дорогу к сценарию. Просмотрите сценарий.

roadCenters = [0  0  1
             20 -20  1
             20  20  1
            -20 -20  1
            -20  20  1
              0   0  1];

roadWidth = 3;
bankAngle = [0 15 15 -15 -15 0];
road(scenario,roadCenters,roadWidth,bankAngle);
plot(scenario)

Figure contains an axes. The axes contains 4 objects of type patch, line.

Добавьте автомобиля , оборудованного датчиком к сценарию. Поместите транспортное средство в мировые координаты (20, -20) и ориентируйте его под углом рыскания -15 степеней.

ego = actor(scenario,'ClassID',1,'Position',[20 -20 0],'Yaw',-15);

Figure contains an axes. The axes contains 5 objects of type patch, line.

Получите контуры дороги в координатах автомобиль , оборудованный датчиком при помощи roadBoundaries функция. Задайте автомобиль , оборудованный датчиком как входной параметр.

rbEgo1 = roadBoundaries(ego);

Отображение результата на графике птичьего глаза.

bep = birdsEyePlot;
lbp = laneBoundaryPlotter(bep,'DisplayName','Road');
plotLaneBoundary(lbp,rbEgo1)

Figure contains an axes. The axes contains an object of type line. This object represents Road.

Получите контуры дорог в мировых координатах с помощью roadBoundaries функция. Задайте сценарий как входной параметр.

rbScenario = roadBoundaries(scenario);

Получите контуры дороги в координатах автомобиль , оборудованный датчиком при помощи driving.scenario.roadBoundariesToEgo функция.

rbEgo2 = driving.scenario.roadBoundariesToEgo(rbScenario,ego);

Отображение контуров дороги на графике птичьего глаза.

bep = birdsEyePlot;
lbp = laneBoundaryPlotter(bep,'DisplayName','Road boundaries');
plotLaneBoundary(lbp,{rbEgo2})

Figure contains an axes. The axes contains an object of type line. This object represents Road boundaries.

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

свернуть все

Сценарий вождения, заданный как drivingScenario объект.

Актёр, принадлежащий к drivingScenario объект, заданный как Actor или Vehicle объект. Чтобы создать эти объекты, используйте actor и vehicle функций, соответственно.

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

свернуть все

Контуры дорог, возвращенные как массив ячеек. Каждая камера в массиве ячеек содержит матрицу N-на-3, представляющую контур дороги в сценарии, где N количество контуров дороги. Каждая строка матрицы соответствует (x, y, z) координатам краевой вершины дороги.

Когда входной параметр является сценарием вождения, координаты дороги соответствуют мировым координатам сценария вождения. Когда входной параметр является актером, координаты дороги соответствуют системе координат актёра.

Рисунки показывают количество контуров дорог, которые rbdry содержит для различных типов дорог.

Одна дорога - одна дорога КонтураПерекресток - Одна дорога Контура

Круговая развязка - два контуров дорогФигура -8 - Трехсторонний Контур

Введенный в R2017a
Для просмотра документации необходимо авторизоваться на сайте