Comments 33
Я правильно понял Вашу мысль?
Для подъема гексапода и различных танцулек используется старый вариант: «передвинь ногу из текущей позиции в XYZ по линейной траектории».
Возможно вас заинтересует управление на тензорных регуляторах.
Принцип управления тут такой: мы управляем не положениями сочленений, а скоростями в них. Имея желаемое перемещение корпуса, вычисляем для каждой ноги, которая стоит на земле вектор перемещения, который это перемещение обеспечит. Зачем решаем систему уравнений, чтобы понять, с какой скоростью нудно в каждом сочленении каждой ноги двигаться. В этом варианте любые движения корпуса, хоть по дуге, хоть танцы, задаются просто уставкой скорости или положения корпуса.
Там довольно много линейной алгебры, зато результат может быть очень красивым.
Конкретно в этом видео создаётся точка устойчивости по позиции ноги за счет введения небольшого сигнала обратной связи по положению, но он исключительно вспомогательный (совсем без него нельзя, система потеряет устойчивость).
Вам не кажется странным, что в каждый момент времени движения ваш гексапод стоит на 2х ногах, а 4 перемещает в воздухе? Неустойчиво же!
Думаю, вы неправильно посчитали :). В воздухе всегда не более трёх ног. Там программа запрещает более трёх ног отрывать от земли. Перестановка ног разрешается не раньше, чем все 6 окажутся на земле. Но вообще тут могут быть баги, поскольку тут нет физического движка. В последней версии за подобными проблемами у меня следит openbullet. Он таких ошибок не прощает.
Скорее всего это из-за того, что камера вращается. Кажется, что дальняя нога перемещается.
Да и ресурсы МК позволяют выбрать более сложный и универсальный путь с большим запасом.
проект можно переименовать с hexapod в turtleда ладно, черепаха по одной ноги переставляет :)
Вообще, самый интересный вопрос — ходьба по пересеченной местности, когда высота пола разная для разных ног.
Вы наверное путаете с hexapod платформой. В данном случае hexapod это шестиногий робот.
Чтобы обеспечить постоянную погонную энергию — нужно добиться равномерности движения.
Что если попробовать такой подход? Положение робота можно измерять точно при помощи стационарных лазерных дальномеров. Также робота можно оснастить дополнительным актуатором, осуществляющим прецизионное позиционирование плазменной головки (как в приводе CD/DVD, лазер в магнитной подвеске нивелирует неидеальность позиционирования головки), чтобы не пришлось прерывать линию реза.
Скоро скоро, совсем немного осталось :)
Вот, кстати, математика управления гибкими конечностями весьма интересна. Для такой системы, можно считать перемещение каждого сочленения, но это врядли разумно. Нужна какая-то упрощённая модель.
Думаю, можно расчленить конечность на отдельные сегменты по нескольку звеньев. Каждый сегмент будем решать независимо, а поверх управления отдельными сегментами добавим систему управления конечностью в целом. Это позволит решать не все 30 уравнений разом, а иерархически, по 5 штук в 6 группах и одну в 6 уравнений для 6 сочленений.
Кстати, это идея. Я внесу это мысль в свою статью по теме управления манипуляторами :).
Разработка hexapod с нуля (часть 8) — улучшенная математика передвижения