G V GEODETSKI VESTNIK | letn, / Vol, 58 | št. / No. 2 | ROTACIJA Z ENOTSKIM ROTATION WITH UNIT KVATERNIONOM QUATERNION Klemen Kregar, Mitja Lakner, Dušan Kogoj 3 l58/2| UDK: 512.626.824:528 Klasifikacija prispevka po COBISS.SI: 1.01 Prispelo: 6.12.2013 Sprejeto: 8.4.2014 DOI:10.15292/geodetski-vestnik.2014.02.231-242 SCIENTIFIC ARTICLE Received: 6.12.2013 Accepted: 8.4.2014 IZVLEČEK ABSTRACT Kvaternion je hiperkompleksno število. Posebna pravila za računanje s kvaternioni nam zagotavljajo, da lahko množenje uporabljamo kot operacijo rotacije v trirazsežnem prostoru. Namen članka je geodetski strokovni javnosti predstaviti takšen način rotacije za uporabo v različnih nalogah s transformacijami. V članku opišemo kvaternione in kako jih uporabljamo za rotacijo. Nato z dvema poskusoma primerjamo rotacijo s kvaternionom z rotacijo s kardansko matriko. Ugotavljamo, da je transformacija točk učinkovitejša ob uporabi enotskih kvaternionov. Prav tako je učinkovitejša izravnava za določitev parametrov transformacije, če za matematični model uporabimo rotacijo s kvaternionom. A quaternion is a hyper-complex number. A rule for quaternion multiplications allows us to use it as a rotation in three-dimensional space. The aim of this article is to present quaternion rotations to the Slovene professional geodetic public. Quaternions are described in the article along with the manner to use them for rotations. Two experiments were performed to compare the rotations using quaternions versus rotations with Euler angles. The experiments revealed that transformations using quaternion are more efficient than transformations using Euler angles. An adjustment for the determination of transformation parameters is also more efficient if the mathematical model is based on quaternion rotation. KLJUČNE BESEDE KEY WORDS kvaternion, transformacija, rotacija, Eulerjevi koti, računska quaternion, transformation, rotation, Euler angles, učinkovitost computational efficiency 1 UVOD Transformacija točk iz enega v drug koordinatni sistem je naloga, s katero se v geodeziji pogosto srečala jemo. Zelo je aktualna v zadnjih letih, odkar smo privzeli nov državni horizontalni koordinatni sistem (Berk in Duhovnik, 2007; Stopar, 2007). Transformacije uporabljamo v različnih nalogah fotogrametrije, kjer zunanjo orientacijo posnetkov predstavljajo prav parametri transformacije (Kraus, 2000). Posebno •E^ pomembne pa so transformacije kot orodje za registracijo oblakov točk, zajetih z laserskim skeniranjem. V članku se bomo osredotočili na prostorske transformacije. Osnovna prostorska transformacija v geodeziji je 7-parametrična transformacija, definirana z enačbo X ' = mRX + T (1) Predpis spremeni merilo koordinatnega sistema (m), točke zavrti (rotira) okrog koordinatnega izhodišča (R) in jih premakne (T). Rotacijo lahko opišemo s tremi koti zasukov okrog koordinatnih osi (Eulerjevi koti), translacijo pa s tremi premiki v smereh novih koordinatnih osi. Nekatere naloge poleg zasukov premikov in spremembe merila zahtevajo še deformacije, kot so različne spremembe merila in strižne deformacije. Pri drugih nalogah zaradi specifike podatkov ni treba spreminjati merila, zato iz modela izpustimo merilo m. Translacija (premik) točke je postopek, ki ga realiziramo preprosto s prištevanjem konstantnih vrednosti vsem koordinatam točke, ki jo transformiramo. Rotacija pa je, na drugi strani, kompleksnejši postopek, ki ga lahko izvedemo na več načinov. Transformacija točk je ob znanih transformacijskih parametrih rutinski postopek. Zahtevnejši pa je postopek določitve transformacijskih parametrov na podlagi parov koordinat identičnih točk v dveh koordinatnih sistemih, ki ju transformacija povezuje. Namen članka je slovenski strokovni geodetski javnosti predstaviti rotacijo s kvaternionom, ki se v zadnjem desetletju uporablja tudi v našem prostoru predvsem v nalogah povezanih z laserskim skeniranjem (Vezočnik, 2011). V 19. stoletju so matematiki intenzivno raziskovali kompleksna števila, pri čemer so imeli največ težav z množenjem trirazsežnih števil. V petdesetih letih 19. stoletja je irski matematik William Rowan Hamilton (Hamilton, 1850) odkril možnosti množenja štirirazsežnih kompleksnih števil, ki jih imenujemo kvater-nioni (Sweetser,1997). Uporabnost kvaternionov se je na prelomu 20. stoletja pokazala v kvantni fiziki, kjer poleg treh prostorskih dimenzij opisujejo še čas, to pa ravno ustreza trem imaginarnim in eni realni komponenti kvaterniona. Za uporabo kvaterniona v geodeziji je pomemben članek (Horn, 1987), kjer je kvaternion uporabljen pri transformaciji, ki zagotovi absolutno orientacijo fotogrametričnih posnetkov. Pregledno primerjavo treh načinov za zagotovitev rotacije je predstavil (Diebel, 2006), avtorji pa nismo zasledili poročila o empirični primerjavi časovne računske kompleksnosti transformacije in izravnave za določitev transformacijskih parametrov. V drugem poglavju opišemo teoretično ozadje kvaterniona. Prek rotacije v ravnini s kompleksnimi števili predstavimo kvaternion, ki je hiperkompleksno število s tremi imaginarnimi komponentami. Na kratko predstavimo osnovne operacije s kvaternionom ter kako z njim rotiramo točke okrog koordinatnega izhodišča. V tretjem poglavju predstavimo metode, s katerimi bomo primerjali učinkovitost klasične rotacije, zagotovljene z Eulerjevimi koti, proti rotaciji, zagotovljeni z enotskim kvaternionom. Primerjali bomo računsko kompleksnost samih transformacij in preverili hitrost izravnave, s katero pridobimo transformacijske parametre iz parov točk. Rezultati primerjav so predstavljeni v četrtem poglavju. Na koncu, v petem poglavju, ovrednotimo rezultate in sprejmemo nekatere ugotovitve. s^ 2 ROTACIJA S KVATERNIONOM 2.1 Rotacija v ravnini z enotskim kompleksnim številom Kompleksno število lahko predstavimo kot točko v kompleksni ravnini. Tako kot točko v ravnini lahko tudi kompleksno število definiramo s kartezičnima koordinatama (a, b) ali polarnima koordinatama [d, a] ž: = a + bi = d cos(a) + d sin(a)i (2) Zmnožek dveh kompleksnih števil, izraženih v polarnih koordinatah z1 = [d1, a1] in z2 = [d2, a2], se v polarnih koordinatah izrazi takole: z1 ■ z2 = [d1 . d2, a1 + a2] (3) Kadar je polarna koordinata d nekega kompleksnega števila r enaka 1, r = [1, množenje poljubnega števila ž = [d, a] s številom r pomeni rotacijo točke ž za kot ^ okrog koordinatnega izhodišča v pozitivni z' = ž ■ r = [d, a] ■ [1, (p] = [d, a + (p] (4) Množenje z enotskim kompleksnim številom predstavlja rotacijo v kompleksni ravnini okrog koordinatnega izhodišča. 2.2 Kvaternion Kvaternion je urejen par q = (r, v) kjer je prva komponenta r realno število, druga v pa vektor iz M3 . Če v množico vseh kvaternionov H := {(r, ?); r e M, ? e M3} vpeljemo operaciji (Hamilton, 1850) seštevanja {rl,vl) + {r2,v2) := (r^ + + v2) in množenja (r, Vj) • {r2,v2) := (rr, - ■ r^v^ + r2+ v^ x v2) (5) (6) (7) postanejo kvaternioni nekomutativen obseg, podobno kot so obsegi tudi racionalna, realna in kompleksna števila. V kvaternionih veljajo običajna računska pravila, kot so asociativnost seštevanja in množenja, komutativnost seštevanja in distributivnost. Nevtralni element za seštevanje je 0 := (0,0), za y^ množenje 1 : = (1,0). Če označimo kvaternione i := (0,i), j := (0, j), k := (0, k), kjer so vektorji i, j, k standardna ortonor-äs mirana baza M3 , potem z lahkoto, na podlagi definicije, preverimo veljavnost zvez i = j = k = i ■ j ■ k = -1, i ■ j = k, j ■ i = -k, k ■ i = j, i ■ k = - j, j ■ k = i, k ■ j = -i (9) H kvaternionu q = (r,v) konjugiran kvaternion je definiran z = ) . Njun produkt q ■ q = r2 +v ■V =|| q ||2je kvadrat dolžine kvaterniona q. Alternativen pogled na isto stvar pa je, da je kvaternion hiperkompleksno število z realno in tremi kompleksnimi komponentami (r, a, b, c e M) q = r + ai + b j + ck (10) Tedaj lahko osnovne operacije zapišemo tako. — Konjugacija q* = r - ai - b j - ck (11) — Vsota qi + = r, + r.^ + (a J + a^ )i + (b^ + b^ ) j + (c^ + c.^ )k (12) — Zmnožek q, . = rir2 - aia2 - b1b2 - cic2 + (rfl., + ar-, + bf,, - cb)i + (13) (rib2 - aic2 + bir2 + cia)j + (rf., + ab-, - bja^, + c^r^k 2.3 Rotacija v prostoru z enotskim kvaternionom Rotacijo v prostoru za kot ^ okrog osi v, || v ||= 1 izrazimo z enotskim kvaternionom oblike: (14) Točki T(x,y, z) priredimo kvaternion t = (0, (x,y, z)). Izkaže se, da se iskana zarotirana točka T'(x',y', z) izračuna na podlagi dveh kvaternionskih produktov (Horn, 1987) t' = q . t. q* (15) kjer je t' = (0, (x', y', z)). f \ = cos - ,sin - v v v 2 y v 2 y J Tako pri rotaciji s kompleksnim številom v ravnini kot pri rotaciji s kvaternionom velja: če kompleksno število ali kvaternion nista enotska, se bo poleg rotacije spremenilo tudi merilo. 2.4 Rotacijska matrika iz enotskega kvaterniona ^^ Če zmnožka iz enačbe (15) zapišemo kot sistem treh enačb, ki iz elementov kvaterniona q in točke t izračunajo koordinate transformirane točke t', lahko rotacijo izrazimo tudi z rotacijsko matriko R, da velja: R: = R r' + a' - b - c' 2( ab + cr) 2(ac - br) x y z 2(ab - cr) r2 - a2 + b2 - c2 2(bc + ar) 2( ac + br) 2(bc - ar) - a2 - b2 + c2 (16) (17) 3 METODE V prispevku bomo primerjali rotacijo s kardansko matriko (to je rotacijska matrika, ki jo sestavimo z Eulerjevimi koti) z rotacijo s kvaternionom. Primerjali bomo: — učinkovitost enega in drugega načina pri transformaciji ter — hitrost izravnave, ki jo moramo izvesti, ko določamo parametre rotacije ob znanih parih točk v obeh koordinatnih sistemih. 3.1 Učinkovitost transformacije Učinkovitost transformacije bomo ocenjevali s časovno kompleksnostjo matematičnega algoritma, ki ga uporabimo pri transformaciji. Prostorska zahtevnost algoritma za transformacije je enaka za oba načina rotacije. Časovno kompleksnost ocenjujemo s številom operacij, ki se izvedejo v algoritmu (Sipser, 2006). Tako bomo prešteli, koliko vsot, zmnožkov in kotnih funkcij (sinus in kosinus) moramo izvesti pri: — sestavljanju rotacijske matrike iz Eulerjevih kotov, — sestavljanju rotacijske matrike iz elementov kvaterniona, — rotaciji z množenjem s kvaternionom, enačba (15), — rotaciji z množenjem z rotacijsko matriko, enačba (16). Rotacijsko matriko iz Eulerjevih kotov lahko sestavimo z množenjem treh rotacijskih matrik okrog posameznih koordinatnih osi R = RRR = 1 0 0 0 cos a sin a 0 - sin a cos a cos ß 0 - sin ß 0 1 sin ß 0 0 cos ß cos Y sin Y 0 - sin Y cos Y 0 0 0 1 ali pa neposredno zapišemo kardansko matriko R = cos ß cos Y cos ß sin j — sin ß sin a sin ß cos j — cos a sin j sin a sin ß sin j + cos a cos j sin a cos ß cos a sin ß cos j + sin a sin j cos a sin ß sin j — sin a cos j cos a cos ß 3.2 Izravnava za določitev parametrov rotacije V geodeziji navadno ne transformiramo ogromnih količin točk v ekstremno kratkih časih, kot v nalogah, povezanih z računalniško grafiko. Tako lahko trdimo, da je najkompleksnejša naloga v zvezi s transformacijami v geodeziji določitev transformacijskih parametrov na podlagi parov koordinat identičnih točk v koordinatnih sistemih, ki ju transformacija povezuje. V prispevku se osredotočamo na rotacije, zato bomo osnovno enačbo transformacije okrnili in jo zapisali z naslednjimi tremi enačbami (izpustili smo translacije in spremembo merila): r^^x + r12 J + r13^ - x' = 0 r21x + r22 J + r23z — j' = 0 r3ix + r32 J + r33z — Z = 0 (20) Elemente r.j rotacijske matrike lahko zamenjamo bodisi z elementi matrike iz enačbe (19) za kardansko matriko ali z elementi matrike iz enačbe(17) za kvaternion. V obeh primerih za določitev parametrov rotacije uporabimo splošni model izravnave. Enačbe zapišemo v obliki: Ax + BA = f (21) V izravnavi vektor x predstavlja opazovanja, v tem primeru so to koordinate točk v obeh koordinatnih sistemih (x, j, z, x', j', z), v matriki A so odvodi enačb (20) po koordinatah točk. Matrika A je oblike; A = R — I 0 0 (22) Za vsako točko, katere koordinate poznamo v obeh sistemih, se v matriko A dodajo tri vrstice in šest stolpcev. Odvodi enačb (20) po koordinatah iz začetnega koordinatnega sistema tvorijo rotacijsko matriko, odvodi po koordinatah točk iz končnega sistema pa so negativna identiteta. Vektor A predstavlja neznanke v izravnavi, to so r, a, b in cpri kvaternionu ali koti a, ßin ^pri kardanski matriki. Matrika B predstavlja odvode enačb (20) po neznankah. Za vsako točko v sistemu moramo zapisati tri vrstice v matriki B. Pri kardanski matriki je matrika B oblike: (cos(a)sin(^)cos(7) + sin(a)sin(Y))x + (- sin(a)cos(Y) + cos(a)sin(ß)sin(Y))j + (cos(a)cos(ß))z (- sin(a)sin(ß)cos(Y) + cos(a)sin(Y))x + (- sin(a)sin(ß)sin(Y) - cos(a)cos(Y))j + (- sin(a)cos(ß))z (sin(ß)cos(Y))x + (-sin(ß)sin(Y))j + (- cos(ß))z (-sin(a)sin(ß)sin(Y) - cos(a)cos(Y))x + (sin(a)cos(ß)sin(Y))j + (-sin(a)sin(ß))z (cos(a)cos(ß)cos(Y))x + (cos(a)cos(ß)sin(Y))j + (- cos(a)sin(ß))z (- cos(ß)sin(Y))x + (cos(ß)cos(Y)),y (- sin(a)sin(ß)sin(Y) - cos(a)cos(Y))x + (- cos(a)sin(Y) + sin(a)sin(ß)cos(Y))j (- cos(a)sin(ß)sin( y) + sin(a)cos(Y))x + (cos(a)sin(ß)cos(Y) + sin(a)sin(Y)),y (23) Pri kvaternionu pa: B = 2rx - 2cy + 2bz 2ax + 2by + 2cz —2bx + 2ay + 2rz -2cx - 2ry + 2az 2cx + 2ry - 2az 2bx - 2ay - 2rz 2ax + 2by + 2cz 2rx - 2cy + 2bz -2bx + 2ay + 2rz 2cx + 2ry - 2az -2rx + 2cy - 2bz 2ax + 2by + 2cz (24) Vektor f vsebuje odstopanja enačb (20), ki jih dobimo tako, da v enačbe vstavimo vrednosti koordinat in približne vrednosti neznank. V izravnavo so vključene tudi stohastične lastnosti opazovanj (koordinat) in neznank (parametrov rotacije). Matrika Q je matrika kofaktorjev opazovanj, ki jo pridobimo iz variančno-kovariančne matrike koordinat točk Q = 1 s (25) kjer je ctj; referenčna varianca, ki jo lahko razumemo kot referenčno natančnost opazovanj v izravnavi, potrebujemo pa jo pri oceni natančnosti neznank. Sistem enačb (21) rešimo po metodi najmanjših kvadratov: Pe = (AQAT)-1 (26) N = (BTPeB) (27) A = N-1(BTPef) (28) (29) Rezultat izravnave sta vektor A, ki vsebuje popravke približnih vrednosti neznank, to so parametri rotacije ter S^^, ki je variančno-kovariančna matrika neznank. Pri izravnavi s kardansko matriko so neznanke tri, pri kvaternionu pa štiri, čeprav za opis rotacije teoretično potrebujemo le tri vrednosti. Ena od štirih neznank je v tem primeru funkcijsko odvisna. Težavo rešimo tako, da upoštevamo zahtevo, da mora biti kvaternion enotski. Zapišemo vezno enačbo za izravnavo funkcijsko odvisnih neznank v obliki: CA = g. (30) B = Vezna enačba je: r^ + a2 + + (C = 1 (31) C = [2r 2a 2b 2c] in g = 1. Da zadostimo vezni enačbi, moramo vektorju neznank A prišteti izraz = N-'C^ (CN-'C^ (g - CA). (32) si V primeru, da v izravnavo ne vključimo vezne enačbe, lahko rezultat konvergira proti kvaternionu, ki ni enotski, to pa pomeni, da smo poleg rotacije izračunali še spremembo merila. Na začetku izravnave moramo za sestavo matrik A in B ter vektorja f predpostaviti približne vrednosti neznank. Izravnava poteka iterativno. V vsakem koraku se v vektorju A izračunajo popravki približnih vrednosti neznank. V izravnavi parametrov rotacije ni nujno, da so približne vrednosti izbrane zelo dobro. Izkazalo se je, da postopek konvergira proti pravilni rešitvi tudi, če smo približne vrednosti Eulerjevih kotov in vseh elementov kvaterniona na začetku vedno nastavili na 0. 3.3 Testiranje hitrosti algoritmov Sestavili smo dva algoritma za določitev parametrov rotacije na podlagi parov identičnih točk v dveh, med seboj rotiranih koordinatnih sistemih. Algoritma se razlikujeta v obliki rotacijskse matrike, ki je uporabljena za sestavo enačb transformacije. Prvi uporablja kardansko rotacijsko matriko, drugi pa rotacijsko matriko, sestavljeno iz elementov kvaterniona. Oba algoritma testiramo na identičnih parih koordinat točk. Koordinate parov točk v obeh sistemih simuliramo. Koordinate točk v začetnem koordinatnem sistemu so vrednosti, enakomerno porazdeljene med 0 in 100 m. Koordinate točk v končnem sistemu dobimo z rotacijo točk iz prvega sistema ob znanih parametrih rotacije. Koordinatam v končnem sistemu lahko prištejemo naključne normalno porazdeljene pogreške. Merili bomo čas, ki ga prvi in drugi algoritem potrebujeta, da konvergirata do točke, kjer je norma vektorja popravkov manjša od 10- , kar se približa natančnosti uporabne v geodeziji. Ker so merjeni časi kratki, je enkratna meritev lahko močno obremenjena z različnimi vplivi. Zato v vsakem poskusu merimo čas dvajsetkrat ob danem številu točk, danem standardnem odklonu slučajnih pogreškov točk in danih parametrih rotacije. V vsaki od dvajsetih ponovitev pa se na novo simulirajo koordinate točk v obeh sistemih. 4 REZULTATI 4.1 Čas transformacije Hitrost določitve parametrov rotacije je odvisna od števila operacij, ki jih moramo izvesti, da transfor-miramo točko iz enega v drug sistem. Prešteli bomo število operacij za naslednje naloge: — Sestava rotacijske matrike iz Eulerjevih kotov Če rotacijsko matriko izračunamo kot zmnožek treh rotacijskih matrik okrog vseh treh koordinatnih osi, enačba (18), moramo najprej izračunati sinus in kosinus vseh treh kotov. To je 6 operacij s sinusom in kosinusom, ki imajo veliko kompleksnost. Pri množenju dveh matrik dimenzije 3 x 3 nastane 9-krat po 3 operacije množenja in 2 seštevanji. To je skupaj 27 množenj in 18 seštevanj. Izvesti moramo dve množenji matrik. Skupaj smo porabili 6 operacij s sinusom in kosinusom, 54 množenj in 36 seštevanj. Če rotacijsko matriko sestavimo direktno, enačba (19), pa porabimo 6 operacij s sinusom in kosinusom, 16 množenj in 4 seštevanja. — Sestava rotacijske matrike iz elementov kvaterniona Pri sestavljanju rotacijske matrike iz elementov kvaterniona, enačba (17), je najbolj ugodno, da najprej izračunamo vse produkte dveh členov kvaterniona (rr, ra, rb, rc, aa, ab, ac, bb, bc, cc). Teh množenj je 10, da jih sestavimo v rotacijsko matriko, porabimo še 6 množenj in 15 seštevanj. Skupaj torej porabimo 16 množenj in 15 seštevanj. — Množenje koordinat točke z rotacijsko matriko Za transformacijo točk množimo koordinate točke z rotacijsko matriko, enačba (16), kar nas stane 9 množenj in 6 seštevanj. — Transformacija s kvaternionom Pri množenju točke, ki je zapisana v obliki kvaterniona z rotacijskim kvaternionom q z leve in q* z desne, enačba (15), za dva zmnožka potrebujemo 32 množenj in 24 seštevanj. Ker sta operaciji sinus in kosinus računsko nekaj desetkrat kompleksnejši (Sipser, 2006) od operacij množenja in seštevanja, lahko iz rezultatov preštevanja vidimo, da se za transformacijo ene same točke splača uporabiti množenje s kvaternionom, če želimo transformirati več točk, pa bo hitreje, da sestavimo rotacijsko matriko na podlagi kvaterniona in točke množimo z njo. 4.2 Čas izravnave za določitev parametrov V tabelah 1 in 2 želimo prikazati učinkovitost določitve parametrov rotacije s kardansko matriko in z rotacijsko matriko iz elementov kvaterniona. Za posamezen primer se je izvedlo 20 ponovitev, prikazujemo pa povprečno število iteracij izravnave (i^ za kardansko matriko in za kvaternion) ter povprečen čas, potreben za dolčitev parametrov (ik za kardansko matriko in i^ za kvaternion). Večje število itaracij pomeni tudi daljši čas. V tabeli 1 so rezultati za nekatere značilne parametre rotacije, ki so podani kot kot zasuka okrog določene osi. Vsi rezultati v tej tabeli se nanašajo na simuliranih 10 parov točk v obeh sistemih, brez naključnega odstopanja. V tabeli 2 prikazujemo povprečne rezultate desetih ponovitev z različnimi naključnimi parametri rotacije ob različnem številu simuliranih točk v obeh sistemih ter različnem naključnem odstopanju 0'odst. Naključno odstopanje a'odst pomeni standardno deviacijo normalno porazdeljenih slučajnih pogreškov, ki so bili prišteti transformiranim koordinatam pri simulaciji vhodnih podatkov za izravnavo. Preglednica 1: Rezultati merjenja časa za izravnavo transformacijskih parametrov - naključni parametri Parametri rotacije i t^ je krajši za 0,1° [0, 0, 1] 9,4 2,0 0,017 0,006 66 % 0,1° [0, 1, 0] 14,8 2,0 0,022 0,004 80 % 0,1° [1, 0, 0] 9,5 2,0 0,013 0,004 68 % 0,1° [1, 1, 1] 14,6 2,0 0,022 0,005 80 % 30° [0, 0, 1] 15,2 4,0 0,019 0,006 68 % 30° [0, 1, 0] 17,0 4,0 0,022 0,006 71 % 30° [1, 0, 0] 12,4 4,0 0,017 0,007 59 % 30° [1, 1, 1] 16,8 4,0 0,022 0,006 71 % 60° [0, 0, 1] 14,3 5,0 0,018 0,008 59 % 60° [0, 1, 0] 19,1 5,0 0,024 0,008 69 % 60° [1, 0, 0] 15,1 5,0 0,019 0,008 61 % 60° [1, 1, 1] 14,1 5,0 0,018 0,008 59 % 90° [0, 0, 1] 6,2 5,3 0,008 0,008 4 % 90° [0, 1, 0] kardanska zapora 90° [1, 0, 0] 9,1 5,5 0,013 0,009 33 % 90° [1, 1, 1] 10,3 5,3 0,015 0,009 40 % 180° [0, 0, 1] 26,9 13,3 0,035 0,018 49 % 180° [0, 1, 0] 27,2 14,1 0,036 0,020 44 % 180° [1, 0, 0] 27,3 12,8 0,036 0,018 52 % 180° [1, 1, 1] 18,8 13,8 0,026 0,019 24 % Preglednica 2: Rezultati merjenja časa za izravnavo transformacijskih parametrov - naključni parametri št, točk aodst[mm] 'k i t[s] t^ je krajši za 5 0 17,0 5,3 0,011 0,004 63 % 5 1 16,9 5,7 0,011 0,005 60 % 55 19,5 7,3 0,013 0,006 57 % 5 10 18,3 6,4 0,012 0,005 60 % 5 25 15,9 6,5 0,011 0,005 54 % 10 0 15,7 6,0 0,022 0,010 56 % 10 1 19,8 6,6 0,028 0,011 62 % 10 5 15,3 5,7 0,022 0,009 58 % 10 10 15,2 6,4 0,021 0,010 53 % 10 25 15,7 7,1 0,022 0,011 51 % 20 0 17,9 6,6 0,058 0,023 59 % 20 1 17,3 7,1 0,055 0,025 55 % 20 5 16,5 7,0 0,053 0,024 53 % 20 10 16,9 6,5 0,056 0,023 58 % št, točk ^odstt®®] 'k i q t^ je krajši za 20 25 15,3 6,9 0,048 0,024 51 % 50 0 15,5 5,9 0,219 0,094 57 % 50 1 15,9 6,4 0,222 0,101 55 % 50 5 17,0 6,0 0,239 0,095 60 % 50 10 15,6 6,4 0,213 0,098 54 % 50 25 15,3 6,4 0,211 0,100 53 % 5 RAZPRAVA Glavni namen članka je predstaviti relativno nov način za zagotovitev rotacije v nalogah transformacije. Metoda je v svetu že dobro uveljavljena, vendar se nam vseeno zdi pomembno, da je predstavljena slovenski strokovni javnosti v domačem jeziku. Z raziskavo smo pokazali, da ima predstavljena metoda rotacije s kvaternionom objektivne prednosti pred metodo rotacije s kardansko matriko za uporabo v geodeziji. V literaturi (Jekeli, 2001) kot bistveno prednost rotacije s kvaternionom podajajo odpornost proti problemu singularnost, ki nastopi pri rotaciji s kardansko matriko pri rotacijah za kot 90° ali 270° okrog osi y. Poleg tega smo v poglavju 4.1 pokazali, da je rotacijsko matriko, ki jo bomo uporabili v transformaciji, bolje sestaviti z elementi kvaterniona, enačba(17), kakor pa z Eulerjevimi koti, enačba (18) ali (19). Rotacija posamezne točke preko množenja s kvaternionom z leve in desne pa je manj učinkovita kot množenje z rotacijsko matriko. Glede časa, ki ga potrebujemo za izravnavo rotacijskih parametrov iz koordinat identičnih točk v obeh koordinatnih sistemih, lahko rečemo, da je izravnava na podlagi kvaterniona v splošnem hitrejša od izravnave s kardansko matriko. Iz rezultatov primerjave časov lahko postavimo ohlapno trditev, da je dvakrat hitrejša. Pri posebnih primerih pa se lahko zgodi tudi, da naloga s kardansko matriko sploh ni rešljiva ali pa sta časa podobna. Kardansko matriko lahko sicer zapišemo tudi v poenostavljeni obliki. Za majhne kote namreč velja sin x » x in cos x » 1. V tem primeru bi bili tako transformacija kot izravnava za določitev parametrov z njo hitrejša, vendar pa bi izgubili splošnost, saj poenostavljena matrika deluje samo za majhne kote. V izravnavi bi morali tako poznati zelo dobre približne vrednosti. Za namen raziskave smo v okolju Matlab® izdelali funkciji za izravnavo transformacijskih parametrov, ki sta javno dostopni na http://www.fgg.uni-lj.si/~/kkregar/TransfParam.zip. Uporabljeni funkciji določita optimalne transformacijske parametre po metodi najmanjših kvadratov, pri čemer ni treba podati približnih vrednosti neznank. Za simulirana niza točk brez slučajnih pogreškov funkciji vrneta parametre rotacije, ki zagotovijo identično rotacijsko matriko. V primeru, da točkam dodamo slučajna odstopanja, pa se rezultati ene in druge funkcije lahko malenkostno razlikujejo. 6 ZAHVALA Članek je nastal v okviru doktorskega študija, ki ga financira Evropski socialni sklad. Literatura in viri Berk, S, in Duhovnik, M. (2007). Transformacija podatkov geodetske uprave Repu- blike Slovenije v novi državni koordinatni sistem. Geodetski vestnik, 51, 4: 803-826. Diebel, J. (2006). Representing Attitude: Euler Angles, Unit Quaternions, and Rotation Vectors. http://www.swarthmore.edu/NatSci/mzucker1/e27/diebel2006atti-tude.pdf (pridobljeno 10. 10. 2013). Hamilton, W. R. (1844—1850). On Quaternions, or a new system of imaginaries in algebra.The London, Edinburgh and Dublin Philosophical Magazine and Journal of Science, xxv-xxxvi, 86. Horn, B. K. P. (1987). Closed-form solution of absolute orientation using unit quater-nions.Journal of the Optical Society of America, 4(4), 629-642. DOI 10.1364/ JOSAA.4.000629 Jekeli, C. (2001). Inertial navigation systems with geodetic applications. Walter de Gruyter, Berlin, New York. Kraus, K. (2000). Photogrammetry. Berlin, New York: Walter De Gruyter, 2007, 2nd English edition. Sipser, M. (2006). Introduction To The Theory Of Computation. Thomson Course Technology, Boston. Stopar, B. (2007). Vzpostavitev ETRS v Sloveniji. Geodetski vestnik, 51, 4: 763-776. Sweetser, D. B. (1997). Doing Physics with Quaternions. http://www.theworld. com/ sweetser/quaternions/ps/math.pdf (pridobljeno 10. 10. 2013). Vezočnik, R. (2011). Analysis of terrestrial laser scanning technology for structural deformation monitoring. Doktorska naloga, Univerza v Ljubljani. Kregar K., Lakner M. , Kogoj D. (2014). Rotacija z enotskim kvaternionom. Geodetski vestnik, 58 (2): 231-242. asist. Klemen Kregar, univ. dipl. inž. geod. Univerza v Ljubljani, Fakulteta za gradbeništvo in geodezijo Jamova cesta 2, SI-1000 Ljubljana e-naslov: klemen.kregar@fgg.uni-lj.si doc. dr. Mitja Lakner, univ. dipl. inž. mat. Univerza v Ljubljani, Fakulteta za gradbeništvo in geodezijo Jamova cesta 2, SI-1000 Ljubljana e-naslov: mitja.lakner@fgg.uni-lj.si izr. prof. dr. Dušan Kogoj, univ. dipl. inž. geod. Univerza v Ljubljani, Fakulteta za gradbeništvo in geodezijo Jamova cesta 2, SI-1000 Ljubljana e-naslov: dusan.kogoj@fgg.uni-lj.si