copy
Sintaxis
Descripción
crea una copia profunda de newSlamObj
= copy(slamObj
)slamObj
con las mismas propiedades. Cualquier cambio realizado en newSlamObj
no se refleja en slamObj
.
Ejemplos
Crear copia de Lidar SLAM
Cree un objeto lidarSLAM
.
slamObj = lidarSLAM
slamObj = lidarSLAM with properties: PoseGraph: [1x1 poseGraph] MapResolution: 20 MaxLidarRange: 8 OptimizationFcn: @optimizePoseGraph LoopClosureThreshold: 100 LoopClosureSearchRadius: 8 LoopClosureMaxAttempts: 1 LoopClosureAutoRollback: 1 OptimizationInterval: 1 MovementThreshold: [0 0] ScanRegistrationMethod: 'BranchAndBound' TranslationSearchRange: [4 4] RotationSearchRange: 1.5708
Cree una copia del objeto LIDAR SLAM.
slamObjNew = copy(slamObj)
slamObjNew = lidarSLAM with properties: PoseGraph: [1x1 poseGraph] MapResolution: 20 MaxLidarRange: 8 OptimizationFcn: @optimizePoseGraph LoopClosureThreshold: 100 LoopClosureSearchRadius: 8 LoopClosureMaxAttempts: 1 LoopClosureAutoRollback: 1 OptimizationInterval: 1 MovementThreshold: [0 0] ScanRegistrationMethod: 'BranchAndBound' TranslationSearchRange: [4 4] RotationSearchRange: 1.5708
Eliminar cierres de bucle del gráfico de pose en el objeto Lidar SLAM
Cargue datos de escaneo láser desde un archivo.
load("offlineSlamData.mat");
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.
Cree el objeto
lidarSLAM
con estos parámetros.
maxLidarRange = 8; mapResolution = 20; slamObj = lidarSLAM(mapResolution,maxLidarRange); slamObj.LoopClosureThreshold = 210; slamObj.LoopClosureSearchRadius = 8;
Agregue escaneos de forma iterativa al objeto SLAM.
for i = 1:numel(scans) addScan(slamObj,scans{i}); end
Crea una copia del objeto SLAM. Muestra el gráfico de pose subyacente del objeto SLAM.
slamObj2 = copy(slamObj); slamObj2.PoseGraph
ans = poseGraph with properties: NumNodes: 71 NumEdges: 83 NumLoopClosureEdges: 13 LoopClosureEdgeIDs: [31 36 63 65 67 69 71 73 75 77 79 81 83] LandmarkNodeIDs: [1x0 double]
Elimine los dos primeros cierres de bucle especificando sus ID de borde.
lcEdgeIDs = slamObj2.PoseGraph.LoopClosureEdgeIDs(1:2); removeLoopClosures(slamObj2,lcEdgeIDs)
Trace los gráficos de pose del objeto SLAM antes y después de eliminar los cierres de bucle.
subplot(2,1,1) show(slamObj.PoseGraph); subplot(2,1,2) show(slamObj2.PoseGraph);
Argumentos de entrada
slamObj
— Objeto Lidar SLAM
lidarSLAM
objeto
Objeto Lidar SLAM, 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 salida
newSlamObj
— Objeto Lidar SLAM
lidarSLAM
objeto
Objeto Lidar SLAM, devuelto como un objeto lidarSLAM
.
Capacidades ampliadas
Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.
Utilice esta sintaxis al construir objetos lidarSLAM
para la generación de código:
especifica el límite superior del número de escaneos aceptados permitidos al generar código. slamObj= lidarSLAM(mapResolution,maxLidarRange,maxNumScans)
maxNumScans
es un número entero positivo. Este límite de escaneo solo es necesario al generar código.
Historial de versiones
Introducido en R2019b
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)