Main Content

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

accelcal

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

Depuis R2023b

Description

[A,b] = accelcal(D) renvoie la matrice A et le vecteur b utilisé pour corriger les mesures d'accéléromètre non étalonnées 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 dans 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 référentiel de l'objet est le référentiel nord-est-bas (NED). Spécifiez les paramètres de l'accéléromètre afin que les mesures contiennent un biais constant et du 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 égales à 0. 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 les 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 aux six orientations d'étalonnage de l'accéléromètre, spécifiées sous la forme d'une matrice N-by-3. N est le nombre total de mesures. Chaque ligne de la matrice est une mesure dans 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 de meilleurs résultats, la matrice doit contenir un nombre égal de mesures pour les 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 1, celui qui est le plus proche de la moyenne de la norme des données.

Types de données : single | double

Mesures dans l'orientation x-up de l'accéléromètre, spécifiées sous la forme d'une matrice N 1 x 3. N 1 est le nombre total de mesures x-up. Chaque ligne de la matrice est une mesure de l'accéléromètre. Voir 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 dans l'orientation x-down de l'accéléromètre, spécifiées sous la forme d'une matrice N 2 x 3. N 2 est le nombre total de mesures x-down. Chaque ligne de la matrice est une mesure de l'accéléromètre. Voir 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 dans l'orientation y-up de l'accéléromètre, spécifiées sous la forme d'une matrice N 3 x 3. N 3 est le nombre total de mesures y-up. Chaque ligne de la matrice est une mesure de l'accéléromètre. Voir 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 dans l'orientation y-down de l'accéléromètre, spécifiées sous la forme d'une matrice N 4 x 3. N 4 est le nombre total de mesures y-down. Chaque ligne de la matrice est une mesure de l'accéléromètre. Voir la section Orientations d'étalonnage de l'accéléromètre pour la définition de l'orientation y-down.

Types de données : single | double

Mesures dans l'orientation z-up de l'accéléromètre, spécifiées sous la forme d'une matrice N 5 x 3. N 5 est le nombre total de mesures z-up. Chaque ligne de la matrice est une mesure de l'accéléromètre. Voir 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 dans l'orientation z-down de l'accéléromètre, spécifiées sous la forme d'une matrice N 6 x 3. N 6 est le nombre total de mesures z-down. Chaque ligne de la matrice est une mesure de l'accéléromètre. Voir la section Orientations d'étalonnage de l'accéléromètre pour la définition de l'orientation z-down.

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 1, selon la valeur la plus proche de la moyenne de la norme de les données dans D.

Exemple : 9.807

Types de données : single | double

Arguments de sortie

réduire tout

Matrice de calibrage, renvoyée sous forme de matrice 3x3.

Types de données : single | double

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

Types de données : single | double

En savoir plus

réduire tout

Orientations d'étalonnage de l'accéléromètre

Pour obtenir les données de mesure nécessaires à l'étalonnage de l'accélérateur, alignez l'orientation du cadre de mesure de l'accéléromètre (X-Y-Z) avec l'une des six orientations indiquées dans ce diagramme. Par exemple, pour obtenir une mesure x-up, alignez la direction X positive du cadre de mesure de l'accélérateur dans la direction opposée à la force de gravité, comme indiqué sur la première figure.

Six calibration orientations

Si l'accéléromètre ne présente aucune erreur d'étalonnage et que son cadre de mesure est parfaitement aligné comme indiqué sur la figure, vous pouvez obtenir des mesures idéales dans ce tableau.

OrientationaXa O aZ
X-Up-g00
X-bas+g00
Ouais0-g0
Y vers le bas0+g0
Z-Up00-g
Z-bas00+g

Dans le tableau, a X , a Y et a Z sont les composants d'accélération X, Y et Z. , respectivement. g est la constante de gravité terrestre locale.

Références

Historique des versions

Introduit dans R2023b