status = checkStatus(vslam) devuelve el estado actual del objeto SLAM visual estéreo. El marco que el objeto está procesando actualmente podría ser diferente del marco agregado más recientemente.
Realice la localización y el mapeo visual simultáneo estereoscópico (vSLAM) utilizando los datos del Conjunto de datos de localización y mapeo a largo plazo UTIAS proporcionado por el Instituto de Estudios Aeroespaciales de la Universidad de Toronto. Puede descargar los datos a un directorio mediante un navegador web o ejecutando este código:
Crea una carpeta en un directorio temporal para guardar el archivo descargado y extraer su contenido.
if ~folderExists
mkdir(dataFolder)
disp("Downloading run_000005.zip (818 MB). This download can take a few minutes.")
mget(ftpObj,"/2020-vtr-dataset/UTIAS-In-The-Dark/run_000005.zip",tempFolder);
disp("Extracting run_000005.zip (818 MB) ...")
unzip(zipFileName,dataFolder);
end
Crea dos objetos imageDatastore para almacenar las imágenes estéreo.
Especifique los parámetros intrínsecos y la línea base de la cámara estéreo, y utilícelos para crear un objeto SLAM visual estéreo. La distancia focal, el punto principal y el tamaño de la imagen están en píxeles, y la línea de base está en metros.
Procese cada par de imágenes estéreo y visualice las poses de la cámara y los puntos del mapa 3D.
for i = 1:numel(imdsLeft.Files)
leftImage = readimage(imdsLeft,i);
rightImage = readimage(imdsRight,i);
addFrame(vslam,leftImage,rightImage);
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 lostif status == uint8(0)
breakendend
Una vez procesados todos los fotogramas, reinicie el sistema.
Estado actual del objeto SLAM visual estéreo, 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 TrackFeatureRange de vslam. Esto indica que la imagen no contiene suficientes funciones o que la cámara se está moviendo demasiado rápido.
Si el objeto no acepta suficientes fotogramas como fotogramas clave, para mejorar el seguimiento, puede aumentar el valor upperLimit de la propiedad TrackFeatureRange y disminuir la propiedad SkipMaxFrames para agregar fotogramas clave con mayor frecuencia.
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 TrackFeatureRange de vslam.
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 TrackFeatureRange de vslam.
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.