Contenido principal

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

syncWith

Sincronizar mapa con mapa superpuesto

Descripción

syncWith(map,sourcemap) actualiza el mapa con datos de otro mapa fuente del mismo tipo. Se actualizan las ubicaciones en map que también se encuentran en sourcemap. Todas las demás celdas en map conservan sus valores actuales.

ejemplo

Ejemplos

contraer todo

Este ejemplo muestra cómo mover un mapa egocéntrico local y sincronizarlo con un mapa mundial más grande. Este proceso emula un vehículo que conduce en un entorno y obtiene actualizaciones sobre los obstáculos en las nuevas áreas.

Cargar mapas de ejemplo. Crea un mapa de ocupación a partir de 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.

Crea un mapa local más pequeño.

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.

Siga una ruta planificada en el mapa mundial y actualice el mapa local a medida que mueve su marco local.

Especifique las ubicaciones de las rutas y trácelas en el mapa.

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.

Cree un bucle para moverse entre puntos según la resolución del mapa. Divide la diferencia entre puntos por la resolución del mapa para ver cuántos movimientos incrementales puedes hacer.

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.

Argumentos de entrada

contraer todo

Representación del mapa, especificada como un objeto occupancyMap, mapLayer, multiLayerMap o signedDistanceMap.

Datos del mapa de origen, especificados como un objeto occupancyMap, mapLayer, multiLayerMap o signedDistanceMap.

Capacidades ampliadas

expandir todo

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2019b

expandir todo