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

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

🔬 Що показує

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

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

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

💡 Чи знали ви?

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

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

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

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

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

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

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

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

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

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

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

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