Contenu principal

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la version originale en anglais.

accelcal

Paramètres d'étalonnage de l'accéléromètre

Depuis R2023b

Description

[A,b] = accelcal(D) renvoie la matrice A et le vecteur b utilisés pour corriger les mesures non calibrées de l'accéléromètre en fonction des données d'étalonnage D.

Après avoir obtenu A et b, obtenez les données calibrées C à partir des données non calibrées U en utilisant C = U*A + b, où U est une matrice M-by-3 et chaque ligne de U est une mesure d'accéléromètre non calibrée.

exemple

[A,b] = accelcal(XUP,XDOWN,YUP,YDOWN,ZUP,ZDOWN) spécifie les données de mesure à six orientations d'étalonnage comme indiqué dans Orientations d'étalonnage de l'accéléromètre.

[A,b] = accelcal(___,Gravity=g) spécifie la valeur de la constante de gravité terrestre g.

Exemples

réduire tout

Créez un objet imuSensor pour générer des données de mesure. Par défaut, le repère de l'objet est le repère nord-est-bas (NED). Spécifiez les paramètres de l'accéléromètre de sorte que les mesures contiennent un biais constant et un certain bruit aléatoire.

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

Définissez les angles d'Euler pour six orientations d'étalonnage et convertissez-les en quaternions.

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);

Supposons que les accélérations externes et les vitesses angulaires soient toutes deux nulles. Simulez le capteur IMU pour obtenir les mesures d'étalonnage.

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

Utilisez la fonction accelcal pour obtenir les paramètres d'étalonnage.

[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

Vérifiez les paramètres d'étalonnage à l'aide des mesures d'étalonnage.

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

Créez des orientations aléatoires, obtenez les mesures de l'accéléromètre et calibrez ces mesures.

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

Arguments d'entrée

réduire tout

Mesures effectuées selon les six orientations d'étalonnage de l'accéléromètre, spécifiées sous forme de matrice Nx3. N représente le nombre total de mesures. Chaque ligne de la matrice est une mesure à l'une des six orientations d'étalonnage de l'accéléromètre, comme indiqué dans Orientations d'étalonnage de l'accéléromètre. Pour des résultats optimaux, la matrice doit contenir un nombre égal de mesures pour chacune des six orientations.

Lors de l'interprétation des données dans D, la fonction suppose par défaut que la constante de gravité terrestre g est de 9,81 m/s2 ou de 1, selon la valeur la plus proche de la moyenne de la norme des données.

Types de données : single | double

Mesures à l'orientation x-up de l'accéléromètre, spécifiées sous forme de matrice N1x3. N1 est le nombre total de mesures x-up. Chaque ligne de la matrice correspond à une mesure de l'accéléromètre. Consultez la section Orientations d'étalonnage de l'accéléromètre pour la définition de l'orientation x-up.

Types de données : single | double

Mesures à l'orientation x-down de l'accéléromètre, spécifiées sous forme de matrice N2x3. N2 est le nombre total de mesures x-down. Chaque ligne de la matrice correspond à une mesure de l'accéléromètre. Consultez la section Orientations d'étalonnage de l'accéléromètre pour la définition de l'orientation x-down.

Types de données : single | double

Mesures à l'orientation y-up de l'accéléromètre, spécifiées sous forme de matrice N3x3. N3 est le nombre total de mesures y-up. Chaque ligne de la matrice correspond à une mesure de l'accéléromètre. Consultez la section Orientations d'étalonnage de l'accéléromètre pour la définition de l'orientation y-up.

Types de données : single | double

Mesures à l'orientation y-down de l'accéléromètre, spécifiées sous forme de matrice N4x3. N4 est le nombre total de mesures y-down. Chaque ligne de la matrice correspond à une mesure de l'accéléromètre. Consultez la section Orientations d'étalonnage de l'accéléromètre pour la définition de l'orientation y vers le bas.

Types de données : single | double

Mesures à l'orientation z-up de l'accéléromètre, spécifiées sous forme de matrice N5x3. N5 est le nombre total de mesures z-up. Chaque ligne de la matrice correspond à une mesure de l'accéléromètre. Consultez la section Orientations d'étalonnage de l'accéléromètre pour la définition de l'orientation z-up.

Types de données : single | double

Mesures à l'orientation z-down de l'accéléromètre, spécifiées sous forme de matrice N6x3. N6 est le nombre total de mesures z-down. Chaque ligne de la matrice correspond à une mesure de l'accéléromètre. Consultez la section Orientations d'étalonnage de l'accéléromètre pour la définition de l'orientation z vers le bas.

Types de données : single | double

Constante de gravité terrestre, spécifiée comme un scalaire positif. Si vous ne spécifiez pas cet argument, la fonction suppose que la constante de gravité terrestre g est de 9,81 m/s2 ou de 1, selon la valeur la plus proche de la moyenne de la norme des données dans D.

Exemple : 9.807

Types de données : single | double

Arguments de sortie

réduire tout

Matrice d'étalonnage, renvoyée sous forme de matrice 3x3.

Types de données : single | double

Vecteur de décalage d'étalonnage, renvoyé sous forme de vecteur 1x3.

Types de données : single | double

En savoir plus

réduire tout

Références

Historique des versions

Introduit dans R2023b