pointCloudPlotter

Плоттер облака точек для видимого с большого расстояния графика

Описание

пример

pcPlotter = pointCloudPlotter(bep) создает объект плоттера облака точек, который конфигурирует отображение данных об облаке точек лидара по видимому с большого расстояния графику. Объект плоттера облака точек хранится в Plotters свойство входного первоцвета строит объект, bep. Чтобы отобразить данные об облаке точек лидара на графике, используйте plotPointCloud функция.

pcPlotter = pointCloudPlotter(bep,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение". Например, 'DisplayName','Point Cloud' определяет имя отображения, которое появляется в легенде графика птичьего глаза к "Облаку точек".

Примеры

свернуть все

Сгенерируйте данные об облаке точек лидара для ведущего сценария с несколькими агентами при помощи lidarPointCloudGenerator Системный объект. Создайте ведущий сценарий при помощи drivingScenario объект. Это содержит автомобиль, оборудованный датчиком, пешехода и два других транспортных средства.

Создайте и постройте ведущий сценарий с несколькими транспортными средствами

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

scenario = drivingScenario;

Добавьте прямую дорогу к ведущему сценарию. Дорога имеет одну полосу в каждом направлении.

roadCenters = [0 0 0; 70 0 0];
laneSpecification = lanespec([1 1]);
road(scenario,roadCenters,'Lanes',laneSpecification);

Добавьте автомобиль, оборудованный датчиком в ведущий сценарий.

egoVehicle = vehicle(scenario,'ClassID',1,'Mesh',driving.scenario.carMesh);
waypoints = [1 -2 0; 35 -2 0];
trajectory(egoVehicle,waypoints,10);

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

truck = vehicle(scenario,'ClassID',2,'Length', 8.2,'Width',2.5,'Height',3.5, ...
  'Mesh',driving.scenario.truckMesh);
waypoints = [70 1.7 0; 20 1.9 0];
trajectory(truck,waypoints,15);
pedestrian = actor(scenario,'ClassID',4,'Length',0.24,'Width',0.45,'Height',1.7, ...
  'Mesh',driving.scenario.pedestrianMesh);
waypoints = [23 -4 0; 10.4 -4 0];
trajectory(pedestrian,waypoints,1.5);
bicycle = actor(scenario,'ClassID',3,'Length',1.7,'Width',0.45,'Height',1.7, ...
  'Mesh',driving.scenario.bicycleMesh);
waypoints = [12.7 -3.3 0; 49.3 -3.3 0];
trajectory(bicycle,waypoints,5);
plot(scenario,'Meshes','on')

Сгенерируйте и отобразите данные об облаке точек лидара на графике

Создайте lidarPointCloudGenerator Системный объект.

lidar = lidarPointCloudGenerator;

Добавьте профили агента и ID агента автомобиля, оборудованного датчиком от ведущего сценария до Системного объекта.

lidar.ActorProfiles = actorProfiles(scenario);
lidar.EgoVehicleActorID = egoVehicle.ActorID;

Отобразите данные об облаке точек на графике.

bep = birdsEyePlot('Xlimits',[0 70],'YLimits',[-30 30]);
plotter = pointCloudPlotter(bep);
legend('off');
while advance(scenario)
    tgts = targetPoses(egoVehicle);
    rdmesh = roadMesh(egoVehicle);
    [ptCloud,isValidTime] = lidar(tgts,rdmesh,scenario.SimulationTime);
    if isValidTime
        plotPointCloud(plotter,ptCloud);
    end
end

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

свернуть все

Видимый с большого расстояния график в виде birdsEyePlot объект.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'DisplayName','Point Cloud' определяет имя отображения, которое появляется в легенде графика птичьего глаза к "Облаку точек".

Имя плоттера, чтобы отобразиться в легенде в виде разделенной запятой пары, состоящей из 'DisplayName' и вектор символов или строковый скаляр. Если вы не задаете имя, видимый с большого расстояния график не отображает запись легенды для плоттера.

Типы данных: char | string

Размер маркера для точек в облаке точек в виде разделенной запятой пары, состоящей из 'PointSize' и положительное целое число в точках.

Укажите цвет заливки в виде разделенной запятой пары, состоящей из 'Color' и триплет RGB, шестнадцатеричный цветовой код, название цвета или короткое название цвета.

Для пользовательского цвета задайте триплет RGB или шестнадцатеричный цветовой код.

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

  • Шестнадцатеричный цветовой код является вектором символов или строковым скаляром, который запускается с символа хеша (#) сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут лежать в диапазоне от 0 к F. Значения не являются чувствительными к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.

Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию использованием MATLAB® во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешний вид
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Тег, сопоставленный с плоттером, возражает в виде разделенной запятой пары, состоящей из 'Tag' и вектор символов или строковый скаляр. Значением по умолчанию является 'PlotterN', где N целое число, которое соответствует Nплоттер th сопоставлен с входом birdsEyePlot объект.

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

свернуть все

Плоттер облака точек, возвращенный как pointCloudPlotter объект. Можно изменить этот объект путем изменения его значений свойств.

pcPlotter хранится в Plotters свойство входа, bep. Чтобы отобразить данные об облаке точек на графике, используйте plotPointCloud функция.

Введенный в R2020a