targetMeshes

Сетка вершин и граней относительно определенного актёра

Описание

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

пример

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

Примеры

свернуть все

Отображать актёров в сценарии вождения при помощи представлений их сетки вместо кубоидных представлений.

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

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

Добавить пешехода и транспортное средство в сценарий. Задайте размерности сетки актёров, используя предварительно построенные сетки.

  • Укажите пешеходный 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')

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

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

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

  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-element, где N - количество актёров.

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

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

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

Сетчатые грани каждого актёра, возвращенные как массив ячеек N-element, где N количество актёров.

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

  • F - количество граней.

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

Предположим, что первая грань iпервый элемент faces имеет эти идентификаторы вершин.

faces{i}(1,:)
ans =

     1     2     3

В iпервый элемент 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-на-3 из триплетов RGB. N - количество актёров и равно количеству элементов в vertices и faces.

The iпервая строка colors - значение цвета RGB для граней в iпервый элемент faces. Функция применяет тот же цвет ко всем граням сетки актёра.

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

Подробнее о

свернуть все

Сетки

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

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

CuboidMesh

A vehicle represented as a cube.

A vehicle represented as a mesh.

См. также

Объекты

Функции

Введенный в R2020b