Contenido principal

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la versión original en inglés.

accelcal

Parámetros de calibración del acelerómetro

Desde R2023b

Descripción

[A,b] = accelcal(D) devuelve la matriz A y el vector b utilizados para corregir las mediciones del acelerómetro no calibradas basándose en los datos de calibración D.

Después de obtener A y b, obtenga los datos calibrados C a partir de los datos no calibrados U usando C = U*A + b, donde U es una matriz de M por 3 y cada fila de U es una medición de acelerómetro no calibrada.

ejemplo

[A,b] = accelcal(XUP,XDOWN,YUP,YDOWN,ZUP,ZDOWN) especifica los datos de medición en seis orientaciones de calibración como se muestra en Orientaciones de calibración del acelerómetro.

[A,b] = accelcal(___,Gravity=g) especifica el valor de la constante de gravedad terrestre g.

Ejemplos

contraer todo

Crea un objeto imuSensor para generar datos de medición. De forma predeterminada, el sistema de referencia del objeto es el marco noreste abajo (NED). Especifique los parámetros del acelerómetro para que las mediciones contengan una polarización constante y algo de ruido aleatorio.

accelParams =  accelparams(ConstantBias=[.1 .2 -.1],...
    NoiseDensity=1e-2*ones(1,3));
imu = imuSensor(Accelerometer=accelParams);
disp(imu.ReferenceFrame)
NED

Defina los ángulos de Euler para seis orientaciones de calibración y conviértalos en cuaterniones.

orients = [...
    0 90 0 % xUp
    0 0 -90 % yUp
    0 180 0 % zUp
    0 -90 0 % xDown 
    0 0 90 % yDown    
    0 0 0]; % zDown
quats = quaternion(orients,"eulerd","ZYX","frame");
N = numel(quats);

Suponga que las aceleraciones externas y las velocidades angulares son ambas 0. Simule el sensor IMU para obtener las mediciones de calibración.

exAcc = zeros(N,3);
angVel = zeros(N,3);
D = imu(exAcc,angVel,quats)
D = 6×3

   -9.6490    0.2225   -0.1925
    0.0146   -9.5593    0.0153
   -0.0210    0.1928   -9.9271
    9.9363    0.1840   -0.0210
    0.0008    9.9094   -0.0655
    0.2828    0.1528    9.7232

Utilice la función accelcal para obtener los parámetros de calibración.

[A,b] = accelcal(D)
A = 3×3

    1.0018    0.0019   -0.0087
    0.0006    1.0078    0.0041
   -0.0154    0.0020    0.9986

b = 1×3

   -0.0956   -0.1852    0.0779

Verifique los parámetros de calibración utilizando las mediciones de calibración.

DCali = D*A+b
DCali = 6×3

   -9.7587    0.0199   -0.0298
   -0.0872   -9.8187    0.0534
    0.0365   -0.0111   -9.8339
    9.8589    0.0196   -0.0284
   -0.0875    9.8012    0.0535
    0.0380   -0.0109    9.7852

Cree algunas orientaciones aleatorias, obtenga las medidas del acelerómetro y calibre las medidas.

M = 10;
randomQuats = randrot(M,1);
U = imu(zeros(M,3),zeros(M,3),randomQuats);
C = U*A+b
C = 10×3

    9.1400    3.5374   -1.3008
   -7.1185   -6.8126   -0.7088
    7.1372   -6.8065   -0.5943
   -7.9362    1.5605    5.6203
    7.4397   -2.3143   -6.2363
    7.0758   -4.0794   -5.7321
    3.1250   -5.4306    7.2655
    0.8261   -9.7286    1.3509
    0.8486    2.8606   -9.2705
   -2.4922    8.5000   -3.9532

Argumentos de entrada

contraer todo

Mediciones en las seis orientaciones de calibración del acelerómetro, especificadas como una matriz de N por 3. N es el número total de mediciones. Cada fila de la matriz es una medición en una de las seis orientaciones de calibración del acelerómetro, como se muestra en Orientaciones de calibración del acelerómetro. Para obtener mejores resultados, la matriz debe contener el mismo número de mediciones para las seis orientaciones.

Al interpretar los datos en D, la función asume por defecto que la constante de gravedad terrestre g es 9,81 m/s² o 1, lo que esté más cerca de la media de la norma de los datos.

Tipos de datos: single | double

Mediciones en la orientación con el eje x hacia arriba del acelerómetro, especificadas como una matriz de N1-por-3. N1 es el número total de mediciones con el eje x hacia arriba. Cada fila de la matriz es una medida del acelerómetro. Consulte la sección Orientaciones de calibración del acelerómetro para la definición de la orientación con el eje x hacia arriba.

Tipos de datos: single | double

Mediciones en la orientación con el eje x hacia abajo del acelerómetro, especificadas como una matriz de N2-por-3. N2 es el número total de mediciones con el eje x hacia abajo. Cada fila de la matriz es una medida del acelerómetro. Consulte la sección Orientaciones de calibración del acelerómetro para la definición de la orientación con el eje x hacia abajo.

Tipos de datos: single | double

Mediciones en la orientación con el eje y hacia arriba del acelerómetro, especificadas como una matriz de N3-por-3. N3 es el número total de mediciones con el eje y hacia arriba. Cada fila de la matriz es una medida del acelerómetro. Consulte la sección Orientaciones de calibración del acelerómetro para la definición de la orientación con el eje y hacia arriba.

Tipos de datos: single | double

Mediciones en la orientación con el eje y hacia abajo del acelerómetro, especificadas como una matriz de N4-por-3. N4 es el número total de mediciones con el eje y hacia abajo. Cada fila de la matriz es una medida del acelerómetro. Consulte la sección Orientaciones de calibración del acelerómetro para la definición de la orientación con el eje y hacia abajo.

Tipos de datos: single | double

Mediciones en la orientación con el eje z hacia arriba del acelerómetro, especificadas como una matriz de N5-por-3. N5 es el número total de mediciones con el eje z hacia arriba. Cada fila de la matriz es una medida del acelerómetro. Consulte la sección Orientaciones de calibración del acelerómetro para la definición de la orientación con el eje z hacia arriba.

Tipos de datos: single | double

Mediciones en la orientación con el eje z hacia abajo del acelerómetro, especificadas como una matriz de N6-por-3. N6 es el número total de mediciones con el eje z hacia abajo. Cada fila de la matriz es una medida del acelerómetro. Consulte la sección Orientaciones de calibración del acelerómetro para la definición de la orientación con el eje z hacia abajo.

Tipos de datos: single | double

Constante de gravedad terrestre, especificada como un escalar positivo. Si no especifica este argumento, la función asume que la constante de gravedad terrestre g es 9,81 m/s² o 1, la que esté más cerca de la media de la norma de los datos en D.

Ejemplo: 9.807

Tipos de datos: single | double

Argumentos de salida

contraer todo

Matriz de calibración, devuelta como una matriz de 3 por 3.

Tipos de datos: single | double

Vector de compensación de calibración, devuelto como un vector de 1 por 3.

Tipos de datos: single | double

Más acerca de

contraer todo

Referencias

Historial de versiones

Introducido en R2023b

Consulte también

| |