• Aucun résultat trouvé

Fusion des composantes connexes du graphe par des chemins de transfert-ressaisiechemins de transfert-ressaisie

Planification pour la Manipulation Dextre

3.2 La méthode de planification pour la manipu- manipu-lation dextremanipu-lation dextre

3.2.3 Fusion des composantes connexes du graphe par des chemins de transfert-ressaisiechemins de transfert-ressaisie

La fusion des composantes connexes du graphe de manipulation dextre, par des chemins de transfert-ressaisie est, avec l’exploration de GSn, l’autre tâche importante de la méthode de planification proposée. Cette partie décrit la technique employée.

Il faut choisir deux noeuds de deux composantes connexes du graphe. C’est en reliant ces deux noeuds, via un chemin de transfert-ressaisie, que les composantes se-ront fusionnées. Pour commencer, les composantes connexes à fusionner sont choisies au hasard. On choisit ensuite un noeud dans chacune de ces composantes, de sorte à minimiser la distance entre les deux configurations de l’objet associées aux noeuds. Ainsi, si les configurations associées aux noeuds sont q1 = (p1, gk1) et q2 = (p2, gk2), on va choisir les noeuds dans leur composante respective de façon que la distance entre p1 et p2 soit minimale. On fait ce choix car deux configurations auront plus de chance de pouvoir être connectées si l’objet a des poses proches dans les deux confi-gurations, étant donné que les chemins de transfert ne permettent généralement que des petits mouvements de l’objet. On choisit de ne pas faire intervenir la prise car il

70 Dextre

n’y a a priori pas de fonction distance, applicable aux paramètres de prise, qui puisse être liée à la facilité de connexion de deux configurations par un chemin de transfert-ressaisie. La distance qu’on cherche à minimiser en choisissant les noeuds à relier est donc la distance entre deux poses de l’objet. Une pose de l’objet étant le produit car-tésien d’une position et d’une orientation, cette distance est la somme pondérée de la distance entre deux points de R3 et de la distance entre deux points de SO(3). Nous avons choisi, pour la distance entre deux points de R3, la distance euclidienne (L2) et, pour la distance entre deux points de SO(3), représentés à l’aide de deux quaternions h1 = (a1, a2, a3, a4) et h2 = (b1, b2, b3, b4), la fonction distance suivante :

dSO(3)(h1, h2) = min(ρ(h1, h2), ρ(h1, −h2)) (3.9) où

ρ(h1, h2) = cos−1(a1b1+ a2b2+ a3b3+ a4b4) (3.10) La distance entre deux configurations de l’objet est donc :

d(p1, p2) = a L2(position1, position2) + b dSO(3)(orientation1, orientation2) (3.11) Les poids a et b sont à choisir selon que l’on souhaite privilégier l’écart entre position ou orientation dans le calcul de la distance. Nous avons choisi a = 1 et b = 0.8. Maintenant que nous avons les deux configurations q1 et q2, il faut les relier via une séquence minimale de chemins de transfert et de ressaisie. Il existe deux possibilités, nécessitant toutes deux l’ajout d’un noeud/configuration intermédiaire au graphe de manipulation :

– q1 ressaisie−→ (p1, gk2)transf ert−→ q2 – q1 transf ert−→ (p2, gk1)ressaisie−→ q2

Comme les mouvements permis par un chemin de transfert sont très limités et qu’un chemin de transfert n’est qu’un cas particulier de chemin dans GSn, il est préférable d’utiliser la méthode de connexion décrite par l’algorithme4, qui cherche à utiliser le plus possible de chemins linéaires dans GSn.

La fonction teste_connexion_chemin_GSn() essaye de relier les deux configu-rations passées en argument par un chemin dans GSn et retourne la dernière confi-guration valide le long de ce chemin, c’est-à-dire la dernière conficonfi-guration du chemin avant qu’il y ait collision ou instabilité, s’il y a échec de la connexion. Pour calculer les chemins de ressaisie, on utilise la méthode de planification RRT ([LK00][1]), succes-sivement, pour chacun des doigts à repositionner. Le mouvement à planifier est celui d’un système composé d’une chaîne cinématique simple, qui aura un faible nombre de degrés de liberté pour la plupart des mains robots —le plus souvent, trois. Pour

[1] S.M. LaValle and J.J. Kuffner. Rapidly-exploring random trees : Progress and prospects. Algo-rithmic Foundations of Robotics (WAFR’00), 2000.

3.2 La méthode de planification pour la manipulation dextre 71

Algorithme 4 : Connexion des composantes connexes de GSn par des che-mins de ressaisie Entrées : graphe G = S i CCi q1 = (p1, gk1) ∈ CCi1 et q2 = (p2, gk2) ∈ CCi2 1 qs1 = teste_connexion_chemin_GSn(q1, q2) qs2 = teste_connexion_chemin_GSn(q2, q1) 2 si qs1 == qs2 alors 3 connecte_par_chemin_GSn(qs1, q1) 4 connecte_par_chemin_GSn(qs1, q2) 5 fusionne CCi1 et CCi2 6 si teste_connexion_chemin_ressaisie(qs1, qs2) == T RU E alors 7 connecte_par_chemin_GSn(qs1, q1) 8 connecte_par_chemin_GSn(qs2, q2) 9 connecte_par_chemin_ressaisie(qs1, qs2) 10 fusionne CCi1 et CCi2 11

appliquer la méthode RRT, il faut choisir une fonction distance pour la recherche de plus proche voisin dans les arbres. On choisit la même que celle de CSmain dans la partie 3.1.2. Comme seule la configuration d’un doigt peut changer, on la réduit à ρ(a, b) =Pmi

i=1min(|ai− bi|, 2π − |ai− bi|) où mi est le nombre de liaisons du doigt et les ai et bisont les valeurs des angles des liaisons du doigt dans les configuration a et b respectivement.

Dans certaines situations, les configurations q1 et q2 ne peuvent être reliées selon le principe de la fonction teste_connexion_chemin_GSn() à moins que la pose de l’objet ne soit extrêmement proche dans les deux configurations. De telles situations peuvent survenir à cause d’un obstacle, d’une rupture de la stabilité de la prise ou être dues à la forme de l’objet. La figure3.10illustre ce problème. Pour y remédier, l’ajout

FIGURE 3.10 –Dans cet exemple, pour relier des configurations avec le doigt de part et d’autre de l’obstacle (entouré par l’ellipse rouge en pointillés), il faut que l’objet ait une pose très proche dans les deux configurations et soit bien centré par rapport à l’obstacle. Ces configurations ont très peu de chance d’être tirées au hasard, c’est pourquoi elles sont ajoutées à l’aide d’une heuristique.

72 Dextre

de certaines configurations peut se révéler particulièrement utile. Ces configurations sont de la forme (pi, gki) où piest le milieu du segment [p1, p2] et gki est choisi aléatoi-rement. L’idée est de générer plusieurs configurations pour lesquels la pose de l’objet est très proche (en l’occurrence identiques) mais la prise différente. A chaque tentative de fusion de composantes connexes du graphe, on ajoute ainsi quelques configurations selon ce principe.

3.2.4 Décomposition des chemins dans GS

n

en séquence