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.

show

Escaneos de tramas y poses de robots.

Descripción

show(slamObj) traza todos los escaneos agregados al objeto input lidarSLAM superpuestos con las poses LiDAR en su gráfico de pose subyacente.

ejemplo

show(slamObj,Name,Value) especifica opciones utilizando el par de argumentos Name,Value. Por ejemplo, "Poses","off" desactiva la visualización del gráfico de pose subyacente en slamObj.

axes = show(___) devuelve el controlador de ejes en los que se trazan los datos SLAM LiDAR utilizando cualquiera de las sintaxis anteriores.

Ejemplos

contraer todo

Utilice un objeto lidarSLAM para agregar y comparar iterativamente escaneos LiDAR y construir un gráfico de pose optimizado de la trayectoria del robot. Para obtener un mapa de ocupación a partir de las poses y escaneos asociados, utilice la función buildMap.

Cargar datos y configurar el algoritmo SLAM

Cargar un arreglo de celdas de objetos lidarScan. Los escaneos LIDAR se recopilaron en un estacionamiento en un robot Husky® de ClearPath Robotics®. Normalmente, los escaneos LIDAR se realizan a alta frecuencia y cada escaneo no es necesario para SLAM. Por lo tanto, reduzca la resolución de los escaneos seleccionando solo cada 40 escaneos.

load garage_fl1_southend.mat scans
scans = scans(1:40:end);

Para configurar el algoritmo SLAM, especifique el rango lidar, la resolución del mapa, el umbral de cierre del bucle y el radio de búsqueda. Ajuste estos parámetros para su robot y entorno específicos. Crea el objeto lidarSLAM con estos parámetros.

maxRange = 19.2; % meters
resolution = 10; % cells per meter

slamObj = lidarSLAM(resolution,maxRange);
slamObj.LoopClosureThreshold = 360;
slamObj.LoopClosureSearchRadius = 8;

Agregar escaneos iterativamente

Usando un bucle for, agregue escaneos al objeto SLAM. El objeto utiliza la coincidencia de escaneos para comparar cada escaneo agregado con los agregados anteriormente. Para mejorar el mapa, el objeto optimiza el gráfico de pose cada vez que detecta un cierre de bucle. Cada 10 escaneos, muestra las poses y escaneos almacenados.

for i = 1:numel(scans)

    addScan(slamObj,scans{i});
    
    if rem(i,10) == 0
        show(slamObj);
    end
end
title("Lidar Scans and Poses")
xlabel("X [meters]")
ylabel("Y [meters]")

Figure contains an axes object. The axes object with title Lidar Scans and Poses, xlabel X [meters], ylabel Y [meters] contains 121 objects of type line.

Ver mapa de ocupación

Después de agregar todos los escaneos al objeto SLAM, construya un mapa occupancyMap llamando a buildMap con los escaneos y las poses. Utilice la misma resolución de mapa y alcance máximo que utilizó con el objeto SLAM.

[scansSLAM,poses] = scansAndPoses(slamObj);
occMap = buildMap(scansSLAM,poses,resolution,maxRange);
figure
show(occMap)
title('Occupancy Map of Garage')

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

Argumentos de entrada

contraer todo

Objeto SLAM Lidar, especificado como un objeto lidarSLAM. El objeto contiene los parámetros del algoritmo SLAM, los datos del sensor y el gráfico de pose subyacente utilizado para construir el mapa.

Argumentos de par nombre-valor

contraer todo

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de los otros argumentos, pero el orden de los pares no importa.

En versiones anteriores a R2021a, use comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: "Poses","off"

Ejes usados para representar el grafo de pose, especificados como el par separado por comas compuesto por "Parent" y un objeto Axes o UIAxes. Consulte axes o uiaxes.

Muestra las poses LiDAR , especificadas como el par separado por comas que consta de "Poses" y "on" o "off".

Argumentos de salida

contraer todo

Ejes utilizados para trazar el mapa, devueltos como un objeto Axes o UIAxes. Consulte axes o uiaxes.

Historial de versiones

Introducido en R2019b