Алгоритм самостійно змінює задані користувачем рухи, оптимізуючи їх.

Інженери з Disney Research розробили метод, що дозволяє роботам або анімованим персонажам виконувати швидкі рухи без залишкового розгойдування, яке зазвичай виникає після них. Для цього на етапі планування руху алгоритм аналізує поведінку моделі і оптимізує рухи електромоторів так, щоб погасити низькочастотні коливання, інформує Ukr.Media.

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

Є і третій шлях — заздалегідь здійснювати крім цільових рухів додаткові, які покликані компенсувати майбутні коливання. Інженери під керівництвом Моріца Бехера (Moritz Bächer) створили алгоритм, що дозволяє оптимізувати рухи анімованих персонажів, що складаються з жорстких і гнучких сегментів, таким чином, щоб мінімізувати залишкові коливання після швидких рухів.

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

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

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

Крім того, раніше ми розповідали про іншу роботу групи Моріца Бехера, що стосується роботів з дроту. Розробники створили алгоритм, що дозволяє з допомогою вигинів створювати з дроту частини тіла анімованих персонажів, здатних виконувати різні рухи. Користувач задає будову тіла, що складається з прямих сегментів, а також показує цільові рухи. Після цього алгоритм автоматично замінює прямі сегменти на вигнуті дроти, форма яких підібрана таким чином, щоб один і той же набір дротів міг охопити всі задані руху.