Contenu principal

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

predict

Prédire la pose et la vitesse du facteur

Depuis R2022a

Description

[predictedpose,predictedvel] = predict(factor,prevpose,prevvel,prevbias) prédit la pose predictpose et la vitesse predictedvel du facteur factor sur la base des lectures de l'IMU et du pose initiale, prevpose, vitesse prevvel et biaisprevbias.

exemple

Exemples

réduire tout

Prédisez la prochaine pose et la vitesse d'un facteur IMU en fonction de la pose, de la vitesse et des biais précédents.

Configurez des paramètres tels que les ID de nœud connectés, la fréquence d'échantillonnage, le bruit et les lectures. Créez ensuite un facteur IMU avec ces paramètres comme arguments.

nodeID = [1,2,3, 4,5,6];
sampleRate = 400; % Hz
gyroBiasNoise = 1.5e-9 * eye(3);
accelBiasNoise = diag([9.62e-9, 9.62e-9, 2.17e-8]);
gyroNoise = 6.93e-5 * eye(3);
accelNoise = 2.9e-6 * eye(3);
  
gyroReadings = [ -0.0151    0.0299    0.0027
                -0.0079    0.0370   -0.0014
                -0.0320    0.0306    0.0035
                -0.0043    0.0340   -0.0066
                -0.0033    0.0331   -0.0011];
accelReadings = [   1.0666    0.0802    9.9586
                   1.1002    0.0199    9.6650
                   1.0287    0.3071   10.1864
                   0.9077   -0.2239   10.2989
                   1.2322    0.0174    9.8411];
  
f = factorIMU(nodeID, sampleRate, gyroBiasNoise, accelBiasNoise, ...
             gyroNoise, accelNoise, gyroReadings, accelReadings, ReferenceFrame="NED");

Prédire la pose et la vitesse

Configurez les mesures de pose, de vitesse et de biais précédentes à utiliser pour prédire la pose et la vitesse suivantes.

prevpose = rand(1,7);
prevvel = rand(1,3);
prevaccelbias = rand(1,3);
prevgyrobias = rand(1,3);
prevbiases = [prevgyrobias,prevaccelbias]
prevbiases = 1×6

    0.4854    0.8003    0.1419    0.1576    0.9706    0.9572

Utilisez la fonction predict et les mesures précédentes pour prédire la pose et la vitesse suivantes.

[predictedpose,predictedvel] = predict(f,prevpose,prevvel,prevbiases)
predictedpose = 1×7

    0.8220    0.9170    0.1383    0.6307    0.7048    0.1055    0.3071

predictedvel = 1×3

    0.6202    0.8395    0.8509

Arguments d'entrée

réduire tout

Facteur IMU, spécifié comme objet factorIMU .

Pose précédente du facteur, spécifiée comme vecteur à sept éléments. La pose consiste en la position 3D et le quaternion d'orientation du facteur de la forme [x y z w qx qy qz].

Vitesse 3D précédente, spécifiée comme un vecteur à trois éléments de la forme [vx vy vz].

Biais 3D précédents du gyroscope et de l'accéléromètre, spécifiés comme un vecteur à six éléments de la forme [gx gy gz ax ay az].

Arguments de sortie

réduire tout

Quaternion de position et d'orientation 3D prévu, renvoyé sous la forme d'un vecteur à sept éléments de la forme [x y z w qx qy qz]..

vitesse 3D prédite, renvoyée sous la forme d'un vecteur à trois éléments de la forme [vx vy vz].

Capacités étendues

développer tout

Génération de code C/C++
Générez du code C et C++ avec MATLAB® Coder™.

Historique des versions

Introduit dans R2022a