predictMapToTime

Предскажите динамическую карту к метке времени

Описание

пример

map = predictMapToTime(tracker,time) возвращает карту tracker предсказанный к заданному time.

Примечание

Эта функция только выводит предсказанную карту и действительно изменяет результаты при вызове метода шага tracker. Используйте эти три настраиваемых свойства (FreeSpaceDiscountFactor, DeathRate, и ProcessNoise) из tracker управлять, как неопределенность влияет на предсказание карты.

пример

___ = predictMapToTime(___,'WithStateAndCovariance',tf) дополнительно задает, предсказывает ли функция ковариацию состояния и состояния карты. Если tf задан как false, только доказательства и заполнение карты предсказаны. Состояние, ковариация состояния и классификация ячейки как статическая или динамическая не предсказаны. Определение tf как false позволяет вам предсказывать заполнение среды быстрее.

Примеры

свернуть все

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

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

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

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

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

for i = 1:2
    target = platform(scene);
    xStart = 50*(2*rand-1);
    xFinal = 50*(2*rand-1);
    yStart = 50*(2*rand-1);
    yFinal = 50*(2*rand-1);
    target.Trajectory = waypointTrajectory([xStart yStart 0;xFinal yFinal 0],[0 15]);
    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 ...
        );

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

Покажите итоговую карту.

figure
show(map)

Сделайте несколько предположений прежде, чем предсказать карту.

% Assume free space remains free during prediction
f = tracker.FreeSpaceDiscountFactor;
tracker.FreeSpaceDiscountFactor = 1;

% Assume no targets die during prediction
d = tracker.DeathRate;
tracker.DeathRate = 0;

% Assume no process noise during prediction
q = tracker.ProcessNoise;
tracker.ProcessNoise = zeros(size(q));

Предскажите карту 1 второй форвард и покажите предсказанную карту.

figure
predictedMap = predictMapToTime(tracker,16)
predictedMap = 
  dynamicEvidentialGridMap with properties:

    NumStateVariables: 4
          MotionModel: 'constant-velocity'
           GridLength: 100
            GridWidth: 100
       GridResolution: 1
    GridOriginInLocal: [-50 -50]

show(predictedMap)

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

tracker.FreeSpaceDiscountFactor = f;
tracker.DeathRate = d;
tracker.ProcessNoise = q;

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

свернуть все

Основанное на сетке средство отслеживания RFS в виде trackerGridRFS объект.

Время предсказания в виде положительной скалярной величины. Динамическая карта средства отслеживания предсказана к этому времени. Время должно быть больше входа времени к средству отслеживания в предыдущем обновлении дорожки. Величина в секундах.

Пример: 1.0

Типы данных: single | double

Включите предсказание ковариации состояния и состояния в виде true или false. Определение его как false позволяет вам предсказывать заполнение среды быстрее.

Типы данных: логический

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

свернуть все

Сопоставьте после предсказания, возвращенного как dynamicEvidentialGridMap объект.

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

|

Введенный в R2021a