Télécharger le fichier pdf d’un mémoire de fin d’études
L’enfance de l’Art de la robotique humanoïde
La robotique humanoïde, quant à elle, se démarque des autres robots mentionnés plus tôt. Alors que les drones et autres robots mobiles commencent à s’enorgueillir d’une qualité quasi industrielle, les robots humanoïdes sont encore au stade de l’enfance. Tant la conception mécanique, que les systèmes de contrôle ou bien encore des systèmes de perception adaptés restent à améliorer pour arriver à obtenir un robot pouvant évoluer de manière réellement autonome.
Poussées par la fiction d’une part et la comparaison à l’homme d’autre part, les attentes pour ce type de technologies sont importantes alors que les résultats pratiques restent difficiles à obtenir. L’instabilité inhérente à la locomotion bipède et le nombre important de degrés de liberté – de possibilité de mouvement – rendent les schémas de contrôle particulièrement difficiles à concevoir. De nombreuses questions restent ouvertes telles que : comment réagir à une perturbation extérieure pendant la marche – le robot glisse ou bien il est poussé – ? Quelle conception mécanique permettrait d’assurer à la fois une résistance aux impacts, pour la course, le saut, mais également une grande vélocité pour d’autres usages, comme taper dans un ballon ? Quels sont les modèles optimaux pour générer des mouvements stables le plus rapidement possible ? Répondre à toutes ces questions, qui ne sont pas uniquement des questions algorithmiques, est primordial pour arriver à concevoir un robot humanoïde utile et autonome.
Les robots humanoïdes se divisent en deux catégories : ceux de petite taille comme le robot Nao d’Aldebaran Robotics (Wikipedia, 2011) et les humanoïdes de grande taille tels que ceux développés dans le cadre du projet HRP ou bien encore par les sociétés avec le robot Partner ou Honda avec robot Asimo. Les problématiques posées par les deux types d’humanoïde sont assez différentes.
Les robots de petite taille utilisent des actionneurs moins puissants, de qualité moindre, sont d’une conception moins précise par ils utilisent souvent des squelettes en plastique plutôt qu’en métal pour des questions de coût. Leurs capacités de calcul sont également souvent très limitées au point qu’un ordinateur externe est souvent nécessaire pour les commander. Les enjeux sont donc ici comment limiter les calculs nécessaires à bord du robot étant donné les fortes contraintes sur la capacité de calcul, comment prendre en considération les imperfections dans la modélisation du robot, la flexibilité de ses différentes parties ou bien encore la mauvaise précision de ses actionneurs. L’objectif étant de fournir à moyen terme un robot compagnon réalisant des tâches simples comme jouer avec un humain ou fournir des services simples comme la télésurveillance.
Les capacités de manipulation de ces humanoïdes sont, à l’heure actuelle, très limitées, voire inexisantes.
Au contraire, les grands humanoïdes sont extrêmement onéreux et composés de pièces usinées très précisément et d’actionneurs extrêmement performants.
De ce fait, les problèmes d’identification de modèles ne se posent qu’à la marge et le mouvement réel du robot est très proche de sa simulation faisant l’hypothèse de mouvements de corps rigides. Les capacités de calcul sont également plus importantes bien qu’inférieures à ce que l’on peut trouver dans un robot mobile où un poids important ne pose pas de problème particulier. Selon les modèles, ces robots peuvent réaliser des tâches de manipulation complexe. Les défis posés par ces robots sont différents : ils sont plus lourds, plus grands et donc toute chute leur est généralement fatale. La commande à gain fort courante sur ce type de système rend également le comportement du système potentiellement dangereux : pour atteindre sa consigne, le robot aura tendance à appliquer le couple maximal de ses actionneurs, quitte à s’endommager lui-même ou à blesser un humain se trouvant à proximité. Ils restent donc, à l’heure actuelle, des outils de recherches dangereux impropres à une utilisation à proximité d’humains.
Le projet japonais HRP
La totalité des recherches effectuées durant cette thèse et qui sont décrites ici ont été validées sur la plate-forme robotique HRP-2 (Kaneko et collab., 2004) du LAAS. Une version alternative est illustré par la Figure 1.3. Le robot humanoïde HRP-2 “Promet” est un robot humanoïde japonais mesurant 154cm et pesant 58kg. Il dispose de deux jambes à six degrés de liberté, de deux bras à six degrés et de deux mains à un degré de liberté commandant l’ouverture de la pince composant chaque préhenseur. Deux degrés de liberté sont affectés au mouvement de la tête et les deux derniers actionnent l’articulation du torse du robot. Cette dernière étant une caractéristique unique de cette plate-forme.
Le nombre total de degrés de liberté du système est donc de 30. Les capteurs de ce robot comprennent quatre capteurs de force six-axes aux chevilles et au poignet, ainsi qu’une centrale inertielle dans le torse mesurant la vitesse angulaire et l’accélération linéaire du torse. Un système de caméras composé de deux paires stéréo situées dans la tête est également présent. Une première paire possède des objectifs grand-angles permettant de percevoir une large portion de l’environnement entourant le robot tandis que la seconde a un angle de vue plus étroit, permettant une bonne précision lors de la manipulation. Ce robot dis12 pose d’un système absorbant les chocs dans chaque cheville afin de protéger la mécanique des impacts réalisés pendant la marche. Les traitements embarqués sont réalisés par deux ordinateurs reliés entre eux par un réseau Ethernet. La connexion avec l’extérieur est assurée par un point d’accès WiFi.
Ce robot conçu en 1998 a été suivi du robot HRP-3 en 2007, du robot HRP- 4C en 2009 et du robot HRP-4 en 2010. HRP-3 s’est démarqué en étant le premier robot humanoïde résistant à l’eau ouvrant la porte à une utilisation de ces robots en extérieur. HRP-4c est un gynoïde, c’est-à-dire un robot humanoïde possédant l’apparence d’une femme. Les applications ciblent le domaine du mannequinat et du divertissement plus généralement. Le dernier robot de la série, HRP-4 est, quant à lui, plus léger tout en conservant sept degrés de liberté pour les bras et deux degrés de liberté pour les mains. Les différents modèles sont illustrés par la Figure 1.2.
Contributions, de la génération de mouvements à leur exécution
Le maître mot de ces trois ans et demi est finalement, et cela ne peut que se ressentir à la lecture de ce manuscrit, la polyvalence. Comme dans toute thèse expérimentale, il a été nécessaire de tenter de mettre en pratique des idées, de A à Z. C’est à la fois formateur et passionnant, mais m’a conduit à utiliser de très nombreux outils, algorithmes de l’État de l’Art et à les comprendre afin de pouvoir les intégrer à l’approche que j’ai souhaité développer. Le travail réalisé étant principalement de faire communiquer les idées entre elles : comment un algorithme de vision peut-il servir la commande ? Comment les données capteur peuvent-elles être utilisées par différents composants ? Autant de questions qui, en terme d’ingénierie logicielle, consistent à lier des boîtes entre elles, encapsulant autant d’algorithmes et de stratégies de décision différentes. Il est toutefois difficile d’argumenter sur la pertinence des “flèches” sans expliquer au préalable ce que contiennent les “boîtes”, d’autant que si certaines techniques sont classiques en robotique, d’autres sont issues des recherches du groupe GEPETTO et ne peuvent être considérées comme allant de soi. Le choix réalisé lors de la rédaction a donc été d’expliquer progressivement comment réaliser des scénarii complexes avec un robot humanoïde, de la théorie, à la pratique, mes contributions se situant davantage dans ce spectre. Le premier chapitre de ce manuscrit traite d’un problème particulier abordé dans le cadre de cette thèse : la représentation informatique des problèmes d’optimisation numérique. Ce problème peut sembler distinct de la robotique humanoïde, mais les techniques d’optimisation sont devenues un socle supportant tant d’algorithmes utiles qu’on ne peut pas éluder la question de la représentation de ces problèmes. L’objectif ici est de s’appuyer sur les caractéristiques des langages de programmation modernes, tel que le C++ afin de pouvoir définir un problème d’optimisation une fois puis de pouvoir le transmettre à différents solveurs de façon transparente. Une application robotique simple valide cette approche, mais la contribution majeure reste la formulation et la modélisation informatique du problème. Le second chapitre explique pas à pas les techniques de génération de mouvement et d’exécution sur le robot. Ces techniques font partie de l’État de l’Art et il n’y a pas d’apport original à ce niveau. Cependant, le contrôleur construit sur ces techniques et permettant de suivre des trajectoires tout en incorporant les données capteur est un travail totalement original et sur lequel, à notre connaissance, aucun article
antérieur n’a été publié. Le troisième chapitre est divisé en deux : tout d’abord la description informatique d’une pile de tâches asservie est un apport original.
La suite du chapitre est dédiée à la localisation utilisant la vision sur un robot humanoïde. Cette partie n’est pas nouvelle en soi, car des résultats similaires ont déjà été publiés dans ce domaine, mais l’intégration de la localisation au schéma de contrôle proposé dans le Chapitre 3 est un travail original. Le dernier chapitre traite de l’intégration des différents composants sur notre plate-forme robotique. Dans ce chapitre, la totalité des algorithmes proposés font, soit partie de l’État de l’Art, soit ont été conçus par d’autres équipes partenaires du LAAS, notamment l’équipe LAGADIC de l’IRISA à Rennes. L’apport original de cette partie consiste à démontrer comment on peut construire une architecture robotique complète en utilisant des algorithmes existant afin d’atteindre des comportements de plus haut niveau.
Optimisation numérique et robotique
Introduction à l’optimisation numérique
La robotique s’appuie sur différents outils mathématiques pour résoudre les problèmes auxquels elle se trouve confrontée. Parmi ces outils, l’optimisation numérique figure à une place de choix. L’optimisation numérique est une branche des mathématiques permettant de choisir automatiquement la meilleure solution parmi un ensemble de solutions possibles. Les applications possibles couvrent des domaines variés de la recherche opérationnelle aux statistiques et bien sûr la robotique. Dans ce domaine particulier, l’optimisation numérique permet par exemple d’optimiser un mouvement pour en améliorer certaines caractéristiques ou bien encore trouver la prochaine commande à envoyer aux moteurs du robot afin de réaliser une tâche donnée.
Résoudre un problème d’optimisation numérique signifie trouver les meilleurs paramètres résolvant le problème. Par meilleurs, il faut entendre les paramètres minimisant la valeur d’une fonction de coût. Intuitivement, on peut se représenter cette fonction comme un indicateur de la “qualité” de la solution trouvée.
Une solution présentant un coût fort sera donc peu satisfaisante tandis qu’une solution présentant un coût faible sera, elle, très attrayante. Tout le raisonnement est ensuite fondé sur la différentiabilité de cette fonction de coût. Plus simplement, près d’une mauvaise solution, il n’y aura que des solutions légèrement meilleures et légèrement pires, mais jamais trop différentes. De ce fait, il “suffit” de chercher dans quelle direction aller pour se diriger vers les meilleures solutions pour finir par les trouver. Cette approche implique une limitation majeure : si la fonction de coût n’est pas convexe, on ne trouvera pas forcément la meilleure solution globale – parmi toutes les solutions – mais la meilleure solution locale. C’est-à-dire qu’au voisinage de cette solution, toutes les autres solutions sont de moins bonne qualité. Dans cette situation, tous les solveurs arrêtent leur recherche, mais rien ne garantit qu’ailleurs il n’existe pas une autre solution de meilleure qualité.
Ce raisonnement permet de trouver les meilleurs paramètres pour un problème donné, mais il est rare qu’une fonction de coût seule puisse capturer complètement un problème donné. En fonctionnant de manière indépendante du problème sous-jacent, on confère aux solveurs une grande polyvalence. Mais par là même, il devient nécessaire d’expliciter sous quelles conditions une solution au problème donné est acceptable. Prenons un exemple : pour aller d’un point ? à un point ? le plus rapidement possible, se déplacer avec une vitesse infinie est sans aucun doute la solution optimale. Cependant, une telle réponse ne présente guère d’intérêt dans la mesure où aucun système physique ne sera en mesure de l’exécuter.
Deux stratégies peuvent alors être choisies. La première est d’exprimer directement dans la fonction de coût cette information supplémentaire. Dans le cadre de l’exemple précédemment cité, on pourrait concevoir une fonction de coût réalisant la somme du temps de déplacement et de la vitesse moyenne du robot. De ce fait, une vitesse trop grande pénalise le résultat et par ce biais, le solveur tentera plutôt de transformer la trajectoire géométrique plutôt que de jouer sur la vitesse de déplacement du système. La limite de cette approche est simple à comprendre : au fur et à mesure que les biais s’accumulent – le plus souvent en sommant les uns aux autres –, le coût initial peut se retrouver ignoré par le solveur, car numériquement négligeable. La fonction de coût n’a alors plus aucune justification physique et ses variations peuvent devenir de plus en plus difficiles à analyser pour le solveur. Une seconde solution consiste à ajouter des contraintes au problème. Ces contraintes sont exprimées sous la forme d’équations ou d’inéquations déterminant si une solution donnée est une solution acceptable. En robotique, des contraintes très courantes sont les bornes sur les butées articulaires. Il est rare sur un robot que les axes puissent se déplacer de manière totalement libre. De ce fait, il est courant d’ajouter des contraintes inégalités spécifiant que telle ou telle valeur encodant la position d’un degré de liberté doit rester dans un intervalle donné.
En exprimant comment résoudre un problème pratique via la construction d’une fonction de coût ? et de contraintes ?? > 0, on modélise le problème afin qu’il soit soluble par optimisation numérique. Ce procédé n’est pas trivial, car la qualité de la modélisation impacte lourdement à la fois les temps de calcul et la qualité du résultat final.
|
Table des matières
1 Introduction
1.1 Les enjeux de la robotique
1.1.1 État de la robotique en 2012
1.1.2 L’enfance de l’Art de la robotique humanoïde
1.1.3 Le projet japonais HRP
1.2 Contributions
2 Généricité et optimisation
2.1 Optimisation numérique et robotique
2.1.1 Introduction à l’optimisation numérique
2.1.2 Modélisation mathématique d’un problème
2.1.3 Zoologie des solveurs
2.2 Difficultés de modélisation
2.2.1 Typage, programmation orientée objet et familles de types
2.2.2 Modélisation informatique du problème
2.3 Exemples de formalisation de classes de problème
2.3.1 Moindres carrés linéaires
2.3.2 Optimisation non linéaire (gradient uniquement)
2.3.3 Optimisation non linéaire (gradient et hessien)
2.4 Discussion
2.5 RobOptim
2.5.1 RobOptim core et ses plug-ins
2.5.2 Les solveurs
2.5.3 Optimisation de trajectoires avec RobOptim
2.6 Scénario d’utilisation
2.6.1 Définition de la trajectoire et fonction de coût
2.6.2 Contraintes
2.6.3 Résolution et résultats expérimentaux
2.7 Conclusion
3 Suivi de trajectoire
3.1 Génération de mouvements
3.1.1 Structure robotique
3.1.2 Cinématique directe et inverse
3.1.3 Mouvements dynamiques d’un corps dans l’espace
3.1.4 Le ZMP comme critère d’équilibre
3.1.5 Génération d’une trajectoire de marche
3.1.6 Exécution d’une trajectoire
3.1.7 Limites de la boucle ouverte
3.1.8 Conclusion
3.2 État de l’Art
3.2.1 Travaux de référence en robotique
3.2.2 Modèles pour la marche dynamique
3.2.3 Contrôleurs pour robots humanoïdes
3.2.4 Exécution de trajectoires asservies
3.3 Correction de mouvement temps réel
3.3.1 Suivi de trajectoires : des robots mobiles aux humanoïdes
3.4 Suivi de trajectoire
3.5 Résultats expérimentaux
3.6 Conclusion
4 Primitives de mouvement
4.1 Problématique
4.2 État de l’Art
4.3 Description d’un mouvement robotique complexe
4.3.1 Primitive de mouvement
4.3.2 Primitive de locomotion
4.3.3 Langage de description
4.4 Scénarii de mouvements
4.4.1 Locomotion simple
4.4.2 Locomotion asservie
4.4.3 Scénario d’atteinte avec équilibre quasi statique
4.4.4 Scénario d’asservissement visuel de la tête
4.5 De la difficulté à localiser un robot humanoïde
4.5.1 Analyse de la précision du système de localisation
4.5.2 Résultats de la localisation utilisant la vision sur le robot humanoïde HRP-2
4.6 Conclusion
5 Architecture robotique
5.1 Architecture
5.1.1 Contrôle
5.1.2 Vision
5.1.3 Capture de mouvement
5.1.4 Diagnostics et sûreté
5.2 Simulation transparente
5.3 Modélisation unifiée d’un système robotique
5.3.1 Description d’un robot
5.3.2 Modélisation des préhenseurs du robot HRP-2
5.3.3 Prise en charge des autocollisions
5.3.4 Définition des contacts autorisés
5.3.5 Adaptation du modèle pour le contrôle et la planification
5.4 Applications robotiques
5.4.1 Mise en place d’une application
5.4.2 Difficultés récurrentes
5.4.3 Bonnes pratiques pour la robotique
5.5 Conclusion
6 Conclusion
6.1 Conclusion
6.1.1 Bilan
Liste des figures
Liste des tableaux
Bibliographie
Index
Télécharger le rapport complet