predictMapToTime

Спрогнозируйте динамическую карту к метке времени

Описание

пример

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

Примечание

Эта функция выводит только предсказанную карту и изменяет результаты при вызове метода step 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 позволяет быстрее предсказать заполненность окружения.

Типы данных: logical

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

свернуть все

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

Введенный в R2021a