Je m'intéresse activement aux robots et j'ai récemment créé un robot bipède alimenté par Arduino. Après cela, j'ai voulu faire un robot à quatre pattes qui imite des animaux comme les chiens ou les chats. Dans cet article, je parlerai de la conception et de l'assemblage d'un robot à quatre pattes.
L'objectif principal de ce projet était de rendre le système suffisamment fiable pour que, pendant l'expérience avec différentes allures, je n'ai pas à me soucier d'éventuelles pannes d'équipement. Cela m'a permis de pousser le robot à la limite en lui donnant des allures complexes et des mouvements différents. Un objectif supplémentaire était de créer un prototype relativement peu coûteux en utilisant des composants du commerce et une impression 3D pour le prototypage rapide. Ensemble, ces deux objectifs fournissent une base solide pour diverses expériences et le développement de robots à quatre pattes plus spécialisés avec des objectifs plus spécifiques - navigation, évitement d'obstacles, adaptation dynamique du mouvement.
Étape 1: informations générales et processus de conception
J'ai développé le robot dans le logiciel gratuit de modélisation 3D d'Autodesk, Fusion 360. J'ai commencé par importer les servomoteurs autour desquels je dessinais des jambes et un torse. Ensuite, j'ai conçu les supports de maintien du moteur pour leur donner un deuxième point de fixation, diamétralement opposé à l'arbre. Les arbres de chaque côté du moteur confèrent de la résistance à la structure et éliminent la possibilité de biais lorsque les jambes sont chargées. Les roulements sont insérés dans des supports spéciaux et des boulons sont utilisés comme arbre dans les supports. Une fois les supports fixés aux arbres avec un écrou, le roulement fournit un point de pivotement sûr sur le côté opposé du servomoteur à l'arbre.
Un autre objectif lors du développement était de rendre le modèle aussi compact que possible afin de tirer le meilleur parti du couple des servomoteurs. Les bras ont été dimensionnés pour fournir un mouvement maximal avec une longueur minimale. Si je les faisais trop courts, les supports se heurteraient, ce qui réduirait la mobilité. S'ils étaient trop longs, les moteurs devraient appliquer un couple inutile. Dernier point mais non le moindre, j'ai conçu le boîtier du robot avec des accessoires pour l'Arduino et d'autres composants électroniques. J'ai fourni des supports supplémentaires sur le dessus du panneau pour étendre le projet à l'avenir. Un jour, il sera possible d'ajouter des capteurs de distance, des caméras ou d'autres mécanismes pour le robot, par exemple des pinces.
Étape 2: matériel nécessaire
Liste des matériaux nécessaires pour créer votre propre robot quadrupède alimenté par Arduino. Tous les composants sont communs et disponibles.
Électronique:
- Arduino Uno x 1.
- Servomoteur Towerpro MG995 x 12.
- Bouclier de capteur Arduino (j'ai la version 4, mais je recommande d'acheter la version 5).
- Fils de connexion, 10 pcs.
- MPU6050 IMU (en option).
- Capteur de distance à ultrasons (en option).
Composants:
- Roulements (8x19x7 mm, 12 pcs.).
- Boulons et écrous M4.
- Plastique pour une imprimante 3D.
- Plexiglas 4 mm.
Outils
- Imprimante 3D.
- Découpeur laser.
La plupart des déchets sont dépensés dans 12 servomoteurs. Je recommande de ne pas utiliser de moteurs en plastique bon marché, car ils se cassent trop facilement. À part les outils, tout m'a coûté 60 $.
Étape 3: composants imprimés
Les composants du robot devaient être spécialement développés - pour cela, nous avons profité des capacités de la conception numérique et de la CAO. La plupart des composants sont imprimés en 3D et certains sont découpés dans une feuille de plexiglas de 4 mm. Imprimé à 40% de couverture, 2 périmètres, buse de 0,4 mm, hauteur de couche de 0,1 mm avec PLA. Certains des composants nécessitent des étais en raison de leur forme complexe avec des pièces en surplomb, mais ils sont accessibles et faciles à retirer avec des pinces coupantes. Vous pouvez choisir la couleur selon votre goût. Vous trouverez ci-dessous une liste de composants et de liens STL pour l'impression, ainsi que des dessins 2D pour l'outil de découpe.
Composants pour l'impression 3D:
- Support de servomoteur fémoral x 2.
- Support de miroir de servomoteur fémoral x 2.
- Support de servomoteur de genou x 2.
- Support de moteur servo de genou miroir x 2.
- Support de roulement x 2.
- Support de roulement de miroir x 2.
- Jambes x 4.
- Supports de servomoteur x 4.
- Supports de roulement x 4.
- Matériel Arduino x 1.
- Support de capteur de distance x 1.
- Attaches d'angle x 4.
- Manchon de roulement x 4.
- Servo rondelle x 24.
Composants pour la découpe laser:
- Panneau de montage servo x 2.
- Panneau supérieur x 1.
Au total, 30 pièces doivent être imprimées, à l'exclusion des différentes rondelles, et le nombre total de pièces produites numériquement est de 33. J'ai tout imprimé en 30 heures.
content.instructables.com/ORIG/FBK/9YPN/KFZEKVED/FBK9YPNKFZEKVED.rar
content.instructables.com/ORIG/FZS/65E0/KFZEKVEE/FZS65E0KFZEKVEE.pdf
Étape 4: préparation des supports de roulement
Si vous commencez à assembler avec certains composants, l'ensemble du processus ira plus vite. Vous pouvez commencer par les titulaires. Pour ce faire, commencez par poncer les trous à l'intérieur du support, puis insérez le roulement à ras. J'ai dû imprimer quelques rondelles en 3D car les boulons fournis avec les moteurs étaient trop longs et heurteraient les moteurs pendant le fonctionnement.
Étape 5: préparer les supports du servomoteur
Pour assembler la genouillère, insérez simplement le boulon dans le trou et serrez avec l'écrou. Cette articulation agira comme le deuxième axe du moteur. Passez les deux boulons dans les trous de la cuisse et serrez avec les écrous. Ensuite, prenez le support de servo plié et fixez-le à la partie surélevée du support avec deux écrous. Enfin, prenez le manchon de roulement et insérez-y le roulement. Vous devrez peut-être poncer un peu la surface intérieure du manchon. Les photos ci-jointes montrent les différentes étapes d'assemblage.
Étape 6: assemblage des pieds
Une fois que vous avez assemblé tous les bretelles et supports, vous pouvez commencer à assembler vos jambes. Visser d'abord les servomoteurs sur les supports avec des vis et des écrous. Alignez l'arbre du moteur avec le boulon dépassant de l'autre côté.
Ensuite, connectez le servomoteur de cuisse au servomoteur de genou avec le support. Ne serrez pas encore l'écrou - plus tard, vous devrez peut-être couper quelque chose. De l'autre côté, fixez les supports avec deux roulements aux boulons saillants avec des écrous.
Rassemblez les quatre pattes comme ça.
Étape 7: assembler le torse
Vous pouvez maintenant commencer à assembler le torse. Il contient quatre servomoteurs donnant le troisième degré de liberté de jambe. Commencez avec 4 boulons M4 qui fixent les moteurs au panneau découpé au laser.
Montez les servomoteurs de manière à ce que les essieux soient orientés vers l'extérieur - voir photos.
Ensuite, boulonnez les supports d'angle des deux côtés du panneau. Ils aident à fixer solidement le panneau de montage du moteur au panneau supérieur.
Une fois tous les supports fixés, fixez le panneau du moteur au panneau supérieur. Commencez par les boulons extérieurs situés à l'avant et à l'arrière. Les boulons au milieu maintiennent le support Arduino en même temps. Voir les photos au début de la section. Fixez le panneau Arduino au panneau supérieur de sorte que les boulons traversent les trous dans les supports d'angle.
Étape 8: tout rassembler
Lorsque les jambes et le torse sont assemblés, le robot peut être assemblé. Fixez les pieds aux quatre servomoteurs à l'aide des équerres fixées au support fémoral du servomoteur. Enfin, utilisez des supports de roulement pour soutenir l'essieu opposé sur le support de cuisse. Enfilez l'axe à travers le roulement et fixez-le avec un écrou. Fixez les supports de roulement au panneau supérieur avec des vis et des écrous.
Le robot à quatre pattes est prêt.
Étape 9: fils et électronique
J'ai décidé d'utiliser une carte d'extension pour connecter le blindage du capteur, où se trouvent des contacts pour les servomoteurs. Je recommanderais sa 5ème version - il y a un connecteur séparé pour connecter une alimentation externe. Mais mon conseil d'administration n'avait pas cette option. Je l'ai étudié et j'ai réalisé qu'il tirait une alimentation 5V de la carte Arduino (quand il s'agit de consommateurs aussi puissants que les servomoteurs, c'est une idée terrible qui peut endommager l'Arduino). J'ai résolu ce problème en repliant la broche 5V pour qu'elle ne se connecte pas au rail d'alimentation Arduino. De cette façon, vous pouvez donner une alimentation externe à la broche 5V sans endommager l'Arduino.
Voici les connexions pour les servomoteurs et les contacts de la carte. Remarque: Hip1Servo sont des servomoteurs de hanche connectés au torse. Hip2Servo - servomoteurs de hanche connectés à la jambe. KneeServo - servomoteurs de genou.
Jambe 1 (avant gauche):
Hip1Servo - 2
Hip2Servo - 3
KneeServo - 4
Jambe 2 (avant droit):
Hip1Servo - 5
Hip2Servo - 6
KneeServo - 7
Jambe 3 (arrière gauche):
Hip1Servo - 8
Hip2Servo - 9
KneeServo - 10
pieds 4 (arrière droit):
Hip1Servo - 11
Hip2Servo - 12
KneeServo - 13
Étape 10: configuration initiale
Avant de commencer à programmer des mouvements complexes, il est nécessaire de régler les positions initiales de chaque servomoteur. Ils donneront au robot un point de référence à partir duquel construire différents mouvements.
Pour éviter d'endommager accidentellement les moteurs, vous pouvez d'abord retirer les supports d'angle des moteurs. Ensuite, téléchargez le code sur Arduino (lien ci-dessous). Le code fait tourner tous les servomoteurs en position 90 °. Ensuite, revissez les supports de manière à ce que toutes les jambes soient parfaitement à niveau et que les servomoteurs fixés au torse soient perpendiculaires au panneau supérieur.
Certains joints peuvent ne pas être parfaitement alignés. Ensuite, vous devrez corriger les valeurs du tableau zeroPositions situé sur la 4ème ligne du code. Chaque nombre représente la position zéro du servomoteur correspondant (leur ordre est le même que celui indiqué dans la liste des connexions Arduino). Jouez avec les valeurs jusqu'à ce que vos jambes soient parfaitement droites.
Par exemple, j'ai les valeurs suivantes:
int zeroPositions[12] = {93, 102, 85, 83, 90, 85, 92, 82, 85, 90, 85, 90};
content.instructables.com/ORIG/F9K/WO73/KFZEKX13/F9KWO73KFZEKX13.ino
Étape 11: un peu de cinématique
Pour forcer le robot à effectuer des actions utiles - marcher, courir et autres - les trajectoires de mouvement doivent être programmées pour les servomoteurs. Ce sont les trajectoires le long desquelles se déplace l'effecteur (dans notre cas, la jambe). Ceci peut être réalisé de deux manières:
12:
Une fois que vous avez terminé la connexion et l'initialisation, vous pouvez commencer à programmer le robot et lui donner des trajectoires sympas pour effectuer des tâches intéressantes. Dans le code de la 4ème ligne, remplacez les valeurs par celles que vous avez générées à l'étape d'initialisation. Après avoir téléchargé le code, le robot devrait commencer à marcher. Si vous remarquez que les directions de certaines articulations sont inversées, modifiez la valeur correspondante dans le tableau sur la ligne 5 (-1 à 1 et vice versa).
content.instructables.com/ORIG/FA6/3ZNJ/KFZEKX4Y/FA63ZNJKFZEKX4Y.ino
Étape 13: résumé et calendrier des expériences
Le robot peut faire des pas de 2 à 5 cm de long. La vitesse de marche varie également. Le robot constitue une plate-forme fiable pour expérimenter des allures et d'autres choses telles que sauter ou effectuer des tâches complexes. Je recommande de changer les trajectoires de mouvement, de faire l'expérience de différentes allures, de regarder comment elles affectent le travail du robot. J'ai prévu diverses fixations sur le haut du torse afin que des capteurs tels qu'un télémètre ou un capteur inertiel puissent y être fixés. Vous pouvez essayer d'y remédier.