Jaka jest wiedza niezbędna do napisania biblioteki animacji (IK i FK)? [Zamknięte]

9

Nie mogę znaleźć żadnej dobrej biblioteki do animacji, te, które znalazłem, są naprawdę stare i przestały działać, ale zauważyłem, że biblioteki są stosunkowo małe, więc zastanawiam się nad samodzielnym kodowaniem jednej: od czego zacząć ? Jakie są podstawy tego? Jest o tym książka?

Bardzo cenione są również dalsze uwagi na temat dobrego formatu pliku dla animacji.

Używam C ++.

użytkownik827992
źródło

Odpowiedzi:

7

Przednia kinematyka jest po prostu warunkiem wstępnym dla kinematyki odwrotnej.

Aby uzyskać kinematykę do przodu, musisz mieć pewną wiedzę na temat łańcuchów transformacji (co oznacza na przykład wykres sceny). Na przykład dobrym punktem wyjścia jest konwencja Denavit-Hartenberg. Aby uzyskać kinematykę odwrotną, zbadaj rozwiązania cyklicznego współrzędnego opadania (CCD), odwrotności jakobianu, transpozycji jakobianu i rozwiązań pseudo-odwrotnych . Te pojęcia i algorytmy oferują niezły przegląd tego, na czym polega matematyka, a częściowo fizyka tego pola. Biblioteka, język programowania lub formaty plików nigdy nie są kluczowym elementem, jeśli chcesz zrozumieć, co dzieje się za magią.

Jeśli potrzebujesz szybkiego rozwiązania lub komponentu do jakiejś aplikacji, nad którą pracujesz, zajrzyj do niektórych bibliotek podanych w innych odpowiedziach tutaj. Jeśli lubisz robotykę, OpenRAVE to potwór, o którym warto wspomnieć. Istnieje także Matlab Robotics Toolbox (pod warunkiem, że zajmujesz się inżynieryjną stroną sprawy).

Wszystkie te koncepcje dają mnóstwo odpowiednich wyników w Twojej ulubionej wyszukiwarce, więc przepraszam, że nie zamieściłem tylu linków do ładnych materiałów.

teodron
źródło
1

Artykuł oryginalny: Co muszę wiedzieć o kinematyce odwrotnej?

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.

wprowadź opis zdjęcia tutaj

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.

wprowadź opis zdjęcia tutaj

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.

wprowadź opis zdjęcia tutaj

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.

wprowadź opis zdjęcia tutaj

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!

wprowadź opis zdjęcia tutaj

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.

wprowadź opis zdjęcia tutaj

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ół.

Luis B.
źródło