checkStatus
Sintaxis
Descripción
Ejemplos
Realice la localización y el mapeo visual simultáneos RGB-D (vSLAM) utilizando los datos del TUM RGB-D Benchmark. Puede descargar los datos a un directorio temporal utilizando un navegador web o ejecutando este código:
baseDownloadURL = "https://vision.in.tum.de/rgbd/dataset/freiburg3/rgbd_dataset_freiburg3_long_office_household.tgz"; dataFolder = fullfile(tempdir,"tum_rgbd_dataset",filesep); options = weboptions(Timeout=Inf); tgzFileName = dataFolder+"fr3_office.tgz"; folderExists = exist(dataFolder,"dir"); % Create a folder in a temporary directory to save the downloaded file if ~folderExists mkdir(dataFolder) disp("Downloading fr3_office.tgz (1.38 GB). This download can take a few minutes.") websave(tgzFileName,baseDownloadURL,options); % Extract contents of the downloaded file disp("Extracting fr3_office.tgz (1.38 GB) ...") untar(tgzFileName,dataFolder); end
Crea dos objetos imageDatastore
. Uno para almacenar las imágenes en color y el otro para almacenar las imágenes de profundidad.
colorImageFolder = dataFolder+"rgbd_dataset_freiburg3_long_office_household/rgb/"; depthImageFolder = dataFolder+"rgbd_dataset_freiburg3_long_office_household/depth/"; imdsColor = imageDatastore(colorImageFolder); imdsDepth = imageDatastore(depthImageFolder);
Seleccione el par sincronizado de imágenes de color y profundidad.
data = load("rgbDepthPairs.mat");
imdsColor=subset(imdsColor, data.indexPairs(:, 1));
imdsDepth=subset(imdsDepth, data.indexPairs(:, 2));
Especifique los parámetros intrínsecos de su cámara y utilícelos para crear un objeto SLAM visual RGB-D.
intrinsics = cameraIntrinsics([535.4 539.2],[320.1 247.6],[480 640]); depthScaleFactor = 5000; vslam = rgbdvslam(intrinsics,depthScaleFactor);
Procese cada par de imágenes de color y profundidad y visualice las poses de la cámara y los puntos del mapa 3D.
for i = 1:numel(imdsColor.Files) colorImage = readimage(imdsColor,i); depthImage = readimage(imdsDepth,i); addFrame(vslam,colorImage,depthImage); if hasNewKeyFrame(vslam) % Query 3-D map points and camera poses xyzPoints = mapPoints(vslam); [camPoses,viewIds] = poses(vslam); % Display 3-D map points and camera trajectory plot(vslam); end % Get current status of system status = checkStatus(vslam); % Stop adding frames when tracking is lost if status == uint8(0) break end end
Una vez procesados todos los fotogramas, reinicie el sistema.
while ~isDone(vslam) plot(vslam); end
reset(vslam);
Argumentos de entrada
Objeto SLAM visual RGB-D, especificado como un objeto rgbdvslam
.
Argumentos de salida
Estado actual del objeto SLAM visual RGB-D, devuelto como una enumeración TrackingLost
, TrackingSuccessful
o FrequentKeyFrames
. En esta tabla se describen estas enumeraciones.
Valor de enumeración | Valor numérico | Descripción |
---|---|---|
TrackingLost | uint8(0) | Se perdió el seguimiento. La cantidad de puntos característicos rastreados en el marco que se está procesando actualmente es menor que el límite inferior de la propiedad Si el objeto no acepta suficientes fotogramas como fotogramas clave, para mejorar el seguimiento, puede aumentar el valor upperLimit de la propiedad |
TrackingSuccessful | uint8(1) | El seguimiento se ha realizado correctamente. La cantidad de puntos característicos rastreados en el marco que se está procesando actualmente se encuentra entre los valores de límite inferior y límite superior de la propiedad |
FrequentKeyFrames | uint8(2) | El seguimiento agrega fotogramas clave con demasiada frecuencia. La cantidad de puntos característicos rastreados en el marco que se está procesando actualmente es mayor que el límite superior de la propiedad |
Historial de versiones
Introducido en R2025a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)