Аватар для DimKaKiber
12 / 12 / 0
Регистрация: 20.11.2013
Сообщений: 167

Реализация инверсной кинематики методом Fabric

16.10.2018, 12:24. Показов 2998. Ответов 12

Студворк — интернет-сервис помощи студентам
Добрый день! Столкнулся с проблемой реализации алгоритма Fabric для расчета конечных координат таргетной точки для суставов манипулятора.
Сами расчеты реализованы и выдают нужные таргетные координаты (3D). Однако после начала тестов новой математической модели столкнулся с тем, что происходт несанкионированная ротация узлов, которой быть не должно.

Литературы по методу много (в т.ч. и самого "папы" метода), однако в плане проверки ограничений движений суставов авторы ограничиваются лишь общими вещами, поэтому пользовался своими механизмами проверки факта выхода за имеющиеся ограничения моторов узлов.

Поэтому решил обратиться за помощью - где можно подробно ознакомиться с алгоритмикой, позволяющей реализовать ограничения для метода Fabric?

Если подробнее, то произвожу моделирование движений ноги человека и проблема вылезла в тазобедренном суставе, который вращается во всех плоскостях. Для корректной работы моей модели необходимо запретить методу осуществлять ротацию бедра (рыскание, yaw).
Вся реализация - на С++ без использования стандартных библиотек, поэтому нуждаюсь в алгоритмах и их математике.

Заранее спасибо за ответы!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.10.2018, 12:24
Ответы с готовыми решениями:

Решение обратной задачи кинематики численным методом
Не могу никак разобраться как решить ОЗК для заданной конструкции. Столкнулся с 2-мя проблемами: Необходимо решить эту задачу...

задача из кинематики
На краю горизонтальной платформы стоит человек массой m1 кг. Платформа представляет собой круглый однородный диск массой m2 кг, вращающийся...

Задача с кинематики
Для механизма, схема которого изображена на рисунке К 2.1 по заданному уравнению одного из тел найти для определенного момента времени...

12
16.10.2018, 13:45

Не по теме:

Цитата Сообщение от DimKaKiber Посмотреть сообщение
происходит несанкционированная ротация узлов
Видимо созданное чудо берет управление на себя.

0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
17.10.2018, 10:03
Цитата Сообщение от DimKaKiber Посмотреть сообщение
происходт несанкионированная ротация узлов,
Значит не пашут ограничения. Попробуйте тесты на простой модели с визулизацией пределов углов и их показом...типичная отладка любой проги.

Может так?
Если в текущей итерации угол между двумя звеньями превышен, то установить максимальный угол между звеньями и считать два звена одним жестким и повторить итарацию.

Цитата Сообщение от DimKaKiber Посмотреть сообщение
где можно подробно ознакомиться с алгоритмикой, позволяющей реализовать ограничения для метода Fabric?
Сомневаюсь что есть где-то детали, мне кажется весь этот метод простой и для примитивных расчетов типа лапа гексапода, где плевать на реалистичность.

Цитата Сообщение от DimKaKiber Посмотреть сообщение
произвожу моделирование движений ноги человека
Вот тут очень много матана.
А инерция? А подвижность суставов в зависимости от их положения и мышц…наверно звенья соединяют пружинами с демпферами. В этих прогах для анимации куча подводных камней. Вероятно даже на каждой итерации подвижность суставов разная. Пакеты для анимации недаром содержат много кода и стоят прилично.
0
 Аватар для DimKaKiber
12 / 12 / 0
Регистрация: 20.11.2013
Сообщений: 167
17.10.2018, 10:29  [ТС]
Excalibur921, Ограничения убрал сейчас сознательно, т.к. реализовывал их опираясь на текущий расчетный угол (по расчитанным координатам точки на стопе). Проблема состоит как раз врасчете корректных углов между точками. Зная их я бы вопрос не поднимал Конечные точки (точка на стопе каждой из ног) выдаются из сформированной моим коллективом модели, которая потихоньку обрастает и инерциальными характеристиками и другими параметрами.
Если очень грубо описать - у меня есть антропоморфный робот, у которого поворот по yaw у ноги реализован в виде движения сустава, который всю ногу за собой тянет (колено на разворот по окружности идет + стопа). Метод Фабрик справедливо выбираетпуть наименьшего сопротивления и осуществляет ротацию координат, что не вяжется с построенной моделью. Причем ротация также совершенно справедливо искажает расчетные углы для других суставов, т.к. координаты промежуточных суставов узлов становятся немного иными, чем предусматривается моделью.

В методе Фабрик действительно довольно простая математика, которая уже реализована и хорошо справляется с нужными функциями. Но не могу как раз разобраться по каким алгоритмам и способам формируются ограничения возможных расчетных координат внутри этого метода (хорошего описания нету нигде или просто уже не вижу т.к. глаз замылился). Было бы совершенно логично просто сразу внутри ядра этого метода реализовать проверку на выход за ограничения координат, чем городить дополнительную обвязку по завершению расетов.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
17.10.2018, 21:21
Цитата Сообщение от DimKaKiber Посмотреть сообщение
выбираетпуть наименьшего сопротивления и осуществляет ротацию координат,
Насколько я понял без ограничений Фабрик считает пресечение сферы с отрезком. Т.е. ищет кратчайший путь считая все шарниры сферическими. Отлично…если манипулятор это хвост или змея…т.е. практически бесполезно =).

Я бы делал так: работать с ограничениями на углы поворота и степени свободы всех шарниров. Причем на каждом проходе алгоритма где вышли за пределы углов и степеней свободы там и замораживать два звена в крайнем допустимом положении и снова считать но взяв замороженные как одно звено. Но это я так придумал…а как оно обычно хз.

Например при шагани амплитуда бедра намного меньше амплитуды голени, у фабрика нет учета этого. Вообще фабрик выглядит больше как игрушечный метод для 2д анимации хвоста. Вообще есть ли смысл для инверсной когда 3 звена?
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
17.10.2018, 21:26
Например тут решение это пересечение двух окружностей радиусом как звенья в плоскости где сгибается колено. Зачем тут инверсная кинематика? Может для пальцев…
Название: ScreenShot00864.jpg
Просмотров: 66

Размер: 10.0 Кб
0
 Аватар для DimKaKiber
12 / 12 / 0
Регистрация: 20.11.2013
Сообщений: 167
18.10.2018, 10:51  [ТС]
Excalibur921, у меня в бедре еще одна степень подвижности имеется. Координата третьего звена и есть моя таргетная точка, которая берется из модели и к ней узлы все надо извернуть. Я, правда, пока не понимаю как мне можно получить трехмерную координату колена (второго узла) на основании известных координат первого узла (оси бедра) и третьего узла (оси стопы). И это с учетом того, что стопа может перемещаться в двух плоскостях. У вас на рисунке они как раз отражены (оси их вращения). Тогда и фабрик, в принципе, на данном этапе не нужен будет. Останется только углы между векторами в соответствующих плоскостях расчитать по якорным узлам и подать все на управляющую структуру.....

Но, как Вы правильно заметили, в перспективе будет управление манипуляторами (руками) где опять же вылезет проблема с поворотами тех же пальцев по yaw (у которых нету такой степени свободы) и опять встанет проблема с ограничениями для координат по методу Fabric (
0
 Аватар для DimKaKiber
12 / 12 / 0
Регистрация: 20.11.2013
Сообщений: 167
19.10.2018, 06:55  [ТС]
Решил задачу с помощью линейной алгебры, такой то матери и кватернионов. По двум трехмерным точкам - корню и таргету.
Но все-таки повестка дня осталась открытой - как методом Фабрик учесть ограничения по трем осям свободы для одного узла?
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
19.10.2018, 18:38
Цитата Сообщение от DimKaKiber Посмотреть сообщение
в бедре еще одна степень подвижности
Зачем 3 степени? Вроде две хватит и матан проще.
Цитата Сообщение от DimKaKiber Посмотреть сообщение
Координата третьего звена и есть моя таргетная точка
По причине что бедро в вашей схеме 3 степени свободы, вроде как много вариантов как повернуть ногу. Избыточная степень свободы. По рис. выше задаем координаты и ориентацию стопы и решение видно и оно одно. Когда 3 степени в бедре тогда мрак… решений много. Даже по рис. выше представьте что робот стоит на месте и может крутить ногу вокруг OZ, но смысл? Ведь опора то есть будет в бедре 3 или 2 степени.

Вообще робот будет ходить по плоскости или кривой поверхности?
По плоскости можно сделать почти халявную ориентацию стопы всегда параллельно земле и убрать два серво. Правда если корпус параллелен земле и нужно еще стержни для стабилизации в другой плоскости.
Кликайте на анимации они на форуме могут отображаться с лагами …

Например в бостон динамикс есть роботы без серво в суглобах. Там через стержневые механизмы передают вращение. Так все серво в корпусе и их можно сделать очень сильными.


Откуда у вас 3 степени свободы в одном шарнире? На практике он вроде как составной по 1 степени. Может так и решать?
Например шарнир 1 степень свободы с пределами углов.
Фабрик решает что шарнир текущего звена в точке E.

Это превышение степени свободы и предельного угла шарнира.
Проецируем точку E на допустимую плоскость вращения стержня получаем E1 учет ограничения на степень свободы( точка только в допустимой плоскости).
Если E1 в допустимых углах шарнира то и считать что там расположен шарнир и брать новое звено для расчета.
Устанавливаем максимальный ближайший угол поворота стержня E2 вот и допустимый угол поворота шарнира. Теперь считаем что там шарнир, решаем дальше следующее звено…
Похоже что только проверка в процессе рекурсии даст ответ где будут звенья и возможно ли это. В общем это и поясняли на хабре, правда там взяли 2д случай и зачем-то 2д эллипс как ограничение… испугались или не знают как в 3д решать.


Вообще может связались бы с ними
http://aleksstreltsov14.narod.ru/MGTU.htm
Вроде кинематика ваша. Может что-то подскажут.
0
 Аватар для DimKaKiber
12 / 12 / 0
Регистрация: 20.11.2013
Сообщений: 167
19.10.2018, 18:57  [ТС]
Excalibur921, Три степени-это инженеры, создавшие робота постарались. Для всех степеней одна ось. И делайте, программисты, что хотите. Инженеры, к сожалению, не свои.
По поводу земли. Пока предполагаем, что поверхность ровная. Стопы всегда параллельны ей. Есть наработки со старой мат. модели ходьбы - там даже при уклонах в двух плоскостях стопы заставил в параллели быть с землей. Углы сейчас просчитал по принципу как на Вашей первой картинке.На Хабре слово в слово толькона русском статья создателя метода Фабрик
Но мы с коллегами вроде сегодня почти посчитали как решить нашу задачу. Эксперименты закончим - поделюсь обязательно

За ссылкуу спасибо! Попробую связаться с этим коллективом, если начальство позволиь.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
19.10.2018, 20:12
Цитата Сообщение от DimKaKiber Посмотреть сообщение
Три степени-это инженеры, создавшие робота постарались. Для всех степеней одна ось.
Нет, вы не поняли. Навскидку не встречал такого механизма чтобы три степени были между двумя стержнями и шарнир тогда физически это сфера? Покажете фотку?
Помню в ютубе экзотика была две степени… там две полусферы с зубцами в зацеплении как шестерни, очень странная штука…
3 степени наверняка составной. Это для презентации или вам они так поясняют что там 3 степени. На практике там скорей всего три серво последовательно с одной степенью, что в сумме даст три степени. Именно так и считать фабрик по 1 степени, т.е сделать кинематическую схему подробней как на самом деле. Так решать будет всегда для шарнира с одной степенью и будет универсальный.
0
 Аватар для DimKaKiber
12 / 12 / 0
Регистрация: 20.11.2013
Сообщений: 167
20.10.2018, 11:50  [ТС]
Excalibur921, Скорее всего мог не понять. Там не сфера, но три степени свободы от одной оси согласно модели инженерной. Фотку ниже приложил. В реальности узел, который крепится к телу робота обеспечивает ротацию ног, а оставшиеся две степени свободы как и надо по общей оси повороты осуществляют.
Миниатюры
Реализация инверсной кинематики методом Fabric  
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
20.10.2018, 21:32
Так и есть составной. Это классика жанра.
Не смог найти в ютубе той ссылки про странный механизм на 2 степени свободы смотрел его лет 5 назад. Думал там типа такого на 2 степени, а у вас думал на 3..:
https://www.youtube.com/watch?v=7Tv-aUC6lpM
Так и рисовать и решать всю кинематическую схему по 1 степени свободы как она и есть на самом деле тогда и решатель универсальный как и хотели.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.10.2018, 21:32
Помогаю со студенческими работами здесь

Использование польской инверсной записи
доброго времени суток. проблема банальна, нужно написать калькулятор, но(!), дело в том что нужен калькулятор который при вводе в одну...

Прямая задача кинематики и т.д
Всем привет. Так получилось, что мне пришлось столкнуться с прямой и обратной задачами кинематики. Нашёл документик:...

Приоритет операций в Польской инверсной записи
Разбирая код представленный тут, столкнулся с тем что при вводе например такого выражения a*b*c, результат будет abc**, а должен быть...

Справедлива ли в произвольной инверсной полугруппе S тождество
Справедливо ли в произвольной инверсной полугруппе S тождество {\left(a*b \right)}^{-1} = {a}^{-1} * {b}^{-1}?

ошибка в калькуляторе польской инверсной записи
Помогите с ошибкой в калькуляторе польской инверсной записи Ошибка C2440 =: невозможно преобразовать "void *" в "st...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru