showDynamicMap

Постройте динамическую сетку заполнения

Описание

showDynamicMap(tracker) строит графики динамической сетки заполнения в локальных координатах. Статические камеры показаны с помощью полутоновых изображений, на которых серость представляет вероятность заполнения камеры. Динамические камеры показаны с использованием значений HSV (оттенка, насыщения и значения) на палитре RGB:

  • Оттенок - угол ориентации вектора скорости, разделенный на 360. Когда оттенок увеличивается с 0 до 1, цвет изменяется в порядке красного на оранжевый, жёлтый, зелёный, голубой, синий, пурпурный и обратно на красный.

  • Насыщение - Расстояние Махаланобиса (d) между распределением скорости камеры сетки и нулевой скоростью. Камера с d > 4 рисуется с полным насыщением.

  • Значение - вероятность заполнения камеры.

пример

showDynamicMap(tracker,Name,Value) задает опции, используя один или несколько аргументы пары "имя-значение". Заключайте каждое Имя в кавычки. Для примера, showDynamicMap(myTracker,"PlotVelocity",true) строит графики динамической карты для myTracker с включенной скоростью графического изображения.

Примеры

свернуть все

Создайте сценарий отслеживания.

scene = trackingScenario('UpdateRate',5,'StopTime',5);
rng(2021); % For reproducible results

Добавьте платформу с установленным датчиком лидара в сценарий отслеживания.

plat = platform(scene);
lidar = monostaticLidarSensor(1,'DetectionCoordinates','Body','HasOrganizedOutput',false);

Добавьте к сценарию две цели со случайными положениями и скоростями. Кроме того, задайте траекторию, mesh и размерность каждой платформы.

for i = 1:2
    target = platform(scene);
    x = 50*(2*rand - 1);
    y = 50*(2*rand - 1);
    vx = 5*(2*rand - 1);
    vy = 5*(2*rand - 1);
    target.Trajectory.Position = [x y 0];
    target.Trajectory.Velocity = [vx vy 0];
    % Align the orientation of the target with the direction of motion.
    target.Trajectory.Orientation = quaternion([atan2d(vy,vx),0,0],'eulerd','ZYX','frame');
    target.Mesh = extendedObjectMesh('sphere');
    target.Dimensions = struct('Length',4,'Width',4,'Height',2,'OriginOffset',[0 0 0]);
end

Определите строение датчика лидара.

config = trackingSensorConfiguration(1,...
    'SensorLimits',[-180 180;0 100],...
    'SensorTransformParameters',struct,...
    'IsValidTime',true);

Создайте трекер на основе сетки.

tracker = trackerGridRFS('SensorConfigurations',config,...
    'AssignmentThreshold',5,...
    'MinNumCellsPerCluster',4,...
    'ClusteringThreshold',3);

Продвигайтесь по сценарию и запускайте трекер с данными лидара.

while advance(scene)
   
    time = scene.SimulationTime;
    
    % Generate point cloud.
    tgtMeshes = targetMeshes(plat);
    [ptCloud, config] = lidar(tgtMeshes, time);
    
    % Format the data for the tracker.
    sensorData = struct('Time',time,...
        'SensorIndex',1,...
        'Measurement',ptCloud',...
        'MeasurementParameters',struct...
        );    
    % Update the tracker using the sensor data.
    tracks = tracker(sensorData, time);
end

Отобразите динамическую карту.

showDynamicMap(tracker)
xlabel('x (m)');
ylabel('y (m)');

Figure contains an axes. The axes contains 2 objects of type image, surface.

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

свернуть все

Сетчатый RFS-трекер, заданный как trackerGridRFS объект.

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

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

Пример: showDynamicMap (myTracker, «PlotVelocity», ложь) строит графики динамической карты для myTracker с включенной скоростью графического изображения.

Включите графическое изображение скорости, заданный как true или false. Если задано как trueвектор скорости для каждой динамической камеры построен в центре камеры сетки. Длина нанесенного на график вектора представляет величину скорости.

Родительские оси, на которых можно построить график карты, заданные как Axes указатель.

Включите обновление с предыдущей карты, заданное как true или false. Если задано как trueграфики функций карты посредством легкого обновления предыдущей карты на рисунке. Если задано как falseКаждый раз графиков функций новую карту на рисунке.

Включите инвертированные цвета на карте, заданные как true или false. Если задано как false, графики функций пустые пространства в белом и занятые пространства в чёрном. Если задано как ture, графики функций пустое место в черном и занятое пространство в белом цвете.

См. также

Введенный в R2020b