|
12 / 12 / 0
Регистрация: 20.11.2013
Сообщений: 167
|
|
Реализация инверсной кинематики методом Fabric16.10.2018, 12:24. Показов 2998. Ответов 12
Добрый день! Столкнулся с проблемой реализации алгоритма Fabric для расчета конечных координат таргетной точки для суставов манипулятора.
Сами расчеты реализованы и выдают нужные таргетные координаты (3D). Однако после начала тестов новой математической модели столкнулся с тем, что происходт несанкионированная ротация узлов, которой быть не должно. Литературы по методу много (в т.ч. и самого "папы" метода), однако в плане проверки ограничений движений суставов авторы ограничиваются лишь общими вещами, поэтому пользовался своими механизмами проверки факта выхода за имеющиеся ограничения моторов узлов. Поэтому решил обратиться за помощью - где можно подробно ознакомиться с алгоритмикой, позволяющей реализовать ограничения для метода Fabric? Если подробнее, то произвожу моделирование движений ноги человека и проблема вылезла в тазобедренном суставе, который вращается во всех плоскостях. Для корректной работы моей модели необходимо запретить методу осуществлять ротацию бедра (рыскание, yaw). Вся реализация - на С++ без использования стандартных библиотек, поэтому нуждаюсь в алгоритмах и их математике. Заранее спасибо за ответы!
0
|
|
| 16.10.2018, 12:24 | |
|
Ответы с готовыми решениями:
12
Решение обратной задачи кинематики численным методом задача из кинематики Задача с кинематики |
| 16.10.2018, 13:45 | |
|
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||||
| 17.10.2018, 10:03 | ||||
|
Может так? Если в текущей итерации угол между двумя звеньями превышен, то установить максимальный угол между звеньями и считать два звена одним жестким и повторить итарацию. А инерция? А подвижность суставов в зависимости от их положения и мышц…наверно звенья соединяют пружинами с демпферами. В этих прогах для анимации куча подводных камней. Вероятно даже на каждой итерации подвижность суставов разная. Пакеты для анимации недаром содержат много кода и стоят прилично.
0
|
||||
|
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 | ||
|
Я бы делал так: работать с ограничениями на углы поворота и степени свободы всех шарниров. Причем на каждом проходе алгоритма где вышли за пределы углов и степеней свободы там и замораживать два звена в крайнем допустимом положении и снова считать но взяв замороженные как одно звено. Но это я так придумал…а как оно обычно хз. Например при шагани амплитуда бедра намного меньше амплитуды голени, у фабрика нет учета этого. Вообще фабрик выглядит больше как игрушечный метод для 2д анимации хвоста. Вообще есть ли смысл для инверсной когда 3 звена?
0
|
||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 17.10.2018, 21:26 | |
|
Например тут решение это пересечение двух окружностей радиусом как звенья в плоскости где сгибается колено. Зачем тут инверсная кинематика? Может для пальцев…
0
|
|
|
12 / 12 / 0
Регистрация: 20.11.2013
Сообщений: 167
|
|
| 18.10.2018, 10:51 [ТС] | |
|
Excalibur921, у меня в бедре еще одна степень подвижности имеется. Координата третьего звена и есть моя таргетная точка, которая берется из модели и к ней узлы все надо извернуть. Я, правда, пока не понимаю как мне можно получить трехмерную координату колена (второго узла) на основании известных координат первого узла (оси бедра) и третьего узла (оси стопы). И это с учетом того, что стопа может перемещаться в двух плоскостях. У вас на рисунке они как раз отражены (оси их вращения). Тогда и фабрик, в принципе, на данном этапе не нужен будет. Останется только углы между векторами в соответствующих плоскостях расчитать по якорным узлам и подать все на управляющую структуру.....
Но, как Вы правильно заметили, в перспективе будет управление манипуляторами (руками) где опять же вылезет проблема с поворотами тех же пальцев по yaw (у которых нету такой степени свободы) и опять встанет проблема с ограничениями для координат по методу Fabric (
0
|
|
|
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 | |||
|
Вообще робот будет ходить по плоскости или кривой поверхности? По плоскости можно сделать почти халявную ориентацию стопы всегда параллельно земле и убрать два серво. Правда если корпус параллелен земле и нужно еще стержни для стабилизации в другой плоскости. Кликайте на анимации они на форуме могут отображаться с лагами … Например в бостон динамикс есть роботы без серво в суглобах. Там через стержневые механизмы передают вращение. Так все серво в корпусе и их можно сделать очень сильными. Откуда у вас 3 степени свободы в одном шарнире? На практике он вроде как составной по 1 степени. Может так и решать? Например шарнир 1 степень свободы с пределами углов. Фабрик решает что шарнир текущего звена в точке E. Это превышение степени свободы и предельного угла шарнира. Проецируем точку E на допустимую плоскость вращения стержня получаем E1 учет ограничения на степень свободы( точка только в допустимой плоскости). Если E1 в допустимых углах шарнира то и считать что там расположен шарнир и брать новое звено для расчета. Устанавливаем максимальный ближайший угол поворота стержня E2 вот и допустимый угол поворота шарнира. Теперь считаем что там шарнир, решаем дальше следующее звено… Похоже что только проверка в процессе рекурсии даст ответ где будут звенья и возможно ли это. В общем это и поясняли на хабре, правда там взяли 2д случай и зачем-то 2д эллипс как ограничение… испугались или не знают как в 3д решать. Вообще может связались бы с ними http://aleksstreltsov14.narod.ru/MGTU.htm Вроде кинематика ваша. Может что-то подскажут.
0
|
|||
|
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 | ||
|
Помню в ютубе экзотика была две степени… там две полусферы с зубцами в зацеплении как шестерни, очень странная штука… 3 степени наверняка составной. Это для презентации или вам они так поясняют что там 3 степени. На практике там скорей всего три серво последовательно с одной степенью, что в сумме даст три степени. Именно так и считать фабрик по 1 степени, т.е сделать кинематическую схему подробней как на самом деле. Так решать будет всегда для шарнира с одной степенью и будет универсальный.
0
|
||
|
12 / 12 / 0
Регистрация: 20.11.2013
Сообщений: 167
|
|
| 20.10.2018, 11:50 [ТС] | |
|
Excalibur921, Скорее всего мог не понять. Там не сфера, но три степени свободы от одной оси согласно модели инженерной. Фотку ниже приложил. В реальности узел, который крепится к телу робота обеспечивает ротацию ног, а оставшиеся две степени свободы как и надо по общей оси повороты осуществляют.
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
|
|
| 20.10.2018, 21:32 | |
|
Помогаю со студенческими работами здесь
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 из. . .
|