Télécharger le fichier pdf d’un mémoire de fin d’études
Notre approche
L’approche que nous avons definie´ suit les principes suivants :
La Planification de mouvement : calcul de l’itineraire´ a` suivre
Il s’agit dans un premier temps de planifier le deplacement´ de l’objet a` manipuler ainsi que celui du robot. Nous utilisons des techniques robustes et reconnues qui sont issues de la planification de mouvement pour robot mobile a` roues. A cette etape,´ les propriet´es´ anthropomorphes du systeme` et ses 40 degres´ de liberte´ ne seront pas prises en compte. Nous calculons un chemin en trois dimensions correspondant a` un volume de l’espace de travail permettant au robot de deplacer´ l’objet de sa configuration initiale a` sa configuration finale par une action de pivotement et ce, sans entrer en collision avec son environnement. Pour cela, nous reduisons´ l’ensemble du systeme` robot-objet a` un simple objet parallel´epip´ede` rigide. C’est a` ce stade que nous introduisons une premiere` contrainte issue de la locomotion humaine. Nous souhaitons privilegier´ des mouvements de locomotion en marche avant (ou arriere)` et eviter´ des deplacements´ ”en crabe”. Ce type de mouvement induit une contrainte non holonome sur le chemin global suivi par l’objet.
Nous donnons a` cet objet rigide un comportement de deplacement´ par glissement soumis a` des contraintes definies´ chap. 4.1.1 et nous planifions le deplacement´ de celui-ci dans son environnement afin de trouver une trajectoire optimisee´ libre de collision.
Calcul de la sequence´ de pivotement, du mouvement des mains et de la trajectoire des pieds
Une fois que nous disposons d’un premier chemin, nous obtenons un volume de l’espace de travail dans lequel le robot peut manipuler l’objet sans entrer en collision avec son environnement. Nous animons l’objet a` manipuler le long du chemin. Cette animation est cre´ee´ sur la base du deplacement´ par pivotement comme definie´ chap. 3. Nous obtenons ainsi une sequence´ de pivotement de la configuration initiale a` la configuration finale. Les points de contact entre l’objet a` manipuler et les mains du robot sont alors extraits. La trajectoire que chacune des deux mains du robot devra suivre afin de deplacer´ l’objet est ainsi calculee´. De la memeˆ maniere` nous calculons la position des pieds du robot en fonction de la position de l’objet le long de la trajectoire initiale.
Gen´eration´ de mouvements corps complet
Ces donnees´ sont ensuite transformees´ sous forme de contraintes, avec une notion de priorite´ entre elles et ainsi utilisees´ en entree´ des algorithmes de cinematique´ inverse gen´eralis´ee´ developp´es´ au sein de notre equipe´ de recherche par [Yoshida et al. 2006], sur les bases du gen´erateur´ de marche predictif´ de [Kajita et al. 2003]. La trajectoire qui en sort est une trajectoire de mouvement corps complet qui prend en compte la stabilite´ du robot, la trajectoire de son centre de masse, ainsi que la synchronisation des bras et des jambes permettant la manipulation par pivotement de l’objet encombrant le long du chemin initial.
Validation dynamique
A ce stade, nous n’avons pris en compte que la cinematique´ du systeme`. La trajectoire calculee´ est donc entree´ dans le simulateur dynamique OpenHRP3 (chap. 1.2.3) pour controlerˆ que le robot execute´ des mouvements dynamiquement stables. En cas d’echec,´ la planification est relancee´ en modifiant les parametres` d’execution´ (parametres` de locomotion, vitesse d’execution´ des trajectoires des mains …) de maniere` heuristique. Si la trajectoire est validee´ nous pouvons executer´ le mouvement directement en boucle ouverte sur la plate-forme reelle´ et observer les resultats´.
Planification de reprise d’objet a` manipuler
En suivant la memeˆ approche, nous nous interessons´ ensuite a` la planification de reprise d’objet. Effectivement, dans un environnement tres` complexe, notre approche reste assez limitee´. Le robot pourrait tres` vite rester bloque´ dans un passage trop etroit´ a` la manipulation, par exemple le passage d’une porte. Cette nouvelle etape´ donne au robot la possibilite´ de lacherˆ l’objet, contourner l’obstacle en se deplac¸ant´ seul, recup´erer´ celui-ci de l’autre cote´ et continuer a` manipuler afin d’atteindre son but. Cette etape´ ne sera traitee´ qu’en simulation.
Apres` une revue de l’etat´ de l’art, les chapitres suivant s’arreterontˆ plus precis´ement´ sur chacun des points cites´ ci-dessus.
HRP-2 et son architecture logicielle
HRP-2 est une plate-forme de recherche de type robot humano¨ıde fabrique´ par la societ´e´ Kawada, en collaboration avec le groupe HRG de l’AIST. Il existe une vingtaine de robots de ce type a` travers le monde. Nos travaux ont et´e´ integr´es´ sur la plate-forme HRP-2 n 14 et realis´es´ dans l’environnement montre´ sur la figure 1.4b.
Ce robot fait 1m54, pour 58kg et possede` 40 degres´ de liberte´ dont 30 commandables. Il peut marcher jusqu’a` 2km/h et porter jusqu’a` 2kg dans chaque main. La figure 1.3 expose les caracteristiques´ du robot HRP-2.
Pour travailler avec le robot nous respectons le protocole suivant :
– Avant toute experimentation,´ le robot doit etreˆ calibre´ et branche´ sur l’alimentation ou avec un niveau de batterie suffisant.
– Toute experimentation´ execut´ee´ avec le robot doit etreˆ filmee,´ pour qu’en cas d’accident nous puissions repasser le film et l’analyser si besoin.
– Toute experimentation´ execut´ee´ avec le robot doit se faire en presence´ d’au moins deux personnes, dont une personne qualifiee,´ formee´ tout specialement´ a` l’entretien et a` la manipulation du robot HRP-2. Cette personne s’occupe aussi du bouton d’arretˆ d’urgence. L’autre personne devant s’occuper du controleˆ du robot depuis le logiciel specifi´e´.
– Lors des experimentations,´ tous les ordres doivent etreˆ confirmes´ par les deux personnes presentes,´ avant toute execution´ de mouvement.
– Le robot doit toujours etreˆ manipule´ avec un systeme` de securit´e,´ ici un leve`-personne comme utilise´ dans les hopitauxˆ. Le robot est entierement` autonome, mais si l’arretˆ d’urgence est enclenche,´ le robot tombe comme une pierre. Ce systeme` permet, en cas de coupure, de le retenir a` une distance raisonnable du sol Fig. 1.4a.
Planification de mouvement
Le probleme` de la planification de mouvement
Le probleme` de la planification de mouvement est un vieux probleme`. Que les gens en soient conscients ou non, nous nous posons tous frequemment´ ce genre de questions. Bien surˆ nous pref´erons´ nous poser le probleme` d’une maniere` tout a` fait differente´ de ce qui va etreˆ montre´ dans cette section. Pourtant, qui n’a pas un jour realis´e´ un dem´enagement´ et et´e´ confronte´ aux problemes` du genre : comment vais-je pouvoir sortir mon canape,´ mon lit ou encore cette commode de mon appartement et descendre les trois etages´ sans ascenseur ? La planification de mouvement repond´ a` ce genre de problemes` qui ne sont pas forcement´ si simples a` resoudre´.
Ce probleme` a et´e´ formule´ pour la premiere` fois en 1966 par le mathematicien´ Leo Moser. Appele´ ”le probleme` du sofa”, il s’enonce´ de la maniere` suivante : Quelle est le plus large canape´ (ou la plus grande surface) que l’on peut bouger dans un couloir de largeur unitaire ayant un angle droit ? (voir Fig. 2.1). Malgre´ un nombre consequent´ de reponses´ [Wagner 1976; Gerver 1992; Croft et al. 1992; Stewart 2004], la valeur exacte de la constante reste un probleme` ouvert. De ce probleme` initial decoulent´ plusieurs variantes dont le probleme` dit ”du dem´enageur´ de piano” pose´ par [Schwartz and Sharir 1987]. Ces premiers travaux meneront` ensuite [Latombe 1991] a` developper´ ses recherches sur ce que nous appelons la planification de mouvement. Ce nouveau probleme` peut etreˆ enonc´e´ de la maniere` suivante : Existe t-il un chemin libre de toute collision dans l’espace Euclidien ou espace de travail que l’on notera W , permettant de deplacer´ un piano d’une position et orientation initiale, appelee´ aussi configuration qinit , vers une position et orientation finale ou configuration q f inale, connaissant exactement l’environnement et la position des obstacles (Fig. 2.2a) ?
En 1980, [Lozano-Perez´ 1980] introduit le concept de l’espace de configuration, ou espace C. Le principe consiste a` representer´ dans cet espace un systeme` donne´ par un point. Ce point represente´ la configuration du systeme`. La dimension de la variet´e´ C Rn est egale´ au nombre de variables representant´ l’etat´ d’un systeme` ou son nombre de degres´ de liberte´ : soit pour l’exemple du piano sa position dans l’espace x, y, z et son orientation θ , φ , ψ, d’ou Cpiano R3 S3. Ceci a permis d’avoir une nouvelle approche sur les problemes` de planification de mouvement car nous transformons le probleme` de faire bouger un corps de l’espace Euclidien W R3 en un probleme` ou` il faut deplacer´ un point dans C Fig. 2.3 . Les obstacles dans l’espace W induisent des configurations en collision dans C. On notera l’ensemble de ces configurations Cobst . Cf ree est defini´ comme l’espace de configuration libre de l’espace de configuration C : Cf ree = C \Cobst . Dans ce contexte, le probleme` initial est transforme´ en un nouveau probleme` consistant a` calculer Cobst et a` trouver un chemin τ : [0, 1] Cf ree qui connecte une configuration initiale τ(0) = qinit a` une configuration finale τ(1) = q f inale. Ce chemin existe si et Nous trouvons dans la litterature´ plusieurs solutions proposees´ par [Schwartz and Sharir 1987; Goodman and O’Rourke 2004; Canny 1988] sur la construction de la representation´ de Cobst . Ces methodes´ reposent sur la decomposition´ cellulaire, les graphes de visibilite´ ou encore les diagrammes de Vorono¨ı [Latombe 1991] Fig. 2.4. Elles construisent un graphe dans Cf ree, permettant de trouver un chemin connectant qinit et q f inale, s’il en existe un. Bien que ces approches aient des propriet´es´ telles que la completude´ 1, la complexite´ combinatoire est telle qu’elle prend des temps de calcul consequents,´ memeˆ pour les problemes` les plus simples.
Les methodes´ de planification par echantillonnage´ aleatoire´ et diffusion
Depuis la fin des annees´ 90, de nouvelles methodes´ ont et´e´ developp´ees´ pour reduire´ le temps de calcul a` des temps raisonnables. Elles trouvent leurs origines dans les travaux de [Barraquand and Latombe 1991] et [Bessiere et al. ] . Pour atteindre ces objectifs, ces methodes´ affaiblissent un peu la propriet´e´ de completude´ mais elles permettent de resoudre,´ avec efficacite,´ des problemes` dans des dimensions plus elev´ees´.
Le but de ces methodes´ est de capturer la topologie de Cf ree dans un graphe (en anglais Roadmap) sans calculer explicitement Cobst . Une fois que nous disposons de ce graphe dans Cf ree il suffit de rechercher un chemin solution permettant de connecter qinit et q f inale.
Ces graphes sont construits de deux manieres` : par echantillonnage´ aleatoire´ ou par diffusion. Ces methodes´ ont une propriet´e´ de completude´ probabiliste, c’est-a`-dire que la probabilite´ de trouver une solution si elle existe converge vers 1 si le temps de calcul tend vers l’infini. Elles ne permettront pas de decider´ si une solution n’existe pas.
L’algorithme – PRM L’idee´ principale des methodes´ d’echantillonnage´ aleatoire´ introduite par [Kavraki et al. 1996] et sa methode´ de graphe probabiliste (en anglais Probabilistic Roadmaps – PRM) sont illustrees´ Fig. 2.5a. Elle consiste a` tirer des configurations aleatoirement´ dans C. Si la nouvelle configuration qnew est en collision avec un obstacle (pour cela nous utilisons un test de collision), elle est rejetee´. Au contraire si celle-ci est libre de collision, elle est rajoutee´ au graphe et reliee´ aux autres noeuds, si la methode´ locale de planification (voir section 2.1.3) reliant les deux noeuds conduit a` un chemin libre de collision.
Les algorithmes de diffusion – EST – RRT Lorsque nous parlons des algorithmes de diffusion, nous faisons souvent ref´erence´ aux arbres expansifs dans l’espace (en anglais Expansive-Space Trees – EST) de [Hsu et al. 1998] ou aux arbres d’exploration rapide aleatoire´ (en anglais Rapid-Random Trees – RRT) de [LaValle 1998]. Ces techniques consistent a` explorer C de maniere` aleatoire,´ en partant de quelques configurations appelees´ racines et en explorant le voisinage dans une direction choisie arbitrairement, jusqu’a` ce que la configuration finale q soit atteinte Fig. 2.5b. De la memeˆ maniere,` une fois la direction choisie pour que le noeud soit valide,´ il faut que la configuration et le chemin reliant les deux noeuds soient libres de collision.
FIGURE 2.5 – [de Esteves 2007] (a) dans l’algorithme PRM le graphe est construit aleatoirement´ dans la zone libre d’obstacle, chaque configuration, tiree´ et libre de collision, est gardee´ et constitue un noeud du graphe. Ces noeuds sont ensuite relies´ par une methode´ de planification locale executable´ par le robot, les aretesˆ. Une fois le graphe constitue,´ nous recherchons le plus court chemin entre qinit et q f inale (b) Dans l’algorithme RRT deux arbres peuvent se developper´ simultanement,´ depuis Ts = qinit et Tg = q f inale respectivement. Chaque arbre se developpe´ jusqu’a` ce que deux configurations q1 et q2 appartenant a` chacun des arbres puissent etreˆ connectees´ par une troisieme` configuration qrand tiree´ aleatoirement´.
L’algorithme – PRM de visibilite´ Pour les systemes` ayant un grand nombre de degres´ de liberte,´ et dont l’espace de configuration C est hautement dimensionne,´ il existe une methode,´ que nous utiliserons dans nos travaux, deriv´ee´ des algorithmes PRM appelee´ PRM de visibilite´ (en anglais Visibility Probabilistic Roadmap – Visibility PRM) propose´ par [Simeon et al. 2000] et illustre´ Fig. 2.6.
Cette technique sera detaill´ee´ ulterieurement´ dans le manuscrit (voir section 5.1) mais l’idee´ principale, comme celle de l’algorithme PRM, est de capturer la topologie de Cf ree dans un graphe. Cependant, dans cette version, toutes les configurations tirees´ aleatoirement´ et libres de collision ne sont pas necessairement´ incluses dans le graphe. Seuls les noeuds avec une certaine visibilite´ ou connexion sont retenus et ajoutes´.
Le graphe obtenu par un PRM de visibilite´ est plus compact que celui obtenu par un PRM classique. Ceci permet, pour des environnements tres` complexes, de construire rapidement un graphe de base ou une vue d’ensemble de l’environnement qui pourra par la suite etreˆ affinee´ par d’autres techniques, comme celles citees´ au-dessus.
C f ree, ce qui permet de capturer l’environnement plus rapidement mais avec moins de precision´. Les noeuds en noir sont appeles´ des gardes qg et les blancs sont les connecteurs qc. Un nouveau noeud qrand devient un garde si celui-ci ne peut etreˆ relie´ a` aucun autre garde, il devient un connecteur s’il peut etreˆ relie´ a` au moins deux gardes, sinon le noeud est rejete´.
Lorsque l’on utilise les algorithmes de planification par echantillonnage´ aleatoire,´ un chemin solution est le resultat´ de deux etapes´ bien distinctes : la phase d’apprentissage et la phase decisionnelle´. Dans la phase d’apprentissage, des configurations aleatoires´ sont tirees´ selon la plage autorisee´ pour chaque degre´ de liberte´ du systeme` en vue de construire un graphe probabiliste de l’environnement. Dans la phase decisionnelle,´ les configurations initiales et finales sont ajoutees´ et connectees´ au graphe par des aretesˆ libre de collision.
Une recherche de graphe est ensuite lancee´ pour rechercher un chemin libre de collision entre les configurations initiales et finales. Nous noterons que la recherche d’un chemin solution dans un graphe peut se faire selon plusieurs approches, en utilisant differentes´ heuristiques. Chaque areteˆ du graphe peut posseder` un coutˆ et suivant ce que l’on souhaite mettre en avant, l’algorithme de recherche prendra l’areteˆ qui conviendra le mieux au type de solution recherchee´. On peut, par exemple, rechercher le chemin le plus court mais aussi le chemin qui propose le moins de manoeuvres, ou le moins consommateur d’energie´.
Si un chemin est trouve,´ il est ensuite lisse´ pour retirer les detours´ ou redondances inutiles [Hsu et al. 1999]. Puis le chemin est transforme´ en un chemin parametr´e´ en temps, aussi appele´ trajectoire τ(t) par des techniques classiques [Shin and McKay 1985; Bobrow et al. 1985; Slotine and Yang 1989; Lamiraux and Laumond 1999]
Methode´ locale de planification et commandabilite´ locale en temps petit
Methode´ locale de planification Comme nous venons de le voir dans la section prec´edente,´ pour relier deux noeuds d’un graphe, nous utilisons une fonction appelee´ methode´ locale de planification. Si cette fonction produit un chemin, entre deux configurations aleatoires,´ libre de collision, le chemin est ajoute´ au graphe et en constitue une areteˆ. Si le systeme` peut bouger librement dans toutes les directions (ex : le piano), n’importe quel chemin de Cf ree correspond a` un chemin libre de collision et est admissible par le systeme` dans W ; dans ces cas precis,´ la ligne droite est souvent consider´ee´ comme le chemin le plus court entre deux configurations. Malheureusement, ceci ne fonctionne pas pour la plupart des systemes,` souvent du fait des contraintes mecaniques´ specifiques´. Prenons, par exemple, le cas d’une voiture, celle-ci peut avancer, reculer et tourner en avanc¸ant ou en reculant, mais en aucun cas se deplacer´ lateralement´ directement sans executer´
un certain nombre de manoeuvres (ex : garage en creneau)´. Ce type de contraintes cinematiques´ qui ne peuvent etreˆ integr´ees´ et exprimees´ sous forme de variables de configuration, sont appelees´ contraintes non-holonomes. Elles ont et´e´ introduites dans le contexte de la planification de mouvement par [Laumond 1986] et largement discutees´ par la suite [Li and Canny 1992; Laumond 1998]. Si nous continuons sur l’exemple de la voiture, on ne dispose que de deux controles,ˆ sa vitesse lineaire´ et sa vitesse angulaire. Son espace de configuration est pourtant represent´e´ en trois dimensions avec les coordonnees´ suivantes (x, y, θ ) representant´ respectivement la position et l’orientation de la voiture. Trouver un chemin solution admissible pour le systeme` dans Cf ree consiste donc a` resoudre´ le probleme` en deux parties.
Tout d’abord, un chemin admissible est calcule´ dans un espace C sans obstacles a` l’aide de la methode´ locale, puis dans un second temps celui-ci est teste´ pour savoir s’il est libre de collision dans Cf ree avant d’etreˆ ajoute´ au graphe. Beaucoup de recherches ont et´e´ menees´ sur ces methodes´ locales utilisees´ sur des systemes` comme notre voiture. [Dubins 1957] demontra´ que le chemin le plus court pour relier en marche avant deux configurations d’une voiture, en absence d’obstacles, etait´ une combinaison d’arcs de cercle et de lignes droites. En rajoutant, des points de rebroussement ou changement de sens, incluant la marche arriere` [Reeds and Shepp 1990; Sussmann and Tang 1991] trouverent` des chemins encore plus courts.
Nous reviendrons plus precis´ement´ sur les courbes de Reeds et Shepp dans le chapitre 4.1.1.3.
(a) (b)
La commandabilite´ locale en temps petit La notion de commandabilite´ locale en temps petit est une propriet´e´ importante pour les planificateurs que nous utilisons. Nous reviendrons plus en details´ sur cette notion dans le chapitre 3.2.
Ce qu’il faut savoir pour l’instant, c’est que si un systeme` est prouve´ localement commandable en temps petit, cette propriet´e´ permet de transformer n’importe quel chemin, admissible ou non, c’est-a`-dire pas necessairement´ executable´ par le systeme,` mais libre de collision dans Cf ree, en un chemin admissible pour le systeme` et toujours libre de collision.
Cette propriet´e´ est donc utilisee´ en deux etapes´. On peut tout d’abord rechercher des chemins libres de collision par des methodes´ rapides dans Cf ree et les approximer par la suite par des methodes´ locales de planification respectant la propriet´e´.
Une limitation de cette propriet´e´ pour un systeme` donne´ est que la preuve de la commandabilite´ locale en temps petit montre simplement l’existence de celle-ci mais ne donne en aucun cas la fonction ou les commandes a` appliquer au systeme` pour que celui-ci soit localement commandable en temps petit. Il faut donc le prouver pour chaque methode´ locale de planification appliquee´ au systeme`.
Le mouvement humano¨ıde
Nous allons, dans cette section, voir les methodes´ de gen´eration´ de mouvements de locomotion pour un robot humano¨ıde. Memeˆ si celles-ci ne sont pas developp´ees´ ou ne font pas partie integrante´ des recherches menees´ ici, elles sont en revanche largement utilisees´ par nos algorithmes.
ZMP et modeles`
La notion de point de moment dynamique nul (en anglais Zero Moment Point – ZMP) est introduite pour la premiere` fois en 1968 par M. Vukobratovic et resum´ee´ avec ses travaux dans le livre [Vukobratovic et al. 1990]. Le ZMP est un critere` d’equilibre´ couramment utilise´ et essentiel pour la marche humano¨ıde.
Il est un concept mettant en relation le controleˆ et la dynamique d’un systeme` bipede,` entre autre, celui des robots humano¨ıdes. Il represente´ le point ou` la force de reaction´ dynamique au contact du pied avec le sol ne produit pas de moment, c’est-a`-dire le point ou` la force d’inertie est egale´ a` zero´. En equilibre´ statique, il represente´ la projection du centre de masse du systeme` au sol. Le concept du ZMP suppose que la zone de contact entre les pieds et le sol, soit plane et suffisamment adherente´ pour maintenir les pieds au sol sans glissement Fig. 2.8.
On considere` qu’un robot humano¨ıde est dynamiquement stable si le ZMP se situe dans le polygone convexe forme´ par les pieds : son polygone de sustentation Fig. 2.8, que ce soit en phase de simple support ou en phase de double support.
Le ZMP dependant´ de la position, la vitesse et l’accel´eration´ de tous les corps du robot, son controleˆ est tres` couteux,ˆ notamment pour des robots a` grand nombre de degres´ de liberte´. Pour surmonter ce probleme,` [Kajita et al. 1992; Yamaguchi et al. 1993] proposent de simplifier le modele` dynamique. Les deux representations´ les plus utilisees´ sont le modele` du pendule inverse contraint sur un plan et le modele` de poids en equilibre´ sur une table (en anglais Cart Table Model) Fig.2.9. Ces modeles` permettent, notamment, de lineariser´ les equations´ differentielles´ du ZMP et donc de simplifier les calculs pour la locomotion humano¨ıde basee´ sur cette approche [Kajita et al. 2003], sous les conditions suivantes :
– Le haut du corps ne bouge pas ou peu.
– Le poids des jambes est raisonnablement faible.
– Le mouvement de marche est regulier´.
Cinematique´ inverse gen´eralis´ee´
Le probleme` de cinematique´ inverse est le probleme` du calcul de la configuration d’un robot satisfaisant une tacheˆ donnee,´ fonction (souvent non lineaire)´ de la configuration. Par exemple, pour un robot de type bras manipulateur, nous cherchons a` calculer la valeur de chaque degre´ de liberte´ du bras afin de positionner l’organe terminal, ou effecteur, dans une position et orientation souhaitees´. Des techniques sont connues et utilisees´ depuis plusieurs decennies´. Ici, nous pouvons considerer´ notre robot humano¨ıde, comme quatre bras manipulateurs attaches´ a` une memeˆ base, elle-memeˆ mobile.
Contrairement a` notre robot, sur un bras manipulateur classique, lorsque nous bougeons le bras, la plupart des degres´ de liberte´ sont utilises´. Sur un robot humano¨ıde, nous pouvons tout a` fait bouger un bras du robot sans utiliser le reste du corps, mais ce dernier est-il inutile pour autant ? On dit que le systeme` est redondant.
[Liegeois 1977; Nakamura 1991; Siciliano and Slotine 1991] introduisent la cinematique´ inverse gen´eralis´ee´ qui permet pour des systemes` hautement dimensionnes,´ comme notre robot anthropomorphe a` trente degres,´ d’utiliser au mieux toutes les capacites´ du systeme,` ou ici de son corps, pour positionner un ou plusieurs organes terminaux dans des positions et/ou orientations desir´ees´. Les algorithmes de cinematique´ inverse gen´eralis´ee´ utilisent pour cela la redondance ou les multiples possibilites´ qu’offrent de tels systemes,` comme ici un corps anthropomorphe. On parlera alors de posture pour un robot humano¨ıde et dans notre cas, de mouvements corps complet (voir definition´ au debut´ du chapitre 1.2.1). Comme pour les etresˆ humains, toute posture n’est pas forcement´ admissible par le systeme`. La plupart du temps, nous souhaitons realiser´ une tacheˆ principale et utiliser le reste de notre corps pour, soit s’equilibrer,´ soit accomplir une tacheˆ secondaire ou moins importante.
[Nakamura 1991; Siciliano and Slotine 1991; Baerlocher and Boulic 2004] introduisent alors le concept de cinematique´ inverse gen´eralis´ee´ avec priorite´ de tacheˆ. Ce mecanisme´ de priorite´ sera explique´ plus en detail´ dans le chapitre 4.3. Les tachesˆ a` realiser´ sont ordonnancees´ dans une pile de tachesˆ. A un instant t, les algorithmes tentent de satisfaire tout d’abord la ou les tachesˆ avec la priorite´ la plus importante et utilisent le sous-ensemble des degres´ de liberte´ non ou peu utilise´ pour realiser´ au mieux les tachesˆ secondaires qui doivent etreˆ execut´ees´ au memeˆ instant.
L’idee´ de [Yoshida et al. 2006] est de combiner la cinematique´ inverse gen´eralis´ee´ avec priorite´ de tacheˆ [Nakamura 1991] avec le gen´erateur´ de marche de [Kajita et al. 2003] Fig. 2.12.
Fig.2.13 montre que dans cette version du gen´erateur´ de marche la cinematique´ inverse exacte est remplacee´ par la cinematique´ inverse gen´eralis´ee´. Ils prennent en compte directement les mouvements du haut du corps. De meme,ˆ ils suppriment le deuxieme` etage´ du gen´erateur´ de marche de [Kajita et al. 2003]. Le mouvement est valide´ de la memeˆ maniere`. Les conditions de simplification citees´ section 2.2.1 sont assurees´ en veillant a` la continuite´ des tachesˆ de cinematique´ inverse gen´eralis´ee´ et a` leur variation reguli´ere`.
Ces algorithmes sont les algorithmes que nous utiliserons. [Yoshida et al. 2006] proposent donc de ne plus limiter l’espace d’accessibilite´ du robot au simple espace qui l’entoure directement. En replanifiant son polygone de sustentation, ce qui revient a` executer´ un pas, le robot peut atteindre une plus grande partie de l’espace Fig 2.14. De meme,ˆ si l’on donne au robot la tacheˆ de tourner la teteˆ pour regarder derriere` lui, arrive´ en butee´ articulaire du cou ou un peu avant, le robot va etreˆ capable d’utiliser ses jambes pour se retourner et accomplir la tacheˆ demandee´. Si l’on execute´ plusieurs fois cette replanification, le robot sera capable d’atteindre des buts ou d’executer´ des tachesˆ qui se trouvent loin de lui sans pour autant avoir planifie´ ou calcule´ une pile d’empreintes au prealable´ [Sreenivasa et al. 2009].
La manipulation de petits objets par des bras manipulateurs
Dans la litterature,´ nous trouvons des recherches menees´ sur la manipulation de petits objets par des effecteurs de bras manipulateurs. Ces effecteurs pouvant etreˆ des pinces, deux-trois doigts, des plaques mais aussi des mains. Beaucoup de techniques ont et´e´ etudi´ees´. Dans ces travaux [Lynch 1992] s’interesse´ a` pousser ces petits objets avec plusieurs points de contact et sans prehension´. [Sawasaki et al. 1989; Bicchi et al. 2004] etudient´ le deplacement´ de petits objets par renversement (en anglais tumbling). [Bicchi and Sorrentino 1995] s’interessent´ la manipulation dextre d’objets spheriques´ par roulement. [Aiyama et al. 1993] font des recherches sur la manipulation de petits objets par pivotement. Leurs manipulations sont realis´ees´ de maniere` tres` precise´ et en boucle fermee,´ graceˆ notamment a` un retour video´ et une analyse d’image. [Maeda et al. 2004] proposent d’utiliser l’ensemble des techniques citees´ ci-dessus dans un seul et memeˆ planifacteur de manipulation.
La figure 2.18 montre quelques unes des ces techniques. Celles-ci se focalisent surtout sur la dexterit´e´ que possede` un effecteur de bras manipulateur pour realiser´ la manipulation sans necessairement´ attraper l’objet et le deposer´ a` un endroit different´ (en anglais Pick and Place). Dans ce manuscrit, nous n’allons pas etudier´ la manipulation avec autant de precisions´. Nous allons considerer´ la manipulation comme un ensemble de mouvements corps complet a` realiser´ pour deplacer´ un objet encombrant et rendre le mouvement visuellement naturel.
La manipulation humano¨ıde corps complet
Depuis la recherche intensive, ces dernieres` annees,´ sur les mouvements corps complet, de nouvelles techniques de manipulation de larges objets par un robot humano¨ıde ont et´e´ developp´ees´. Plusieurs methodes´ sont dej´a` proposees´ dans la litterature´.
La manipulation par la levee´ Dans leurs travaux [Harada et al. 2005; Arisumi et al. 2007; Arisumi et al. 2008] s’interessent´ aux techniques de manipulation d’objets par la levee´ (en anglais – lifting) et notamment aux techniques de levage ou porte´ dynamique a` l’aide de mouvements corps complet. Effectivement, les robots ne sont pas forcement´ capables de soulever des masses importantes (voir informations sur HRP-2 chapitre 1.2.3). La figure 2.19 montre typiquement des mouvements d’arrache´ dangereux ou simplement impossibles a` realiser´ avec un robot humano¨ıde.
FIGURE 2.19 – de [Arisumi et al. 2007] Exemple de levee´ d’objets impossible a` realiser´ par force continue (a) la puissance pour l’arrachee´ est insuffisante (b) un mauvais equilibre´ et le robot chute vers l’avant.
[Arisumi et al. 2007] introduisent donc une phase de mouvement preliminaire´ pour utiliser au mieux la dynamique et notamment le moment cre´e´ par l’arrachee´ pour soulever l’objet du sol. Cette rotation est centree´ autour des pieds. Ils utilisent un modele` de pendule inverse attache´ a` cette rotation pour replacer le centre de gravite´ du systeme` dans une position dynamiquement stable Fig. 2.20 et 2.21.
La manipulation par la poussee´ Dans les annees´ 90, [Lynch and Mason 1996] ont demontr´e´ que l’on peut deplacer´ des objets de maniere` stable et controlˆee´ par des techniques de poussee´ (en anglais – Pushing) avec des robots mobiles a` roues ayant une surface de contact plane a` l’avant. En 2004, [Harada et al. 2004] proposent une technique de poussee´ pour les robots humano¨ıdes avec des mouvements corps complet, couplant le retour de force du capteur d’efforts situe´ dans les mains avec la trajectoire du ZMP. Comme nous l’avons vu prec´edemment´ dans les gen´erateurs´ de marche, la trajectoire du ZMP influence la marche du robot pour garder son equilibre´. Afin de garder une pression a` peu pres` constante, [Harada et al. 2004] modifient l’allure (phase de simple et double support) du robot en temps reel´ Fig. 2.22
La manipulation par le pivotement Inspires´ des travaux de [Aiyama et al. 1993; Maeda et al. 2004] et toujours de l’etreˆ humain, [Yoshida et al. 2005; Yoshida et al. 2006] ont mene´ une etude´ sur la faisabilite´ de la manipulation d’un objet encombrant par pivotement. Leur methode´ se deroule´ en deux etapes´ : tout d’abord, un controleˆ de l’objet puis un controleˆ du robot. Le robot doit faire un pas apres` avoir manipule´ l’objet afin de suivre celui-ci.
Cette methode´ offre plusieurs avantages, resum´es´ ici et compares´ aux autres methodes´ sur le tableaux figure 2.23 :
– Un positionnement precis´ : Etant´ donne´ que l’objet n’est pas pousse´ mais maintenu entre les mains du robot, l’incertitude sur le deplacement´ est plus faible. Le robot peut deplacer´ l’objet dans la position desir´ee´ d’une maniere` assez simple.
– Adaptabilite´ au terrain : Effectivement les methodes´ de poussee´ sont tres` sensibles a` la composition et aux inegalit´es´ du terrain alors que la technique de pivotement peut s’adapter facilement. Les methodes´ de levee´ et de renversement pourraient par contre, tres` bien fonctionner.
– Stabilite´ : La methode´ de pivotement presente´ beaucoup moins de risques, pour le robot, que les methodes´ de levee,´ lorsqu’il faut deplacer´ un objet lourd et encombrant.
Pivotement et commandabilite´ locale en temps-petit : une preuve directe.
Un systeme` est dit commandable, si celui-ci peut atteindre une configuration finale q arbitraire a` partir de n’importe quelle configuration initiale qinit [Sussmann 1982]. Il est dit localement commandable en temps petit si l’ensemble des configurations admissibles Reachq(T ), qui peuvent etreˆ atteintes depuis une configuration q avant un temps T (> 0) donne,´ contient un voisinage de q. Cette propriet´e´ doit etreˆ vraie pour n’importe quelle configuration q et n’importe quel temps T . Cela veut dire que nous devons montrer l’existence d’un voisinage ouvert η de q dans lequel le systeme` doit pouvoir se mouvoir sans sortir d’un plus grand voisinage V impose,´ comme montre´ sur la partie gauche de la la Fig. 3.7
La commandabilite´ locale en temps petit est une propriet´e´ tres` interessante´ pour les algorithmes de planification de mouvements. Cette propriet´e´ permet d’approximer par des sequences´ de mouvements admissibles et sans collisions ou methode´ locale de planification, une trajectoire initiale, elle aussi libre de collision mais pas forcement´ executable´ par le systeme` (Fig. 3.7 droite). Ceci permet donc de reduire´ les contraintes sur la recherche de trajectoire initiale et d’avoir un temps de reponse´ beaucoup plus rapide de la part du moteur de planification de mouvements.
La commandabilite´ locale en temps petit peut-etreˆ prouvee´ en utilisant l’algebre` de Lie des champs de vecteur de la maniere` suivante.
Considerons´ notre systeme` (Fig. 3.3) de longueur 2l avec l = AO = OB. La configuration du segment est exprimee´ par les coordonnees´ de son centre O(x, y) et son orientation θ . A chacune des etapes´ d’une sequence´ de pivotement, seulement deux rotations el´ementaires´ sont autorisees´ pour le segment : une rotation sur le point de pivot A ou une sur le point de pivot B.
Considerons´ tout d’abord la rotation autour du point A. Le champ de vecteurs L exprime´ pour decrire´ ce mouvement est deriv´e´ en calculant la vitesse tangente du point O a` la configuration q(x, y, θ ) comme : l sin θ L = l cos θ . (3.1)
Les memesˆ calculs peuvent etreˆ appliques´ a` partir du point de rotation B. Le champ de vecteurs R est donc : l sin θ R = l cos θ . (3.2)
La loi de commande du systeme` par pivotement peut donc s’ecrire´ : q˙ = L u1 + Ru2 (3.3)
Ou` u1, u2 sont les angles appliques´ au systeme` pour realiser´ un mouvement de rotation. A noter, aussi, que les commande u1 et u2 ne peuvent pas etreˆ appliquees´ simultanement´. Effectivement, nous ne pouvons pivoter que sur un seul point a` la fois.
Pour prouver que notre systeme` est localement commandable en temps petit, on applique la condition Lie Algebra Rank Condition – LARC [Sussmann 1982] en calculant le crochet de Lie correspondant [L , R]. Rappelons que la kieme composante [ f , g]k du crochet de Lie de champs de vecteurs f et g est : n ∂ fk ∂ gk [ f , g]k = ∑(gi fi ) (3.4)
Ou` qi est la iieme composante de configuration du systeme`.
En appliquant cette formule a` notre systeme` de pivotement, nous obtenons 2l cos θ [L,R] = 2l sin θ . (3.5)
On verifie´ que L , R et [L , R] sont lineairement´ independants´. En effet, le determinant´ de la matrice A (equation´ 3.6) est non nul. l sin θ l sin θ 2l cos θ soit A = l cos θ l cos θ 2l sin θ , pour l = 1 et θ = 0 det(A) = 4 (3.6)
Les trois champs de vecteurs L , R et [L , R] obtenus sont une base dans l’espace tangent a` l’espace de configuration. La condition de LARC est donc tenue et nous pouvons conclure que le systeme` est localement commandable en temps petit. L’espace d’accessibilite´ d’une configuration initiale qi quelconque contiendra toujours un voisinage ouvert et accessible peu importe la taille de l’environnement.
Methode´ locale de planification par pivotement en trois coups
Pour integrer´ ce genre de systeme` dans nos algorithmes de planification et de recherche de solution, une methode´ locale de planification doit etreˆ definie´. Cette methode´ est une fonction permettant de calculer tres` rapidement un chemin admissible entre deux configurations du systeme`. Memeˆ si le systeme` est prouve´ localement commandable en temps petit, ceci n’est qu’une preuve d’existence, cette propriet´e´ ne donne pas la methode´ a` employer pour deplacer´ le systeme`. Creer´ cette methode´ locale de planification est donc un nouveau probleme` [Laumond 1998].
Nous introduisons ici une methode´ locale de planification par pivotement en 3 coups, mais nous aurions pu en construire plusieurs autres. Nous aurions pu prendre une fonction en 2 coups mais son espace d’accessibilite´ aurait et´e´ trop reduit´. Nous aurions pu prendre une fonction en 4 coups mais le gain d’espace d’accessibilite´ par rapport a` la complexite´ de la solution n’etait´ pas suffisamment interessant´. Nous avons choisi de privilegier´ les criteres` de complexite,´ de precision´ et d’accessibilite,´ le but etant´ de positionner le plus precis´ement´ le systeme` a` une configuration finale en realisant´ le moins de mouvements de pivot possible.
|
Table des matières
1 Introduction
1.1 Le contexte gen ´ eral de la robotique
1.2 Approche gen ´ erale du probl ´ eme `
1.2.1 Definition du probl ´ eme `
1.2.2 Notre approche
1.2.3 HRP-2 et son architecture logicielle
1.3 Organisation du Manuscrit
1.4 Publications associees ´ a cette th ` ese `
1.5 Contexte de la these `
2 Etat de l’art
2.1 Planification de mouvement
2.1.1 Le probleme de la planification de mouvement `
2.1.2 Les methodes de planification par ´ echantillonnage al ´ eatoire et diffusion
2.1.3 Methode locale de planification et commandabilit ´ e locale en temps petit
2.2 Le mouvement humano¨ıde
2.2.1 ZMP et modeles `
2.2.2 Gen ´ erateur de marche
2.2.3 Cinematique inverse g ´ en ´ eralis ´ ee
2.2.4 Extension a la commande en couple `
2.2.5 Prise en compte de la dynamique en planification
2.3 La manipulation en robotique
2.3.1 La manipulation de petit objet par des bras manipulateur
2.3.2 La manipulation humano¨ıde corps complet
2.4 La planification de taches de manipulation ˆ
2.5 Conclusion
3 Analyse de commandabilite
3.1 Analyse des propriet ´ es g ´ eom ´ etriques de la m ´ ethode de pivotement
3.1.1 Definition d’un mouvement de pivot ´ el ´ ementaire
3.1.2 Le probleme du pivotement `
3.2 Pivotement et commandabilite locale en temps-petit : une preuve directe.
93.3 Methode locale de planification par pivotement en trois coups
3.4 Conclusion
4 De la strategie de pivotement ´ a la manipulation
4.1 De la planification de chemin a la s ` equence de pivotement
4.1.1 Planification de mouvement pour un corps rigide soumis a des contraintes non- ` holonomes
4.1.2 Generation de s ´ equence de pivotement
4.2 Calcul de la trajectoire des mains et du positionnement des pieds
4.2.1 Calcul des trajectoires des mains
4.2.2 Calcul du positionnement des pieds
4.3 Gen ´ eration de mouvement corps complet
4.3.1 Algorithme de cinematique inverse g ´ en ´ eralis ´ ee avec priorite
4.3.2 La constructions des contraintes
4.3.3 Le mecanisme g ´ en ´ eral : des contraintes au mouvement
4.4 Resultats exp ´ erimentaux
4.4.1 Resultats exp ´ erimentaux de simulation
4.4.2 Experimentation sur la plate-forme r ´ eelle HRP-2
4.5 Conclusion
5 Planification de reprise pour de la manipulation par pivotement
5.1 Identification des configurations critiques
5.2 Planification de reprise
5.3 Problemes d’impl ` ementation
5.4 Resultats de simulation
5.5 Conclusion
6 Conclusion
6.1 Conclusion gen ´ erale
6.2 Perspectives
Télécharger le rapport complet