Quelle est la meilleure façon de calculer la croyance probabiliste d'un robot équipé d'un capteur de vision?

12

J'essaie de mettre en œuvre la planification de «l'espace des croyances» pour un robot qui a une caméra comme capteur principal. Semblable à SLAM, le robot dispose d'une carte de points 3D, et il localise en effectuant une correspondance 2D-3D avec l'environnement à chaque étape. Aux fins de cette question, je suppose que la carte ne change pas.

Dans le cadre de la planification de l'espace de croyance, je veux planifier des chemins pour le robot qui le prennent du début à l'objectif, mais de manière à ce que sa précision de localisation soit toujours maximisée. Par conséquent, je devrais échantillonner les états possibles du robot, sans vraiment y aller, et les observations que le robot ferait s'il était à ces états, qui ensemble (corrigez-moi si je me trompe) forment la `` croyance '' du robot , codant ensuite son incertitude de localisation à ces points. Et puis mon planificateur essaierait de connecter les nœuds qui me donnent le moins d'incertitude (covariance).

Comme mon incertitude de localisation pour ce robot basé sur une caméra dépend entièrement de choses comme le nombre de points caractéristiques visibles à partir d'un emplacement donné, l'angle de cap du robot, etc.: j'ai besoin d'une estimation de la gravité de ma localisation sur un certain échantillon serait, pour déterminer si je dois le jeter. Pour y arriver, comment définir le modèle de mesure pour cela, serait-ce le modèle de mesure de la caméra ou serait-ce quelque chose lié à la position du robot? Comment deviner mes mesures à l'avance et comment calculer la covariance du robot à travers ces mesures devinées?

EDIT: La principale référence pour moi est l'idée d' explorer rapidement les arbres de croyances aléatoires , qui est une extension de la méthode Belief Road Maps . Un autre article pertinent utilise les RRBT pour une planification contrainte. Dans cet article, les états sont échantillonnés de manière similaire aux RRT conventionnels, représentés sous forme de sommets sous forme de graphique, mais lorsque les sommets doivent être connectés, l'algorithme propage la croyance du sommet actuel au nouveau, (fonction PROPAGATE dans la section V de 1 ) , et voici où je suis coincé: je ne comprends pas bien comment je peux propager la croyance le long d'un bord sans réellement la traverser et obtenir de nouvelles mesures, donc de nouvelles covariances de la localisation. Le papier RRBT dit "les équations de prédiction de covariance et d'anticipation des coûts sont implémentées dans la fonction PROPAGATE": mais si seule la prédiction est utilisée, comment sait-elle, par exemple, s'il y a suffisamment de fonctionnalités à la position future qui pourraient améliorer / dégrader la précision de localisation?

Haute tension
la source
Avez-vous lu de la littérature à ce sujet?
Jakob
Oui, j'ai ajouté plus de détails dans la question sur les articles pertinents que j'ai rencontrés.
HighVoltage
Ooooh je pense que je comprends. Permettez-moi de paraphraser pour voir si je le comprends et pour référence pour les autres. Vous souhaitez échantillonner une région entière de manière à pouvoir déterminer les vues potentielles sur un grand nombre d'emplacements, puis choisir une série d'emplacements offrant à la fois un itinéraire du début à la fin et des vues permettant aux vues de «bons» repères de utiliser avec la localisation de style SLAM. Votre question est de savoir comment quantifier la «bonne» ou la «mauvaise» vue et comment cette «bonne vue» se rapporte alors à la covariance. Est-ce un résumé juste?
Chuck
1
En un mot, oui! Cela a déjà été réalisé auparavant dans le document RRBT, mais j'ai du mal à comprendre les mathématiques derrière.
HighVoltage
1
Cela ressemble à un concept cool. Je suis sur mobile aujourd'hui, mais je lirai les articles demain et j'essaierai de jouer. Je vais deviner que l'algorithme entier est basé sur des suppositions (croyances) de ce que vous pensez ressentir à une étape particulière , ce qui signifie que les mesures réelles n'appartiennent pas à l'algorithme et c'est pourquoi vous ne devriez pas avoir besoin de traverser réellement un espace. Il semble que l'algorithme entier soit construit autour d'une connaissance a priori de la carte et en dépend pour être précis pour des résultats de qualité.
Chuck

Réponses:

2

Utilisez la localisation des roulements uniquement pour modéliser l'informatique de la caméra et simuler des mesures sans bruit (par exemple, aucune innovation).

Pour diverses raisons, il s'agit en fait d'une manière théoriquement valable d'estimer l'informativité d'un chemin.

Il existe de nombreuses métriques d'information sans mesure, comme la Fisher Information Matrix . Tout ce dont vous avez besoin, ce sont les positions du robot et les positions des points de repère sur la carte pour déterminer la quantité d'informations sur la position du robot qui serait obtenue en mesurant les emplacements des points de repère. (Ou vice-versa, l'innovation des mesures est appliquée à la fois à la cible et au robot (c'est SLAM non?), Donc la même métrique fonctionne pour les deux).

Je commencerais par un capteur de relèvement, car c'est un bon modèle bien accepté de capteur de vision. Déterminez le «bruit» sur les mesures de relèvement en supposant quelques pixels d'erreur dans la localisation des entités dans le monde. Soit l'état du système la position du robot plus son incertitude, puis échantillonnez les chemins (comme vous le suggérez). À partir de chaque position dans le chemin échantillonné, je recalculerais l' incertitude prévue à l'aide du FIM. Ce n'est pas difficile à faire, supposez simplement qu'il n'y a pas d'erreur dans les mesures (c'est-à-dire qu'il n'y aura pas d '"innovation" sur la croyance du robot, mais vous ressentirez toujours une baisse de l'incertitude représentée par une covariance rétrécie dans l'estimation de la position du robot. Je le ferais pas mettre à jour les emplacements ou les incertitudes des points de repère, juste pour simplifier le problème.

C'est une approche assez bien comprise de ce que je me souviens de ma dernière revue de cette littérature, mais ne me croyez pas sur parole (revoyez vous-même!). Au moins, cela devrait former une approche de base facile à simuler. Utilisons le pouvoir de la littérature. Vous pourriez parcourir cette thèse pour la configuration et les équations.

Résumer

  1. xΣ
  2. Σi
  3. Soit le «coût» de la trajectoire une combinaison convexe de progrès vers l'objectif et l'inverse de la covariance (par exemple, la matrice d'information )

Quelques subtilités

Utilisez le plus petit vecteur d'état qui ait du sens. Si vous pouvez supposer que le robot peut pointer la caméra indépendamment du mouvement ou a plusieurs caméras, ignorez l'orientation et suivez simplement la position. Je vais procéder dans des positions 2D uniquement.

Vous devrez dériver le système linéarisé, mais pouvez l'emprunter à la thèse ci-dessus. assurez-vous de ne pas vous soucier de simuler des mesures (par exemple, si vous ne faites des mises à jour EKF qu'avec des "mesures simulées", alors supposez que les mesures sont vraies et sans bruit.

Pi|i1=FiTPi1|i1Fi+Q
P=PPHT(HPHT+R)1HP

Si nous appliquons l'identité de la matrice de Woodbury

P1=P1+HTR1H

n

I=i=1nHiTR1Hi

Ri=1nHiTR1Hi

HHnx2nn2Rn×nσIn×nσ

Quelle est l'équation de mesure? Ses

tan1ytyrxtxr

tr


Dérouler la récursivité. Je procéderais comme suit:

  1. Écrivez un algorithme de recherche de chemin qui trouve son chemin sans tenir compte de l'incertitude.
  2. H
  3. trace(HTRH)
  4. Notez que le résultat correspond à la FIM de la trajectoire (exercice laissé au lecteur), et que vous avez correctement et d'une manière théoriquement saine déterminé la trajectoire la plus informative.
Josh Vander Hook
la source
Merci pour l'excellente réponse! En fait, j'ai emprunté une voie très similaire, en utilisant des métriques basées sur la caméra comme mes estimations de R combinées à un RRT (je pensais très récemment que je devrais répondre à ma propre question, mais vous me battez!). Soit dit en passant, je pense que votre équation de mise à jour simplifiée aurait dû contenir inv (R): ce qui équivaut à maximiser la trace de la somme (inv (R)), ou à minimiser la somme (R) tout au long du chemin (en ignorant H)
HighVoltage
Belle prise. Je vais mettre à jour.
Josh Vander Hook du