syncWith

Синхронизирующая карта с перекрывающейся картой

Описание

пример

mat = syncWith(map,sourcemap) обновления map с данными из другого binaryOccupancyMap объект, sourcemap. Местоположения в map это также найдено в sourcemap обновляются. Все другие ячейки в map установлены в map.DefaultValue.

Примеры

свернуть все

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

Загрузите карты в качестве примера. Создайте бинарную карту заполнения из complexMap.

load exampleMaps.mat
map = binaryOccupancyMap(complexMap);
show(map)

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

mapLocal = binaryOccupancyMap(complexMap(end-20:end,1:20));
show(mapLocal)

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

Задайте местоположения пути и график на карте.

path = [5 2
        8 2
        8 8
        30 8];
show(map)
hold on
plot(path(:,1),path(:,2))
hold off

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

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
        pause(0.2)
    end
end

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

свернуть все

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

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

Введенный в R2019b