2.7 Алгоритмы походок шестиногих роботов
Современная методика разработки алгоритмов походок основана на биологическом подходе. Так как прообразом механических конечностей являются конечности живых существ, то и порядок локомоционных действий изначально повторяет таковые у насекомого или животного. Впоследствии некоторые алгоритмы изменяются и комбинируются.
Существующие алгоритмы можно разделить на две группы:
-
Алгоритмы с заранее сконфигурированными параметрами (количество конечностей, последовательность действий)
-
Адаптивные алгоритмы
-Алгоритмы, учитывающие изменение числа конечностей и их сочленений
-Алгоритмы с учетом неровностей и наклонов поверхности
-Самообучающиеся алгоритмы
Адаптивные алгоритмы, такие как группа fault tolerant gait – “терпимые к неисправностям”, позволяют изменять последовательность действий робота при возникновении проблем с функционированием конечностей. Разработка и реализация подобных алгоритмов не тривиальна и не будет рассматриваться в данной работе.
Адаптивный алгоритм, называемый свободным, реализует апериодическую несимметричную походку. Такой алгоритм не указывает заранее заданную последовательность перемещения конкретных ног, а описывает действия в зависимости от траектории, состояния поверхности и показателей робота.
Алгоритмы для заданного числа конечностей описывают возможные действия для перемещения механизма с заранее известными параметрами робота. К таким параметрам относятся число ног робота, число степеней свободы и их направленность. Наличие определенных датчиков позволяет дополнять базовый алгоритм различными функциями и новыми действиями.
Алгоритмы с заранее заданными параметрами характеризуются числом и позицией опорных ног, поднятых ног, порядком выполняемых действий.
Локомоционные алгоритмы для гексапедального робота[Beihang University, Politecnico di Milano]:
-
Алгоритмы 3+3
-
Инсектоподобный
-
Животноподобный
-
Комбинированный
-
Алгоритмы 4+2
-
Алгоритм 5+1 инсектоподобный
Также существует способ передвижения, при котором все конечности одновременно выполняют перемещение, а в качестве опоры используется дно корпуса. Это нельзя назвать походкой, но можно использовать как простой способ передвижения.
2.6.1 Типы алгоритмов походок
Инсектоподобное перемещение представляет волнообразные движения. Способ изменения положения конечности в горизонтальной плоскости – движение по окружности (плоскость вращения параллельна поверхности). При этом выполняются следующие действия:
-
Конечность поднимается (Рис.15.б)
-
Конечность перемещается в направлении необходимого движения (Рис.15.в)
-
Конечность опускается до упора на поверхность (Рис.15.г)
-
Конечность перемещается в направлении, противоположном движению (происходит отталкивание) (Рис.15.д)
Рис.15. Схема движений инсектоподобного алгоритма
Животноподобное перемещение использует в качестве способа изменения положения конечности в горизонтальной плоскости не движение по окружности, а изменение длины проекции конечности на поверхность путем сгибания конечности в сочленении. Таким образом, для реализации животноподобного алгоритма требуется наличие многосегментной конечности (два и более сочленения). При этом выполняются следующие действия:
-
Конечность поднимается (Рис.16.б)
-
Опорный сегмент конечности приближается к корпусу (в направлении необходимого движения), путем сгибания “коленного” сочленения (Рис.16.в)
-
Конечность опускается (Рис.16.г)
-
“Коленное” сочленение разгибается, опорный сегмент конечности удаляется от корпуса (происходит отталкивание) (Рис.16.д)
Рис.16. Схема движений инсектоподобного алгоритма
2.6.2 Описание конкретных алгоритмов
Алгоритм “3+3 инсектоподобный”. Конечности разделяются на две группы, образующие треугольники. При движении одна группа поднимается, другая остается опорной и толкает робота в направлении движения. Направление прямолинейного движения возможно параллельно оси симметрии робота (Рис.17). Движение вперед осуществляется при повороте двух конечностей в одном направлении и одной в противоположном. Разворот робота осуществляется при повороте трех опорных конечностей в одном направлении.
Данный алгоритм может быть реализован с использованием корпусов и конечностей любого типа. Для реализации алгоритма с использованием осесимметричного корпуса может потребоваться использование конечности с тремя и более степенями свободы.
Рис.17. Схема групп конечностей для двух типов роботов
Алгоритм “3+3 животноподобный”. Данный алгоритм схож с вышеописанным, но реализует только прямолинейное движение. Отличия заключаются в способе изменения положения конечностей и направлению прямолинейного движения. Движение происходит параллельно оси симметрии конечности, которая отличается от двух других в группе.
Данный алгоритм может быть реализован только с конечностями, у которых возможно изменение положения опорной части сегмента, например, однорычажной многосегментной или пантографной второго типа. Также необходимо, чтобы конечности располагались параллельно. При ориентированности робота по стороне (например, с использованием продолговатого корпуса) алгоритм реализует движение боком. Если робот осесимметричен, то отсутствует ориентированность, и как следствие, движение можно классифицировать произвольно.
Алгоритм “3+3 комбинированный”. Конечности разделяются на две группы, образующие треугольники. В каждой группе две конечности используют инсектоподобный способ, а одна использует животнободобный. Данный алгоритм реализует прямолинейное движение. Направленность движения параллельна оси, на которой расположены конечности, использующие животноподобный алгоритм.
Условия реализации аналогичны алгоритму “3+3 животноподобный”.
Рис.18. Схема движения и распределения конечностей на группы
Алгортим “4+2 инсектоподобный”. Конечности группируются попарно симметрично относительно оси движения. Четыре опорные конечности отталкиваются, поднятая пара переносится вперед. Движения пар циклично чередуется.
Условия реализации аналогичны алгоритму “3+3 инсектоподобный”.
Алгоритм “5+1 инсектоподобный”. Конечности поочередно поодиночке поднимаются и переносятся вперед. После того как все конечности перенесены, они могут переместиться назад и продвинуть робота.
Алгоритм можно реализовать на любой конструкции, но для исключения проскальзывания необходимо применять конечности с сочленениями.
|