Upload
esmee-janin
View
103
Download
0
Embed Size (px)
Citation preview
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 robotHypothè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 versionLa position des roues n’est pas prise en
compteCIR 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
1
1
θr
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
x0 = {10, 2, 90°}
u = {5, CIR}
x1 = {6, 6, 163°}
Apport de l’équipe
Première versionQuestion 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 ?
x0 = {10, 2, 90°}
u = {2.5, CIR}
x1 = ?
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)
CIR
λ
t0
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éesde projection du CIR dans le plan
Nous pouvons maintenant calculerle nouvel état x en fonction du temps!
CIR
λ
t0
t1t2
t3
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 versionNous avons donc des déplacements où les
roues tournent lorsque le robot est en mouvement!
Apport de l’équipe
Deuxième versionMê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 ?
x0 = {10, 2, 90°, 0°, 0°, 0°, 0°}
u = {2.5, CIR, sCIR}
x1 = ?
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
CIR
λ
t0
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éviationReste à 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éairesarctan(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 Intelligence artificielleAlgèbre linéaireStatistiques
Résultats satisfaisantsCompte tenu du temps nécessaire
d’apprentissage
Conclusion
Améliorations possiblesModéliser l’accélérationSmoothing avec déviation
Questions?