Inom geometrin finns olika formalismer för att uttrycka en rotation i tre dimensioner som en matematisk transformation . I fysiken tillämpas detta koncept på klassisk mekanik där rotations- (eller vinkel-) kinematik är vetenskapen om kvantitativ beskrivning av en rent roterande rörelse . Orienteringen av ett objekt vid ett givet ögonblick beskrivs med samma verktyg, eftersom det definieras som en imaginär rotation från en referensplacering i rymden, snarare än en faktiskt observerad rotation från en tidigare placering i rymden.
Ett exempel där rotationsrepresentation används är i datorseende , där en automatiserad observatör behöver spåra ett mål. Betrakta en stel kropp, med tre ortogonala enhetsvektorer fixerade till sin kropp (som representerar de tre axlarna i objektets lokala koordinatsystem ). Det grundläggande problemet är att specificera orienteringen av dessa tre enhetsvektorer , och därmed den stela kroppen, med avseende på observatörens koordinatsystem, betraktad som en referensplacering i rymden.
Rotationsformalismer är fokuserade på korrekta ( orienteringsbevarande ) rörelser av det euklidiska rummet med en fast punkt , som en rotation refererar till. Även om fysiska rörelser med en fast punkt är ett viktigt fall (som de som beskrivs i masscentrumramen eller rörelser i en led ), skapar detta tillvägagångssätt en kunskap om alla rörelser. Varje riktig rörelse av det euklidiska rummet sönderfaller till en rotation runt ursprunget och en translation . Oavsett vilken ordning de kommer att ha på deras sammansättning kommer den "rena" rotationskomponenten inte att förändras, unikt bestämt av den fullständiga rörelsen.
Man kan också förstå "rena" rotationer som linjära kartor i ett vektorrum utrustat med euklidisk struktur, inte som kartor över punkter i ett motsvarande affint rum . Med andra ord, en rotationsformalism fångar endast den roterande delen av en rörelse, som innehåller tre frihetsgrader, och ignorerar den translationella delen, som innehåller ytterligare tre.
När man representerar en rotation som siffror i en dator, föredrar vissa personer kvartjonrepresentationen eller axel+vinkelrepresentationen, eftersom de undviker kardanlåset som kan uppstå med Euler-rotationer.
Den ovan nämnda triaden av enhetsvektorer kallas också en bas . Att specificera koordinaterna ( komponenterna ) för vektorer av denna bas i dess nuvarande (roterade) position, i termer av referens (icke-roterade) koordinataxlar, kommer att fullständigt beskriva rotationen. De tre enhetsvektorerna, , och , som utgör den roterade basen består var och en av 3 koordinater, vilket ger totalt 9 parametrar.
Dessa parametrar kan skrivas som elementen i en 3 × 3 matris A , kallad rotationsmatris . Vanligtvis är koordinaterna för var och en av dessa vektorer ordnade längs en kolumn i matrisen (var dock uppmärksam på att en alternativ definition av rotationsmatris finns och används ofta, där vektorernas koordinater som definieras ovan är ordnade efter rader)
Elementen i rotationsmatrisen är inte alla oberoende – som Eulers rotationssats dikterar, har rotationsmatrisen bara tre frihetsgrader.
Determinanten för A är +1 , ekvivalent med produkten av dess egenvärden.
Spåret för A är 1 + 2 cos θ , ekvivalent med summan av dess egenvärden .
Vinkeln θ som förekommer i egenvärdeuttrycket motsvarar vinkeln för Euleraxeln och vinkelrepresentationen. Egenvektorn som förblir oförändrad genom att vänstermultiplicera (rotera) den med rotationsmatrisen.
Ovanstående egenskaper motsvarar
vilket är ett annat sätt att säga att utgör en 3D- ortonormal basis . Dessa uttalanden omfattar totalt 6 villkor (korsprodukten innehåller 3), vilket lämnar rotationsmatrisen med bara 3 frihetsgrader, efter behov.
Två på varandra följande rotationer representerade av matriserna A 1 och A 2 kan enkelt kombineras som element i en grupp,
(Notera ordningen, eftersom vektorn som roteras multipliceras från höger).
Lättheten med vilken vektorer kan roteras med hjälp av en rotationsmatris, liksom enkelheten att kombinera successiva rotationer, gör rotationsmatrisen till ett användbart och populärt sätt att representera rotationer, även om den är mindre koncis än andra representationer.
Euler axel och vinkel (rotationsvektor)
En visualisering av en rotation representerad av en Euler-axel och vinkel.
Från Eulers rotationssats vet vi att vilken rotation som helst kan uttryckas som en enda rotation kring någon axel. Axeln är enhetsvektorn (unik utom för tecken) som förblir oförändrad av rotationen. Vinkelns storlek är också unik, där dess tecken bestäms av rotationsaxelns tecken.
Axeln kan representeras som en tredimensionell enhetsvektor
och vinkeln med en skalär θ .
Eftersom axeln är normaliserad har den bara två frihetsgrader . Vinkeln lägger till den tredje frihetsgraden till denna rotationsrepresentation.
Man kanske vill uttrycka rotation som en rotationsvektor , eller Euler-vektor , en onormaliserad tredimensionell vektor vars riktning anger axeln och vars längd är θ ,
Rotationsvektorn är användbar i vissa sammanhang, eftersom den representerar en tredimensionell rotation med endast tre skalära värden (dess komponenter), som representerar de tre frihetsgraderna. Detta gäller även för representationer baserade på sekvenser av tre Euler-vinklar (se nedan).
Om rotationsvinkeln θ är noll är axeln inte unikt definierad. Att kombinera två på varandra följande rotationer, var och en representerad av en Euler-axel och -vinkel, är inte okomplicerat, och uppfyller faktiskt inte lagen om vektoraddition, som visar att ändliga rotationer inte alls är vektorer. Det är bäst att använda rotationsmatrisen eller kvaternionnotationen, beräkna produkten och sedan konvertera tillbaka till Euleraxel och vinkel.
Tanken bakom Euler-rotationer är att dela upp den fullständiga rotationen av koordinatsystemet i tre enklare konstitutiva rotationer, kallade precession , nutation och inneboende rotation , var och en av dem ett inkrement på en av Euler-vinklarna . Lägg märke till att den yttre matrisen kommer att representera en rotation runt en av referensramens axlar, och den inre matrisen representerar en rotation runt en av de rörliga ramaxlarna. Den mellersta matrisen representerar en rotation runt en mellanaxel som kallas nodlinje .
Definitionen av Euler-vinklar är dock inte unik och i litteraturen används många olika konventioner. Dessa konventioner beror på de axlar kring vilka rotationerna utförs och deras sekvens (eftersom rotationer inte är kommutativa ).
Den konvention som används indikeras vanligtvis genom att specificera de axlar kring vilka de på varandra följande rotationerna (innan de komponeras) äger rum, med hänvisning till dem med index ( 1, 2, 3) eller bokstav (X, Y, Z) . Ingenjörs- och robotgemenskaperna använder vanligtvis 3-1-3 Euler-vinklar. Lägg märke till att efter att ha komponerat de oberoende rotationerna roterar de inte längre runt sin axel. Den mest externa matrisen roterar de andra två och lämnar den andra rotationsmatrisen över raden av noder och den tredje i en ram som följer med kroppen. Det finns 3 × 3 × 3 = 27 möjliga kombinationer av tre grundläggande rotationer men endast 3 × 2 × 2 = 12 av dem kan användas för att representera godtyckliga 3D-rotationer som Euler-vinklar. Dessa 12 kombinationer undviker på varandra följande rotationer runt samma axel (som XXY) vilket skulle minska de frihetsgrader som kan representeras.
Därför uttrycks Euler-vinklar aldrig i termer av den yttre ramen, eller i termer av den medflyttande roterade kroppsramen, utan i en blandning. Andra konventioner (t.ex. rotationsmatris eller quaternioner ) används för att undvika detta problem.
Quaternions , som bildar ett fyrdimensionellt vektorrum , har visat sig vara mycket användbara för att representera rotationer på grund av flera fördelar jämfört med de andra representationerna som nämns i den här artikeln.
En quaternion representation av rotation skrivs som en versor (normaliserad quaternion):
Ovanstående definition lagrar quaternion som en array enligt konventionen som används i (Wertz 1980) och (Markley 2003). En alternativ definition, som används till exempel i (Coutsias 1999) och (Schmidt 2001), definierar den "skalära" termen som det första kvarternionelementet, med de andra elementen nedförskjutna en position.
När det gäller Euler-axeln
och vinkeln θ denna versors komponenter uttrycks enligt följande:
Inspektion visar att quaternion-parametriseringen följer följande begränsning:
Den sista termen (i vår definition) kallas ofta den skalära termen, som har sitt ursprung i quaternions när den förstås som den matematiska förlängningen av de komplexa talen, skrivna som
Kvaternionmultiplikation, som används för att specificera en sammansatt rotation, utförs på samma sätt som multiplikation av komplexa tal , förutom att ordningen på elementen måste beaktas, eftersom multiplikation inte är kommutativ. I matrisnotation kan vi skriva kvaternionmultiplikation som
Att kombinera två på varandra följande kvartjonrotationer är därför lika enkelt som att använda rotationsmatrisen. Precis som två på varandra följande rotationsmatriser, A 1 följt av A 2 , kombineras som
vi kan representera detta med kvaternionparametrar på ett liknande kortfattat sätt:
Kvaternioner är en mycket populär parametrisering på grund av följande egenskaper:
Mer kompakt än matrisrepresentationen och mindre känslig för avrundningsfel
Kvaternionelementen varierar kontinuerligt över enhetssfären i ℝ 4 , (betecknas med S 3 ) när orienteringen ändras, vilket undviker diskontinuerliga hopp (inneboende i tredimensionella parametrar)
Det är enkelt att kombinera två individuella rotationer representerade som quaternions med hjälp av en quaternion-produkt
Liksom rotationsmatriser måste kvartjoner ibland renormaliseras på grund av avrundningsfel, för att säkerställa att de motsvarar giltiga rotationer. Beräkningskostnaden för att åternormalisera en kvaternion är dock mycket mindre än för normalisering av en 3 × 3 matris.
Kvaternioner fångar också den spinoriala karaktären hos rotationer i tre dimensioner. För ett tredimensionellt föremål kopplat till sin (fasta) omgivning med slaka strängar eller band, kan strängarna eller banden lossas efter två fullständiga varv kring någon fast axel från ett initialt otrasslat tillstånd. Algebraiskt ändras kvartjonen som beskriver en sådan rotation från en skalär +1 (initialt), genom (skalär + pseudovektor) värden till skalär −1 (vid ett helt varv), genom (skalär + pseudovektor) värden tillbaka till skalär +1 (vid två hela varv). Denna cykel upprepas vartannat varv. Efter 2 n varv (heltal n > 0 ), utan några mellanliggande trasslingsförsök, kan strängarna/banden trasslas ut delvis tillbaka till tillståndet för 2( n − 1) varv med varje tillämpning av samma procedur som används vid uttrassling från 2 varv till 0 varv. Att tillämpa samma procedur n gånger kommer att ta ett 2 n -trasslat föremål tillbaka till det otrasslade eller 0-varvsläget. Avtrasslingsprocessen tar också bort alla rotationsgenererade vridningar kring själva strängarna/banden. Enkla 3D-mekaniska modeller kan användas för att visa dessa fakta.
Rodrigues -vektorn (ibland kallad Gibbs-vektorn , med koordinater som kallas Rodrigues-parametrar ) kan uttryckas i termer av rotationsaxeln och vinkeln enligt följande:
Denna representation är en högredimensionell analog av den gnomoniska projektionen , som kartlägger enhetskvaternioner från en 3-sfär till det 3-dimensionella renvektorhyperplanet.
Den har en diskontinuitet vid 180° ( π radianer): eftersom varje rotationsvektor r tenderar till en vinkel av π radianer, tenderar dess tangent till oändlighet.
En rotation g följt av en rotation f i Rodrigues representation har den enkla rotationssammansättningsformen
Idag är det enklaste sättet att bevisa denna formel i den (trogna) dublettrepresentationen , där g = n̂ tan a , etc.
De kombinatoriska egenskaperna hos den nyss nämnda Pauli-matrishärledningen är också identiska med den ekvivalenta kvartjonhärledningen nedan. Konstruera en kvaternion associerad med en rumslig rotation R som,
Då är sammansättningen av rotationen RB med RA rotationen RC = R B RA , med rotationsaxeln och vinkeln definierade av produkten av kvaternionerna ,
det är
Expandera denna quaternion-produkt till
Dividera båda sidor av denna ekvation med identiteten från den föregående,
och utvärdera
Detta är Rodrigues formel för axeln för en sammansatt rotation definierad i termer av axlarna för de två komponentrotationerna. Han härledde denna formel 1840 (se sidan 408). De tre rotationsaxlarna A , B och C bildar en sfärisk triangel och de dihedriska vinklarna mellan planen som bildas av sidorna av denna triangel definieras av rotationsvinklarna.
Modifierade Rodrigues parametrar (MRPs) kan uttryckas i termer av Euler axel och vinkel med
Dess komponenter kan uttryckas i termer av komponenterna i en enhetskvarternion som representerar samma rotation som
Den modifierade Rodrigues-vektorn är en stereografisk projektionsmappningsenhet , kvaternioner från en 3-sfär till det 3-dimensionella renvektorhyperplanet. Projektionen av den motsatta kvaternionen -q resulterar i en annan modifierad Rodriguesvektor än projektionen av den ursprungliga kvaternionen q . Jämför man komponenter får man det
Noterbart, om en av dessa vektorer ligger inuti enhet 3-sfären, kommer den andra att ligga utanför.
Aktiva rotationer av en 3D-vektor p i det euklidiska rummet runt en axel n över en vinkel η kan enkelt skrivas i termer av punkt- och korsprodukter enligt följande:
vart i
är den longitudinella komponenten av p längs n , given av punktprodukten ,
är den tvärgående komponenten av p med avseende på n , och
Ovanstående formel visar att den longitudinella komponenten av p förblir oförändrad, medan den tvärgående delen av p roteras i planet vinkelrätt mot n . Detta plan överspänns av den tvärgående delen av p själv och en riktning vinkelrät mot både p och n . Rotationen är direkt identifierbar i ekvationen som en 2D-rotation över en vinkel η .
Passiva rotationer kan beskrivas med samma formel, men med ett omvänt tecken på antingen η eller n .
Euler-vinklarna ( φ , θ , ψ ) kan extraheras från rotationsmatrisen genom att inspektera rotationsmatrisen i analytisk form.
Rotationsmatris → Euler-vinklar ( z - x - z yttre)
Med hjälp av x -konventionen kan de 3-1-3 extrinsiska Euler-vinklarna φ , θ och ψ (runt z -axeln, x -axeln och återigen -axeln) erhållas enligt följande:
Observera att atan2( a , b ) är ekvivalent med
arctan a / b där den också tar hänsyn till kvadranten som punkten ; ( b , a ) är i se atan2 .
När man implementerar konverteringen måste man ta hänsyn till flera situationer:
Det finns i allmänhet två lösningar i intervallet [−π, π] 3 . Ovanstående formel fungerar bara när θ är inom intervallet [0, π] .
För specialfallet kommer A 33 = 0 , φ och ψ att härledas från A 11 och A 12 .
Det finns oändligt många men oräkneligt många lösningar utanför intervallet [−π, π] 3 .
Huruvida alla matematiska lösningar gäller för en given tillämpning beror på situationen.
Eulervinklar ( z - y ′- x ″ inneboende) → rotationsmatris
Rotationsmatrisen A genereras från de 3-2-1 inneboende Euler-vinklarna genom att multiplicera de tre matriserna som genereras av rotationer kring axlarna.
Rotationsaxlarna beror på den specifika konvention som används. För x -konventionen handlar rotationerna om x -, y - och z -axlarna med vinklarna ϕ , θ och ψ , de individuella matriserna är som följer:
Detta ger
Obs: Detta gäller för ett högerhandssystem , vilket är den konvention som används i nästan alla ingenjörs- och fysikdiscipliner.
000 Tolkningen av dessa högerhänta rotationsmatriser är att de uttrycker koordinattransformationer ( passiv ) i motsats till punkttransformationer ( aktiv ). Eftersom A uttrycker en rotation från den lokala ramen 1 till den globala ramen (dvs. A kodar axlarna för ram 1 wrt frame ), är de elementära rotationsmatriserna sammansatta enligt ovan. Eftersom den omvända rotationen bara är den transponerade rotationen, om vi ville ha den globala-till-lokala rotationen från bildruta till bildruta 1 , skulle vi skriva .
Rotationsmatris ↔ Euler axel/vinkel
Om Eulervinkeln θ inte är en multipel av π , kan Euleraxeln ê och vinkeln θ beräknas från elementen i rotationsmatrisen A enligt följande:
Alternativt kan följande metod användas:
Egenuppdelning av rotationsmatrisen ger egenvärdena 1 och cos θ ± i sin θ . Euleraxeln är egenvektorn som motsvarar egenvärdet 1, och θ kan beräknas från de återstående egenvärdena.
Euler-axeln kan också hittas med singularvärdesuppdelning eftersom det är den normaliserade vektorn som spänner över nollrummet för matrisen I − A .
För att konvertera åt andra hållet kan rotationsmatrisen som motsvarar en Euler-axel ê och vinkeln θ beräknas enligt Rodrigues rotationsformel (med lämplig modifiering) enligt följande:
När man beräknar en kvaternion från rotationsmatrisen finns det en teckentvetydighet, eftersom q och − q representerar samma rotation.
Ett sätt att beräkna quaternion
från rotationsmatrisen A är följande:
Det finns tre andra matematiskt ekvivalenta sätt att beräkna q . Numerisk felaktighet kan minskas genom att undvika situationer där nämnaren är nära noll. En av de andra tre metoderna ser ut som följer:
Rotationsmatrisen som motsvarar quaternion q kan beräknas enligt följande:
Vi kommer att betrakta x -konventionen 3-1-3 extrinsiska Euler-vinklar för följande algoritm. Termerna för algoritmen beror på vilken konvention som används.
Vi kan beräkna quaternion
från Euler-vinklarna ( ϕ , θ , ψ ) enligt följande:
Eulervinklar ( z - y ′- x ″ inneboende) → kvaternion
Eftersom definitionen av Rodrigues-vektorn kan relateras till rotationskvarternioner:
Genom att använda följande egendom
Formeln kan erhållas genom att faktorisera från det slutliga uttrycket som erhålls för kvaternioner:
Leder till den slutliga formeln:
Konverteringsformler för derivat
Rotationsmatris ↔ vinkelhastigheter
Vinkelhastighetsvektorn
kan extraheras från tidsderivatan av rotationsmatrisen d A / d t genom följande relation:
Härledningen är anpassad från Ioffe enligt följande:
För vilken vektor r som helst 0 , betrakta r ( t ) = A ( t ) r 0 och särskilj den:
En vektors derivata är den linjära hastigheten för dess spets. Eftersom A är en rotationsmatris, är längden på r ( t ) per definition alltid lika med längden på r 0 , och därför ändras den inte med tiden. Sålunda, när r ( t ) roterar, rör sig dess spets längs en cirkel, och den linjära hastigheten för dess spets är tangentiell till cirkeln; dvs alltid vinkelrät mot r ( t ) . I detta specifika fall är förhållandet mellan den linjära hastighetsvektorn och vinkelhastighetsvektorn
kan erhållas från derivatan av kvaternionen d q / d t enligt följande:
där är konjugatet (invers) av .
Omvänt är derivatan av quaternion
Rotorer i en geometrisk algebra
Geometrisk algebras formalism (GA) ger en förlängning och tolkning av kvaternionmetoden. Centralt för GA är den geometriska produkten av vektorer, en förlängning av de traditionella inre och korsprodukterna , som ges av
där symbolen ∧ betecknar den yttre produkten eller kilprodukten . Denna produkt av vektorerna a och b ger två termer: en skalär del från den inre produkten och en bivector del från kilprodukten. Denna bivector beskriver planet vinkelrätt mot vad korsprodukten av vektorerna skulle returnera.
Bivektorer i GA har några ovanliga egenskaper jämfört med vektorer. Under den geometriska produkten har bivectors en negativ kvadrat: bivector x̂ŷ beskriver xy -planet. Dess kvadrat är ( x̂ŷ ) 2 = x̂ŷx̂ŷ . Eftersom enhetsbasvektorerna är ortogonala mot varandra, reduceras den geometriska produkten till den antisymmetriska yttre produkten – x̂ och ŷ kan bytas fritt till priset av en faktor −1. Kvadraten reduceras till − x̂x̂ŷŷ = −1 eftersom basvektorerna själva kvadrerar till +1.
Detta resultat gäller generellt för alla bivectors, och som ett resultat spelar bivectorn en roll som liknar den imaginära enheten . Geometrisk algebra använder bivectors i sin analog till quaternion, rotorn , given av
är motsatsen till (omvänd ordning av vektorerna i motsvarar att ändra dess tecken).
Exempel. En rotation kring axeln
kan åstadkommas genom att konvertera v till sin dubbla bivector,
där i = x̂ŷẑ är enhetsvolymelementet, den enda trivektorn (pseudoskalär) i det tredimensionella rummet. Resultatet är
I det tredimensionella rummet är det dock ofta enklare att lämna uttrycket för B̂ = iv̂ , med det faktum att i pendlar med alla objekt i 3D och även kvadrater till −1. En rotation av x̂ -vektorn i detta plan med en vinkel θ är då
Känner igen det
och att − v̂x̂v̂ är reflektionen av x̂ kring planet vinkelrätt mot v̂ ger en geometrisk tolkning av rotationsoperationen: rotationen bevarar komponenterna som är parallella med v̂ och ändrar endast de som är vinkelräta. Termerna beräknas sedan:
Resultatet av rotationen är därefter
kontroll θ = 2/3 π . av detta resultat är vinkeln En sådan rotation bör mappa x̂ till ŷ . Faktum är att rotationen minskar till
precis som förväntat. Denna rotationsformel är giltig inte bara för vektorer utan för alla multivektorer . Dessutom, när Euler-vinklar används, är komplexiteten i operationen mycket reducerad. Sammansatta rotationer kommer från att multiplicera rotorerna, så den totala rotorn från Euler-vinklar är
men
Dessa rotorer kommer tillbaka ur exponentialen så här:
där R β hänvisar till rotation i de ursprungliga koordinaterna. På samma sätt för γ- rotationen,
Notera att R γ och R α pendlar (rotationer i samma plan måste pendla), och den totala rotorn blir
Således blir de sammansatta rotationerna av Euler-vinklar en serie ekvivalenta rotationer i den ursprungliga fasta ramen.
Medan rotorer i geometrisk algebra fungerar nästan identiskt med kvaternioner i tre dimensioner, är kraften i denna formalism dess generella karaktär: denna metod är lämplig och giltig i utrymmen med hur många dimensioner som helst. I 3D har rotationer tre frihetsgrader, en grad för varje linjärt oberoende plan (bivector) rotationen kan ske i. Det har varit känt att par av kvaternioner kan användas för att generera rotationer i 4D, vilket ger sex frihetsgrader, och den geometriska algebrametoden verifierar detta resultat: i 4D finns det sex linjärt oberoende bivektorer som kan användas som generatorer av rotationer.
Vinkel-Vinkel-Vinkel
Rotationer kan modelleras som en axel och en vinkel; såsom illustreras med ett gyroskop som har en axel genom rotorn, och mängden spin runt den axeln som visas av rotorns rotation; denna rotation kan uttryckas som där axel är en enhetsvektor som anger rotoraxelns riktning. Från origo, i vilken riktning som helst, är samma rotationsaxel, med skalan för vinkeln ekvivalent med avståndet från origo. Från vilken annan punkt i rymden som helst, tillämpas på liknande sätt samma riktningsvektor i förhållande till orienteringen som representeras av startpunkten snarare än origo, samma förändring runt samma axlar som enhetsvektorn anger. Vinkelns skalar varje punkt ger en unik koordinat i Angle-Angle-Angle notation. Skillnaden mellan två koordinater ger omedelbart den enda rotationsaxeln och vinkeln mellan de två orienteringarna.
Den naturliga stocken av en quaternion representerar krökt utrymme med 3 vinklar runt 3 rotationsaxlar, och uttrycks i båglängd; liknande Euler-vinklar, men ordningsoberoende. Det finns en Lie produktformel definition av addition av rotationer, vilket är att de är summan av oändligt små steg för varje rotation som tillämpas i serie; detta skulle innebära att rotationer är resultatet av att alla rotationer i samma ögonblick tillämpas, snarare än en serie av rotationer som appliceras i efterhand.
Rotationsaxlarna är inriktade mot de vanliga kartesiska -axlarna. Dessa rotationer kan enkelt adderas och subtraheras, speciellt när ramarna som roteras är fixerade till varandra som i IK-kedjor. Skillnader mellan två objekt som är i samma referensram hittas genom att helt enkelt subtrahera deras orienteringar. Rotationer som tillämpas från externa källor, eller är från källor i förhållande till den aktuella rotationen kräver fortfarande multiplikationer, tillämpning av Rodriguez-formeln tillhandahålls.
Rotationen från varje axelkoordinat representerar rotation av planet vinkelrätt mot den specificerade axeln samtidigt med alla andra axlar. Även om måtten kan betraktas i vinklar, är representationen faktiskt kurvans båglängd; en vinkel innebär en rotation runt en punkt, där en krökning är ett delta som appliceras på den aktuella punkten i en tröghetsriktning.
Bara en observationsanteckning: logkvarternioner har ringar eller oktaver av rotationer; det vill säga för rotationer större än 4 har relaterade kurvor. Krökningar av saker som närmar sig denna gräns verkar kaotiskt hoppa omloppsbanor.
För "läsbara" vinklar kan 1-normen användas för att skala om vinklarna för att se mer "lämpliga" ut; ungefär som Celsius kan anses vara mer korrekt än Fahrenheit.
Andra relaterade värden är omedelbart härledbara:
Den totala rotationsvinkeln....
Rotationsaxeln...
Kvaternion representation
Grundmatrisberäkning
Detta byggdes från att rotera vektorerna (1,0,0), (0,1,0), (0,0,1) och reducerande konstanter.
Givet en ingång ,
Som används för att beräkna den resulterande matrisen...
Beräkna cosinus för vinkeln gånger vektorn som ska roteras, plus sinus för vinkeln gånger rotationsaxeln, plus en minus cosinus för vinkeln gånger punktprodukten av vektorn och rotationsaxeln gånger rotationsaxeln.
Några anteckningar: prickprodukten inkluderar cosinus för vinkeln mellan vektorn som roteras och rotationsaxeln gånger längden på V; korsprodukten inkluderar sinus för vinkeln mellan vektorn som roteras och rotationsaxeln.
För en given rotationsvektor , och en annan rotationsvektor för att rotera ramen.
Extrahera vinklarna och axlarna från de initiala rotationsvektorerna:
Normaliserad rotationsaxel för den aktuella ramen:
Normaliserad rotationsaxel för att rotera ramen runt:
Resultatvinkeln för rotationen är
eller
Resultatet, onormaliserad rotationsaxel:
eller
Rodrigues rotationsformel skulle leda till att synden för ovanstående vinkel kan användas för att normalisera vektorn, men detta misslyckas för stora avstånd; så normalisera resultataxeln som vilken annan vektor som helst.
Och den slutliga bildrotationskoordinaten:
Snurra rotation runt en fast axel
En rotationsvektor representerar tre axlar; dessa kan användas som en stenografi för att rotera rotationen med hjälp av ovanstående 'Rotera en rotationsvektor'. Dessa uttryck representeras bäst som kodfragment.
Ställ in några konstanter som används i andra uttryck.
använder ovanstående värden...
eller
eller
Konvertering från Basismatris
Beräkna matrisens determinant...
Konvertera till rotationsvinkeln...
beräkna normalfaktorn...
den resulterande vinkel-vinkel-vinkeln:
Konvertering från normalvektor(Y)
Representation av en normal som en rotation, detta antar att vektorn är 'upp'. Om någon annan axel anses vara primär kan koordinaterna helt enkelt bytas ut.
Detta antar en normaliserad ingångsvektor i normalens riktning
Vinkeln är helt enkelt summan av x/z-koordinaten (eller y,x om Z är 'upp', eller y,z om X är 'upp')...
om vinkeln är 0 är jobbet gjort, resultatet med
Några tillfälliga värden; dessa värden är bara delar som refereras till senare...
Använd den projicerade normalen på Y-axeln som vinkel för att rotera...
Justera Normal med Basis
Standardtangens och bi-tangens för rotationer som bara har sin normala uppsättning, resulterar i tangenter och bi-tangenter som är oregelbundna. Alternativt kan du bygga en basmatris och konvertera från bas med den ovan nämnda metoden. Beräkna normalen för ovanstående och matrisen för att konvertera...
Och använd sedan basen för att logga quaternion-konvertering...
Rikta in normalt direkt
Eller Detta är den direkta beräkningen som resulterar med en logkvarternion; beräkna resultatvektorn ovan och sedan...
Detta är vinkeln
Dessa delprodukter används nedan...
Beräkna den normaliserade rotationsvektorn (rotationsaxeln)...
och beräkna slutligen den resulterande logkvarternionen.
Omvandling från axelvinkel
Detta förutsätter att ingångsaxeln är normaliserad. Om det finns 0 rotation, resultat med
Schmidt, J.; Niemann, H. (2001). "Att använda Quaternions för att parametrisera 3D-rotationer i obegränsad olinjär optimering". Proceedings of the Vision Modeling and Visualization Conference 2001 . s. 399–406. ISBN 3898380289 .
Klumpp, AR (december 1976). "Singularitetsfri extraktion av en Quaternion från en riktnings-kosinusmatris". Journal of Spacecraft and Rockets . 13 (12): 754–5. Bibcode : 1976JSpRo..13..754K . doi : 10.2514/3.27947 .
Doran, C.; Lasenby, A. (2003). Geometrisk algebra för fysiker . Cambridge University Press. ISBN 978-0-521-71595-9 .
Starlinos DCM Tutorial – Riktningscosinus matris teori handledning och tillämpningar. Algoritm för uppskattning av rymdorientering med IMU-enheter för accelerometer, gyroskop och magnetometer. Använder gratisfilter (populärt alternativ till Kalman-filter) med DCM-matris.