Problem z obrotami polega na tym, że większość ludzi myśli o tym pod kątem kątów Eulera, ponieważ są one łatwe do zrozumienia.
Jednak większość ludzi zapomina o tym, że kąty Eulera to trzy kolejne kąty . Oznacza to, że obrót wokół pierwszej osi spowoduje, że następny obrót będzie związany z pierwszym pierwotnym obrotem, dlatego nie można niezależnie obrócić wektora wokół każdej z 3 osi przy użyciu kątów Eulera.
To bezpośrednio przekłada się na macierze, kiedy mnożymy dwie macierze, można pomyśleć o tym zwielokrotnieniu jako przekształceniu jednej macierzy w przestrzeń drugiej macierzy.
Ma to nastąpić przy 3 dowolnych obrotach sekwencyjnych, nawet przy użyciu czwartorzędów.
Chcę podkreślić fakt, że czwartorzędy nie są rozwiązaniem blokady kłębków. W rzeczywistości blokada drgań zawsze będzie mieć miejsce, jeśli reprezentowałeś kąty Eulera za pomocą czwartorzędów. Problem ten nie jest reprezentacją, problemem jest to , że kolejne etapy 3.
Rozwiązanie?
Rozwiązaniem dla niezależnego obracania wektora wokół 3 osi jest połączenie w jedną oś i jeden kąt, w ten sposób możesz pozbyć się kroku, w którym musisz wykonać sekwencyjne mnożenie. To skutecznie przełoży się na:
Moja macierz obrotu reprezentuje wynik obrotu wokół X, Y i Z.
zamiast interpretacji Eulera
Moja macierz obrotu reprezentuje obrót wokół X, a następnie Y, a następnie Z.
Aby to wyjaśnić, zacytuję z wikipedii Twierdzenie o rotacji Eulera:
Zgodnie z twierdzeniem o rotacji Eulera, każdy obrót lub sekwencja obrotu ciała sztywnego lub układu współrzędnych wokół stałego punktu jest równoważny pojedynczemu obrotowi o zadany kąt θ wokół stałej osi (zwanej osią Eulera), która biegnie przez stały punkt. Oś Eulera jest zazwyczaj reprezentowana przez wektor jednostkowy u →. Dlatego dowolny obrót w trzech wymiarach można przedstawić jako kombinację wektora u → i skalara ar. Czwartorzędy dają prosty sposób zakodowania tej reprezentacji kąta osi w czterech liczbach i zastosowania odpowiedniego obrotu do wektora pozycji reprezentującego punkt względem początku w R3.
Zauważ, że mnożenie 3 macierzy zawsze będzie reprezentowało 3 sekwencyjne obroty.
Teraz, aby połączyć obroty wokół 3 osi, musisz uzyskać jedną oś i pojedyncze kąty, które reprezentują obrót wokół X, Y, Z. Innymi słowy, musisz użyć reprezentacji Oś / Kąt lub czwartorzędu, aby pozbyć się kolejnych obrotów.
Zazwyczaj dokonuje się tego, zaczynając od orientacji początkowej (orientacja może być traktowana jako kąt osi), zwykle reprezentowany jako ćwiartka lub kąt osi, a następnie modyfikując tę orintację, aby reprezentowała orientację docelową. Na przykład zaczynasz od czwartego kwartału tożsamości, a następnie obracasz o różnicę, aby osiągnąć orientację docelową. W ten sposób nie tracisz żadnego stopnia swobody.