Question

J'ai un champ rempli d'obstacles, je sais où ils se trouvent, et je sais que la position du robot. L'utilisation d'un algorithme de chemin trouver, je calcule un chemin pour le robot à suivre.

Maintenant, mon problème est, je guidais le robot de la grille à la grille, mais cela crée un mouvement pas si lisse. Je commence à A, tourner le nez au point B, se déplacer tout droit jusqu'à atteindre le point B, rincer et répéter jusqu'à ce que le dernier point soit atteint.

Alors ma question est: Quel genre de techniques sont utilisées pour naviguer dans un tel environnement pour que je sois un mouvement lisse

Le robot comporte deux roues et deux moteurs. Je changer la direction du moteur en faisant tourner les moteurs dans le sens inverse.

EDIT:. Je peux varier la vitesse des moteurs fondamentalement le robot est un arduino ainsi Ardumoto, je peux fournir des valeurs comprises entre 0 à 255 pour les moteurs à deux sens

Était-ce utile?

La solution

Vous avez besoin de rétroaction pour Linéarisation un robot conduit différemment. Ce qu'il explique documents à la section 2.2. J'ai inclus les parties pertinentes ci-dessous:

  

Le robot simulé nécessaire pour la   projet est un di ff robot lecteur différentielle   avec une vitesse limitée. Puisque   les robots d'entraînement di ff différentielles sont   non holonome, les étudiants sont encouragés à utiliser Linéarisation de rétroaction   convertir la sortie de commande cinématique   de leurs algorithmes pour contrôler la   di ff robots d'entraînement différentielles. le   transformation suivante:

     

Transformation

     

où v, ?, x , y sont linéaires,   les vitesses angulaires, et cinématiques. L   est un o ff longueur de consigne proportionnelle à la   dimension de base roue du robot.

Autres conseils

Un algorithme de contrôle j'ai eu assez de bons résultats avec poursuite pur . Fondamentalement, les tentatives de robot de se déplacer vers un point le long du trajet d'avance d'une distance fixe du robot. Alors que le robot se déplace le long du chemin, le point Lookahead avance également. Les compense algorithme pour des contraintes non holonomes par la modélisation des chemins possibles comme des arcs.

Grandes distances de Lookahead vont créer des mouvements plus fluides. Cependant, les grandes distances de Lookahead causeront le robot coins coupés, qui peuvent entrer en collision avec des obstacles. Vous pouvez résoudre ce problème en mettant en œuvre des idées à partir d'un algorithme de contrôle réactif appelé Histogramme champ de vecteurs (VFH). VFH pousse essentiellement l'écart du robot des murs à proximité. Bien que cela utilise normalement une gamme capteur de détection d'une sorte, vous pouvez extrapoler les positions relatives des obstacles puisque vous connaissez la pose du robot et les emplacements d'obstacles.

Mes premières réflexions sur ce (je suis au travail ne peut donc pas passer trop de temps):

Cela dépend serré, vous voulez ou besoin de vos coins être (qui dépendra de combien de distance votre viseur chemin vous donne des obstacles)

Compte tenu de la largeur du robot permet de calculer le rayon de braquage étant donné les vitesses de chaque roue. En supposant que vous voulez aller aussi vite que possible et que les dérapages n'est pas un problème, vous aurez toujours garder la roue extérieure à 255 et réduire la roue à l'intérieur vers le bas à la vitesse qui vous donne le rayon de braquage nécessaire.

Compte tenu de l'angle pour un tour particulier sur votre chemin et le rayon de braquage que vous utiliserez, vous pouvez travailler sur la distance de ce nœud où vous allez ralentir la roue à l'intérieur.

Une approche d'optimisation est une façon très générale pour gérer cela.

Utilisez votre chemin calculé comme entrée à un algorithme générique d'optimisation non-linéaire (votre choix!) Avec une fonction de coût composé de la proximité de la trajectoire de réponse à la trajectoire d'entrée ainsi que le respect des contraintes non holonomes, et tout d'autres contraintes que vous voulez appliquer (par exemple, rester loin des obstacles). L'algorithme d'optimisation peut également être initialisés avec une trajectoire construite à partir de la trajectoire initiale.

Cours de robotique de Marc Toussaint notes sont une bonne source pour ce type d'approche. Voir en particulier conférence 7: http://userpage.fu-berlin.de/mtoussai/teaching/10- robotique /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top