La relation entre les cartes de nuages ​​de points et les cartes graphiques

9

Je connais le mieux les cartes SLAM qui sont des nuages ​​de points, généralement sous la forme d'un vecteur comme . Je comprends également comment créer une carte comme celle-ci à l'aide d'un EKF.<x,y,θ,f1x,f1y,...,fnx,fny>

Aujourd'hui, je suis tombé sur un format de fichier .graph , qui, comme vous vous en doutez , se compose de sommets et d'arêtes au format:

VERTEX2 id x y orientation

EDGE2 observed_vertex_id observing_vertex_id forward sideward rotate inf_ff inf_fs inf_ss inf_rr inf_fr inf_sr

Je sais qu'il y a un lien entre matrices et graphes (une matrice d'adjacence par exemple). Mais je ne comprends pas comment ce format de graphique d'une carte est équivalent à une carte de nuages ​​de points que je connais.

Quelle est la relation? Les sommets sont-ils à la fois des poses et des repères? Sont-ils dans un référentiel global? Comment cela est-il créé à partir, par exemple, des informations de vitesse et d'un capteur de distance / palier? Y a-t-il une transformation entre une carte graphique et un nuage de points?

munk
la source

Réponses:

4

Comme il est dit dans la description du format de fichier, c'est pour les approches SLAM basées sur des graphiques. Ces travaux visent à minimiser l'erreur d'un réseau de contraintes de pose. Vous pouvez y penser de cette façon: il existe un certain nombre de cadres de référence (vos sommets) et vous avez ensuite des connaissances sur la transformation entre ces cadres. Ces transformations sont associées à une incertitude. Les cadres d'optimisation de graphes posés tels que TORO , HogMan , G2O et ainsi de suite vous donneront alors la probabilité maximale de vos positions de sommet, compte tenu des contraintes.

En termes pratiques de robot, cela signifie généralement:

  • Chaque robot pose au temps a son propre référentiel et donc son sommetpkk
  • Selon votre approche, vous pouvez également ajouter des points de repère en tant que sommets. Vous n'êtes pas obligé cependant.
  • Chaque fois que vous obtenez de nouvelles informations sur la relation entre deux poses, vous les ajoutez au graphique de contraintes. Par exemple, votre odométrie vous donnera une transformation entre et .pkpk+1
  • Si votre approche fonctionne en fonction de points de repère, vous ajoutez des transformations à vos points de repère. Si vous ne connaissez que la position par rapport à votre repère, vous définissez une incertitude élevée sur les informations de rotation de votre transformation.
  • Si votre approche ne connaît pas les points de repère, par exemple si vous avez de gros nuages ​​de points que vous correspondez avec ICP, vous pouvez ajouter les résultats ICP à votre graphique de contraintes.

Les contraintes de pose sont généralement stockées sous forme de matrices clairsemées de taille où est le nombre de sommets (à nouveau des poses de robots et des points de repère) dans votre graphique.n×nn

Le format de fichier lui-même fournit des suppositions initiales pour la position des sommets avec VERTEX2(pour les modèles 2D) et VERTEX3(pour les modèles 3D). Vous ne pouvez pas mélanger les deux. Des contraintes sont ajoutées afin que vous spécifiez la transformation entre les cadres de référence (sommets) donnée par from_idet to_id. La transformée est donnée par EDGE2et EDGE3comme translation et rotation dans les angles d'Euler, ainsi que par la matrice d'information de l'incertitude. Dans ce cas, la matrice d'informations est l'inverse de la matrice de covariance pour le vecteur de transformation .[xyzrollpitchyaw]

Selon votre structure, généralement l'un des sommets est ancré dans un cadre de référence global.

Les optimiseurs de graphe de pose basés sur des graphes sont considérés comme des backends SLAM. La façon dont vous générez les contraintes, par exemple à partir de vos données de plage, est un problème frontal. Il y a une belle vue d'ensemble dans ces notes de cours .

Jakob
la source
1

Il y a un message sur le forum avec des informations plus claires sur le format. Il semble que les valeurs des nœuds de graphe soient des estimations initiales des auto-poses, et les bords codent les contraintes de pose telles que représentées par le filtre d'information , le double du filtre de Kalman.

D'après ce que je peux dire, ce format de carte comprend uniquement des informations d'auto-pose et non des points de repère, il n'y aurait donc pas de conversion directe à partir d'une carte de nuages ​​de points.

surtur
la source
1
Veuillez clarifier la différence entre les informations de pose et les points de repère. En général, les repères sont estimés par leur pose.
Josh Vander Hook
1
Au cours d'un processus simultané de localisation et de cartographie, on conservera généralement des estimations de sa propre position et de son orientation au fur et à mesure que l'on se déplace dans l'environnement ainsi que ceux de plusieurs points identifiables de l'environnement qui sont généralement supposés stationnaires, souvent appelés points de repère. Des estimations de pose précises pour les points de repère aident à réduire l'incertitude dans sa propre pose, et vice versa. Ce à quoi je faisais référence en tant qu'informations sur la pose était des contraintes sur l'auto-pose, bien qu'elles puissent en théorie être dérivées de calculs impliquant des points de repère.
surtur