Читайте также:
|
|
Инверсная кинематика, как и прямая, применяются к моделям каких-либо персонажей или объектов, которые созданы с использованием скелетной анимации. Суть скелетной анимации состоит в том, что объект состоит из набора твёрдых сегментов, соединённых сочленениями. При этом сегменты могут объединяться в кинематические пары, которые в свою очередь объединяются в кинематические цепи. Данные сегменты образуют иерархические цепочки, которые имеют «верхний» и «нижний» уровень. Сегменты верхних уровней называются компонентами-предками (или родительскими сегментами), а компоненты нижних — компонентами-потомками (или дочерними сегментами). Например, если рассмотреть руку человека, то плечевой сустав будет самым верхним уровнем, а кончик пальца — самым нижним, т. е. компонентом-потомком к плечевому суставу. Локтевой сустав находится внутри цепочки, он будет иметь как родительские, так и дочерние сегменты.
Основным отличием прямой кинематики от инверсной кинематики является то, что при прямой любое воздействие передается по иерархической цепочке сверху вниз. Например, при движении тазобедренного сустава двигаются все потомки, т. е. коленный сустав и все остальные. Инверсная кинематика использует принцип, диаметрально противоположный принципу прямой — перемещение компонентов-потомков приводит к изменению положения компонентов-предков, то есть алгоритм рассчитывает положение и ориентацию компонентов-предков, исходя из положения и ориентации компонентов-потомков.
В инверсной кинематике дочерний сегмент, который вызывает изменение положения и ориентацию других объектов и расположен в середине отдельной иерархической цепочке сегментов, называется эффектором. Если эффектор является конечным объектом данной иерархической цепочки, то он называется конечным эффектором. Именно через эффектор осуществляется манипулирование всей иерархической цепочкой. Изменение положения и/или ориентации конечного эффектора приводит к изменению положения и/или ориентации всех сегментов иерархической цепочки по законам инверсной кинематики. Изменение положения и/или ориентации простого (не конечного) эффектора приводит к тому, что положение объектов, стоящих по иерархии ниже его, меняется по законам прямой кинематики, а объектов с более высокой иерархией — по законам инверсной кинематики.
Ключом к успешной реализации инверсной кинематики является анимация в пределах ограничений: конечности модели персонажа должны вести себя в разумных антропоморфических пределах. Точно такая же ситуация и с робототехническими устройствами, которые имеют физические ограничения, такие как среда, в которой они работают, ограничения движения их суставов и ограниченные физические нагрузки и скорости, с которыми они в состоянии работать.
Я использовал следующие уравнения обратной кинетики, для 3х степеней свободы конечности, непосредственно в моем 4х-ногом роботе. Обратная кинетика никоим образом не ограничивается 3мя степенями свободы, но следует отметить, что он получается сложнее с каждым дополнительным суставом.
Для начала надо нарисовать ногу с видом с верху и с боку.
Рис. 2.1 - Вид ноги сверху
Рис. 2.2 - Вид ноги сбоку
Для решения задачи надо узнать позиции X, Y, и Z, также длины суставов таза, бедра и голени. Решаем углы альфа, бета и гамма. X, Y, и Z, можно рассматривать как входы в уравнения. Таз, бедро и голень константы. Альфа, бета и гамма являются выходами.
Глядя на изображение рис.2.1 находим углы X и Y и решаем гамму.
Прогнозируемый Y
Рисунок 2.3 - Прогнозируемый Y
Есть два способа решить альфу и бету. Сначала надо просмотреть Y, Z плоскости (вид сбоку) как переход с плоскости X,Y (вид сверху). Так как гамма увеличивается до большего угла, вид сбоку еще перпендикулярен к ноге. Второй вариант, рассмотреть проекцию координаты как зафиксированную. Я выбрал 2 вариант. Это, однако, имеет свои проблемы. Точка Y, если смотреть с движущейся системе отсчета на самом деле дальше чем точка Y, если смотреть от фиксированной проекции. Из движущейся системе отсчета точки Y можно рассматривать как фактическое положение стопы. При осмотре фиксированной проекции Y прогнозирует положение стопы от плоскости X, Y в Y, Z плоскости.
Это важно, если смотреть с фиксировано проекции то фактическое положение Y дальше, чем прогнозируемое положение Y всех значений гамма, кроме нуля, при нуле они равны. Так что позиция Y это прогнозируемая позиция, а нам нужно фактическое положение
Решить альфа
2.4 - Решение для альфа, вид ноги с боку
Чтобы было легче решить альфа я разбил альфа на две части альфа-1 и альфа-2 двух углов разделены линией L, проходящей между концом тазика и точки Y,Z. При использовании теоремы Пифагора длина L может быть вычислена.
Решение для альфа-1 является тривиальна:
Решение для альфа-2 сложнее и требует использования косинусов
И положить все это вместе
Решить бета,окончательное уравнение, мы должны вычислить решение для угла бета. Как альфа 2, бета требует использования косинусов:
В этот момент должны быть три уравнения для решения трех неизвестных углов. Вычислять эти уравнения вручную каждый раз будет сложно. Полученные уравнения, довольно просто написать в виде компьютерной программы для решения углов. После того, как я получил уравнения я применил его к Arduino. Я написал три функции, по одной для каждого угла, который принимает нужное положение, и выводит соответствующие углы. Значения углов имеют формат int и присваиваются к определенному сервоприводу.
Следующим шагом надо применить это к остальным ногам и придумать способ переложить центр тяжести шагающего робота.
Дата добавления: 2015-07-15; просмотров: 66 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Глава 18. Взыскание таможенных платежей | | | Доказательство. |