tune
Ajuste los parámetros imufilter para reducir el error de estimación
Descripción
tune( ajusta las propiedades del objeto de filtro filter,sensorData,groundTruth)imufilter, filter, para reducir el error de distancia de cuaternión de raíz cuadrada media (RMS) entre los datos del sensor fusionado y la ground-truth. La función fusiona los datos del sensor para estimar la orientación, que se compara con la orientación en el terreno. La función utiliza los valores de propiedad en el filtro como estimación inicial para el algoritmo de optimización.
tune(___, especifica la configuración de ajuste basada en un objeto config)tunerconfig, config.
Ejemplos
Cargue datos de sensores registrados y datos ground-truth.
ld = load("imufilterTuneData.mat"); qTrue = ld.groundTruth.Orientation; % true orientation
Cree un objeto imufilter y fusione el filtro con los datos del sensor.
fuse = imufilter;
qEstUntuned = fuse(ld.sensorData.Accelerometer, ...
ld.sensorData.Gyroscope);Cree un objeto tunerconfig y ajuste el imufilter para mejorar la estimación de la orientación.
cfg = tunerconfig("imufilter",ObjectiveLimit=0.03);
reset(fuse)
tune(fuse,ld.sensorData,ld.groundTruth,cfg); Iteration Parameter Metric
_________ _________ ______
1 AccelerometerNoise 0.0857
1 GyroscopeNoise 0.0855
1 GyroscopeDriftNoise 0.0855
1 LinearAccelerationNoise 0.0851
1 LinearAccelerationDecayFactor 0.0844
2 AccelerometerNoise 0.0844
2 GyroscopeNoise 0.0842
2 GyroscopeDriftNoise 0.0842
2 LinearAccelerationNoise 0.0840
2 LinearAccelerationDecayFactor 0.0836
3 AccelerometerNoise 0.0836
3 GyroscopeNoise 0.0834
3 GyroscopeDriftNoise 0.0834
3 LinearAccelerationNoise 0.0834
3 LinearAccelerationDecayFactor 0.0831
4 AccelerometerNoise 0.0831
4 GyroscopeNoise 0.0829
4 GyroscopeDriftNoise 0.0829
4 LinearAccelerationNoise 0.0829
4 LinearAccelerationDecayFactor 0.0827
5 AccelerometerNoise 0.0827
5 GyroscopeNoise 0.0824
5 GyroscopeDriftNoise 0.0824
5 LinearAccelerationNoise 0.0824
5 LinearAccelerationDecayFactor 0.0822
6 AccelerometerNoise 0.0822
6 GyroscopeNoise 0.0819
6 GyroscopeDriftNoise 0.0819
6 LinearAccelerationNoise 0.0819
6 LinearAccelerationDecayFactor 0.0818
7 AccelerometerNoise 0.0818
7 GyroscopeNoise 0.0814
7 GyroscopeDriftNoise 0.0814
7 LinearAccelerationNoise 0.0814
7 LinearAccelerationDecayFactor 0.0813
8 AccelerometerNoise 0.0813
8 GyroscopeNoise 0.0808
8 GyroscopeDriftNoise 0.0808
8 LinearAccelerationNoise 0.0808
8 LinearAccelerationDecayFactor 0.0807
9 AccelerometerNoise 0.0807
9 GyroscopeNoise 0.0802
9 GyroscopeDriftNoise 0.0802
9 LinearAccelerationNoise 0.0802
9 LinearAccelerationDecayFactor 0.0801
10 AccelerometerNoise 0.0801
10 GyroscopeNoise 0.0794
10 GyroscopeDriftNoise 0.0794
10 LinearAccelerationNoise 0.0794
10 LinearAccelerationDecayFactor 0.0794
11 AccelerometerNoise 0.0794
11 GyroscopeNoise 0.0785
11 GyroscopeDriftNoise 0.0785
11 LinearAccelerationNoise 0.0785
11 LinearAccelerationDecayFactor 0.0785
12 AccelerometerNoise 0.0785
12 GyroscopeNoise 0.0775
12 GyroscopeDriftNoise 0.0775
12 LinearAccelerationNoise 0.0775
12 LinearAccelerationDecayFactor 0.0774
13 AccelerometerNoise 0.0774
13 GyroscopeNoise 0.0762
13 GyroscopeDriftNoise 0.0762
13 LinearAccelerationNoise 0.0762
13 LinearAccelerationDecayFactor 0.0761
14 AccelerometerNoise 0.0761
14 GyroscopeNoise 0.0746
14 GyroscopeDriftNoise 0.0746
14 LinearAccelerationNoise 0.0746
14 LinearAccelerationDecayFactor 0.0745
15 AccelerometerNoise 0.0745
15 GyroscopeNoise 0.0727
15 GyroscopeDriftNoise 0.0727
15 LinearAccelerationNoise 0.0727
15 LinearAccelerationDecayFactor 0.0726
16 AccelerometerNoise 0.0726
16 GyroscopeNoise 0.0706
16 GyroscopeDriftNoise 0.0706
16 LinearAccelerationNoise 0.0705
16 LinearAccelerationDecayFactor 0.0705
17 AccelerometerNoise 0.0705
17 GyroscopeNoise 0.0684
17 GyroscopeDriftNoise 0.0684
17 LinearAccelerationNoise 0.0683
17 LinearAccelerationDecayFactor 0.0683
18 AccelerometerNoise 0.0683
18 GyroscopeNoise 0.0662
18 GyroscopeDriftNoise 0.0662
18 LinearAccelerationNoise 0.0662
18 LinearAccelerationDecayFactor 0.0662
19 AccelerometerNoise 0.0662
19 GyroscopeNoise 0.0644
19 GyroscopeDriftNoise 0.0644
19 LinearAccelerationNoise 0.0644
19 LinearAccelerationDecayFactor 0.0644
20 AccelerometerNoise 0.0644
20 GyroscopeNoise 0.0630
20 GyroscopeDriftNoise 0.0630
20 LinearAccelerationNoise 0.0630
20 LinearAccelerationDecayFactor 0.0630
Fusione los datos del sensor nuevamente usando el filtro ajustado.
qEstTuned = fuse(ld.sensorData.Accelerometer, ...
ld.sensorData.Gyroscope);Compare el rendimiento de los errores RMS del filtro ajustado y no ajustado.
dUntuned = rad2deg(dist(qEstUntuned,qTrue)); dTuned = rad2deg(dist(qEstTuned,qTrue)); rmsUntuned = sqrt(mean(dUntuned.^2))
rmsUntuned = 4.9108
rmsTuned = sqrt(mean(dTuned.^2))
rmsTuned = 3.6116
Visualiza los resultados.
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)");

Argumentos de entrada
Objeto de filtro, especificado como un objeto imufilter.
Datos del sensor, especificados como table. En cada fila, los datos del sensor se especifican como:
Accelerometer— Datos del acelerómetro, especificados como un vector de 1 por 3 de escalares en m2/s.Gyroscope— Datos del giroscopio, especificados como un vector de 1 por 3 de escalares en rad/s.
Si establece la propiedad Cost de la entrada de configuración del sintonizador, config, en Custom, podrá usar otros tipos de datos para la entrada sensorData según su elección.
Datos de verdad fundamental, especificados como table. La tabla solo tiene una columna de datos Orientation. En cada fila, la orientación se especifica como un objeto quaternion o una matriz de rotación de 3 por 3.
La función procesa cada fila de las tablas sensorData y groundTruth secuencialmente para calcular la estimación del estado y el error RMS a partir de la ground-truth. Cada fila de las tablas sensorData y groundTruth deben corresponder entre sí.
Si establece la propiedad Cost de la entrada de configuración del sintonizador, config, en Custom, podrá usar otros tipos de datos para la entrada groundTruth según su elección.
Configuración del sintonizador, especificada como un objeto tunerconfig.
Referencias
[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.
Historial de versiones
Introducido en 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.
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)