dynamicEvidentialGridMap

Динамическая карта сетки выводится от trackerGridRFS

Описание

dynamicEvidentialGridMap объект представляет динамическую оценку карты, полученную из основанного на сетке средства отслеживания, trackerGridRFS. Можно визуализировать динамическую карту и получить ориентировочные стоимости при помощи объектных функций dynamicEvidentialGridMap. dynamicEvidentialGridMap объект является объектом указателя.

Создание

Можно сгенерировать dynamicEvidentialGridMap объект с помощью trackerGridRFS объект. Смотрите синтаксис Использования trackerGridRFS и Получить Ориентировочные стоимости на Уровне сети с помощью dynamicEvidentialGridMap пример для деталей.

Свойства

развернуть все

Это свойство доступно только для чтения.

Модель Motion для отслеживания в виде 'constant-velocity', 'constant-acceleration', или 'constant-turn-rate'. Частица и объектное состояние состояния для каждой модели движения:

MotionModelСостояние частицыОбъектное состояние
'constant-velocity'[x; vx; y; vy] [x; vx; y; vy; yaw; L; W]
'constant-acceleration'[x; vx; ax; y; vy; ay][x; vx; ax; y; vy; ay; yaw; L; W]
'constant-turn-rate'[x; vx; y; vy; w][x; vx; y; vy; w; yaw; L; W]

где:

  • x — Положение объекта в направлении X системы координат отслеживания (m)

  • y — Положение объекта в направлении Y системы координат отслеживания (m)

  • vx — Скорость объекта в направлении X системы координат отслеживания (m/s)

  • vy — Скорость объекта в направлении Y системы координат отслеживания (m/s)

  • ax — Ускорение объекта в направлении X системы координат отслеживания (m/s2)

  • ay — Ускорение объекта в направлении Y системы координат отслеживания (m/s2)

  • w — Уровень рыскания объекта в системе координат отслеживания (degree/s)

  • yaw — Угол рыскания объекта в системе координат отслеживания (градус)

  • L — Длина объекта (m)

  • W — Ширина объекта (m)

Это свойство доступно только для чтения.

Количество переменных состояния, соответствующих модели движения, задано в MotionModel свойство в виде положительного целого числа.

Пример 6

Это свойство доступно только для чтения.

x- размерность направления сетки в локальных координатах в виде положительной скалярной величины в метрах.

Это свойство доступно только для чтения.

y- размерность направления сетки в локальных координатах в виде положительной скалярной величины в метрах.

Это свойство доступно только для чтения.

Разрешение сетки в виде положительной скалярной величины. GridResolution представляет количество ячеек на метр сетки и для x - и для y - направление сетки.

Это свойство доступно только для чтения.

Местоположение начала координат сетки в локальной координате структурирует в виде двухэлементного вектора с действительным знаком в метрах. Начало координат сетки представляет нижний левый угол карты сетки.

Функции объекта

getEvidencesПолучите предполагаемое заполнение и свободные доказательства
getOccupancyПолучите предполагаемые вероятности заполнения
getStateПолучите полное оцененное состояние и сопоставленную неопределенность
getVelocityПолучите предполагаемую скорость и сопоставленную неопределенность
showВизуализируйте динамическую очевидную карту сетки

Примеры

свернуть все

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

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

Добавьте платформу. Смонтируйте датчик лидара на платформе.

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

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

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];
    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)
    % Current time
    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 ...
        );

    % Call tracker using sensorData to obtain the map in addition
    % to tracks
    [tracks, ~, ~, map] = tracker(sensorData,time);

    % Obtain the estimated occupancy probability of each cell
    P_occ = getOccupancy(map);

    % Obtain the estimated evidences for each cell
    [m_occ, m_free] = getEvidences(map);

    % Obtain the estimated velocity for each cell
    [v, Pv] = getVelocity(map);

    % Obtain the estimated state for each cell
    [x, P] = getState(map);
    
    % Show the map
    show(map,'InvertColors',true)
end

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

Расширенные возможности

Смотрите также

|

Введенный в R2021a