accelcal
Syntaxe
Description
[
renvoie la matrice A
,b
] = accelcal(D
)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.
Exemples
Calibrer les mesures de l'accéléromètre
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
D
— Mesures selon six orientations d'étalonnage
N-matrice par 3
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
XUP
— Mesures en orientation x-up
N Matrice 1 par 3
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
XDOWN
— Mesures en orientation x-down
N Matrice 2 par 3
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
YUP
— Mesures en orientation y-up
N Matrice 3 par 3
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
YDOWN
— Mesures avec orientation y-down
N Matrice 4 par 3
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
ZUP
— Mesures en orientation z-up
N Matrice 5 x 3
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
ZDOWN
— Mesures en orientation z-down
N Matrice 6 x 3
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
g
— Constante de gravité terrestre
scalaire positif
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
A
— Matrice d'étalonnage
Matrice 3x3
Matrice de calibrage, renvoyée sous forme de matrice 3x3.
Types de données : single
| double
b
— Vecteur de décalage d'étalonnage
vecteur 1 par 3
Vecteur de décalage d'étalonnage, renvoyé sous forme de vecteur 1 x 3.
Types de données : single
| double
En savoir plus
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.
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.
Orientation | aX | a O | aZ |
---|---|---|---|
X-Up | -g | 0 | 0 |
X-bas | +g | 0 | 0 |
Ouais | 0 | -g | 0 |
Y vers le bas | 0 | +g | 0 |
Z-Up | 0 | 0 | -g |
Z-bas | 0 | 0 | +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
[1] AN4508 Application Note: Parameters and Calibration of a Low-G 3-Axis Accelerometer.
Historique des versions
Introduit dans R2023b
Voir aussi
Commande MATLAB
Vous avez cliqué sur un lien qui correspond à cette commande MATLAB :
Pour exécuter la commande, saisissez-la dans la fenêtre de commande de MATLAB. Les navigateurs web ne supportent pas les commandes 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)