Main Content

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

factorIMU

Convertir les lectures IMU en facteur

Depuis R2022a

Description

L'objet factorIMU convertit les lectures brutes de l'IMU en contraintes entre les poses, les vitesses et les biais IMU pour un objet factorGraph .

Création

Description

F = factorIMU(nodeID,GyroscopeReadings,AccelerometerReadings) crée un objet factorIMU , F, avec la propriété de numéros d'identification de nœud spécifiée NodeID définie sur nodeID, et avec les propriétés des lectures du gyroscope et des lectures de l'accéléromètre définies sur les valeurs de leurs arguments correspondants.

F = factorIMU(nodeID,GyroscopeReadings,AccelerometerReadings,imuparams) spécifie les paramètres de l'IMU, tels que la fréquence d'échantillonnage, le bruit de polarisation du gyroscope et le bruit de polarisation de l'accéléromètre, en tant qu'objet factorIMUParameters .

exemple

F = factorIMU(nodeID,SampleRate,GyroscopeBiasNoise,AccelerometerBiasNoise,GyroscopeNoise,AccelerometerNoise,GyroscopeReadings,AccelerometerReadings) crée un objet factorIMU , F, avec la propriété de numéros d'identification de nœud spécifiée NodeID définie sur nodeID, et avec une fréquence d'échantillonnage, le bruit de polarisation du gyroscope, le bruit de polarisation de l'accéléromètre, le bruit du gyroscope, le bruit de l'accéléromètre, les lectures du gyroscope et les lectures de l'accéléromètre définies sur leurs valeurs correspondantes, respectivement.

F = factorIMU(___,Name=Value) spécifie les propriétés en utilisant un ou plusieurs arguments nom-valeur en plus de tous les arguments d'entrée de la syntaxe précédente.

Arguments en entrée

développer tout

Paramètres IMU de facteur, spécifiés en tant qu'objet factorIMUParameters .

Propriétés

développer tout

Ce propriété est en lecture seule.

Numéros d'identification de nœud, spécifiés sous la forme d'un vecteur de ligne à six éléments sous la forme [PoseID1 VelocityID1 IMUBiasID1 PoseID2 VelocityID2 IMUBiasID2]. Le facteur d'objet factorIMU s'attend à ce que les nœuds des ID de nœud correspondants aient les types de nœuds [POSE_SE3, VEL3, IMU_BIAS, POSE_SE3, VEL3, IMU_BIAS] et connecte ces nœuds dans le graphique de facteurs à l'aide des ID de nœud spécifiés.

Si un facteur dans l'objet factorIMU spécifie des ID qui ne correspondent pas à un nœud dans le graphe de facteurs, le graphe de facteurs crée automatiquement POSE_SE3, VEL3 et IMU_BIAS tapent des nœuds avec les ID correspondants et ajoutent les nœuds au graphique de facteurs lors de l'ajout du facteur au graphique de facteurs.

Vous devez spécifier cette propriété lors de la création de l'objet.

Pour plus d'informations sur les types de nœuds attendus de tous les facteurs pris en charge, consultez Types de nœuds attendus pour les objets facteurs.

Ce propriété est en lecture seule.

Taux d'échantillonnage IMU, en Hz, spécifié sous la forme d'un scalaire numérique supérieur à 100.

Vous devez spécifier cette propriété lors de la création de l'objet.

Ce propriété est en lecture seule.

Covariance du bruit de polarisation du gyroscope, spécifiée sous la forme d'une matrice 3 x 3.

Vous devez spécifier cette propriété lors de la création de l'objet.

Ce propriété est en lecture seule.

Covariance du bruit de polarisation de l'accéléromètre, spécifiée sous forme de matrice 3 x 3.

Vous devez spécifier cette propriété lors de la création de l'objet.

Ce propriété est en lecture seule.

Covariance du bruit de mesure du gyroscope, spécifiée sous forme de matrice 3 x 3.

Vous devez spécifier cette propriété lors de la création de l'objet.

Ce propriété est en lecture seule.

Covariance du bruit de mesure de l'accéléromètre, spécifiée sous forme de matrice 3 x 3.

Vous devez spécifier cette propriété lors de la création de l'objet.

Ce propriété est en lecture seule.

Lectures du gyroscope, spécifiées sous la forme d'une matrice N-par 3, où N est le nombre de lectures. Les lectures du gyroscope spécifiées sont préintégrées dans le facteur. GyroscopeReadings et AccelerometerReadings doivent avoir la même taille.

Vous devez spécifier cette propriété lors de la création de l'objet.

Ce propriété est en lecture seule.

Lectures de l'accéléromètre, spécifiées sous la forme d'une matrice N-par-3, où N est le nombre de lectures. Les lectures spécifiées de l'accéléromètre sont préintégrées dans le facteur. GyroscopeReadings et AccelerometerReadings doivent avoir la même taille.

Vous devez spécifier cette propriété lors de la création de l'objet.

Cadre de référence pour le système de coordonnées local, spécifié comme "ENU" (est-nord-haut) ou "NED" (nord-est-bas).

Types de données : string | char

Transformation consistant en une translation et une rotation 3D pour transformer les nœuds de pose de connexion au cadre de référence initial du capteur IMU, spécifié comme un objet se3 .

Par exemple, si les nœuds de pose connectés stockent les poses de caméra dans le cadre de référence initial du capteur de caméra, la transformation du capteur tourne et traduit une pose dans le cadre de référence initial du capteur de caméra en le cadre de référence initial du capteur IMU. Le référentiel initial du capteur a la toute première pose du capteur à son origine.

Une transformation de capteur n'est pas nécessaire si les nœuds de pose de connexion contiennent des poses dans le cadre de référence initial du capteur IMU. Sinon, vous devez spécifier la transformation du capteur.

Fonctions d'objet

nodeTypeObtenir le type de nœud dans le graphique de facteurs
predictPrédire la pose et la vitesse du facteur

Exemples

réduire tout

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

Créez un graphique de facteurs par défaut et ajoutez le facteur au graphique à l'aide de la fonction addFactor .

g = factorGraph;
addFactor(g,f);

En savoir plus

développer tout

Références

[1] Forster, Christian, Luca Carlone, Frank Dellaert, and Davide Scaramuzza. “On-Manifold Preintegration for Real-Time Visual-Inertial Odometry.” IEEE Transactions on Robotics 33, no. 1 (February 2017): 1–21. https://doi.org/10.1109/TRO.2016.2597321.

Capacités étendues

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

Historique des versions

Introduit dans R2022a