tune
Ajuste los parámetros ahrsfilter
para reducir el error de estimación
Desde R2020b
Descripción
tune(
ajusta las propiedades del objeto de filtro filter
,sensorData
,groundTruth
)ahrsfilter
, filter
, para reducir el error de distancia del cuaternión de la raíz cuadrática media (RMS) entre los datos del sensor fusionado y 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
Ajuste ahrsfilter
para mejorar la estimación de orientación
Cargue datos de sensores registrados y datos ground-truth.
ld = load('ahrsfilterTuneData.mat'); qTrue = ld.groundTruth.Orientation; % true orientation
Cree 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 según 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
filter
— Objeto de filtro
ahrsfilter
objeto
Objeto de filtro, especificado como objeto ahrsfilter
.
sensorData
— Datos del sensor
table
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 escalares de 1 por 3 en m2/s.Gyroscope
— Datos del giroscopio, especificados como un vector de escalares de 1 por 3 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 ajustador, config
, en Custom
, entonces puede usar otros tipos de datos para sensorData
entrada según su elección.
groundTruth
— Datos ground-truth
timetable
Datos ground-truth, especificados como table
. La tabla tiene solo 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 ground-truth. Cada fila de las tablas sensorData
y groundTruth
deben corresponderse entre sí.
Si establece la propiedad Cost
de la entrada de configuración del ajustador, config
, en Custom
, entonces puede usar otros tipos de datos para groundTruth
entrada según su elección.
config
— Configuración del ajustador
tunerconfig
objeto
Configuración del ajustador, 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
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)