robot bipède

image principale robot bipède

Difficulté:

robot bipède low cost DIY


Ce tutoriel va vous permettre de réaliser un robot bipède capable de marche, s accroupir, tourner….
En bref un robot bipède capable de se déplacer.


J ai souhaité me lancer dans ce projet car la plupart des kits sont assez cher et c est bien plus marrant de faire son propre robot que de monter un kit.
Faire marcher un robot bipède n est pas simple, et je n y connaissais pas grand chose que je me suis lancé dans cette aventure. Mais voila, il marche, il est open source et est très abordable comparé aux autres robots bipède.


Mon objectif n était pas de me ruiner, je voulais juste faire un bipède à partir de servo moteurs vraiment pas cher, une carte arduino (arduino mini) et c est tout!
Il porte sa source d énergie, une batterie 2 cellules, un module Bluetooth (HC06) pour lui envoyer des commandes et embarque une petite centrale inertielle (MPU6050).


La première version utilisait des servomoteurs SG90, très dépendus et simples d utilisation. J ai récemment remplacé ces servos par des MG90, ils ont le meme encombrement mais juste une pignonerie en métal pour un réducteur un peu plus robuste.


Il n y a pas de théorie compliquée derrière ce robot. Il marche et c est tout! Il est très difficile de faire marcher un robot bipède. La première étape consiste souvent à modéliser son robot. Souvent cette étape est tres compliquée et on s arrète à ca. Ce petit robot marche, je me suis inspiré de plein de robots vus sur internet, des articles des thèses… Il marche, juste à partir de commande très simples. C est un premier pas…

Matériel :

Budget : Non défini

  • J ai utilisé:
  • – une carte arduino pro mini (ou clone)
  • – 8 servo moteur Towerpro MG90, les SG90 fonctionnent aussi, mais ils ont un réducteur en plastiques qui viellit assez vite. La version métal se trouve à 4 euros contre 3 euros pour la version plastique. Pour un euro par servo, ca vaut le cout.
  • – un module BT, HC06 qui permet une liaison série sans fil avec l environnement d arduino pour envoyer les commandes. C est important, car pour marcher efficacement il faut que le robot soit libre de ses mouvements et les fils ont tendance à encombrer sa dynamique et il est difficile de régler les paramètres correctement.
  • – 2 régulateurs de tension 5V, LM7805. J utilise une batterie en 7,2V (2 cellules), cette tension est trop forte pour alimenter directement les servos, le PID n est pas fait pour, ils ont tendance à osciller et dépasser leur consigne. On ne peut pas non plus les brancher au régulateur de la carte arduino car elle ne peux pas déliver assez de puissance. J en ai mis deux, 1 pour 4 servo et ce se passe bien.
  • – Un module MPU6050, c est une petite centrale inertielle vraiment abordable (quelques euros), elle ne sert pas vraiment dans ce projet, mais on peut s amuser à stabiliser le bobot alors que le sol s incline….Car le temps de réponse est toujours très lent par rapport à ce que l on voudrait.

Etape 1 : Mécanique


Le robot a été dessiné sous 123D design, cest un logiciel de CAO gratuit et assez simple à utiliser. Il gère bien pour les pièces uniques mais est un peu moins bien adapté pour les assemblages. Les étudiants peuvent avoir accès a fusion 360 qui marche très bien pour les assemblages. Il ressemble beaucoup à 123D design, vous ne serez pas perdus. Si vous souhaitez les fichiers bruts, contactez moi.

Les fichiers sont en IGES (si vous voulez les modifier) et en STL si vous souhaitez juste les imprimer.

Il ny a qu une seule jambe de dessinée, il faut faire une symétrie pour avoir la gauche en fonction de la droite au moment de l impression

Etape 2 : Electronique

Les composants utilisés sont assez standards, vous trouverez sur internet plein d exemples pour connecter arduino avec
– le module HC06 http://tiptopboards.free.fr/arduino_forum/viewtopic.php?f=2&t=57
– la centrale MPU6050 https://openclassrooms.com/forum/sujet/arduino-connaitre-l-inclinaison-avec-un-mpu-6050

Rien de spécial pour ces deux composants.
Par contre, le point important (simple) mais a faire c est de bien séparer les alimentations de puissance de l alimentation de la carte arduino (voir shéma) sinon quand les servos vont tirer de la puissance, la tension de la batterie peux chuter et la carte arduino va redemarrer

Etape 3 : Programmation


Avant de pouvoir marcher, il faut déjà réussir a soulever les pieds droit et gauche successivement.
Ce robot n a qu un seul degré de liberté au niveau des hanches. Le mouvement dans le plan frontal (de face) n est obtenu qu a partir des chevilles.
Ce mouvement est réalisé à partir d un sinus autour de la position moyenne des chevilles.
Il a deux paramètres : l amplitude du mouvement (KML) et le temps d un cycle ou le temps entre chaque % de cycle
myservo7.write(FG-KML*sin(2*3.14*t/100)); // left foot
FG est la position neutre de la cheville dans le plan frontal.
C est la courbe noire sur la figure. Ce sinus définit un cycle. On parle du cycle de marche, ca correspond au temps entre deux posé successif du meme talon.
On joue avec un paramètre T, qui est le temps en miliseconde entre chaque pourcent du cycle. En jouant sur l amplitude et le temps, le robot se met a osciller sur son pied droit puis son pied gauche. Attention, si l amplitude est trop forte, rien ne va empécher votre robot de tomber sur le coté!
Si le temps T est mal réglé, la commande ne sera pas en phase avec la dynamique du robot, vous verrez, ce n est pas joli. Il faut donc bien régler expérimentalement ces paramètres.
Une fois que le robot sait bien passé du pied droit au pied gauche, on peut commencer à avancer les jambes correctement en fonction du pourcentage de cycle.
Les mouvements de la hanche sont calculés à chaque instant en fonction du pourcentage du cycle de marche à partir des équations (simples) qui sont programmées dans la fonction setkin() et qui snt représentées sur l image en bleu sur l’image.
Le genou est en extension complète pendant toute la phase d appui et fléchit pendant la phase d oscillation avec une amplitude déterminée avec le paramètre KSW (K swing) en rouge sur l’image.
La hanche fléchit en phase d appui et en phase oscillante à partir d un paramètre KST (K stance) qui va définir la longueur de pas. Plus les pas seront grand, plus il faudra donner de l énergie a votre robot et donc ajuster T et KML.

Enfin, la flexion de la cheville est juste l’inverse de la hanche plus le genou. Ce qui permet de conserver le pied paralelle au sol quelque soit le mouvement de la hanche et du genou. (le tibia et le femur ont une longueur voisine)

Finalement, le robot marchera (sans tomber) s’il respecte le critère du ZMP (Zero Moment Point). C’est dire qu’il existe un points quelque part entre ses pied ou le moment dynamique du robot s’annule. Ce critère n’est pas vérifé dans ce robot en temps réel. C’est en ajustant les paramètres KML, T, KST et KSW que l’on arrive a maintenir une marche dynamique stable. Ce qu’il est important de comprendre c’est que le temps compte…. Vous n’arriveriez jamais a marcher infiniement lentement. Un robot non plus, il faut que l’amplitude de ses oscillations (notement dans le plan frontal) soit en accord avec sa vitesse. Plus vous marchez vite, et moins vous avez a balancer votre centre de gravite au dessus de vos pied. Pour ce robot, ben c’est pareil!

"1200" height="675" src="https://www.youtube.com/embed/HQ7iegQSN9E?feature=oembed&wmode=opaque&showinfo=0" style="border: none" allowfullscreen>

Bonjour Superbe travail sur ce robot bipède. Est-il possible d'avoir les fichiers 3D (.stl) de ce robot pour pouvoir le refaire ? Merci Cordialement M. FREARD

Bonjour, bravo pour cette réalisation ! Vous ne parlez pas de la manière dont les pièces ont été fabriquées, est-ce de l'impression 3D ? Si oui quel en a été le budget ?

Ces tutoriels devraient vous plaire

vignette Arduino et Porte automatique de poulailler
Arduino et Porte automatique de poulailler
vignette Connecter un  écran LCD en I2C
Connecter un écran LCD en I2C
vignette fabrication de circuits imprimés facile
fabrication de circuits imprimés facile
avaatar bonnetx

bonnetx

Suivre

Vues: 4400
Mis en favoris: 8

Découvrez d'autres tutoriels de

bonnetx

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers