tune
Ajuste los parámetros ahrsfilter
para reducir el error de estimación
Descripción
tune(
ajusta las propiedades del objeto de filtro filter
,sensorData
,groundTruth
)ahrsfilter
, 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 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('ahrsfilterTuneData.mat'); qTrue = ld.groundTruth.Orientation; % true orientation
Crea un objeto arhsfitler
.
fuse = ahrsfilter;
Fusione los datos del sensor utilizando el filtro no ajustado predeterminado.
qEstUntuned = fuse(ld.sensorData.Accelerometer, ...
ld.sensorData.Gyroscope, ld.sensorData.Magnetometer);
Cree un objeto tunerconfig
. Ajuste el objeto ahrsfilter
para mejorar la estimación de la orientación en función de la configuración.
config = tunerconfig('ahrsfilter');
tune(fuse,ld.sensorData,ld.groundTruth,config);
Iteration Parameter Metric _________ _________ ______ 1 AccelerometerNoise 0.1345 1 GyroscopeNoise 0.1342 1 MagnetometerNoise 0.1341 1 GyroscopeDriftNoise 0.1341 1 LinearAccelerationNoise 0.1332 1 MagneticDisturbanceNoise 0.1324 1 LinearAccelerationDecayFactor 0.1317 1 MagneticDisturbanceDecayFactor 0.1316 2 AccelerometerNoise 0.1316 2 GyroscopeNoise 0.1312 2 MagnetometerNoise 0.1311 2 GyroscopeDriftNoise 0.1311 2 LinearAccelerationNoise 0.1300 2 MagneticDisturbanceNoise 0.1292 2 LinearAccelerationDecayFactor 0.1285 2 MagneticDisturbanceDecayFactor 0.1285 3 AccelerometerNoise 0.1285 3 GyroscopeNoise 0.1280 3 MagnetometerNoise 0.1279 3 GyroscopeDriftNoise 0.1279 3 LinearAccelerationNoise 0.1267 3 MagneticDisturbanceNoise 0.1258 3 LinearAccelerationDecayFactor 0.1253 3 MagneticDisturbanceDecayFactor 0.1253 4 AccelerometerNoise 0.1252 4 GyroscopeNoise 0.1247 4 MagnetometerNoise 0.1246 4 GyroscopeDriftNoise 0.1246 4 LinearAccelerationNoise 0.1233 4 MagneticDisturbanceNoise 0.1224 4 LinearAccelerationDecayFactor 0.1220 4 MagneticDisturbanceDecayFactor 0.1220 5 AccelerometerNoise 0.1220 5 GyroscopeNoise 0.1213 5 MagnetometerNoise 0.1212 5 GyroscopeDriftNoise 0.1212 5 LinearAccelerationNoise 0.1200 5 MagneticDisturbanceNoise 0.1190 5 LinearAccelerationDecayFactor 0.1187 5 MagneticDisturbanceDecayFactor 0.1187 6 AccelerometerNoise 0.1187 6 GyroscopeNoise 0.1180 6 MagnetometerNoise 0.1178 6 GyroscopeDriftNoise 0.1178 6 LinearAccelerationNoise 0.1167 6 MagneticDisturbanceNoise 0.1156 6 LinearAccelerationDecayFactor 0.1155 6 MagneticDisturbanceDecayFactor 0.1155 7 AccelerometerNoise 0.1155 7 GyroscopeNoise 0.1147 7 MagnetometerNoise 0.1145 7 GyroscopeDriftNoise 0.1145 7 LinearAccelerationNoise 0.1137 7 MagneticDisturbanceNoise 0.1126 7 LinearAccelerationDecayFactor 0.1125 7 MagneticDisturbanceDecayFactor 0.1125 8 AccelerometerNoise 0.1125 8 GyroscopeNoise 0.1117 8 MagnetometerNoise 0.1116 8 GyroscopeDriftNoise 0.1116 8 LinearAccelerationNoise 0.1112 8 MagneticDisturbanceNoise 0.1100 8 LinearAccelerationDecayFactor 0.1099 8 MagneticDisturbanceDecayFactor 0.1099 9 AccelerometerNoise 0.1099 9 GyroscopeNoise 0.1091 9 MagnetometerNoise 0.1090 9 GyroscopeDriftNoise 0.1090 9 LinearAccelerationNoise 0.1090 9 MagneticDisturbanceNoise 0.1076 9 LinearAccelerationDecayFactor 0.1075 9 MagneticDisturbanceDecayFactor 0.1075 10 AccelerometerNoise 0.1075 10 GyroscopeNoise 0.1066 10 MagnetometerNoise 0.1064 10 GyroscopeDriftNoise 0.1064 10 LinearAccelerationNoise 0.1064 10 MagneticDisturbanceNoise 0.1049 10 LinearAccelerationDecayFactor 0.1047 10 MagneticDisturbanceDecayFactor 0.1047 11 AccelerometerNoise 0.1047 11 GyroscopeNoise 0.1038 11 MagnetometerNoise 0.1036 11 GyroscopeDriftNoise 0.1036 11 LinearAccelerationNoise 0.1036 11 MagneticDisturbanceNoise 0.1016 11 LinearAccelerationDecayFactor 0.1014 11 MagneticDisturbanceDecayFactor 0.1014 12 AccelerometerNoise 0.1014 12 GyroscopeNoise 0.1005 12 MagnetometerNoise 0.1002 12 GyroscopeDriftNoise 0.1002 12 LinearAccelerationNoise 0.1002 12 MagneticDisturbanceNoise 0.0978
Fusione los datos del sensor utilizando el filtro ajustado.
qEstTuned = fuse(ld.sensorData.Accelerometer, ...
ld.sensorData.Gyroscope, ld.sensorData.Magnetometer);
Compare el rendimiento de los errores RMS ajustados y no ajustados.
dUntuned = rad2deg(dist(qEstUntuned, qTrue)); dTuned = rad2deg(dist(qEstTuned, qTrue)); rmsUntuned = sqrt(mean(dUntuned.^2))
rmsUntuned = 7.7088
rmsTuned = sqrt(mean(dTuned.^2))
rmsTuned = 5.6033
Visualizar los errores con respecto al tiempo.
N = numel(dUntuned); t = (0:N-1)./ fuse.SampleRate; plot(t, dUntuned, 'r', t, dTuned, 'b'); legend('Untuned', 'Tuned'); title('ahrsfilter - Tuned vs Untuned Error') xlabel('Time (s)'); ylabel('Orientation Error (degrees)');
Argumentos de entrada
Objeto de filtro, especificado como un objeto ahrsfilter
.
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.Magnetometer
— Datos del magnetómetro, especificados como un vector de escalares de 1 por 3 en μT.
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)