Modélisation du robot Azimut-3 IFT593 – Intelligent Design Daniel Castonguay Simon Chamberland
Projet conjoint IFT702 Implémenter et comparer différentes méthodes d’échantillonnage
Plan Problématique Apport de l’équipe Problèmes rencontrés Démonstration Conclusion Questions
Plan Problématique Apport de l’équipe Problèmes rencontrés Démonstration Conclusion Questions
Problématique Azimut-3 Laboratoire Laborius (faculté de Génie) Modélisation du robot Contraintes différentielles Planification de trajectoires dans un environnement statique
Problématique Modélisation du robot 4 roues enlignées selon un CIR (centre instantané de rotation) CIR exprimé en coordonnées polaires, distance r et angle θ
Problématique Modélisation du robot Un CIR « à l’infini » : mouvement en ligne droite Discontinuité dans le déplacement du CIR Car l’amplitude des roues est bornée But: minimiser le nombre de changements de zones
Problématique Planification de trajectoires Présentement, aucun planificateur de trajectoires La faculté de génie fait donc appel à la faculté des sciences!
Plan Problématique Apport de l’équipe Problèmes rencontrés Démonstration Conclusion Questions
Apport de l’équipe Utilisation de la librairie OOPSMP Auteur Erion Plaku, http://www.kavrakilab.org/OOPSMP/index.html Implémentation facile de nouveaux composants (espaces d’état, planificateurs…) Spécialisation des classes pour Azimut
Apport de l’équipe Représentation du robot Divers paramètres Largeur / longueur Rayon des roues Amplitude des roues Distance des roues par rapport au robot Vitesse maximale de rotation des roues
Apport de l’équipe Représentation du robot Hypothèses Pas de collision entre les roues peu importe leur dimension et leur position Accélération infinie (changements instantanés de vitesse) Orientation du robot est superflue On suppose la présence de senseurs à 360°
Apport de l’équipe Première version La position des roues n’est pas prise en compte CIR est exprimé en (x,y) є [-1, 1]² Plutôt qu’en coordonnées polaires CIR est donc délimité par un carré plutôt qu’un cercle
Apport de l’équipe Première version Environnement continu Espace d’états, composé d’une infinité d’états x x = {x, y, θ} Position et orientation du robot Vecteur de contrôle u = {s, CIR} appliqué pour un certain Δt Vitesse et centre de rotation du déplacement x1 = {6, 6, 163°} u = {5, CIR} x0 = {10, 2, 90°}
Apport de l’équipe Première version Question de la semaine: Étant donné un état initial x0 et un vecteur de contrôle u, comment calculer le nouvel état x au temps t ? u = {2.5, CIR} x1 = ? x0 = {10, 2, 90°}
Apport de l’équipe Première version Dérivées des variables selon le temps x'(t) = -s * sin(λ) y'(t) = s * cos(λ) θ'(t) = s/r où λ = quelque chose de compliqué (arctan(-CIRy/-CIRx) + θ + t * s/r)
Apport de l’équipe Première version Intégration symbolique des équations: x(t) = a + r * cos(λ) y(t) = b + r * sin(λ) θ(t) = θ0 + s*t / r où a et b sont les coordonnées de projection du CIR dans le plan Nous pouvons maintenant calculer le nouvel état x en fonction du temps!
Apport de l’équipe Première version
Apport de l’équipe Deuxième version La position des roues est prise en compte Les roues doivent être alignées par rapport au CIR voulu
Apport de l’équipe Deuxième version Possibilité de repositionner les roues en mouvement Baptisés « chemins avec déviation »
Apport de l’équipe Deuxième version Espace d’états, composé d’une infinité d’états x x = {x, y, θ, φ1 , φ2 , φ3 , φ4} Position, orientation du robot et orientation des roues Vecteur de contrôle u = {s, CIR, sCIR} appliqué pour un certain Δt Vitesse, centre de rotation et vitesse de changement du centre de rotation
Apport de l’équipe Deuxième version u = {s, CIR, sCIR} sCIR représente la vitesse de déplacement du CIR, qu’on suppose constante Et donc aussi le changement d’orientation des roues! Comment déterminer le changement d’orientation des roues pour passer d’un CIR initial à un CIR final? (Comment déterminer sCIR)
Apport de l’équipe Deuxième version Comment déterminer le changement d’orientation des roues? Vitesse de rotation des roues est bornée: sφmax Déterminer le point où une des roues tourne le plus rapidement Notre solution n’est pas présentée ici Assigner à la roue en question la vitesse de rotation maximale sφmax pour ce point Déterminer sCIR le déplacement du CIR à partir de l’équation trouvée
Apport de l’équipe Deuxième version Nous avons donc des déplacements où les roues tournent lorsque le robot est en mouvement!
Apport de l’équipe Deuxième version Même question que tout à l’heure: Étant donné un état initial x0 et un vecteur de contrôle u, comment calculer le nouvel état x au temps t ? u = {2.5, CIR, sCIR} x1 = ? x0 = {10, 2, 90°, 0°, 0°, 0°, 0°}
Apport de l’équipe Deuxième version Dérivées des variables selon le temps Le CIR bouge de façon linéaire x'(0) = -s * sin(λ) y'(0) = s * cos(λ) θ'(0) = s/r φi'(0) dépend de SCIR où λ = arctan(-CIRy/-CIRx) + θ + t * s/r
Apport de l’équipe Deuxième version Nous n’avons pas réussi à intégrer ces équations symboliquement Est-ce possible? Nous ne pouvons donc pas calculer le nouvel état x de façon exacte Il faut utiliser des méthodes numériques d’intégration Approximer la fonction selon n dérivées en un point
Apport de l’équipe Utilisation des chemins avec déviation
Apport de l’équipe Utilisation des chemins avec déviation Reste à faire…
Plan Problématique Apport de l’équipe Problèmes rencontrés Démonstration Conclusion Questions
Problèmes rencontrés Complexité mathématique Algorithmes souvent non déterministes Difficulté à reproduire les bogues Approximation des valeurs réelles en C++ Trouver le CIR à partir de la position des roues… Système d’équations linéaires arctan(1.0000000001) retourne indéfini…
Plan Problématique Apport de l’équipe Problèmes rencontrés Démonstration Conclusion Questions
Plan Problématique Apport de l’équipe Problèmes rencontrés Démonstration Conclusion Questions
Conclusion Projet aux vastes ramifications Résultats satisfaisants Intelligence artificielle Algèbre linéaire Statistiques Résultats satisfaisants Compte tenu du temps nécessaire d’apprentissage
Conclusion Améliorations possibles Modéliser l’accélération Smoothing avec déviation
Questions?