Contenu principal

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

isConnected

Vérifiez si le graphique des facteurs est connecté

Depuis R2022a

Description

La fonction isConnected renvoie un indicateur logique qui indique si le graphe de facteurs, ou un graphe de facteurs partiel construit à partir de nœuds de pose spécifiés, contient un chemin entre chaque paire de nœuds.

connected = isConnected(graph) renvoie un indicateur logique indiquant si le graphe de facteurs spécifié contient un chemin entre chaque paire de nœuds qui lui est associée.

exemple

connected = isConnected(graph,poseNodeIDs) renvoie un indicateur logique indiquant si un graphique de facteurs partiels composé des ID de nœuds de pose spécifiés poseNodeIDs, et des facteurs associés et des nœuds sans pose, contient un chemin entre chaque paire de nœuds. Pour plus d’informations, consultez Connectivité du graphique factoriel.

Exemples

réduire tout

Créez un graphique factoriel.

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

     0     1
     1     2

poseFactors1 = factorTwoPoseSE3(poseIDs1);
addFactor(fg,poseFactors1);

Vérifiez la connectivité.

isConnected(fg)
ans = logical
   1

Le graphe est connecté car il existe un chemin entre chaque paire de nœuds du graphe. Par exemple, vous pouvez atteindre le nœud 2 depuis le nœud 0 en passant par le nœud 1.

Essayez ensuite d'ajouter un nœud déconnecté. Générez un ID de nœud pour un facteur GPS.

gpsID = generateNodeID(fg,1,"factorGPS")
gpsID = 3

Créez le facteur GPS et ajoutez-le au graphique des facteurs.

gpsFactor = factorGPS(gpsID);
addFactor(fg,gpsFactor);

Vérifiez la connectivité. Notez que comme le nouveau nœud spécifié par le facteur GPS n’est connecté à aucun des nœuds précédents, il y a une déconnexion.

isConnected(fg)
ans = logical
   0

Ajoutez un autre facteur entre le nœud 2 et le nœud 3 pour résoudre cette déconnexion.

poseFactors2 = factorTwoPoseSE3([2 3]);
addFactor(fg,poseFactors2);

Vérifiez la connectivité pour vérifier que le graphique est à nouveau connecté.

isConnected(fg)
ans = logical
   1

Arguments d'entrée

réduire tout

Objet Factor, spécifié comme objet factorGraph .

ID des nœuds de pose pour vérifier la connexion dans le graphe de facteurs, spécifiés comme un vecteur de ligne d'éléments N d'entiers non négatifs. N est le nombre total de nœuds à vérifier.

Les nœuds de pose spécifiés par poseNodeIDs doivent tous être de type "POSE_SE2", ou doivent tous être de type "POSE_SE3". Les nœuds de pose spécifiés doivent également être uniques. Par exemple, poseNodeIDs ne peut pas être [1 2 1] car l'ID de nœud 1 n'est pas unique dans ce vecteur.

Les nœuds de pose spécifiés dans le graphe de facteurs doivent former un graphe de facteurs connecté. Pour plus d’informations, consultez Connectivité du graphique factoriel.

Arguments de sortie

réduire tout

Le graphique est connecté dans le graphique factoriel ou dans le graphique factoriel partiel, renvoyé sous la forme 1 (true) si le graphique factoriel contient un chemin entre chaque paire de nœuds spécifiés et 0 (false) s'il ne contient pas de chemin entre chaque paire de nœuds spécifiés.

En savoir plus

réduire tout

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

Voir aussi

Objets