Planification de trajectoires Simon Chamberland Juillet 2010
Plan Introduction Problématique Solutions possibles Contraintes différentielles Conclusion
Plan Introduction Problématique Solutions possibles Contraintes différentielles Conclusion
Introduction Planification – environnements discrets Cube Rubik Échecs Graphe de navigation
Introduction Planification – environnements discrets Nombre fini d’actions possibles Exploration d’un graphe d’états État initial But à atteindre
Introduction Planification – environnements continus RomanTutor – bras robot canadien Robots humanoïdes http://www.youtube.com/watch?v=IZp4QlQ6Wbo
Manoeuvres automatisées de stationnement Introduction Planification – environnements continus Véhicules auto-guidés Manoeuvres automatisées de stationnement
Introduction Planification – environnements continus Jeux Films
Introduction Planification – environnements continus Chaînes de montage Développement de médicaments
Introduction Planification – environnements continus Nombre infini d’actions possibles Il serait difficile de toutes les essayer! Comment alors trouver une suite d’actions menant au but?
Plan Introduction Problématique Solutions possibles Contraintes différentielles Conclusion
Problématique Planification de trajectoires Facile pour un humain, complexe pour un ordinateur! Calculer une trajectoire géométrique reliant un état initial à un état final En évitant les obstacles (statiques)
Problématique Planification de trajectoires Robot Degrés de liberté Objets articulés reliés entre eux par des joints Degrés de liberté Nombre de joints + Motions possibles dans l’espace (translations/rotations…)
Problématique Planification de trajectoires Cinématique inverse Trouver les angles des joints, étant donné une position à atteindre Ne tient pas compte des obstacles
Problématique Planification de trajectoires Espace d’états Dimension = nb degrés de liberté Translations 2D -> R² (x, y) 3D -> R³ (x, y, z)
Problématique Planification de trajectoires Espace d’états Dimension = nb degrés de liberté Translations 2D -> R² (x, y) 3D -> R³ (x, y, z) Translations + rotations 2D -> SE(2) (x, y, θ) 3D -> SE(3) (x, y, z, α, β, γ) Dimensions supplémentaires si corps articulé Translations/rotations des joints
Problématique Planification de trajectoires Transitions entres les états Géodésique : généralisation d’une « ligne droite » (2,0,90o) (0,0,0o)
Problématique Planification de trajectoires Transitions entres les états Géodésique : généralisation d’une « ligne droite » (2,0,90o) (0,0,0o) (2, 0, 90o)
Problématique Planification de trajectoires Transitions entres les états Géodésique : généralisation d’une « ligne droite » Transitions plus complexes si contraintes différentielles Traitées plus loin (2,0,90o) (0,0,0o) (2, 0, 90o)
Problématique Planification de trajectoires Entrée: Géométrie du robot et des obstacles Cinétique du robot (degrés de liberté) Configurations initiale et finale Planificateur de trajectoires Sortie: Une séquence continue de configurations rapprochées, sans collision, joignant la configuration initiale à la configuration finale
Problématique Planification de trajectoires
Plan Introduction Problématique Solutions possibles Contraintes différentielles Conclusion
Solutions possibles Cadre général de résolution du problème Problème continu (espace de configuration + contraintes) Discrétisation (décomposition, échantillonnage) Recherche heuristique dans un graphe (A* ou similaire)
Solutions possibles Approches exactes Approches approximatives Complètes Typiquement plus lentes Approches approximatives Échantillonnage Complétude probabiliste Plus rapides
Plan Introduction Problématique Solutions possibles Approches exactes Approches approximatives Contraintes différentielles Conclusion
Approches exactes Décomposition en cellules trapézoïdales Discrétisation Conserve la connectivité de l’espace d’états
Approches exactes Décomposition en cellules trapézoïdales Construction d’un roadmap
Approches exactes Décomposition en cellules trapézoïdales Construction d’un roadmap Condition importante: connexion triviale de n’importe quel état valide au roadmap
Approches exactes Décomposition en cellules trapézoïdales Construction d’un roadmap Par extension, connexion possible de n’importe quelle paire (état initial, but) au roadmap…
Approches exactes Décomposition en cellules trapézoïdales Construction d’un roadmap Donc, garantie de trouver une solution! (si elle existe)
Approches exactes Décomposition en cellules trapézoïdales Rn Autres décompositions Triangulation (R²) Décomposition cylindrique algébrique (méthode générale)
Approches exactes Décomposition en cellules Avantages Trouve une solution s’il en existe une! Inconvénients Lent si nombre élevé de dimensions Implémentation difficile Donc peu pratique pour une application réelle
Approches exactes Maximum-clearance roadmaps Diagrammes de Voronoï généralisés Permet de trouver un chemin maximisant la distance avec les obstacles
Approches exactes Shortest-paths roadmaps Plus court chemin entre deux configurations On frôle les obstacles!
Plan Introduction Problématique Solutions possibles Approches exactes Approches approximatives Contraintes différentielles Conclusion
Approches approximatives Discrétisation par échantillonnage Génération et connexion d’états jusqu’à ce qu’une solution soit trouvée! Comment générer les états? De façon déterministe Aléatoirement
Approches approximatives Échantillonnage déterministe Grille/treillis/séquence de Halton, Hammersley… Avantage: on connaît nos voisins! Inconvénient: cas problématiques, par construction
Approches approximatives Échantillonnage aléatoire Probabilistic roadmap (PRM) Avantage: pas de pire cas Inconvénient: il faut trouver nos voisins!
Approches approximatives Échantillonnage aléatoire Visibility roadmap On minimise le nombre d’états En laissant seulement des guards et des connectors
Approches approximatives Prétraitement Création du roadmap à priori Si on prévoit réaliser plusieurs requêtes sur le même environnement Exemples: jeux…
Approches approximatives Rapidly-exploring Dense Trees (RDTs) Échantillonnage d’un nouvel état, puis extension du plus proche voisin jusqu’à ce nouvel état Ou jusqu’à ce que le chemin rencontre un obstacle
Approches approximatives Rapidly-exploring Dense Trees (RDTs) Échantillonnage d’un nouvel état, puis extension du plus proche voisin jusqu’à ce nouvel état Ou jusqu’à ce que le chemin rencontre un obstacle Biais de Voronoï Les points les plus isolés ont plus de chance d’être étendus Proportionnellement à la taille de leur cellule de Voronoï
Approches approximatives Rapidly-exploring Dense Trees (RDTs) Cas particulier: Rapidly-exploring Random Trees (RRTs) si on utilise une séquence aléatoire
Plan Introduction Problématique Solutions possibles Contraintes différentielles Conclusion
Contraintes différentielles Dans les exemples précédents, on assumait: Qu’il était toujours possible de relier trivialement deux états arbitraires (géodésique) Ce n’est pas toujours le cas (2,0,90o) (0,0,0o) (2, 0, 90o)
Contraintes différentielles Cas typique: un véhicule (0,0,0o) (1,3,-90o) ?
Contraintes différentielles Cas typique: un véhicule 3 degrés de liberté: SE(2) q = (x, y, θ) 2 dimensions « contrôlables » u = (s, φ) -> vitesse, volant On ne peut pas changer de direction instantanément!
Contraintes différentielles Fonction de transition q’ = f(q, u) x’ = s * cos(θ) y’ = s * sin(θ) θ’ = (s/L) * tan(φ) Exprime les vélocités liées à chaque variable
Contraintes différentielles Comment obtenir le nouvel état? On intègre les vélocités x0 = (0,0,0o) u = (10m/s,30o) Δt = 5 sec x1 = ?
Contraintes différentielles Robot Azimut3 Faculté de Génie, laboratoire IntRoLab 4 roues enlignées selon le CIR (centre instantané de rotation)
Contraintes différentielles Robot Azimut3 Impossible d’effectuer une rotation complète des roues Modification du CIR peut requérir l’immobilisation du robot
Contraintes différentielles Robot Azimut3 Modification du CIR peut requérir l’immobilisation du robot
Contraintes différentielles Planification de trajectoires On ne peut pas utiliser les approches vues jusqu’à présent… Car il n’est pas toujours possible de connecter 2 états arbitraires Deux frameworks possibles Planifier puis transformer Utiliser les RRTs
Contraintes différentielles Planifier puis transformer Calcul d’une trajectoire sans prendre en compte les contraintes différentielles Lissage de la trajectoire qui respecte les contraintes
Contraintes différentielles Utiliser les RRTs Étendre l’arbre de façon aléatoire Avec un certain biais vers le but (l’état final) Échantillonnage de l’espace de contrôle
Contraintes différentielles Utiliser les RRTs
Plan Introduction Problématique Solutions possibles Contraintes différentielles Conclusion
Conclusion Planification de trajectoires Problème difficile Surtout avec contraintes différentielles Solutions existent Mais la plupart sont applicables à des problèmes particuliers Vers l’infini, et plus loin encore… Obstacles dynamiques Plusieurs robots Contraintes temporelles
Références S. M. LaValle, Planning Algorithms. Cambridge University Press, 2006. A. Yershova, L. Jaillet, T. Simeon, and S. LaValle, Dynamic-domain RRTs: Efficient exploration by controlling the sampling domain, in Proc. of the IEEE International Conference on Robotics and Automation, 2005. Chamberland, S., Beaudry, É., Clavien, L., Kabanza, F., Michaud, F. and Lauria, M. Motion Planning for an Omnidirectional Robot With Steering Constraints. Proc. of IEEE/RSJ Int'l Conference on Intelligent Robots and Systems (IROS), 2010.
Questions?