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?
la source
Réponses:
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
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.
Si nous appliquons l'identité de la matrice de Woodbury
Quelle est l'équation de mesure? Ses
Dérouler la récursivité. Je procéderais comme suit:
la source