Main Content

syncWith

Sync map with overlapping map

Description

syncWith(map,sourcemap) updates the map with data from another source map of the same type. Locations in map that are also found in sourcemap are updated. All other cells in map retain their current values.

example

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, xlabel X [meters], ylabel Y [meters] 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, xlabel X [meters], ylabel Y [meters] 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, xlabel X [meters], ylabel Y [meters] 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(mapLocal,map) 
        show(mapLocal)
        drawnow limitrate
    end
end

Figure contains an axes object. The axes object with title Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains an object of type image.

Input Arguments

collapse all

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

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

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2019b

expand all