Поймайте в сети вершины и поверхности относительно определенного агента
Отобразите агентов в ведущем сценарии при помощи их представлений 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 и плоттер контура маршрута. Затем запустите цикл симуляции.
Получите дорожные контуры дороги, транспортное средство включено.
Получите вершины mesh, поверхности и цвета сеток агента, с положениями относительно транспортного средства.
Постройте дорожные контуры и сетки агента на видимом с большого расстояния графике.
Приостановите сценарий, чтобы позволить время для графиков обновиться. График преследования обновляется каждый раз, когда вы совершенствуете сценарий.
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
ac
— АгентActor
возразите | Vehicle
объектАгент, принадлежащий drivingScenario
объект в виде Actor
или Vehicle
объект. Чтобы создать эти объекты, используйте actor
и vehicle
функции, соответственно.
vertices
— Поймайте в сети вершины каждого агентаПоймайте в сети вершины каждого агента, возвращенного как N - массив ячеек элемента, где N является количеством агентов.
Каждый элемент в vertices
должен быть V-by-3 матрица с действительным знаком, содержащая вершины агента, где:
V является количеством вершин.
Каждая строка задает 3-D (x, y, z) положение вершины. Положениями вершины является относительно положения входного агента ac
. Модули исчисляются в метрах.
faces
— Поймайте в сети поверхности каждого агентаПоймайте в сети поверхности каждого агента, возвращенного как 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
colors
— Цвет mesh стоит для каждого агентаЦвет 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 |
---|---|
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.