Algorithme du zéro moment point (ZMP)

En 2020, la robotique se retrouve tout autour de nous, elle peut prendre plusieurs formes et être utilisée dans plusieurs situations. Le domaine de la recherche pour la robotique est très populaire. Une communauté internationale se passionne pour des projets de robotique et se rassemble année après année pour tester ses recherches en situation réelle contre d’autres chercheurs et faire avancer leur recherche plus rapidement. La RoboCup est une compétition qui accueille une partie de cette communauté internationale. Le soccer est le sport le plus joué durant cette compétition. Il y a cependant une petite variante par rapport aux athlètes qui forment l’équipe.

Naova, une équipe d’étudiants dans différents programmes de génie de l’ÉTS, représente maintenant le Canada au Championnat du monde de la RoboCup. Naova participe avec une équipe de joueur de soccer robotique humanoïde autonome.

Jouer au soccer est intuitif pour nous, les humains, grâce à nos habiletés favorisant le travail d’équipe. Il y a également beaucoup d’autres facteurs (communication, toucher, vue, course, stratégies) qui sont utilisés en même temps. En regroupant les recherches individuelles sur la robotique bipède, nous constatons que chacun des aspects est traité pour des cas précis. En considérant la marche, la stabilité, la vision, la collaboration et la communication, il devient possible, avec une bonne intégration, de faire une équipe constituée de robots bipèdes qui jouent au soccer. C’est la mission que le club scientifique de l’École de technologie supérieure Naova a réalisée.

Durant une partie de soccer, la tâche première est de trouver le ballon. Une fois localisé, le robot va commencer à marcher en direction du ballon. Il arrive souvent que deux robots arrivent en même temps sur le ballon. À ce moment, c’est le robot le plus solide sur ses jambes qui va réussir à pousser l’autre joueur et botter le ballon vers le but adverse. Pour éviter cette confrontation, il est possible de miser sur la vitesse. Si le robot arrive avant l’adversaire sur le ballon, il est en mesure de la frapper dans le territoire adverse plus rapidement. Dans les deux scénarios, le meilleur robot est celui qui reste debout le plus longtemps. Dans ce mémoire, la solution aidera les robots de type Nao en situation de jeu. Une solution pour offrir une meilleure stabilité est proposée pour aider les robots à améliorer leur compétitivité de manière générale. Cette solution sera testée et mise en contexte contre d’autres méthodes que les autres équipes utilisent.

La marche du Nao est complexe 

Lorsque nous pensons à la marche d’un robot, nous n’imaginons pas que ce soit un mécanisme complexe. Cependant beaucoup d’éléments doivent être pris en compte pour que le robot enchaine deux pas. Transposer ce mécanisme humain à un robot permet de décortiquer chacun de ses mouvements. Atlas[2], le robot de Boston Dynamics qui fait des acrobaties, le robot de Honda, Asimo qui court de façon surprenante. De plus, il est possible de voir les centaines de robots humanoïdes qui participent à la RoboCup depuis 2004 et qui sont toutes capables de marcher. Ces robots sont tous différents par leur taille et leurs conceptions possèdent des méthodes de programmation différentes.

La méthode de déplacement d’un robot roulant et d’un robot bipède est très différente, car le robot à roues utilise un contact continu avec le sol, tandis que le robot avec deux jambes utilise la force de contact entre le pied et le sol. Il doit donc enchainer les pas pour pouvoir se déplacer. Il peut également avoir en parallèle un module pour la gestion du basculement en cas de chute.

Une fois la marche acquise par le robot, beaucoup de travail reste à faire. Il est possible que le robot évolue sur des terrains différents, avec des obstacles statiques et voir même avec des obstacles dynamiques qui bougent autour de lui. Ainsi, dans ce type de situation, la marche inclut des notions d’équilibre et par conséquent, la robustesse de la méthode choisie est plus importante, car elle aura un impact sur les performances du robot. Imaginer un robot devant traverser un amas de roche pour aller porter des vivres à des survivants. La marche de ce robot en terrain accidenté va être critique et des vies vont dépendre de sa capacité à marcher en équilibre.

En dernier lieu, la linéarisation du mouvement de la marche rend la tâche difficile. Il est plus simple de travailler de manière linéaire. Grâce à une linéarisation du modèle, moins de puissance de calcul est requise. Ce compromis entre robustesse et complexité de calcul est satisfaisant pour le moment.

Le robot 

Un robot est un système alimenté par une source d’énergie. Il évolue dans un environnement qui peut être défini ou indéfini. Il est constitué de plusieurs composantes, dont des capteurs, des microcontrôleurs et des moteurs. Il existe une grande variété pour chaque composante et, en fonction de la situation, il est possible de faire le meilleur choix possible pour le robot.

Le robot capte l’information de son environnement grâce aux capteurs qu’il dispose. Cette information enregistrée est par la suite traitée par son système, en fonction de son programme informatique qui lui transmet les instructions à suivre à la suite de l’interprétation des données. La machine est donc en mesure d’associer le résultat à une action à la fin du traitement. Ce processus répondant à des conditions de programmation envoie un signal et les parties du robot qui attendent ce signal pourront donc être activées pour accomplir une tâche précise grâce à ses actionneurs qui seront mis en marche. Le robot est fonctionnel grâce à son programme informatique qui peut être écrit dans différents langages selon le choix de son concepteur. Les langages les plus populaires sont C, C++, Python et bien d’autres. Le programme du robot est une suite de modules composés de lignes de commande qui représentent un algorithme de base ou complexe. L’information est traitée dans un microordinateur qui est l’élément électronique où les calculs et les décisions sont exécutés. Le microordinateur du robot est souvent associé au cerveau de la machine.

Les algorithmes 

L’algorithme[4] est une méthode pour résoudre un type de problème, on mesure sa performance par sa durée de calcul, c’est-à-dire par sa consommation de mémoire vive et par la précision des résultats obtenus, etc. Les ordinateurs ou robots sur lesquels s’exécutent ces algorithmes ne sont pas infiniment rapides. Souvent ce sont des systèmes embarqués donc le temps de calcul d’une machine reste une ressource limitée, malgré une augmentation constante des performances des microordinateurs. Un algorithme sera performant s’il utilise les ressources dont il dispose avec une économie considérable, c’est-à-dire s’il limite la monopolisation du CPU ou optimise le travail coopératif. Des algorithmes peuvent être utilisés pour optimiser le temps du CPU, la mémoire vive et la consommation électrique. La consommation électrique est souvent un enjeu important lorsqu’un programmeur travaille sur un algorithme et qu’il désire tirer le meilleur du modèle. En effet, l’aspect d’économie électrique est en lien direct avec l’apport environnemental : la diminution ou l’optimisation de la gestion de l’énergie rend un projet plus favorable à la protection de l’environnement.

Le sliding mode 

Le « sliding mode » est une méthode non linéaire de contrôle robuste utiliser fréquemment dans le domaine de la robotique.  Le point bleu représente le système. De ce point le système fait un glissement suivant la flèche bleue, durant la phase qui se nomme « sliding phase », d’où le terme « slide » qui signifie glisse, pour l’apporter à la dynamique désirée. Une fois sur la ligne rouge, le point noir doit se rendre au point d’équilibre représenté par le point jaune. Cependant, entre le point noir et jaune, il y a un phénomène connu sous le nom de « chattering » ou en français de la réticence. Ce phénomène se produit, car il y a un signal qui passe de -1 à 1 dû à la fonction 𝑠𝑖𝑔𝑛(𝑥) qui crée une discontinuation. Cette discontinuation ce produit rapidement sans arrêt et cause du tremblement sur les articulations du robot.

Table des matières

INTRODUCTION
CHAPITRE 1 NOTIONS DE BASE
1.1 Le robot
1.2 Les algorithmes
1.2.1 Le sliding mode
1.3 La marche bipède
1.4 Degrés de liberté
1.5 Conclusion
CHAPITRE 2 REVUE DE LITTÉRATURE
2.1 La robotique bipède existante
2.1.1 Assimo
2.1.2 Atlas
2.1.3 Roméo
2.1.4 Walker
2.1.5 Darwin-OP
2.1.6 Mercury
2.1.7 Valkyrie
2.2 Algorithme de marche autonome
2.3 Conclusion
CHAPITRE 3 MODÉLISATION MATHÉMATIQUE
3.1 Les méthodes populaires
3.2 Présentation du Nao
3.3 Convention Denavit-Hartenberg (DH)
3.4 Cinématique directe
3.5 Cinématique inverse
3.6 Conclusion
CHAPITRE 4 ALGORITHME DU ZÉRO MOMENT POINT (ZMP)
4.1 Zéro moment point (ZMP)
4.2 Le contrôle
4.3 Génération d’un pas
4.4 Conclusion
CHAPITRE 5 ALGORITHME DE MARCHE ROBUSTE ET STABLE
5.1 La méthode
5.2 La solution préliminaire
5.3 Le design du Contrôleur
5.3.1 Estimation de la dynamique
5.3.2 Sliding mode
5.3.3 Transformation du couple en position
5.4 L’expérimentation
5.4.1 DynamicControl
5.4.2 Phase 1 : L’intégration
5.4.3 Phase 2 : La simulation
5.4.4 Phase3 : Test sur le robot
5.5 Les résultats
5.5.1 Les résultats en simulation
5.5.2 Les résultats avec le robot
5.6 Conclusion
CONCLUSION 

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *