У меня есть маленький четвероногий с тремя ногами степени свободы, над которым я работал: 3DOF Mini Quadruped .
Мой оригинальный код для этого был простым сервоконтроллером на Arduino и кодом Scala, который отправлял сервоприводы по проводам. Я выполнил всю логику инверсной кинематики и походки в Scala и заставил ее ходить: 3d из четвероногой первой походки .
Моя логика походки в Скале была несколько наивной; это зависело от того, были ли ноги в правильном положении в начале (одна сторона выдвинута вперед и назад, а другая - навстречу друг другу). Логика была просто перевести все четыре фута назад на 1 мм вдоль y, и всякий раз, когда угол тазика становился чрезмерно задним, остановитесь и выполните небольшую процедуру, где эта нога поднимается на 10 мм в z, затем переводится вперед на 60 мм вдоль y и опускается вниз. Наивный, но эффективный.
Теперь я переписал свой код IK в Arduino C, и я пытаюсь решить, как двигаться дальше с динамикой походки. Мне было трудно найти хорошие, легкие для понимания ресурсы о походках. У меня есть кое-какие знания о разнице между динамически устойчивыми походками (такими как походка ползучести), когда тело всегда является устойчивым штативом, и динамически нестабильными походками (ходьба, рысь), когда две ноги отрываются от земли одновременно, и телом по существу падает вперед в ногу.
У меня были некоторые мысли о конечных автоматах и попытке вычислить, попадает ли центр тела в треугольник, образованный оставшимися ступнями, чтобы решить, какую ступню безопасно поднимать, но я не уверен, стоит ли исследовать эти идеи.
Я знаю, что это довольно общий вопрос, но мне интересно посмотреть, как другие люди напали на эту проблему, и все, что мне удалось найти, - это исследовательские работы.