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.