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