tune
Ajustez les paramètres imufilter pour réduire l'erreur d'estimation
Description
tune( ajuste les propriétés de l'objet filtre filter,sensorData,groundTruth)imufilter , filter, pour réduire l'erreur de distance des quaternions (RMS). entre les données du capteur fusionnées et la vérité terrain. La fonction fusionne les données du capteur pour estimer l'orientation, qui est comparée à l'orientation de la vérité terrain. La fonction utilise les valeurs des propriétés du filtre comme estimation initiale pour l'algorithme d'optimisation.
tune(___, spécifie la configuration de réglage basée sur un objet config)tunerconfig , config.
Exemples
Chargez les données de capteur enregistrées et les données de vérité terrain.
ld = load('imufilterTuneData.mat'); qTrue = ld.groundTruth.Orientation; % true orientation
Créez un objet imufilter et fusionnez le filtre avec les données du capteur.
fuse = imufilter;
qEstUntuned = fuse(ld.sensorData.Accelerometer, ...
ld.sensorData.Gyroscope);Créez un objet tunerconfig et ajustez l'imufilter pour améliorer l'estimation de l'orientation.
cfg = tunerconfig('imufilter');
tune(fuse, ld.sensorData, ld.groundTruth, cfg); Iteration Parameter Metric
_________ _________ ______
1 AccelerometerNoise 0.1149
1 GyroscopeNoise 0.1146
1 GyroscopeDriftNoise 0.1146
1 LinearAccelerationNoise 0.1122
1 LinearAccelerationDecayFactor 0.1103
2 AccelerometerNoise 0.1102
2 GyroscopeNoise 0.1098
2 GyroscopeDriftNoise 0.1098
2 LinearAccelerationNoise 0.1070
2 LinearAccelerationDecayFactor 0.1053
3 AccelerometerNoise 0.1053
3 GyroscopeNoise 0.1048
3 GyroscopeDriftNoise 0.1048
3 LinearAccelerationNoise 0.1016
3 LinearAccelerationDecayFactor 0.1002
4 AccelerometerNoise 0.1001
4 GyroscopeNoise 0.0996
4 GyroscopeDriftNoise 0.0996
4 LinearAccelerationNoise 0.0962
4 LinearAccelerationDecayFactor 0.0950
5 AccelerometerNoise 0.0950
5 GyroscopeNoise 0.0943
5 GyroscopeDriftNoise 0.0943
5 LinearAccelerationNoise 0.0910
5 LinearAccelerationDecayFactor 0.0901
6 AccelerometerNoise 0.0900
6 GyroscopeNoise 0.0893
6 GyroscopeDriftNoise 0.0893
6 LinearAccelerationNoise 0.0862
6 LinearAccelerationDecayFactor 0.0855
7 AccelerometerNoise 0.0855
7 GyroscopeNoise 0.0848
7 GyroscopeDriftNoise 0.0848
7 LinearAccelerationNoise 0.0822
7 LinearAccelerationDecayFactor 0.0818
8 AccelerometerNoise 0.0817
8 GyroscopeNoise 0.0811
8 GyroscopeDriftNoise 0.0811
8 LinearAccelerationNoise 0.0791
8 LinearAccelerationDecayFactor 0.0789
9 AccelerometerNoise 0.0788
9 GyroscopeNoise 0.0782
9 GyroscopeDriftNoise 0.0782
9 LinearAccelerationNoise 0.0769
9 LinearAccelerationDecayFactor 0.0768
10 AccelerometerNoise 0.0768
10 GyroscopeNoise 0.0762
10 GyroscopeDriftNoise 0.0762
10 LinearAccelerationNoise 0.0754
10 LinearAccelerationDecayFactor 0.0753
11 AccelerometerNoise 0.0753
11 GyroscopeNoise 0.0747
11 GyroscopeDriftNoise 0.0747
11 LinearAccelerationNoise 0.0741
11 LinearAccelerationDecayFactor 0.0740
12 AccelerometerNoise 0.0740
12 GyroscopeNoise 0.0734
12 GyroscopeDriftNoise 0.0734
12 LinearAccelerationNoise 0.0728
12 LinearAccelerationDecayFactor 0.0728
13 AccelerometerNoise 0.0728
13 GyroscopeNoise 0.0721
13 GyroscopeDriftNoise 0.0721
13 LinearAccelerationNoise 0.0715
13 LinearAccelerationDecayFactor 0.0715
14 AccelerometerNoise 0.0715
14 GyroscopeNoise 0.0706
14 GyroscopeDriftNoise 0.0706
14 LinearAccelerationNoise 0.0700
14 LinearAccelerationDecayFactor 0.0700
15 AccelerometerNoise 0.0700
15 GyroscopeNoise 0.0690
15 GyroscopeDriftNoise 0.0690
15 LinearAccelerationNoise 0.0684
15 LinearAccelerationDecayFactor 0.0684
16 AccelerometerNoise 0.0684
16 GyroscopeNoise 0.0672
16 GyroscopeDriftNoise 0.0672
16 LinearAccelerationNoise 0.0668
16 LinearAccelerationDecayFactor 0.0667
17 AccelerometerNoise 0.0667
17 GyroscopeNoise 0.0655
17 GyroscopeDriftNoise 0.0655
17 LinearAccelerationNoise 0.0654
17 LinearAccelerationDecayFactor 0.0654
18 AccelerometerNoise 0.0654
18 GyroscopeNoise 0.0641
18 GyroscopeDriftNoise 0.0641
18 LinearAccelerationNoise 0.0640
18 LinearAccelerationDecayFactor 0.0639
19 AccelerometerNoise 0.0639
19 GyroscopeNoise 0.0627
19 GyroscopeDriftNoise 0.0627
19 LinearAccelerationNoise 0.0627
19 LinearAccelerationDecayFactor 0.0624
20 AccelerometerNoise 0.0624
20 GyroscopeNoise 0.0614
20 GyroscopeDriftNoise 0.0614
20 LinearAccelerationNoise 0.0613
20 LinearAccelerationDecayFactor 0.0613
Fusionnez à nouveau les données du capteur à l’aide du filtre optimisé.
qEstTuned = fuse(ld.sensorData.Accelerometer, ...
ld.sensorData.Gyroscope);Comparez les performances d'erreur RMS des filtres réglés et non réglés.
dUntuned = rad2deg(dist(qEstUntuned, qTrue)); dTuned = rad2deg(dist(qEstTuned, qTrue)); rmsUntuned = sqrt(mean(dUntuned.^2))
rmsUntuned = 6.5864
rmsTuned = sqrt(mean(dTuned.^2))
rmsTuned = 3.5098
Visualisez les résultats.
N = numel(dUntuned); t = (0:N-1)./ fuse.SampleRate; plot(t, dUntuned, 'r', t, dTuned, 'b'); legend('Untuned', 'Tuned'); title('imufilter - Tuned vs Untuned Error') xlabel('Time (s)'); ylabel('Orientation Error (degrees)');

Arguments d'entrée
Objet filtre, spécifié comme objet imufilter .
Données du capteur, spécifiées sous la forme table. Dans chaque ligne, les données du capteur sont spécifiées comme suit :
Accelerometer— Données de l'accéléromètre, spécifiées sous la forme d'un vecteur 1 par 3 de scalaires en m2/s.Gyroscope— Données du gyroscope, spécifiées sous la forme d'un vecteur 1 sur 3 de scalaires en rad/s.
Si vous définissez la propriété Cost de l'entrée de configuration du tuner, config, sur Custom, vous pouvez utiliser d'autres types de données pour le sensorData entrée en fonction de votre choix.
Données de vérité terrain, spécifiées comme table. Le tableau ne contient qu'une seule colonne de données Orientation . Dans chaque ligne, l'orientation est spécifiée sous la forme d'un objet quaternion ou d'une matrice de rotation 3 par 3.
La fonction traite chaque ligne des tables sensorData et groundTruth séquentiellement pour calculer l'estimation de l'état et l'erreur RMS à partir de la vérité terrain. Chaque ligne des tableaux sensorData et groundTruth doit correspondre.
Si vous définissez la propriété Cost de l'entrée de configuration du tuner, config, sur Custom, vous pouvez utiliser d'autres types de données pour le groundTruth entrée en fonction de votre choix.
Configuration du tuner, spécifiée comme objet tunerconfig .
Références
[1] Abbeel, P., Coates, A., Montemerlo, M., Ng, A.Y. and Thrun, S. Discriminative Training of Kalman Filters. In Robotics: Science and systems, Vol. 2, pp. 1, 2005.
Historique des versions
Introduit dans R2020b
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.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- 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)