Main Content

syncWith

Sync map with overlapping map

Description

example

mat = syncWith(map,sourcemap) updates map with data from another occupancyMap object, sourcemap. Locations in map that are also found in sourcemap are updated. All other cells in map retain their current values.

Examples

collapse all

This example shows how to move a local egocentric map and sync it with a larger world map. This process emulates a vehicle driving in an environment and getting updates on obstacles in the new areas.

Load example maps. Create an occupancy map from the ternaryMap.

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

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

Create a smaller local map.

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

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

Follow a path planned in the world map and update the local map as you move your local frame.

Specify path locations and plot on the map.

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

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

Create a loop for moving between points by the map resolution. Divide the difference between points by the map resolution to see how many incremental moves you can make.

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 object. The axes object with title Occupancy Grid contains an object of type image.

Input Arguments

collapse all

Map representation, specified as a occupancyMap, mapLayer, or multiLayerMap object.

Source map data, specified as a occupancyMap, mapLayer, or multiLayerMap object.

Introduced in R2019b