Contenuto principale

Questa pagina è stata tradotta con la traduzione automatica. Fai clic qui per vedere l'ultima versione in inglese.

accelcal

Parametri di calibrazione per l'accelerometro

Da R2023b

Descrizione

[A,b] = accelcal(D) restituisce la matrice A e il vettore b utilizzati per correggere le misurazioni dell'accelerometro non calibrate in base ai dati di calibrazione D.

Dopo aver ottenuto A e b, ricavare i dati calibrati C dai dati non calibrati U utilizzando C = U*A + b, dove U è una matrice M per 3 e ogni riga di U è una misurazione dell'accelerometro non calibrata.

esempio

[A,b] = accelcal(XUP,XDOWN,YUP,YDOWN,ZUP,ZDOWN) specifica i dati di misurazione in sei orientamenti di calibrazione come mostrato in Orientamenti di calibrazione dell'accelerometro.

[A,b] = accelcal(___,Gravity=g) specifica il valore della costante di gravità terrestre g.

Esempi

comprimi tutto

Creare un oggetto imuSensor per generare dati di misurazione. Per impostazione predefinita, il sistema di riferimento dell'oggetto è il sistema di riferimento nord-est in basso (NED). Specificare i parametri dell'accelerometro in modo che le misurazioni contengano una distorsione costante e un po' di rumore casuale.

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

Definire gli angoli di Eulero per sei orientamenti di calibrazione e convertirli in quaternioni.

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

Supponiamo che le accelerazioni esterne e le velocità angolari siano entrambe pari a 0. Simulare il sensore IMU per ottenere le misurazioni di calibrazione.

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

Utilizzare la funzione accelcal per ottenere i parametri di calibrazione.

[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

Verificare i parametri di calibrazione utilizzando le misure di calibrazione.

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

Creare alcuni orientamenti casuali, ottenere le misurazioni dell'accelerometro e calibrare le misurazioni.

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

Argomenti di input

comprimi tutto

Misurazioni nei sei orientamenti di calibrazione dell'accelerometro, specificati come una matrice N per 3. N è il numero totale di misurazioni. Ogni riga della matrice è una misurazione in uno dei sei orientamenti di calibrazione dell'accelerometro, come mostrato in Orientamenti di calibrazione dell'accelerometro. Per ottenere risultati ottimali, la matrice dovrebbe contenere un numero uguale di misurazioni per tutti e sei gli orientamenti.

Durante l'interpretazione dei dati in D, la funzione presuppone per impostazione predefinita che la costante di gravità terrestre g sia 9,81 m/s2 o 1, a seconda di quale sia più vicino alla media della norma dei dati.

Tipi di dati: single | double

Misurazioni nell'orientamento x-up dell'accelerometro, specificato come matrice N1-per-3. N1 è il numero totale di misurazioni x-up. Ogni riga della matrice è una misura dell'accelerometro. Per la definizione dell'orientamento x-up, vedere la sezione Orientamenti di calibrazione dell'accelerometro.

Tipi di dati: single | double

Misurazioni nell'orientamento x-down dell'accelerometro, specificato come matrice N2-per-3. N2 è il numero totale di misurazioni x-down. Ogni riga della matrice è una misura dell'accelerometro. Per la definizione dell'orientamento x-down, vedere la sezione Orientamenti di calibrazione dell'accelerometro.

Tipi di dati: single | double

Misurazioni con orientamento y-up dell'accelerometro, specificato come matrice N3 per 3. N3 è il numero totale di misurazioni y-up. Ogni riga della matrice è una misura dell'accelerometro. Per la definizione dell'orientamento y-up, vedere la sezione Orientamenti di calibrazione dell'accelerometro.

Tipi di dati: single | double

Misurazioni con orientamento y-down dell'accelerometro, specificato come matrice N4 per 3. N4 è il numero totale di misurazioni y-down. Ogni riga della matrice è una misura dell'accelerometro. Per la definizione dell'orientamento y-down, vedere la sezione Orientamenti di calibrazione dell'accelerometro.

Tipi di dati: single | double

Misurazioni nell'orientamento z-up dell'accelerometro, specificato come matrice N5 per 3. N5 è il numero totale di misurazioni z-up. Ogni riga della matrice è una misura dell'accelerometro. Per la definizione dell'orientamento z-up, vedere la sezione Orientamenti di calibrazione dell'accelerometro.

Tipi di dati: single | double

Misurazioni con orientamento z-down dell'accelerometro, specificato come matrice N6 per 3. N6 è il numero totale di misurazioni z-down. Ogni riga della matrice è una misura dell'accelerometro. Per la definizione dell'orientamento z-down, vedere la sezione Orientamenti di calibrazione dell'accelerometro.

Tipi di dati: single | double

Costante di gravità terrestre, specificata come uno scalare positivo. Se non si specifica questo argomento, la funzione presuppone che la costante di gravità terrestre g sia 9,81 m/s2 o 1, a seconda di quale sia più vicino alla media della norma dei dati in D.

Esempio 9.807

Tipi di dati: single | double

Argomenti di output

comprimi tutto

Matrice di calibrazione, restituita come matrice 3x3.

Tipi di dati: single | double

Vettore di offset di calibrazione, restituito come vettore 1 per 3.

Tipi di dati: single | double

Ulteriori informazioni

comprimi tutto

Riferimenti

Cronologia versioni

Introdotto in R2023b