exponenta event banner

двинуться

Переместить карту в мировой рамке

Описание

move(map,moveValue) перемещает локальное начало координат карты в абсолютное положение, moveValue, в мировой рамке и обновляет границы карты. Значения перемещения усекаются в зависимости от разрешения карты. По умолчанию для вновь обнаруженных областей установлено значение map.DefaultValue.

пример

move(map,moveValue,Name,Value) указывает дополнительные параметры, указанные одним или несколькими аргументами пары «имя-значение».

Примеры

свернуть все

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

Загрузить примерные карты. Создание карты занятости из ternaryMap.

load exampleMaps.mat
map = occupancyMap(ternaryMap);
show(map)

Figure contains an axes. The axes with title Occupancy Grid contains an object of type image.

Создайте локальную карту меньшего размера.

mapLocal = occupancyMap(ternaryMap(end-200:end,1:200));
show(mapLocal)

Figure contains an axes. The axes with title Occupancy Grid contains an object of type image.

Следуйте по пути, запланированному на карте мира, и обновите локальную карту при перемещении локального кадра.

Укажите местоположения путей и выполните печать на карте.

path = [100 100
        100 250
        200 250
        300 250];
show(map)
hold on
plot(path(:,1),path(:,2))
hold off

Figure contains an axes. The axes with title Occupancy Grid contains 2 objects of type image, line.

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

for i = 1:length(path)-1
    moveAmount = (path(i+1,:)-path(i,:))/map.Resolution;
    for j = 1:abs(moveAmount(1)+moveAmount(2))
        moveValue = sign(moveAmount).*map.Resolution;
        move(mapLocal,moveValue, ...
            "MoveType","relative","SyncWith",map)
 
        show(mapLocal)
        drawnow limitrate
    end
end

Figure contains an axes. The axes with title Occupancy Grid contains an object of type image.

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

свернуть все

Представление карты, указанное как occupancyMap, mapLayer, или multiLayerMap объект.

Значение перемещения начала локальной карты, указанное как [x y] вектор. По умолчанию значение является абсолютным положением для перемещения локального начала координат в мировой рамке. Используйте MoveType пара имя-значение, чтобы указать относительное перемещение.

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

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

Пример: 'MoveType','relative'

Тип перемещения, указанный как 'absolute' или 'relative'. Для относительных перемещений укажите относительное перемещение [x y] вектор для moveValue на основе текущего локального кадра.

Значение заливки для обнаруженных местоположений из-за смещенных границ карты, указанных как 0 или 1.

Вторичная карта для синхронизации, указанная как occupancyMap объект. Любые обнаруженные местоположения, основанные на перемещении, обновляются значениями на этой карте с использованием координат мира.

См. также

Объекты

Функции

Представлен в R2019b