targetMeshes

Поймайте в сети вершины и поверхности относительно определенного агента

Описание

[vertices,faces] = targetMeshes(ac) возвращает вершины mesh и поверхности всех агентов в ведущем сценарии относительно заданного агента, ac. При отображении сеток при помощи birdsEyePlot объект, можно использовать выходную информацию о mesh в качестве входных параметров к plotMesh функция.

пример

[vertices,faces,colors] = targetMeshes(ac) также возвращает цвет поверхностей mesh для каждого агента.

Примеры

свернуть все

Отобразите агентов в ведущем сценарии при помощи их представлений mesh вместо их представлений кубоида.

Создайте ведущий сценарий и добавьте 25-метровую прямую дорогу к сценарию.

scenario = drivingScenario;
roadcenters = [0 0 0; 25 0 0];
road(scenario,roadcenters);

Добавьте пешехода и транспортное средство к сценарию. Задайте размерности mesh агентов с помощью предварительно созданных сеток.

  • Задайте пешеходную mesh как driving.scenario.pedestrianMesh объект.

  • Задайте mesh транспортного средства как driving.scenario.carMesh объект.

p = actor(scenario,'ClassID',4, ...
            'Length',0.2,'Width',0.4, ...
            'Height',1.7,'Mesh',driving.scenario.pedestrianMesh);

v = vehicle(scenario,'ClassID',1, ...
            'Mesh',driving.scenario.carMesh);

Добавьте траектории для пешехода и транспортного средства.

  • Задайте для пешехода, чтобы пересечь дорогу на уровне 1 метра в секунду.

  • Задайте для транспортного средства, чтобы идти по дороге на уровне 10 метров в секунду.

waypointsP = [15 -3 0; 15 3 0];
speedP = 1;
smoothTrajectory(p,waypointsP,speedP);

wayPointsV = [v.RearOverhang 0 0; (25 - v.Length + v.RearOverhang) 0 0];
speedV = 10;
smoothTrajectory(v,wayPointsV,speedV)

Добавьте эгоцентрический график для транспортного средства. Включите отображение сеток.

chasePlot(v,'Meshes','on')

Создайте видимый с большого расстояния график, в котором можно отобразить сетки. Также создайте плоттер mesh и плоттер контура маршрута. Затем запустите цикл симуляции.

  1. Получите дорожные контуры дороги, транспортное средство включено.

  2. Получите вершины mesh, поверхности и цвета сеток агента, с положениями относительно транспортного средства.

  3. Постройте дорожные контуры и сетки агента на видимом с большого расстояния графике.

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

bep = birdsEyePlot('XLim',[-25 25],'YLim',[-10 10]);
mPlotter = meshPlotter(bep);
lbPlotter = laneBoundaryPlotter(bep);
legend('off')

while advance(scenario)

   rb = roadBoundaries(v);

   [vertices,faces,colors] = targetMeshes(v);

   plotLaneBoundary(lbPlotter,rb)
   plotMesh(mPlotter,vertices,faces,'Color',colors)

   pause(0.01)
end

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

свернуть все

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

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

свернуть все

Поймайте в сети вершины каждого агента, возвращенного как N - массив ячеек элемента, где N является количеством агентов.

Каждый элемент в vertices должен быть V-by-3 матрица с действительным знаком, содержащая вершины агента, где:

  • V является количеством вершин.

  • Каждая строка задает 3-D (x, y, z) положение вершины. Положениями вершины является относительно положения входного агента ac. Модули исчисляются в метрах.

Поймайте в сети поверхности каждого агента, возвращенного как N - массив ячеек элемента, где N является количеством агентов.

Каждый элемент в faces должен быть F-by-3 матрица с целочисленным знаком, содержащая поверхности агента, где:

  • F является количеством поверхностей.

  • Каждая строка задает треугольник идентификаторов вершины, которые составляют поверхность. Идентификаторы вершины соответствуют номерам строк в vertices.

Предположим первая поверхность iэлемент th faces имеет эти идентификаторы вершины.

faces{i}(1,:)
ans =

     1     2     3

В iэлемент th vertices, строки 1, 2, и 3 содержат (x, y, z) положения вершин, которые составляют эту поверхность.

vertices{i}(1:3,:)
ans =

    3.7000    0.9000    0.8574
    3.7000   -0.9000    0.8574
    3.7000   -0.9000    0.3149

Цвет mesh стоит для каждого агента, возвращенного как N-by-3 матрица триплетов RGB. N является количеством агентов и равен числу элементов в vertices и faces.

iстрока th colors значение цвета RGB поверхностей в iэлемент th faces. Функция применяет тот же цвет ко всем поверхностям mesh агента.

Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должны быть в диапазоне [0,1]; например, [0,4 0,6 0,7].

Больше о

свернуть все

Сетки

В ведущих сценариях mesh является основанным на треугольнике 3-D представлением объекта. Сцепитесь представления объектов более подробны, чем кубоид по умолчанию представления, (имеющие форму поля) объектов. Сетки полезны для генерации синтетических данных об облаке точек из ведущего сценария.

Эта таблица показывает различие между представлением кубоида и представлением mesh транспортного средства в ведущем сценарии.

КубоидMesh

A vehicle represented as a cube.

A vehicle represented as a mesh.

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

Объекты

Функции

Введенный в R2020b