Table des matières:

Bipède robotique contrôlé par Arduino : 13 étapes (avec photos)
Bipède robotique contrôlé par Arduino : 13 étapes (avec photos)

Vidéo: Bipède robotique contrôlé par Arduino : 13 étapes (avec photos)

Vidéo: Bipède robotique contrôlé par Arduino : 13 étapes (avec photos)
Vidéo: Fastest 100 meters by a bipedal robot - 24.73 seconds 🤖 2024, Novembre
Anonim
Image
Image
Bipède robotique contrôlé par Arduino
Bipède robotique contrôlé par Arduino
Bipède robotique contrôlé par Arduino
Bipède robotique contrôlé par Arduino

Projets Fusion 360 »

J'ai toujours été intrigué par les robots, en particulier ceux qui tentent d'imiter les actions humaines. Cet intérêt m'a amené à essayer de concevoir et de développer un bipède robotique qui pourrait imiter la marche et la course humaines. Dans ce Instructable, je vais vous montrer la conception et l'assemblage du robot bipède.

L'objectif principal lors de la construction de ce projet était de rendre le système aussi robuste que possible, de sorte qu'en expérimentant diverses allures de marche et de course, je n'aurais pas à m'inquiéter constamment des défaillances matérielles. Cela m'a permis de pousser le matériel à sa limite. Un objectif secondaire était de rendre le bipède relativement peu coûteux en utilisant des pièces de loisirs facilement disponibles et l'impression 3D, laissant la place à d'autres mises à niveau et extensions. Ces deux objectifs combinés fournissent une base solide pour effectuer diverses expériences, permettant de développer le bipède selon des exigences plus spécifiques.

Continuez pour créer votre propre robot bipède contrôlé par Arduino et votez dans le "Concours Arduino" si vous avez aimé le projet.

Étape 1: Processus de conception

Procédé de design
Procédé de design
Procédé de design
Procédé de design
Procédé de design
Procédé de design

Les jambes humanoïdes ont été conçues dans le logiciel de modélisation 3D gratuit Fusion 360 d'Autodesk. J'ai commencé par importer les servomoteurs dans la conception et j'ai construit les pieds autour d'eux. J'ai conçu des supports pour le servomoteur qui fournissent un deuxième point de pivot diamétralement opposé à l'arbre du servomoteur. Le fait d'avoir des arbres doubles à chaque extrémité du moteur confère une stabilité structurelle à la conception et élimine toute inclinaison pouvant se produire lorsque les pieds sont conçus pour supporter une certaine charge. Les maillons ont été conçus pour contenir un roulement tandis que les supports utilisaient un boulon pour l'arbre. Une fois les maillons montés sur les arbres à l'aide d'un écrou, le roulement fournirait un point de pivot lisse et robuste sur le côté opposé de l'arbre du servomoteur.

Un autre objectif lors de la conception du bipède était de garder le modèle aussi compact que possible pour utiliser au maximum le couple fourni par les servomoteurs. Les dimensions des maillons ont été conçues pour obtenir une grande amplitude de mouvement tout en minimisant la longueur totale. Les rendre trop courts provoquerait la collision des supports, réduisant l'amplitude de mouvement, et les rendre trop longs exercerait un couple inutile sur les actionneurs. Enfin, j'ai conçu le corps du robot sur lequel l'Arduino et d'autres composants électroniques seraient montés.

Remarque: Les pièces sont incluses dans l'une des étapes suivantes.

Étape 2: Le rôle de l'Arduino

Le rôle de l'Arduino
Le rôle de l'Arduino

Un Arduino Uno a été utilisé dans ce projet. L'Arduino était chargé de calculer les trajectoires de mouvement des différentes allures testées et a demandé aux actionneurs de se déplacer à des angles précis à des vitesses précises pour créer un mouvement de marche fluide. Un Arduino est un excellent choix pour développer des projets en raison de sa polyvalence. Il fournit un tas de broches IO et fournit également des interfaces telles que série, I2C et SPI pour communiquer avec d'autres microcontrôleurs et capteurs. L'Arduino fournit également une excellente plate-forme pour le prototypage et les tests rapides et donne également aux développeurs une marge d'amélioration et d'évolutivité. Dans ce projet, d'autres versions incluront une unité de mesure inertielle pour le traitement des mouvements tels que la détection de chute et la locomotion dynamique en terrain accidenté et un capteur de mesure de distance pour éviter les obstacles.

L'IDE Arduino a été utilisé pour ce projet. (Arduino fournit également un IDE basé sur le Web)

Remarque: Les programmes du robot peuvent être téléchargés à partir de l'une des étapes suivantes.

Étape 3: Matériel nécessaire

Les matériaux nécessaires
Les matériaux nécessaires
Les matériaux nécessaires
Les matériaux nécessaires
Les matériaux nécessaires
Les matériaux nécessaires
Les matériaux nécessaires
Les matériaux nécessaires

Voici la liste de tous les composants et pièces nécessaires pour fabriquer votre propre robot bipède alimenté par Arduino. Toutes les pièces doivent être couramment disponibles et faciles à trouver.

ÉLECTRONIQUE:

Arduino Uno x 1

Servomoteur Towerpro MG995 x 6

Perfboard (taille similaire à l'Arduino)

Broches d'en-tête mâles et femelles (environ 20 de chaque)

Fils de cavalier (10 pièces)

IMU MPU6050 (en option)

Capteur à ultrasons (en option)

MATÉRIEL:

Roulement de planche à roulettes (8x19x7mm)

écrous et boulons M4

Filament d'imprimante 3D (si vous ne possédez pas d'imprimante 3D, il devrait y avoir une imprimante 3D dans un espace de travail local ou les impressions peuvent être effectuées en ligne pour un prix assez bas)

En excluant l'Arduino et l'imprimante 3D, le coût total de ce projet est de 20$.

Étape 4: Pièces imprimées en 3D

Pièces imprimées en 3D
Pièces imprimées en 3D
Pièces imprimées en 3D
Pièces imprimées en 3D
Pièces imprimées en 3D
Pièces imprimées en 3D
Pièces imprimées en 3D
Pièces imprimées en 3D

Les pièces requises pour ce projet devaient être conçues sur mesure, une imprimante 3D a donc été utilisée pour les imprimer. Les impressions ont été réalisées à 40% de remplissage, 2 périmètres, une buse de 0,4 mm et une hauteur de couche de 0,1 mm avec du PLA, couleur de votre choix. Vous trouverez ci-dessous la liste complète des pièces et les STL pour imprimer votre propre version.

Remarque: À partir de là, les pièces seront référencées en utilisant les noms de la liste.

  • support de servo de pied x 1
  • miroir de support de servo de pied x 1
  • support de servo de genou x 1
  • miroir de support de servo de genou x 1
  • support de servo de pied x 1
  • miroir de support de servo de pied x 1
  • lien de roulement x 2
  • lien de klaxon d'asservissement x 2
  • lien de pied x 2
  • pont x 1
  • support électronique x 1
  • entretoise électronique x 8 (en option)
  • espace de palonnier x 12 (facultatif)

Au total, hors entretoises, il y a 14 pièces. Le temps d'impression total est d'environ 20 heures.

Étape 5: Préparation des supports de servomoteurs

Préparation des supports de servo
Préparation des supports de servo
Préparation des supports de servo
Préparation des supports de servo
Préparation des supports de servo
Préparation des supports de servo

Une fois toutes les pièces imprimées, vous pouvez commencer par configurer les servos et les supports de servo. Enfoncez d'abord un roulement dans le support du servo de genou. L'ajustement doit être bien ajusté, mais je recommanderais de poncer un peu la surface intérieure du trou au lieu de forcer le roulement, ce qui pourrait risquer de casser la pièce. Passez ensuite un boulon M4 dans le trou et serrez-le à l'aide d'un écrou. Ensuite, saisissez le lien de pied et fixez-y un palonnier circulaire à l'aide des vis fournies. Fixez la liaison du pied au support du servo de genou à l'aide des vis que vous utiliserez pour fixer également le servomoteur. Assurez-vous d'aligner le moteur de sorte que l'arbre soit du même côté que le boulon que vous avez fixé plus tôt. Enfin, fixez le servo avec le reste des écrous et boulons.

Faites de même avec le support de servo de hanche et le support de servo de pied. Avec cela, vous devriez avoir trois servomoteurs et leurs supports correspondants.

Remarque: je fournis des instructions pour construire une jambe, l'autre est simplement en miroir.

Étape 6: fabrication des pièces de liaison

Faire les pièces de liaison
Faire les pièces de liaison
Faire les pièces de liaison
Faire les pièces de liaison
Faire les pièces de liaison
Faire les pièces de liaison

Une fois les supports assemblés, commencez à faire les liens. Pour réaliser le lien de roulement, poncez à nouveau légèrement la surface intérieure des trous pour le roulement puis poussez le roulement dans le trou des deux côtés. Assurez-vous de pousser le roulement jusqu'à ce qu'un côté soit au même niveau. Pour construire la liaison du palonnier de servo, saisissez deux palonniers de servo circulaires et les vis fournies. Placez les cornes sur l'impression 3D et alignez les trous, puis vissez la corne sur l'impression 3D en fixant la vis du côté de l'impression 3D. Je recommande d'utiliser une entretoise de palonnier imprimé en 3D pour ces vis. Une fois les liens construits, vous pouvez commencer à assembler la jambe.

Étape 7: Assemblage des pieds

Assemblage des jambes
Assemblage des jambes
Assemblage des jambes
Assemblage des jambes
Assemblage des jambes
Assemblage des jambes
Assemblage des jambes
Assemblage des jambes

Une fois les liens et les supports assemblés, vous pouvez les combiner pour construire la jambe du robot. Tout d'abord, utilisez le lien de servocommande pour attacher ensemble le support de servo de hanche et le support de servo de genou. Remarque: ne vissez pas encore le klaxon au servo car il y a une étape de configuration dans l'étape suivante et ce serait un inconvénient si le klaxon était vissé sur le servomoteur.

Sur le côté opposé, montez la biellette de roulement sur les boulons saillants à l'aide d'écrous. Enfin, fixez le support de servo de pied en insérant le boulon saillant à travers le roulement sur le support de servo de genou. Et fixez l'arbre du servo au palonnier connecté au support du servo de genou de l'autre côté. Cela peut être une tâche délicate et je recommanderais une deuxième paire de mains pour cela.

Répétez les étapes pour l'autre jambe. Utilisez les images jointes à chaque étape comme référence.

Étape 8: PCB et câblage personnalisés

PCB et câblage personnalisés
PCB et câblage personnalisés
PCB et câblage personnalisés
PCB et câblage personnalisés
PCB et câblage personnalisés
PCB et câblage personnalisés

Ceci est une étape optionnelle. Pour rendre le câblage plus soigné, j'ai décidé de créer un PCB personnalisé en utilisant une carte de perforation et des broches d'en-tête. Le PCB contient des ports pour connecter directement les fils du servomoteur. De plus, j'ai également laissé des ports supplémentaires au cas où je souhaiterais étendre et ajouter d'autres capteurs tels que des unités de mesure inertielle ou des capteurs de distance à ultrasons. Il contient également un port pour la source d'alimentation externe requise pour alimenter les servomoteurs. Une connexion par cavalier est utilisée pour basculer entre l'alimentation USB et externe pour l'Arduino. Montez l'Arduino et le PCB de chaque côté du support électronique à l'aide de vis et des entretoises imprimées en 3D.

Remarque: assurez-vous de débrancher le cavalier avant de connecter l'Arduino à votre ordinateur via USB. Ne pas le faire peut endommager l'Arduino.

Si vous décidez de ne pas utiliser le PCB et d'utiliser à la place une maquette, voici les connexions servo:

  • Hanche gauche >> broche 9
  • Hanche droite >> broche 8
  • Genou gauche >> broche 7
  • Genou droit >> broche 6
  • Pied gauche >> broche 5
  • Pied droit >> broche 4

Si vous décidez de faire en sorte que le PCB suive le même ordre que ci-dessus en utilisant les ports du PCB de droite à gauche avec le port IMU vers le haut. Et utilisez des cavaliers mâles à femelles réguliers pour connecter le PCB à l'Arduino en utilisant les numéros de broche ci-dessus. Assurez-vous de connecter également la broche de terre et de créer le même potentiel de terre et la même broche Vin lorsque vous décidez de l'exécuter sans alimentation USB.

Étape 9: Assemblage du corps

Assemblage du corps
Assemblage du corps
Assemblage du corps
Assemblage du corps
Assemblage du corps
Assemblage du corps

Une fois les deux jambes et l'électronique assemblés, combinez-les pour construire le corps du robot. Utilisez la pièce de pont pour relier les deux jambes ensemble. Utilisez les mêmes trous de montage sur le support de servo de hanche et les écrous et boulons qui maintiennent le servomoteur. Enfin, connectez le support électronique au pont. Alignez les trous sur le pont et le support électronique et utilisez des écrous et des boulons M4 pour faire le joint.

Reportez-vous aux images ci-jointes pour obtenir de l'aide. Avec cela, vous avez terminé la construction matérielle du robot. Ensuite, passons au logiciel et donnons vie au robot.

Étape 10: Configuration initiale

Configuration initiale
Configuration initiale
Configuration initiale
Configuration initiale
Configuration initiale
Configuration initiale

Ce que j'ai remarqué lors de la construction de ce projet, c'est que les servomoteurs et les cornes n'ont pas besoin de s'aligner parfaitement pour rester relativement parallèles. C'est pourquoi la "position centrale" de chaque servomoteur doit être ajustée manuellement pour s'aligner avec les jambes. Pour ce faire, retirez les palonniers de chaque servo et exécutez le croquis initial_setup.ino. Une fois les moteurs installés dans leur position centrale, rattachez les cornes de manière à ce que les jambes soient parfaitement droites et le pied parfaitement parallèle au sol. Si tel est le cas, vous avez de la chance. Sinon, ouvrez le fichier constants.h présent dans l'onglet adjacent et modifiez les valeurs de décalage du servo (lignes 1-6) jusqu'à ce que les jambes soient parfaitement alignées et le pied plat. Jouez avec les valeurs et vous aurez une idée de ce qui est nécessaire dans votre cas.

Une fois les constantes définies, notez ces valeurs car elles seront nécessaires plus tard.

Référez-vous aux images pour obtenir de l'aide.

Étape 11: un peu sur la cinématique

Un peu sur la cinématique
Un peu sur la cinématique
Un peu sur la cinématique
Un peu sur la cinématique
Un peu sur la cinématique
Un peu sur la cinématique

Pour que le bipède exécute des actions utiles telles que la course et la marche, les différentes allures doivent être programmées sous la forme de trajectoires de mouvement. Les trajectoires de mouvement sont des trajectoires le long desquelles l'effecteur final (les pieds dans ce cas) se déplace. Il y a deux façons d'y parvenir:

  1. Une approche serait d'alimenter les angles d'articulation des différents moteurs d'une manière brutale. Cette approche peut être chronophage, fastidieuse, et également remplie d'erreurs puisque le jugement est purement visuel. Au lieu de cela, il existe un moyen plus intelligent d'obtenir les résultats souhaités.
  2. La deuxième approche consiste à fournir les coordonnées de l'effecteur final au lieu de tous les angles articulaires. C'est ce qu'on appelle la cinématique inverse. L'utilisateur saisit les coordonnées et les angles d'articulation s'ajustent pour positionner l'effecteur final aux coordonnées spécifiées. Cette méthode peut être considérée comme une boîte noire qui prend en entrée une coordonnée et sort les angles des articulations. Pour ceux qui s'intéressent à la façon dont les équations trigonométriques de cette boîte noire ont été développées, peuvent regarder le diagramme ci-dessus. Pour ceux qui ne sont pas intéressés, les équations sont déjà programmées et peuvent être utilisées à l'aide de la fonction pos qui prend en entrée x, z et sort trois angles correspondant aux moteurs.

Le programme contenant ces fonctions se trouve à l'étape suivante.

Étape 12: Programmation de l'Arduino

Programmation de l'Arduino
Programmation de l'Arduino
Programmation de l'Arduino
Programmation de l'Arduino

Avant de programmer l'Arduino, de légères modifications doivent être apportées au fichier. Vous vous souvenez des constantes que je vous avais demandé de noter ? Modifiez les mêmes constantes aux valeurs que vous avez définies dans le fichier constants.h.

Remarque: si vous avez utilisé les conceptions fournies dans ce Instructable, vous n'avez rien à changer. Au cas où certains d'entre vous ont créé leurs propres conceptions, vous devrez modifier quelques valeurs supplémentaires en plus des décalages. La constante l1 mesure la distance entre le pivot de hanche et le pivot de genou. La constante l2 mesure la distance entre le pivot du genou et le pivot de la cheville. Donc, si vous avez conçu votre propre modèle, mesurez ces longueurs et modifiez les constantes. Les deux dernières constantes sont utilisées pour les allures. La constante stepClearance mesure à quelle hauteur le pied se lèvera en avançant après un pas et la constante stepHeight mesure la hauteur du sol à la hanche pendant qu'il fait des pas.

Une fois toutes les constantes modifiées selon vos besoins, vous pouvez télécharger le programme principal. Le programme principal initialise simplement le robot dans une position de marche et commence à avancer. Les fonctions peuvent être modifiées selon vos besoins pour explorer les différentes allures, vitesses et longueurs de pas pour voir ce qui fonctionne le mieux.

Étape 13: Résultats finaux: il est temps d'expérimenter

Résultats finaux: il est temps d'expérimenter
Résultats finaux: il est temps d'expérimenter
Résultats finaux: il est temps d'expérimenter
Résultats finaux: il est temps d'expérimenter
Résultats finaux: il est temps d'expérimenter
Résultats finaux: il est temps d'expérimenter

Le bipède peut faire des pas de 10 à 2 cm de long sans basculer. La vitesse peut également être modifiée tout en gardant la démarche équilibrée. Ce bipède combiné à la puissance de l'Arduino fournit une plate-forme robuste pour expérimenter diverses autres allures et d'autres objectifs tels que sauter ou se balancer tout en frappant un ballon. Je vous recommanderais d'essayer de modifier les trajectoires de mouvement des jambes pour créer vos propres allures et découvrir comment diverses allures affectent les performances du robot. Des capteurs tels qu'un IMU et un capteur de distance peuvent être ajoutés au système pour augmenter ses fonctionnalités tandis que des capteurs de force peuvent être ajoutés aux jambes pour expérimenter la locomotion dynamique sur des surfaces inégales.

J'espère que vous avez apprécié ce Instructable et qu'il est assez d'inspiration pour créer le vôtre. Si vous avez aimé le projet, soutenez-le en votant dans le "Concours Arduino".

Bonne fabrication !

Concours Arduino 2020
Concours Arduino 2020
Concours Arduino 2020
Concours Arduino 2020

Premier prix au concours Arduino 2020

Conseillé: