J'ai un petit quadrupède à trois degrés de liberté sur lequel je travaille: 3DOF Mini Quadrupède .
Mon code d'origine était un simple contrôleur de servo sur l'arduino et un code Scala qui enverrait des commandes de servo sur le fil. J'ai fait toute la logique de la cinématique inverse et de la marche dans Scala, et je l'ai fait marcher: 3dof quadrupède la première marche .
Ma logique de démarche dans Scala était quelque peu naïve; cela dépendait du fait que les jambes étaient dans la bonne position au début (un côté étendu vers l'avant et l'arrière, l'autre côté l'un vers l'autre). La logique consistait simplement à déplacer les quatre pieds vers l'arrière de 1 mm le long de y, et chaque fois qu'un angle coxa devenait excessivement vers l'arrière, arrêtez-vous et effectuez une petite routine où ce pied est soulevé de 10 mm en z, puis translaté de 60 mm vers l'avant le long de y et reculé. Naïf, mais efficace.
Maintenant, j'ai réécrit mon code IK en arduino C, et j'essaie de décider comment aller de l'avant avec la dynamique de Gait. J'ai eu du mal à trouver de bonnes ressources faciles à comprendre sur les allures. J'ai une certaine connaissance de la différence entre les allures dynamiquement stables (comme les allures de fluage) où le corps est un trépied stable en tout temps et les allures dynamiquement instables (marche, trot), où deux jambes sont décollées du sol à la fois et le corps tombe essentiellement vers l'avant dans la jambe qui avance.
J'avais quelques réflexions sur les machines d'état et j'essayais de calculer si le centre du corps se situait dans un triangle formé par les pieds restants pour décider quel pied était sûr à soulever, mais je ne suis pas sûr que ce soient des idées qui valent la peine d'être explorées.
Je sais que c'est une sorte de question trop générale, mais je suis intéressé de voir comment d'autres personnes ont attaqué ce problème, et à peu près tout ce que j'ai pu trouver sont des documents de recherche.
la source
Réponses:
La démarche que vous avez n'est en fait pas trop mauvaise, bien que les pieds n'aient pas assez de traction, il est donc difficile de voir à quel point c'est vraiment bon.
Je ne suis pas sûr de votre terminologie des allures dynamiquement stables. Comme je l'ai toujours compris, la démarche à deux trépieds est connue comme une démarche statiquement stable, tandis qu'un bon bipède marchant comme Petman utilise une démarche dynamiquement stable. Jamais entendu parler d'une démarche dynamiquement instable. Cela ressemble plus à de l'ivresse.
Deux jambes au sol est probablement la limite inférieure pour cette conception de robot. Généralement, il est plus facile de faire cela avec de grands robots humanoïdes, qui mettent beaucoup de temps à tomber. Les robots larges et plats doivent soulever et placer leurs pieds assez rapidement s'ils n'en laissent pas beaucoup sur le sol.
Mais comment développer un gair pour votre robot. Tout d'abord, vous devez décider de ce que vous voulez réaliser de la démarche. Vous recherchez une vitesse maximale sur une surface plane ou une stabilité maximale sur des surfaces inégales?
Si votre objectif est la stabilité, je pense certainement que cela vaut la peine que le robot soit conscient de son centre de gravité par rapport à ses pieds. Pour l'aider à le savoir, il pourrait même être utile d'ajouter des capteurs de force à ses pieds afin de pouvoir le calculer facilement.
Si votre objectif est uniquement la vitesse maximale, je me concentrerais simplement sur le financement d'une démarche optimale. C'est plus difficile à faire. Il existe deux bonnes façons de l'aborder:
La modélisation. Créez un modèle informatique complet du robot, y compris la masse, la rigidité, le couple, etc. Utilisez ce modèle pour bien comprendre le comportement dynamique.
Essai et erreur. Vous pouvez le faire à la dure, en programmant dans des allures aléatoires, en les ajustant sur une intuition et en mesurant leurs performances. Essayez de le faire avancer à la fois et en diagonale. Ou vous pouvez utiliser un algorithme génétique pour vous aider à rechercher automatiquement de meilleures allures. La difficulté d'utiliser un GA est que vous devez avoir un moyen de mesurer automatiquement les performances de la démarche.
Une troisième façon est de transformer le robot en un scientifique qui effectue des expériences concises sur lui-même pour valider les hypothèses sur lui-même et déterminer comment marcher, comme le robot étoile de mer de l'Université Cornell .
la source