NAVIGATION D’UN ROBOT MOBILE
Planification de trajectoire
Souvent, la planification en environnement connu revient à un problème d’optimisation. Prusky (1996) décrit l’algorithme de Dijkstra qui consiste à diviser la carte de l’environnement en grille et à fixer des points dans les zones accessibles. Un graphe constitué de nœuds et de liens est construit. Le passage entre deux nœuds implique un certain coût (généralement la distance). L’algorithme effectue une recherche exhaustive de façon à minimiser le coût total. La trajectoire finale que le robot doit suivre est un ensemble de segments dont la longueur totale est minimale. Dans la même optique, d’autres algorithmes sont décrits basés sur le même principe d’optimisation. Prusky (1996) introduit l’algorithme A* qui utilise une puissance de calcul moins importante que l’algorithme de Dijkstra. Stentz (1994) introduit l’algorithme D* qui est une combinaison des algorithmes de Dijkstra et A*. Cet algorithme a l’avantage d’être plus robuste aux incertitudes liées à la position des obstacles.
Architecture matérielle et logicielle du robot
Le robot est mûpar quatre moteurs couplés mécaniquement deux à deux. De chaque côté, deux moteurs sont couplés et font tourner les deux roues à la même vitesse à l’aide d’une courroie. Lors du fonctionnement du robot dans un environnement plat, un seul des deux moteurs tourne de chaque côté. Lorsque le robot gravit une pente importante ou doit fournir un couple important, le second moteur de chaque côté est activé. Ceci permet d’optimiser l’utilisation de l’énergie. La gestion de l’activation/désactivation des moteurs d’appoints est faite par le microcontrôleur. Le robot tire sa puissance d’un groupe de trois batteries de 12V connectées en parallèle. Il est possible d’opérer le robot avec une, deux ou trois de ces batteries installées et les changements peuvent se faire lorsque le robot est actif.
Cet outil consiste en une librairie de classes C++ dont les fonctions servent à envoyer et à recevoir des commandes au microcontrôleur de bord pour commander les actions du robot et recevoir les différentes réponses de ce dernier. Une classe gère une fonctionnalité spécifique du système. Il existe une multitude de classes développées. Les principales sont :
ArRobot : Classe principale qui gère le robot (Avance, orientation, lecture de position, etc.), incluant celles en rapport avec les capteurs; ArRangeDevice : Gère la communication avec les sonars; ArSimpleConnector : Gère la communication série avec le microcontrôleur du robot; ArCommands : Communique directement avec le microcontrôleur en envoyant et recevant des paquets spécifiques d’information; ArAction : Gère les actions complexes du robot. Ces actions sont programmables par l’utilisateur et sont lancées (Fonction ArAction::fire). Les actions permettent de donner des tâches composées au robot, plutôt que de le commander dire.
Utilisation de la force de contournement
En combinant la nouvelle forme du potentiel de répulsion et l’utilisation de la force de contournement, on réussit à améliorer grandement la forme de la trajectoire. En effet, lorsque le robot se dirige vers un obstacle, une force tangentielle à ce dernier est appliquée au robot, ce qui adoucit la réponse du robot. Il y a moins d’oscillations inutiles. De plus, un effet intéressant est mis en évidence dans la Figure 6-8 : lorsque le robot est pris entre deux obstacles, les forces tangentielles venant de chaque obstacle s’ajoutent, ce qui donne une poussée supplémentaire au robot pour surmonter la barrière virtuelle. Dans ce cas le robot réussit même à retrouver le bon chemin pour atteindre le but, chose qui n’a pas été observée dans les cas précédents. Évidemment, il peut toujours exister des cas où cette poussée n’est pas suffisante pour sortir du minimum local, mais cet avantage n’est pas négligeable.
|
Table des matières
INTRODUCTION
CHAPITRE 1 REVUE DE LITTÉRATURE
1.1. Introduction
1.2. Génération de trajectoire en environnement connu
1.2.1. Planification de trajectoire
1.2.2. Suivi de trajectoire
1.3. Génération de trajectoire en environnement inconnu
1.4. Utilisation des champs de potentiels artificiels (APF)
1.5. Synthèse
CHAPITRE 2 MODÉLISATION DU ROBOT
2.1. Introduction
2.2. Différents modèles de robots mobiles – Maalouf (2005)
2.2.1. Modèle d’Ackermann
2.2.2. Modèle différentiel à chenilles ou à roues
2.2.3. Autres modèles
2.3. Modèle cinématique du robot utilisé
2.4. Capteurs et mesures
2.4.1. Capteur proprioceptifs
2.4.2. Capteurs extéroceptifs
2.5. Architecture matérielle et logicielle du robot
2.6. Conclusion
CHAPITRE 3 NAVIGATION D’UN ROBOT MOBILE
3.1. Méthode comportementale
3.2. Méthode des champs de potentiels artificiels
3.2.1. Caractéristiques et limitations
3.3. Conclusion
CHAPITRE 4 CHAMPS DE POTENTIELS ARTIFICIELS MODIFIÉS
4.1. Introduction
4.2. Principe
4.2.1. Distance entre le robot et les obstacles
4.2.2. Solution au problème GNRON
4.2.3. Expression de la force de répulsion
4.2.4. Limitation du potentiel de répulsion
4.2.5. Minimisation de l’équilibre instable autour des obstacles
4.3. Point de vue comportemental
4.4. Conclusion .
CHAPITRE 5 CHOIX OBJECTIF DES PARAMÈTRES
5.1. Introduction
5.2. Calcul de et de
5.3. Calcul de et ‘
5.4. Calcul de m
CHAPITRE 6 RÉSULTATS
6.1. Introduction
6.2. Critères de comparaison
6.2.1. Longueur totale du parcours
6.2.2. Durée totale du parcours
6.2.3. Coefficient d’oscillations
6.3. Simulations
6.3.1. Forces de répulsions et de contournement
6.3.2. Choix objectif des paramètres
6.4. Résultats pratiques
6.4.1. Conditions préliminaires
6.4.2. Efficacité de la force de contournement
6.4.3. Choix objectif des paramètres
6.5. Conclusion
CONCLUSION
RECOMMANDATIONS
BIBLIOGRAPHIE
Télécharger le rapport complet