Prawdopodobnie słyszałeś o odwrotnej kinematyce. IK jest popularnym narzędziem w Unity i grafice komputerowej, ale jeśli po raz pierwszy próbujesz utworzyć lub zastosować system odwrotnej kinematyki, możesz potrzebować więcej szczegółów. Wyjaśnię, czym jest IK, zdefiniuję słownictwo i przejrzę zastosowania. Jakie słownictwo jest niezbędne do zrozumienia IK?
Zanim przejdziemy do serca IK, musimy zdefiniować słownictwo związane z IK. IK jest metodą stosowaną na przegubowym ciele. Co to jest ciało przegubowe?
Przegubowy korpus
Przegubowe ciało może reprezentować większość ożywionych ciał, takich jak ludzie i zwierzęta ze szkieletami. Mówiąc najprościej, przegubowe ciało jest drzewem połączonych łańcuchów. Połączone łańcuchy składają się z połączeń i ogniw, przy czym ogniwo jest sztywnym cylindrem.
Rodzaje stawów
Jeśli chodzi o połączenia, istnieją dwa typy. Pierwszym rodzajem złącza jest złącze obrotowe. Jest połączony z linkiem, który się wokół niego obraca.
Przegub obrotowy jest bardzo podobny do środkowej szpilki zegara - z zegarem jako łącznikiem.
Połączenie pryzmatyczne jest złączem, dzięki czemu połączone łącze przesuwa się od złącza, aby wydłużyć / skrócić połączenie.
Połączenie pryzmatyczne działa podobnie do przedłużania / chowania długości składanego uchwytu na bagażu. Jeśli przyjrzysz się uważnie, wysuwany uchwyt bagażowy ma 4 pryzmatyczne złącza. 2 pryzmatyczne złącza w połowie rączki i kolejne 2 pryzmatyczne połączenia w dół rączki na górze bagażu.
Jeśli wprawiają Cię w zakłopotanie połączenia pryzmatyczne, nie martw się. Nie są one używane tak często w kinematyce odwrotnej i, jak można się domyślić, żaden człowiek nie ma stawów pryzmatycznych - tylko stawy obrotowe.
Struktura hierarchiczna
Przegubowe ciało ma staw korzeniowy. Złącze korzeniowe stanowi podstawę konstrukcji. Staw korzeniowy dla humanoida jest zwykle środkiem bioder. Przegubowe ciało powstaje z drzewa stawów i połączeń, zaczynając od stawu korzeniowego. Nowe połączenie i łącze jest podobne do nowej gałęzi na drzewie. Wewnętrzne połączenie / połączenie to połączenie / połączenie, które jest bliżej złącza głównego w hierarchii drzewa przegubowego korpusu, ponieważ odnosi się do danego połączenia / połączenia. Zewnętrzne połączenie / złącze to połączenie / złącze, które znajduje się dalej od złącza głównego w hierarchii drzewa przegubowego korpusu.
End Effector
Efektor końcowy to pozycja w najbardziej zewnętrznej pozycji najbardziej zewnętrznego ogniwa. Jest to wolny koniec łańcucha naprzemiennych połączeń i ogniw. Efektor końcowy nie jest połączeniem. Efektor końcowy jest jedynie pozycją na końcu korpusu przegubowego. Przegubowe ciało może mieć wiele efektorów końcowych, podobnie jak drzewo binarne może mieć wiele liści.
Efekt końcowy jest tutaj przedstawiany jako zielone kółko.
Artykulacje i pozy
Przegub to obrót / przesunięcie złącza, które porusza połączone łącze. Z drugiej strony, pozą jest zestaw stawów, w wyniku których ustala się przegubowe ciało. Innymi słowy, poza jest wartością wektorową zamiast wartości skalarnej.
Co to jest Forward Kinematics?
Zanim przejdziemy do tego, czym jest odwrotna kinematyka, musimy dowiedzieć się, czym jest przednia kinematyka. Funkcja / algorytm Forward Kinematics przyjmuje pozę jako dane wejściowe i oblicza pozycję efektora końcowego jako dane wyjściowe. Forward Kinematics to funkcja odwrotna do kinematyki odwrotnej. W Forward Kinematics musisz zdefiniować całą pozę ciała przegubowego, aby zapewnić funkcję / algorytm z wejściem pozy. Oznacza to, że musisz zdefiniować artykulację każdego stawu w przegubowym ciele. Może to być w porządku, jeśli masz małą liczbę stawów, ale przy dużej liczbie stawów jest to zwykle uciążliwe.
Co to jest odwrotna kinematyka?
Teraz wyobraź sobie, czy chcesz, aby efektor końcowy ciała przegubowego osiągnął określoną pozycję docelową. Oznacza to, że znasz końcową pozycję efektora, na którą chcesz celować, ale nie wiesz, jaka powinna być pozycja przegubowego ciała, aby efektor końcowy mógł osiągnąć tę pozycję docelową. To tutaj świeci Inverse Kinematics!
Odwrotna kinematyka jest odwrotną funkcją / algorytmem przedniej kinematyki. Funkcja / algorytm Forward Kinematics przyjmuje jako wartość wejściową pozycję docelową i oblicza pozycję wymaganą dla efektora końcowego do osiągnięcia pozycji docelowej - pozycja jest wyjściową.
Jak widać, wejście i wyjście są przełączane między FK i IK. Dzięki odwrotnej kinematyce nie musisz definiować całej pozycji ciała przegubowego - oblicza to dla ciebie algorytm IK. W IK wystarczy zdefiniować pozycję jako dane wejściowe.
Inverse Kinematics wykonuje całą trudną pracę obliczeniową polegającą na obliczeniu pozy. W stanie przed istnieje ciało przegubowe o znanej pozie. Określa pozycję docelową, do której efektor końcowy będzie próbował dotrzeć. Po zastosowaniu algorytmu IK do korpusu przegubowego osiągnęliśmy stan After. Stan After pokazuje, że obliczono nową pozę, tak że efektor końcowy znajduje się teraz w pozycji docelowej.
Jakie są zastosowania IK?
W tym momencie wiemy, że IK nakłada się na ciało przegubowe, wiemy z czego składa się ciało przegubowe i znamy różnicę między IK a FK. Do tej pory mamy dobry przegląd IK, ale uzupełnijmy go o kilka dobrych przykładów użycia IK. IK, jak widzieliśmy, może służyć do humanoidalnego ramienia, by sięgnąć po obiekt / cel. IK może być również używany do chodzenia po stopach, dzięki czemu mówimy stopie, gdzie należy kroczyć, a IK wymyśla, jak skonfigurować stawy nóg. IK zwykle nie jest używana jako animacja (sięganie po obiekt), ale raczej jako narzędzie animacji. Tak więc, jeśli wdrażasz cykl marszu, możesz ustawić niektóre klatki kluczowe za pomocą narzędzia IK.
Inną kluczową kwestią dotyczącą IK jest to, że twój cel nie jest ograniczony do samej pozycji - twój cel można zdefiniować jako rotację. Na przykład, jeśli stopy muszą się obracać w oparciu o nierówny teren, cel obrotu IK można zdefiniować na podstawie normalnej podłogi. W ten sposób twoje stopy są pochylone wzdłuż podłogi, na przykład podczas wchodzenia po pochyłości. Pamiętaj, że możesz również użyć IK, aby głowa (a nawet oczy) patrzyły w określonym kierunku. Jeśli chcesz, aby głowa podążała za obiektem, możesz użyć IK, aby głowa podążała za obiektem wokół.