Modélisation du robot Azimut-3 IFT593 – Intelligent Design Daniel Castonguay Simon Chamberland

Preview:

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?

Recommended