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