Contenu principal

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

nodeIDs

Obtenir les ID de nœud dans le graphique de facteurs

Depuis R2022a

Description

La fonction nodeIDs obtient tous les ID de nœud ou obtient un sous-ensemble d'ID de nœud à partir d'un graphique de facteurs pour les nœuds du même type de nœud, ID de groupe ou se connecte à des facteurs du même type de facteur.

ids = nodeIDs(graph) obtient tous les ID de nœud actuellement dans le graphique de facteurs.

ids = nodeIDs(graph,Name=Value) spécifie les options en utilisant un ou plusieurs arguments nom-valeur.

exemple

Exemples

réduire tout

Cet exemple montre quatre façons d'interroger un graphique de facteurs pour les ID de nœud.

Créez un graphique factoriel contenant quatre nœuds de pose SE(3).

fg = factorGraph;
poseIDs = generateNodeID(fg,3,"factorTwoPoseSE3")
poseIDs = 3×2

     0     1
     1     2
     2     3

poseFactors = factorTwoPoseSE3(poseIDs);

Créez des ID de groupe qui placeront les ID de nœud 0 et 1 dans le groupe 1 et les ID de nœud 2 et 3 dans le groupe 2.

group = [1 1;
         1 2;
         2 2];
addFactor(fg,poseFactors,group);

Créez et ajoutez un facteur de repère reliant le nœud 3 à un nouveau nœud 4. Ajoutez les deux nœuds au groupe 3. Notez que les nœuds peuvent exister dans plusieurs groupes en même temps.

lmFactor = factorPoseSE3AndPointXYZ([3 4]);
addFactor(fg,lmFactor,3);

Obtenez tous les identifiants dans Factor Graph

Utilisez nodeIDs pour obtenir tous les ID dans le graphique de facteurs en ne spécifiant aucun argument supplémentaire autre que le graphique de facteurs.

idAll = nodeIDs(fg)
idAll = 1×5

     0     1     2     3     4

Obtenir les ID de nœud par type de nœud

Utilisez nodeIDs et spécifiez l'argument nom-valeur NodeType comme "POSE_SE3" pour obtenir tous les nœuds de pose SE(3).

idByNode = nodeIDs(fg,NodeType="POSE_SE3")
idByNode = 1×4

     0     1     2     3

Obtenir les ID de nœud par type de facteur

Utilisez nodeIDs et spécifiez l'argument nom-valeur FactorType comme "factorPoseSE3AndPointXYZ" pour obtenir tous les nœuds liés par un factorPoseSE3AndPointXYZ Facteur .

idByFactor = nodeIDs(fg,FactorType="factorPoseSE3AndPointXYZ")
idByFactor = 1×2

     3     4

Obtenir les ID de nœud par ID de groupe

Utilisez nodeIDs et spécifiez l'argument nom-valeur FactorType comme "factorTwoPoseSE3" pour obtenir tous les nœuds liés par un factorTwoPoseSE3 Facteur .

idGroup1 = nodeIDs(fg,GroupID=1)
idGroup1 = 1×2

     0     1

idGroup2 = nodeIDs(fg,GroupID=2)
idGroup2 = 1×2

     2     3

idGroup3 = nodeIDs(fg,GroupID=3)
idGroup3 = 1×2

     3     4

Arguments d'entrée

réduire tout

Graphique factoriel, spécifié comme objet factorGraph .

Arguments nom-valeur

réduire tout

Spécifiez des paires d'arguments facultatives sous la forme Name1=Value1,...,NameN=ValueN, où Name est le nom de l'argument et Value est la valeur correspondante. Les arguments nom-valeur doivent apparaître après les autres arguments, mais l'ordre des paires n'a pas d'importance.

Exemple : nodeIDs(fg,GroupID=1) récupère tous les ID de nœud du graphe de facteurs fg associés au groupe 1.

Type de nœud des nœuds souhaités dans le graphique de facteurs, spécifié comme l'une de ces options :

  • "POSE_SE2" — Pose dans l'espace d'état SE(2)

  • "POSE_SE3" — Pose dans l'espace d'état SE(3)

  • "VEL3" — vitesse 3D

  • "POINT_XY" — Point 2D

  • "POINT_XYZ" — Point 3D

  • "IMU_BIAS" — Biais du gyroscope et de l'accéléromètre IMU

Exemple : nodeIDs(fg,NodeType="POSE_SE2") récupère tous les ID de nœud des nœuds qui sont de type de nœud POSE_SE2.

Types de données : char | string

Type de facteur auquel les nœuds se rapportent dans le graphique de facteurs, spécifié comme l'une de ces options :

Exemple : nodeIDs(fg,FactorType="factorTwoPoseSE2") récupère tous les ID de nœuds des nœuds liés aux facteurs de type factorTwoPoseSE2.

Types de données : char | string

ID de groupe des nœuds souhaités, spécifié sous la forme d'un entier non négatif ou d'un vecteur de ligne d'éléments N d'entiers non négatifs. N est le nombre de groupes.

Si GroupID est un vecteur de ligne d'éléments N d'entiers non négatifs, il ne doit y avoir aucun ID de groupe en double dans le vecteur.

Pour ajouter des nœuds à un groupe, spécifiez le groupe à l'aide de l'argument groupID de la fonction addFactor .

Exemple : nodeIDs(fg,GroupID=4) récupère tous les ID de nœud des nœuds du groupe 4.

Arguments de sortie

réduire tout

ID de nœud de tous les nœuds qui correspondent aux critères spécifiés dans l'objet factorGraph spécifié, renvoyés sous la forme d'un vecteur de ligne d'élément N. N est le nombre de nœuds renvoyés. Notez que les ID de nœud peuvent ne pas être continus dans le vecteur.

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

développer tout