Sync map with overlapping map
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
load exampleMaps.mat map = occupancyMap(ternaryMap); show(map)
Create a smaller local map.
mapLocal = occupancyMap(ternaryMap(end-200:end,1:200)); show(mapLocal)
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
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