J'implémente la localisation Monte-Carlo pour mon robot qui reçoit une carte de l'environnement et son emplacement de départ et son orientation. L'approche minière est la suivante:
- Créez uniformément 500 particules autour de la position donnée
- Puis à chaque étape:
- mise à jour du mouvement de toutes les particules avec odométrie (mon approche actuelle est newX = oldX + odometryX (1 + standardGaussianRandom), etc.)
- attribuer un poids à chaque particule à l'aide des données du sonar (la formule est pour chaque probabilité de capteur * = gaussienPDF (realReading) où gaussien a la moyenne prededReading)
- retourner la particule avec la plus grande probabilité comme emplacement à cette étape
- puis 9/10 de nouvelles particules sont rééchantillonnées à partir des anciennes en fonction des poids et 1/10 est échantillonnée uniformément autour de la position prévue
Maintenant, j'ai écrit un simulateur pour l'environnement du robot et voici comment se comporte cette localisation: http://www.youtube.com/watch?v=q7q3cqktwZI
J'ai très peur que le robot ne se perde plus longtemps. Si vous ajoutez des particules à une zone plus large, le robot se perd encore plus facilement.
Je m'attends à une meilleure performance. Aucun conseil?