ГоловнаРоботика та КінематикаЗворотна кінематика (FABRIK)

🎯 Зворотна кінематика (FABRIK)

Керуйте багатоланковою рукою робота за допомогою зворотної кінематики. Перетягніть ціль і спостерігайте, як FABRIK ітеративно обчислює кути суглобів, щоб досягти її в реальному часі.

Роботика та Кінематика2DЛегкий60 FPS
inverse-kinematics ↗ Відкрити окремо

Про цю симуляцію

Ця симуляція керує багатоланковою рукою робота за допомогою зворотної кінематики: замість того щоб вручну задавати кути суглобів, ви задаєте ціль, а розв'язувач обчислює кути, потрібні для її досягнення. Ви можете перемикатися між двома класичними ітеративними методами — FABRIK (Forward And Backward Reaching Inverse Kinematics) та CCD (Cyclic Coordinate Descent). Обидва зберігають фіксовані довжини сегментів і повторюють проходи, поки кінчик не опиниться близько до цілі, ілюструючи, як роботи перетворюють бажане положення «руки» на рух суглобів.

🔬 Що показано

Кінематичний ланцюг із 2–6 жорстких сегментів, закріплений у фіксованій базі. FABRIK чергує прямий прохід (розмістити кінчик на цілі, а потім підтягнути кожен суглоб назад уздовж ланцюга, зберігаючи його довжину) і зворотний прохід (знову закріпити основу, виштовхнути суглоби назовні). CCD натомість обертає кожен суглоб, рухаючись від кінчика до основи, щоб вирівняти свій підланцюг із ціллю. Обидва зупиняються з точністю 0,5 пкс або після 30 ітерацій.

🎮 Як користуватись

Перетягуйте червону ціль-перехрестя будь-де на полотні й спостерігайте, як рука слідує за нею. Повзунок «Сегменти» задає кількість суглобів (2–6), а «Довжина сегмента» — довжину кожної ланки (50–120 пкс). Перемикайте FABRIK і CCD, щоб порівняти розв'язувачі, спробуйте пресети «Вгору», «Вправо», «Складено» та «S-крива», а також увімкніть дуги кутів суглобів або пунктирне коло досяжності. Статистика в реальному часі показує кількість ітерацій, відстань до кінчика та загальну досяжність.

💡 Чи знали ви?

FABRIK опублікували Андреас Арістіду та Джоан Лейзенбі 2011 року. На відміну від багатьох розв'язувачів, він взагалі не використовує матриці обертання чи тригонометрію — він працює виключно шляхом знаходження точок на прямих, що робить його швидким, стабільним і легким для розширення обмеженнями, тому його широко застосовують в іграх та анімації персонажів.

Поширені запитання

Що таке зворотна кінематика?

Зворотна кінематика — це задача пошуку кутів суглобів, які розміщують кінець зв'язаного ланцюга — наприклад, руки робота чи кисті персонажа — у бажаній цільовій позиції. Це обернена задача до прямої кінематики, де кути вже відомі і достатньо обчислити, де опиниться кінчик. Тут симуляція розв'язує її у двох вимірах для руки з до шести сегментів.

Чим відрізняються FABRIK і CCD?

FABRIK — геометричний метод: він переміщує суглоби вздовж прямих ліній, виконуючи прямий прохід, який закріплює кінчик на цілі, і зворотний прохід, який знову закріплює основу, зберігаючи точну довжину кожного сегмента. CCD — кутовий метод: рухаючись від кінчика до основи, він обертає кожен суглоб так, щоб решта підланцюга точніше вказувала на ціль. FABRIK зазвичай збігається за менше ітерацій і дає плавніші пози.

Що роблять елементи керування?

Повзунок «Сегменти» визначає кількість ланок руки (від 2 до 6), а «Довжина сегмента» задає довжину кожної ланки в пікселях (від 50 до 120). Кнопки розв'язувача перемикають між FABRIK і CCD, а чотири пресети встановлюють ціль у типові пози. Прапорці показують дуги кутів суглобів та пунктирне коло досяжності, що позначає максимальну досяжність, яка дорівнює кількості сегментів, помноженій на довжину сегмента.

Що відбувається, коли ціль недосяжна?

Якщо ціль лежить за межами кола досяжності — далі за загальну довжину руки — ланцюг не може її торкнутися. У такому разі рука повністю витягується й простягається по прямій лінії до цілі, залишаючи залишковий розрив, який відображається як ненульова відстань до кінчика на панелі статистики. Переміщення цілі назад усередину кола дозволяє розв'язувачу знову закрити цей розрив.

Чи це фізично точно?

Геометрія зчленування точна: довжини сегментів зберігаються, а розв'язувачі є точними реалізаціями опублікованих алгоритмів FABRIK і CCD. Однак це суто кінематична модель, тож вона не враховує динаміку — масу, крутний момент двигунів, обмеження швидкості суглобів та зіткнення. Також суглоби залишаються необмеженими, тоді як реальний робот обмежував би кожен кут механічним діапазоном.

Часті запитання

У чому різниця між прямою та зворотною кінематикою?

Пряма кінематика обчислює позицію кінцевого ефектора за заданим набором кутів суглобів — це пряме обчислення з використанням матриць перетворення. Зворотна кінематика розв'язує обернену задачу: за бажаною позицією кінцевого ефектора знайти кути суглобів. Пряма кінематика має єдиний розв'язок; зворотна може мати багато, один або жодного розв'язку.

Чому зворотна кінематика може мати кілька розв'язків?

Надлишковий кінематичний ланцюг (з більшою кількістю ступенів свободи, ніж потрібно для досягнення цілі) має нескінченно багато конфігурацій суглобів, які розміщують кінцевий ефектор в одній і тій самій позиції. Навіть ненадлишкові руки часто мають два розв'язки (лікоть вгору / лікоть вниз). Алгоритми обирають серед розв'язків за додатковими критеріями, такими як мінімізація руху суглобів або уникнення перешкод.

Що таке матриця Якобіана в зворотній кінематиці?

Якобіан — це матриця часткових похідних, що пов'язує малі зміни кутів суглобів з малими змінами позиції та орієнтації кінцевого ефектора. Псевдообернена матриця Якобіана перетворює бажані швидкості кінцевого ефектора назад у швидкості суглобів, що дозволяє ітеративним розв'язувачам зворотної кінематики поступово рухати суглоби до цілі.

Що таке FABRIK і чому він популярний?

FABRIK (Forward And Backward Reaching Inverse Kinematics) — це геометричний алгоритм зворотної кінематики, що чергує рух вперед від основи до цілі та назад від цілі до основи, коригуючи позицію кожного суглоба вздовж напрямку кістки. Він простий у реалізації, швидкий, стабільний і добре обробляє обмеження суглобів, тому популярний в іграх та застосунках реального часу.

Як зворотна кінематика використовується в анімації персонажів?

Аніматори задають бажану позицію руки чи ноги персонажа (кінцевого ефектора), а розв'язувач зворотної кінематики автоматично обчислює кути ліктя, плеча, коліна та стегна. Це набагато інтуїтивніше, ніж вручну задавати кожен кут суглоба для кожного кадру. Процедурна зворотна кінематика також дозволяє персонажам адаптуватися до рельєфу в реальному часі, наприклад точно ставити ноги на нерівну поверхню.

⚙ Під капотом

Розв'язувач зворотної кінематики FABRIK: клацніть, щоб задати ціль, і спостерігайте, як ланцюг досягає її, чергуючи прямі та зворотні проходи. Три режими: одиночний, подвійний (дзеркальний), павук (6 автоорбітальних ланцюгів).

Canvas 2DFABRIKIK SolverKinematics

2D · HTML5 Canvas 2D · ціль 60 FPS · працює повністю на стороні клієнта, без встановлення