copy
Syntaxe
Description
crée une copie complète de newSlamObj
= copy(slamObj
)slamObj
avec les mêmes propriétés. Toutes les modifications apportées à newSlamObj
ne sont pas reflétées dans slamObj
.
Exemples
Créer une copie du Lidar SLAM
Créez un objet 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
Créez une copie de l'objet 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
Supprimer les fermetures de boucles du graphique de pose dans l'objet Lidar SLAM
Chargez les données de numérisation laser à partir d'un fichier.
load("offlineSlamData.mat");
Pour configurer l'algorithme SLAM :
Spécifiez la plage lidar, la résolution de la carte, le seuil de fermeture de boucle et le rayon de recherche.
Ajustez ces paramètres pour votre robot et votre environnement spécifiques.
Créez l'objet
lidarSLAM
avec ces paramètres.
maxLidarRange = 8; mapResolution = 20; slamObj = lidarSLAM(mapResolution,maxLidarRange); slamObj.LoopClosureThreshold = 210; slamObj.LoopClosureSearchRadius = 8;
Ajoutez des analyses de manière itérative à l'objet SLAM.
for i = 1:numel(scans) addScan(slamObj,scans{i}); end
Créez une copie de l'objet SLAM. Affichez le graphique de pose sous-jacent de l'objet 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]
Supprimez les deux premières fermetures de boucle en spécifiant leurs ID de bord.
lcEdgeIDs = slamObj2.PoseGraph.LoopClosureEdgeIDs(1:2); removeLoopClosures(slamObj2,lcEdgeIDs)
Tracez les graphiques de pose de l'objet SLAM avant et après la suppression des fermetures de boucle.
subplot(2,1,1) show(slamObj.PoseGraph); subplot(2,1,2) show(slamObj2.PoseGraph);
Arguments d'entrée
slamObj
— Objet Lidar SLAM
lidarSLAM
objet
Objet Lidar SLAM, spécifié comme objet lidarSLAM
. L'objet contient les paramètres de l'algorithme SLAM, les données du capteur et le graphique de pose sous-jacent utilisé pour créer la carte.
Arguments de sortie
newSlamObj
— Objet Lidar SLAM
lidarSLAM
objet
Objet Lidar SLAM, renvoyé sous la forme d'un objet lidarSLAM
.
Capacités étendues
Génération de code C/C++
Générez du code C et C++ avec MATLAB® Coder™.
Utilisez cette syntaxe lors de la construction d'objets lidarSLAM
pour la génération de code :
spécifie la limite supérieure du nombre d'analyses acceptées autorisées lors de la génération du code. slamObj= lidarSLAM(mapResolution,maxLidarRange,maxNumScans)
maxNumScans
est un entier positif. Cette limite d'analyse n'est requise que lors de la génération de code.
Historique des versions
Introduit dans R2019b
Commande MATLAB
Vous avez cliqué sur un lien qui correspond à cette commande MATLAB :
Pour exécuter la commande, saisissez-la dans la fenêtre de commande de MATLAB. Les navigateurs web ne supportent pas les commandes 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)