move

Перемещение карты в лабораторной системе координат

Описание

move(map,moveValue) перемещает локальный источник карты в абсолютное место, moveValue, в мировой системе координат и обновляет пределы карты. Значения Move усекаются на основе разрешения карты. По умолчанию для вновь открываемых областей задано значение 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