Dokumentace knhovny Spatfg v 1.1 Obsah Spatfg OBSAH... 1 1. ÚVOD... 2 2. DEFINICE PROBLÉMU... 2 3. ZVOLENÁ METODA... 3 3.1. METODA ODDĚLENÝCH PARAMETRŮ TVARU A POLOHY... 3 3.2. ALGORITMUS III... 3 3.2.1. Matcová formulace řešení... 3 3.2.1.1. Řešení s podmínkam pro určované parametry...4 3.2.2. Hledání ortogonálního bodu v mplctním tvaru... 4 3.2.2.1. Newtonova metoda...5 3.2.2.2. Metoda Lagrangeových multplkátorů...5 3.2.3. Algortmus III v mplctním tvaru geometrckého útvaru... 5 3.2.4. Algortmus III pro geometrcký útvar v parametrckém tvaru... 7 4. METODA ZÍSKÁNÍ PŘIBLIŽNÝCH HODNOT HLEDANÝCH PARAMETRŮ... 8 4.1. MOMENTOVÁ METODA... 8 4.2. EVOLUČNÍ METODA... 8 4.3. METODA NÁHODNÉHO VÝBĚRU... 8 5. PŘESNOST VÝPOČTU... 9 5.1. POUŽÍVANÉ METODY... 9 5.2. NOVÉ METODY... 9 5.3. ÚVAHA O MAXIMÁLNÍ PŘESNOSTI VÝPOČTU... 9 6. VLASTNOSTI... 1 7. IMPLEMENTOVANÉ GEOMETRICKÉ ÚTVARY... 1 8. PARAMETRY UVEDENÝCH GEOMETRICKÝCH ÚTVARŮ... 1 8.1. NORMA ISO 136-6... 1 8.2. UVEDENÉ ÚDAJE... 11 8.3. ROVINNÉ GEOMETRICKÉ ÚTVARY... 11 8.3.1. Přímka... 11 8.3.2. Kružnce... 12 8.4. PROSTOROVÉ GEOMETRICKÉ ÚTVARY... 12 8.4.1. Přímka... 12 8.4.2. Kružnce... 13 8.4.3. Rovna... 13 8.4.4. Horzontální rovna... 14 8.4.5. Vertkální rovna... 14 8.4.6. Rovna kolmá k vektoru... 15 8.4.7. Koule... 15 8.4.8. Koule s daným poloměrem... 15 8.4.9. Válec... 16 8.4.1. Válec s daným poloměrem... 16 8.4.11. Elptcký válec... 17 8.4.12. Kužel... 17 8.4.13. Kužel s daným vrcholovým úhlem... 18 8.4.14. Anulod... 19 9. VYKRESLENÍ GEOMETRICKÝCH ÚTVARŮ... 19 1
9.1. PARAMETRY PRO VYKRESLENÍ... 19 9.2. ZPŮSOB VYKRESLENÍ V SYSTÉMU MICROSTATION... 2 1. REALIZACE KNIHOVNY... 21 11. PROGRAM SPATFIG_CONSOLE... 22 12. ZÁVĚR... 24 LITERATURA... 24 1. Úvod Spatfg je knhovna tříd a funkcí zabezpečujících prokládání geometrckých útvarů v 2D (přímka, kružnce,...) a 3D (rovna, přímka, koule, válec, kužel,...) podle metody nejmenších čtverců. V knhovně jsou řešeny odhady směrodatných odchylek vyrovnaných určovaných parametrů, jejch kovaranční matce a jsou uvažovány případné kovaranční matce měření. Z možných metod "prokládání" je použta metoda ortogonálního prokládání, která má šroké uplatnění v řadě vědeckých oborů. Implementovány jsou zejména geometrcké útvary, které jsou používané v oblast terestrckého laserového skenování. Knhovna je napsaná v jazyce C++ a je dostupná pod všeobecnou veřejnou lcencí GNU (vz [ 1]) na adrese "k154.fsv.cvut.cz/~koska". Byl vytvořen jednoduchý konzolový program pro použtí této knhovny. 2. Defnce problému V prostoru R n je dáno m bodů. Je dána funkce popsující geometrcký útvar (dále GÚ) v mplctním: nebo parametrckém tvaru: F ( a, X ) =, (1) X( a, u). (2) a je sloupcový vektor neznámých modelových parametrů dmenze p, X je sloupcový vektor daných bodů dmenze (m n, 1) a u je vektor parametrů (parametrckého popsu GÚ). Úkolem je určení hodnot parametrů a tak, aby byla mnmalzována zadaná funkce. V případě ortogonálního prokládání GÚ se jedná o funkc: = ( X - X ) P P( X - X ), (3) 2 T T σ kde P T P je váhová matce nebo matce váhových koefcentů (Q -1 ), P je nesngulární symetrcká matce a X' je sloupcový vektor souřadnc bodů na GÚ odpovídající bodům vektoru X. Funkce (σ / r), kde r značí počet stupňů volnost, je tzv. směrodatná odchylka jednotková aposterorní. Pro mplctní parametrcký tvar můžeme pro lepší pochopení řešených rovnc přepsat do tvaru: kde r je vektor (oprav). Ještě přesnější záps má tvar: P( X - X (a, X) ) = r, (4) P( X- X (a,a, x (a, x X )) = r, (5) p r p r g (a,a, ) 2
kde a g, a p a a r jsou separované parametry posunu, rotace a tvaru vz odstavec 3.1. 3. Zvolená metoda Obecně exstuje více metod k prokládání GÚ množnou bodů. Jak jž bylo uvedeno a funkcí (3) defnováno, byla zvolena metoda ortogonálního prokládání. I v oblast ortogonálního prokládání exstuje více možností konkrétního řešení funkce (3). S odkazem na podrobné zpracování tohoto problému v [ 4] byla zvolena souřadncová, dvoukroková metoda s odděleným parametry tvaru a polohy GÚ. Konkrétně se jedná o metodu nazvanou v dsertační prác [ 3], z které byla převzata, jako Algortmus III. 3.1. Metoda oddělených parametrů tvaru a polohy Z důvodu pochopení dále uvedených určovaných parametrů bude uveden základní prncp metody s odděleným parametry tvaru a polohy GÚ. Výpočet touto metodou se dá rozdělt na několk kroků. V prvním kroku jsou prostorovou shodnostní transformací převedeny zadané body do modelového systému, v druhém kroku je v modelovém systému pro každý bod vypočten jeho nejblžší obraz na GÚ a ve třetím kroku je provedena nverzní transformace z modelových souřadnc zpět do původního souřadncového systému. Vektor určovaných parametrů a dmenze p tedy obsahuje parametry tvaru a g dmenze el, parametry posunu a p dmenze n a parametry rotace a r dmenze s. Platí vztahy p=l+n+s a vektor a lze psát ve tvaru (a g T, a p T, a r T ) T. Př tomto způsobu parametrzace získávají rovnce GÚ nový tvar: F( a, X) = f ( a, x) = f ( a, x( a, a, X) ) = f ( a, R(X - X ) =, A transformace mají tvar: g g p r g X a R x a u X -1 (, u) = ( g, ) +. (6) X = X + R x, x = R(X - X ω, ϕ, κ 1 R = R = ( r r r ), R = R x y z T -1 T T T p = = ( X, Y, Z), r = ( ω, ϕ, κ ) a X a ). (7) 3.2. Algortmus III V této kaptole je uveden algortmus použté metody ortogonálního prokládání. 3.2.1. Matcová formulace řešení Nejprve s znovu uveďme základní funkc, kterou je nutné mnmalzovat: (3) 2 T T σ = ( X - X ) P P( X - X ). Základní nutnou podmínkou mnmalzace této funkce je: kde T 2 T T σ = 2 J P P( X - X ) =, (8) a 3
je tzv. matce jakobánu. X J = (9) a Tyto rovnce mohou být řešeny Gauss-Newtonovou terační metodou (vz. [ 2]) ve tvaru normálních rovnc: J P PJ a = J P P( X - X ), a = a + α a, (1) T T T T k k k + 1 k kde α je vhodně zvolené číslo menší nebo rovno jedné (ve Spatfgu α =.9). Pokud bude použta metoda sngulární dekompozce (vz. [ 2] a [ 5]), je možné řešt přímo tzv. "matc plánu" ve tvaru: PJ a = P( X - X ), a = a + α a. (11) k k k+ 1 k Gauss-Newtonova terace bude ukončena př dosažní podmínky maxmálního absolutního přírůstku určovaných parametrů vz odstavec 5.2. Pokud rovnce (5) nejsou lneární z hledska určovaných parametrů, je nutné získat přblžné hodnoty těchto parametrů vz odstavec 4. Vzhledem ke zvolené metodě, jejíž součástí jsou dvě prostorové transformace, není rovnce (5) lneární pro žádný GÚ. Gauss-Newtonovu metodu je možné přímo použít (a ve Spatfgu je použta) v hrančním případě, kdy je počet hledaných parametrů roven počtu rovnc a dochází k výpočtu bez vyrovnání, když v tomto případě je možné přímé řešení Newtonovou terační metodou. 3.2.1.1. Řešení s podmínkam pro určované parametry Pokud je nutné pro vstupní parametry splnt zadané podmínky, jsou do výpočtu zavedeny metodou Lagrangeových multplkátorů, protože nterpretace přesnost dodržení podmínek př jejch zavedení tzv. metodou velkých vah je problematcká. V případě Lagrangeových multplkátorů je nutné sestavní složené matce normálních rovnc a podmínek. Tato metoda je popsána například v [ 1], kde je nazvána jako vyrovnání měření zprostředkujících s podmínkam pro určované parametry. Řešení této metody je možné matcově napsat: T T T T T J P P J B a J P P(X - X ) =, (12) B k b kde k jsou Lagrangeovy multplkátory (jejchž hodnota není dále používána), b je vektor podmínek pro určované parametry a B je matce dervací jednotlvých podmínek podle určovaných parametrů. V případě vyrovnání s podmínkam není možné použít přímé řešení matce plánu a je vždy nutné vytvořt normální rovnce v souladu s (12). 3.2.2. Hledání ortogonálního bodu v mplctním tvaru Hledání ortogonálního bodu je nejvíc náročná část této metody. V knhovně Spatfg byl zatím mplementován jedný GÚ, u kterého nebylo známo uzavřené analytcké řešení pro hledání ortogonálního bodu, jedná se o válec s elptckou podstavou. V [ 3] uvádí dvě metody hledání ortogonálního bodu. 4
3.2.2.1. Newtonova metoda Nutnou podmínkou pro ortogonální bod x ' na povrchu mplctně zadaného GÚ je rovnoběžnost normály v tomto bodě se spojncí s bodem daným. To lze zapsat ve tvaru: f ( x x ) =, (13) kde je gradent, je vektorový součn, x je daný bod a x je bod na GÚ. Hledaný ortogonální bod na povrchu GÚ tedy musí splňovat podmínky: Tato podmínka je řešená Newtonovou metodou: f x f f(ag, x, x) = =, (14) f ( x x) x = -f ( x), x = x + α x k k k + 1 k Někdy je vhodné podmínku, že bod x leží na povrchu GÚ (podmínka f) zeslabt pomocí nžší váhy. Iterace začíná z daného bodu x. 3.2.2.2. Metoda Lagrangeových multplkátorů Druhou možnou formulací problému je hledání mnma funkce pro x: za podmínky f (x) =. Lagrangeova funkce má tvar: Podmínka mnma je: L λ T ( ) ( ) (15) x - x x - x, (16) + λ f (17) T (, x) ( x - x) ( x - x) L -2( x - x) + λ f L = = f (18) λ Kromě těchto základních metod jsou v [ 3] uvedeny postupy na ověření ortogonálního bodu (protože podmínky (14) a (18) z prncpu terují k lokálnímu extrému) a metody pro zrychlení hledání ortogonálního bodu. 3.2.3. Algortmus III v mplctním tvaru geometrckého útvaru Vyjdeme z vyjádření matce jakobánu (9) z rovnce transformace (7). Pro jeden bod můžeme psát: X x R X = = + =. (19) x R T T J X, [ ] a R x a X= X a a a x= x T T = R + I [ x ] a x= x a r I označuje jednotkovou matc. x a lze získat z podmínky pro ortogonální bod (14). Ta po dervac nabude tvaru: 5
f x f x f = - + x a x a a. (2) x a lze opět získat z rovnce transformace. Ostatní matce f x, f x a f a se získají dervací z (14) a z lneárních kombnací chybového vektoru (x x). Z důvodu jednoduššího zápsu autor této metody navrhl vytvoření matc FHG: f f f f F = f =,,, H = f, G = x y z x ag f S pomocí těchto matc lze automatcky naplnt matce f x, f x a f a : f f f x y z f f y y ( x x) f y x = H + x ( z z) x x f f z z ( y y) z x f f z y f f y x f = f f x z x f f z y 1 f = y y ( x x) ( G ) a ( z z) x x z z ( y y). Je vdět, že k mplementac nového GÚ v mplctním tvaru stačí vyjádřt dervace podle vztahů (21). Jednou zbývající neznámou matcí v rovnc (2) je x a, kterou je nutné dosadt do rovnce (19). Protože v rovnc (2) jsou jž všechny ostatní matce známy, je možné tuto matc z ní vyjádřt po provedení nverze matce f x. Rozměr f x je pro dmenz tř (4, 3) a proto je výpočet proveden s souladu s metodou nejmenších čtverců. Schéma Algortmu III pro ortogonální prokládání GÚ v mplctním tvaru je zobrazeno níže: (21) (22) 6
obr. 1 Schéma metody ortogonálního prokládání v mplctním tvaru 3.2.4. Algortmus III pro geometrcký útvar v parametrckém tvaru Prncpelně se jedná o obdobu prokládání v mplctním tvaru. Pro hledání ortogonálního bodu jsou opět navrženy dvě metody: Newtonova metoda a Levenberg-Marquardtova metoda se šrším konvergenčním rozsahem. Jednou povnností př mplementac nového GÚ v parametrckém tvaru je vyjádření matc XHG (obdoba FHG v mplctním tvaru): G x x x x uu uv X = = ( x, x ), H =, G = G = x u u v x x 1 a u g vu vv G x 2 v Pro pochopení je uvedeno schéma Algortmu III pro ortogonálního prokládání GÚ v parametrckém tvaru: (23) 7
obr. 2 Schéma metody ortogonálního prokládání GÚ v parametrckém tvaru 4. Metoda získání přblžných hodnot hledaných parametrů 4.1. Momentová metoda Pro nejednodušší GÚ (přímka, rovna) exstuje řešení podmínky (3) v uzavřeném analytckém tvaru. Konkrétně se jedná o tzv. "momentovou metodu". Tato metoda je založena na výpočtu hlavních momentů setrvačnost z tenzoru momentu setrvačnost. V případě přímky je její vektor totožný s nejmenším hlavním momentem setrvačnost a pro rovnu je normálový vektor rovny totožný s největším hlavním momentem setrvačnost. V obou případech je určujícím bodem ležícím na útvaru těžště. Tato metoda je přesnou a přímou metodou. V knhovně Spatfg je použta jen pro první určení určovaných parametrů přímky a rovny, protože nepracuje s kovaranční matcí souřadnc daných bodů. 4.2. Evoluční metoda U dalších GÚ je výpočet přblžných prováděn tzv. "metodou evoluce", kdy je každý GÚ postupně aproxmován od nejednoduššího až po požadovaný. Jným slovy každý následující GÚ přebírá z předcházejícího všechny společné parametry jako přblžné hodnoty. Například pro elptcký válec je to posloupnost: přímka, válec a elptcký válec, a pokud některé z řešení neteruje (například pro případ úzkého řezu válcem), je aplkována posloupnost: rovna, kružnce, válec a elptcký válec. Více nformací o evoluční metodě vz [ 3]. 4.3. Metoda náhodného výběru Pro velké množny bodů (tsíc a více) trvá výpočet jedné terace až několk sekund. Proto byl ve Spatfgu zaveden prncp, že př počtu bodů větším než r 1 = 5 je náhodně vybráno r 2 = 1 bodů a celé proložení je provedeno nejprve pro tuto množnu. Hodnoty r 1 a r 2 byly 8
vybrány emprcky. Vyrovnané hodnoty určovaných parametrů z výběru jsou použty jako přblžné pro celou množnu. 5. Přesnost výpočtu 5.1. Používané metody Přesnost výpočtu teračních metod je většnou defnována maxmální povolenou velkostí přírůstku nebo sumy přírůstků. Výpočet probíhá, dokud není absolutní hodnota některého z uvedených krtérí menší než maxmální povolená hodnota (nebo dokud není dosaženo povoleného počtu terací tato podmínka platí samozřejmě pro všechny metody). Tato volba není přílš vhodná, protože předpokládá znalost absolutní velkost počítaných parametrů, což v některých případech není splněno. Druhou používanou možností (např. v [ 3]) je krtérum pro maxmální povolenou změnu hodnoty funkce (3). Vazba velkost této změny na přesnost jednotlvých určovaných parametrů není jednoduchá. 5.2. Nové metody Proto byly navrženy dvě metody jné. Součástí výpočtu určovaných parametrů je aposterorní odhad jejch směrodatných odchylek, které představují "nejstotu" v jejch určení. Je zřejmé, že nemá smysl počítat určované parametry s výrazně větší přesností, než je tato nejstota. Proto je možné například výpočet ukončt, když absolutní velkost přírůstku všech určovaných parametrů je menší, než například 1/1 jejch směrodatné odchylky. Je možné s ale představt výjmečnou stuac, kdy tento předpoklad nebude splněn. Například př proložení koule s menším poloměrem než skutečným mračnem bodů, které bude "rovnoměrně" rozmístěno po jejím povrchu. Aposterorní jednotková směrodatná odchylka a tedy odhady směrodatných odchylek jednotlvých parametrů budou "odpovídat" velkost rozdílu zadaného a skutečného poloměru, ale skutečná směrodatná odchylka určení středu této koule bude jná. Druhou metodou je určení požadovaného počtu platných cfer pro určované parametry. Absolutní velkost přírůstku bude muset být pro všechny parametry menší, než absolutní velkost určovaného parametru lomená 1 n, kde n je požadovaný počet platných cfer. Jedným výjmečným stavem, je případ rovnost určovaného parametru nule. Potom by samozřejmě nulová byla maxmální změna přírůstku. Tento případ nastává poměrně často, protože nulová hodnota parametru je často vynucena podmínkou (například C = pro vertkální rovnu nebo A = B = pro horzontální rovnu). Pro případ absolutní velkost parametru menší než 1e -1 není tento parametr testován. Poslední uvedená metoda je zvolena pro určení přesnost výpočtu v knhovně Spatfg. Defaultní nastavení je 6 platných cfer. Jnou přesnost je možné nastavt veřejnou metodou "vod accuracy(const double a)", kde a = 1 n a n je požadovaný počet platných cfer. 5.3. Úvaha o maxmální přesnost výpočtu Je zřejmé, že požadovaná přesnost z hledska platných cfer musí být nžší, než je výpočetní přesnost systému. Přesnost základních typů v C++ je mplementačně závslá vz [ 6]. Pro typy s plovoucí desetnnou čárkou je možné j najít v hlavčkovém souboru "flout.h" a na mém systému je pro typ double uváděna přesnost 15 platných cfer. Maxmální přesnost výsledku je závslá na počtu matematckých operací. Je ale zřejmé, že nejvyšší požadovaná 9
přesnost pro tento typ je přblžně 12 platných cfer. Typ long double má na mém systému defnovanou stejnou přesnost jako typ double. 6. Vlastnost Základní vlastností, vyjma těch uvedených v anotac, je snadná rozšřtelnost o další GÚ dané mplctní nebo parametrckou rovncí. Pro GÚ nemusí an exstovat uzavřené analytcké řešení nejblžšího bodu na povrchu od obecného bodu v prostoru. Například pro rovnce v mplctním tvaru stačí vyjádřt jejch první (gradent) a druhé dervace podle souřadncových os a první dervac mplctní rovnce a gradentu podle hledaných parametrů. 7. Implementované geometrcké útvary Doposud mplementované GÚ jsou uvedeny v následující tabulce: Prostor Útvar Typ útvaru Podtyp Název v knhovně 2D 2D přímka lne_2d kružnce crcle_2d daný poloměr crcle_2d_radus 3D 2D přímka lne_3d kružnce crcle_3d rovna plane horzontální plane_horzontal vertkální plane_vertcal kolmá k vektoru plane_normal_to_vector 3D koule sphere daný poloměr sphere_radus válec cylnder daný poloměr cylnder_radus elptcký válec cylnder_e kužel cone daný vrcholový úhel cone_angle anulod anulod Tab. 1 Implementované geometrcké útvary Implementace lbovolných dalších podmínek je elementární, protože stačí vytvořt objekt odvozený od základního a v tomto objektu defnovat pouze požadovanou podmínku. V dalším textu jsou uvedeny podrobnost k jednotlvým mplementovaným GÚ. 8. Parametry uvedených geometrckých útvarů 8.1. Norma ISO 136 6 Norma (vz [ 7] a [ 8]) byla vytvořena zejména pro standardzac testování softwaru pro souřadncové měřící systémy. Přestože byl Spatfg původně navrhnut pro použtí zejména v oblast laserového skenování, je na něj tato norma plně aplkovatelná. Laserové skenování a souřadncové měřící systémy se sce lší kvaltou a kvanttou naměřených dat a prncpem jejch sběru, ale na 1
druhou stranu jsou totožné z hledska formy vstupních dat pro zpracování a z hledska prncpu jejch zpracování. Tato norma mmo jné stanovuje: metodu testování je založena na srovnání parametrů GÚ určených testovaným softwarem a referenčních hodnot z referenčního softwaru parametrzac základních GÚ ve 2D 3D metoda určení modelových parametrů metoda nejmenších čtverců defnce chybové funkce ortogonální vzdálenost způsob tvorby testovacího datasetu Pro většnu GÚ byla jejch parametrzace převzata z této normy. 8.2. Uvedené údaje Pro každý GÚ je uveden typ rovnce (mplctní nebo parametrcká), rovnce, podmínky, způsob výpočtu nejblžšího bodu v modelové soustavě, počet určovaných parametrů p = el+n+s, které jsou dále rozděleny na parametry geometrcké (modelové) el, parametry posunu n a rotace s (vz metoda s odděleným parametry tvaru a polohy [ 3]), podmínek q, nutných konstant c, mnmální počet rovnc a bodů pb = p q, pořadí neznámých a způsob řešení přblžných hodnot. U jednotlvých GÚ nejsou, až na výjmky, uvedeny nterpretace určovaných parametrů, neboť ty jsou zřejmé z jejch označení. 8.3. Rovnné geometrcké útvary 8.3.1. Přímka Rovnce Implctní: y =. (24) ( X X ) + ( Y Y ) =. (25) 2 2 Uvedená podmínka zajšťuje, že těžště je středem modelové souřadncové soustavy. Výpočet nejblžšího bodu x x =. (26) p = el + n + s = + 2 + 1 = 3, q = 1, c =, pb = 2. Pořadí parametrů X, Y, κ. 11
Řešení přblžných hodnot Momentová metoda. 8.3.2. Kružnce Rovnce Implctní: 1 ( 2 2 2 ) 2 x + y r =. (27) Nejsou. Výpočet nejblžšího bodu r x x = 2 2 x y. (28) + y p = el + n + s = 1 + 2 + = 3, q =, c =, pb = 3. Pořadí parametrů r, X, Y. Řešení přblžných hodnot X, Y těžště a r je průměrná vzdálenost bodů od těžště. 8.4. Prostorové geometrcké útvary 8.4.1. Přímka Rovnce Parametrcké: x ( u) =. (29) u ( X X ) + ( Y Y ) + ( Z Z ) =. (3) 2 2 2 Uvedená podmínka zajšťuje, že těžště je středem modelové souřadncové soustavy. Výpočet nejblžšího bodu p = el + n + s = + 3 + 2 = 5, q = 1, c =, pb = 2. u = z. (31) 12
Pořadí parametrů X, Y, Z, ω, φ. Řešení přblžných hodnot Momentová metoda. 8.4.2. Kružnce Rovnce Parametrcké: Nejsou. Výpočet nejblžšího bodu p = el + n + s = 1 + 3 + 2 = 6, q =, c =, pb = 3. Pořadí parametrů r, X, Y, Z, ω, φ. Řešení přblžných hodnot r cosu x ( u) = r sn u. (32) u y 1 = tan. (33) x ω, φ z proložení rovnnou, X, Y, Z v těžšt a r je průměrná vzdálenost bodů od těžště. 8.4.3. Rovna Z důvodu snadnějšího zavedení základních podmínek (vertkálnost, horzontálnost, kolmost k vektoru), není použta defnce tohoto GÚ podle normy [ 7], ale je použta obecná rovnce rovny (34), který je standardem v analytcké geometr [ 2]. Z mplementačních důvodů je nutné pro tento GÚ defnovat parametry posunu X, Y a Z. Rovna je jedný GÚ, který parametry posunu nepotřebuje, ale protože byl ve Spatfgu v základní třídě zaveden pouze společný datový člen pro dmenz souřadncového systému a počet parametrů posunu n, je nutné tyto parametry zavést. Pro jednoduchost jsou podmínkou položeny rovny nule. Rovnce Základní rovnc rovny (mplctní): A x + B y + C z + D =. (34) 13
Výpočet nejblžšího bodu 2 2 2 A + B + C 1 =, X Y Z =, =, =. d = A x + B y + C z + D, x = x d A, y = y d B, z = z d C. p = el + n + s = 4 + 3 + = 7, q = 4, c =, pb = 3. Pořadí parametrů A, B, C, D, X, Y, Z. Řešení přblžných hodnot Momentová metoda a X = Y = Z =. (35). (36) 8.4.4. Horzontální rovna Vše stejné jako u rovny pouze doplněny další podmínky. A =, B =. p = el + n + s = 4 + 3 + = 7, q = 6, c =, pb = 1. Řešení přblžných hodnot A =, B =, C = 1 a X = Y = Z =. (37) 8.4.5. Vertkální rovna Vše stejné jako u rovny pouze doplněna další podmínka. p = el + n + s = 4 + 3 + = 7, q = 5, c =, pb = 2. Řešení přblžných hodnot Rovna, C = a nové normování k jedné pro parametry A a B. C =. (38) 14
8.4.6. Rovna kolmá k vektoru Rovnce, výpočet nejblžšího bodu a pořadí parametrů je stejné jako u GÚ rovna. X Y Z =, =, =, A vx =, B vy =, C v =. p = el + n + s = 4 + 3 + = 7, q = 6, c = 3 (v x, v y, v z ), pb = 1. Řešení přblžných hodnot A = v x, B = v y, C = v z a X = Y = Z =. z (39) 8.4.7. Koule Rovnce Implctní: Nejsou. Výpočet nejblžšího bodu 1 ( 2 2 2 2 ) 2 x + y + z r =. (4) x r x = y. (41) x + y + z 2 2 2 z p = el + n + s = 1 + 3 + = 4, q =, c =, pb = 4. Pořadí parametrů r, X, Y, Z. Řešení přblžných hodnot X, Y a Z těžště a r je průměrná vzdálenost bodů od těžště. 8.4.8. Koule s daným poloměrem Je uvedeno pouze doplnění nebo změny vůč koul. r c r =. (42) 15
p = el + n + s = 1 + 3 + = 4, q = 1, c = 1 (c r ), pb = 3. Řešení přblžných hodnot Koule a r = c r. 8.4.9. Válec Rovnce Implctní: 1 ( 2 2 2 ) 2 x + y r =. (43) ( X X ) ( Y Y ) ( Z Z ) snϕ snω cosϕ + cosω cosϕ =. (44) Tato podmínka znamená, že bod X bude ležet na ose válce, v pozc dané rovnou, ve které leží těžště a je kolmá na osu válce. Výpočet nejblžšího bodu x r 2 2 x + y y x. (45) = r 2 2 x + y p = el + n + s = 1 + 3 + 2 = 6, q = 1, c =, pb = 5. Pořadí parametrů r, X, Y, Z, ω, φ. Řešení přblžných hodnot Přímka pro určení X, Y, Z, ω a φ. r je určeno jako průměrná vzdálenost bodu od přímky (v modelové souřadncové soustavě). Pokud z přímky určené přblžné hodnoty určovaných parametrů nejsou dostatečně přesné a řešení neteruje, je použta aproxmace kružncí v prostoru. 8.4.1. Válec s daným poloměrem Je uvedeno pouze doplnění nebo změny vůč válc. z r c r =. (46) 16
p = el + n + s = 1 + 3 + 2 = 6, q = 2, c = 1 (c r ), pb = 5 (z důvodu řešení přblžných hodnot). Řešení přblžných hodnot Válec a r = c r. 8.4.11. Elptcký válec Rovnce Implctní: ( X X ) ( Y Y ) ( Z Z ) 2 2 x y + 1 =. (47) 2 2 A B snϕ snω cosϕ + cosω cosϕ =. (48) Tato podmínka znamená, že bod X bude ležet na ose válce, v pozc dané rovnou, ve které leží těžště a je kolmá na osu válce. Výpočet nejblžšího bodu Výpočet nejblžšího bodu v uzavřeném tvaru není znám, a proto je výpočet prováděn numercky teračně. p = el + n + s = 2 + 3 + 3 = 8, q = 1, c =, pb = 7. Pořadí parametrů A, B, X, Y, Z, ω, φ, κ. Řešení přblžných hodnot Válec a A = B = r (z válce) a κ =. 8.4.12. Kužel Rovnce Implctní: 2 1 2 2 ψ x + y r z tan =. (49) 2 2 ( X X ) ( Y Y ) ( Z Z ) snϕ snω cosϕ + cosω cosϕ =. (5) Tato podmínka znamená, že bod X bude ležet na ose válce, v pozc dané rovnou, ve které leží těžště a je kolmá na osu válce. 17
Výpočet nejblžšího bodu x r 2 2 x + y y r : ψ = 2 2 x + y z x = : ψ ( sgn( ψ ) z sgn( ψ ) z, bnd ) ψ r cot 2 1 x ( z, bnd z ) snψ 2 2 2 x + y 1 y ( z, bnd z ) sn ψ : ψ sgn( ψ ) z sgn( ψ ) z 2 2 2 x + y ψ 2 ψ r cot ( z, bnd z ) cos 2 2 ψ 2 2 ψ z, bnd = r cot + x + y tan 2 2 p = el + n + s = 2 + 3 + 2 = 7, q = 1, c =, pb = 6. Pořadí parametrů ψ, r, X, Y, Z, ω, φ. Řešení přblžných hodnot Válec a ψ =. 8.4.13. Kužel s daným vrcholovým úhlem Je uvedeno pouze doplnění nebo změny vůč kuželu. (, bnd ). (51) ψ =. (52) c ψ p = el + n + s = 2 + 3 + 2 = 7, q = 2, c = 1 (c ψ ), pb = 6 (z důvodu řešení přblžných hodnot). Řešení přblžných hodnot Kužel a ψ = c ψ. 18
8.4.14. Anulod Rovnce Implctní: Nejsou. Výpočet nejblžšího bodu + + + 2( + + ) 2 2 2 2 ( r2 r1 )( x y ) 2 2 2 2 2 2 ( r2 r1 ) z ( r2 r1 ) 4 4 4 2 2 2 2 2 2 x y z x y y z z x 1 2 + + =. (53) 4 + 2 + r x = x + x x ( ) 1, crcle, crcle x x, crcle x =, crcle x r2 y. 2 2 x + y p = el + n + s = 2 + 3 + 2 = 7, q =, c =, pb = 7. Pořadí parametrů r 1, r 2, X, Y, Z, ω, φ. Řešení přblžných hodnot,. (54) Kružnce a r 1 (poloměr řezu) je určen na základě aposterorní odchylky jednotkové z proložení kružncí. 9. Vykreslení geometrckých útvarů Do spatfgu byla přdána pro každý mplementovaný GÚ funkce, která na základě vyrovnaných parametrů a množny bodů, na kterých byly parametry vyrovnány, vypočte vhodné parametry ke grafckému zobrazení (většnou charakterstcké body). Parametry k zobrazení jsou většnou počítány v modelové souřadncové soustavě a jsou používány ortogonální body umístěné na tělese (v [ 4] značené x'). V dalším kroku se přetransformují do základní souřadncové soustavy. Množna bodů je nutná k omezení rozsahu platnost útvaru pro vykreslení. Funkce pro výpočet parametrů pro vykreslení je "compute_drawng_parameters" a k jejch předání "get_h_draw". 9.1. Parametry pro vykreslení Přímka: Počáteční a koncový bod úsečky. Délka úsečky je defnovaná bodem na úsečce v modelové souřadncové soustavě s největší a nejmenší souřadncí "z". Kružnce: Tř body na kružnc vzdálené o devadesát stupňů (př měření od středu kružnce). 19
Rovna: Čtyř body defnují obdélník opsaný zadané množně bodů. Koule: Těžště a bod ve vzdálenost poloměru. Válec: Tř body. Bod na jednom konc osy, bod ve vzdálenost poloměru, ale musí být v rovnně, která je kolmá na osu válce a prochází prvním bodem a koncový bod na ose. Z hledska vzdálenost podstav opsuje válec zadanou množnu bodů. Kužel: Čtyř body. Bod na jednom konc osy, bod ve vzdálenost poloměru, ale musí být v rovnně, která je kolmá na osu kužele a prochází prvním bodem, koncový bod na ose a bod defnující poloměr u koncového bodu. Z hledska vzdálenost podstav opsuje kužel zadanou množnu bodů. Anulod: Tř body. Bod na vnějším poloměru anulodu ležící v rovně anulodu (podle 8.4.14 r 2 ), bod v těžšt anulodu a bod ležící v rovnně anulodu, jehož spojnce je kolmá na spojnc předchozích dvou bodů a který leží ve vzdálenost vnější mínus vntřní poloměr anulodu. Elptcký válec: Pět bodů. Tř body defnují elpsu v jedné podstavě. Body leží na elpse, jsou vzdáleny o devadesát stupňů př měření ze středu elpsy a leží v hlavních poloosách. Další dva body defnují osovou úsečku válce. 9.2. Způsob vykreslení v systému Mcrostaton Exstuje propojení knhovny Spatfg s grafckým prostředím Mcrostaton z důvodu možnost vzuální kontroly její čnnost zejména pří prokládání složtějších GÚ (testování) a jako přípravný krok před ntegrací v grafckém užvatelském prostředí PontClouder. Propojení probíhá buď přes textový soubor, nebo přes knhovnu dll. Př propojení přes textový soubor, je možné zobrazt různé fáze (terace) ortogonálního prokládání na všech GÚ, které předchází prokládání hlavního útvaru. Př vykreslování jednotlvých útvarů v systému Mcrostaton je použta metoda "SendCommand". Jedným povnným parametrem této metody je řetězec typu "Strng", který obsahuje příkaz typu "key-n". Přímka je vykreslena pomocí "key-n" příkazu "PLACE LINE CONSTRAINED". Po volání příkazu jsou do vstupní fronty postupně zaslány dva body. Kružnce je vykreslena pomocí "key-n" příkazu "PLACE CIRCLE ICON". Po nastavení některých parametrů jsou zaslány dva body. Rovna je vykreslena pomocí "key-n" příkazu "PLACE SMARTLINE". Jsou zaslány čtyř body a útvaru je uzavřen na prvním bodě. Koule je vykreslena pomocí "key-n" příkazu "PLACE SPHERE ICON". Po nastavení některých parametrů jsou zaslány dva body. Válec je vykreslen pomocí "key-n" příkazu "PLACE CYLINDER ICON". Po nastavení některých parametrů jsou zaslány tř body. Kužel je vykreslen pomocí "key-n" příkazu "PLACE CONE ICON". Po nastavení některých parametrů jsou zaslány čtyř body. Anulod je vykreslen pomocí "key-n" příkazu "PLACE TORUS ICON". Po nastavení některých parametrů jsou zaslány tř body. Elptcký válec je vykreslen s využtím funkce vytažení, protože elptcký válec nepatří mez základní útvary systému Mcrostaton. Nejprve je vykreslena elpsa pomocí "key-n" 2
příkazu "PLACE ELLIPSE ICON". Elpsa je zadána třem body. V dalším kroku je zadána osa válce pomocí lne příkazem "PLACE LINE CONSTRAINED" a nakonec je volána funkce vytažení "CONSTRUCT EXTRUDE ALONG" pro kterou je automatcky vybrána osa a elpsa. 1. Realzace knhovny Knhovna je napsána v jazyce C++. Níže je uvedena struktura knhovny Spatfg. Jednotlvé buňky představují názvy tříd vz tab. 1, spojovací čáry dagramu představují dědčnost. spatfg_base spatfg_mplct_base spatfg_parametrc_base lne_2d crcle_2d plane sphere cylnder cylnder_e lne_3d crcle_3d Obr. 3 Dagram dědčnost v knhovně Spatfg crcle_2d_radus plane_horzontal plane_vertcal plane_normal_to_vector sphere_radus cylnder_radus Základní třídou je tedy "spatfg_base". Je to čstě vrtuální třída a defnuje základní rozhraní pro všechny mplementované GÚ. cone anulod cone_angle 21
Pro prác s matcem je použta knhovna MatVec (vz [ 9]). 11. Program spatfg_console Jedná se o jednoduchou konzolovou aplkac, která slouží k používání knhovny Spatfg. Program načítá vstupní soubor "nput.txt". Formát tohoto souboru musí být následující: 1. Název GÚ v souladu s tab. 1. 2. Voltelně klíčové slovo "approx". Označuje, že po načtení podrobných bodů je očekáváno toto klíčové slovo znovu a po něm následující seznam přblžných hodnot pro všechny určované parametry. 3. Voltelně klíčové slovo "cm". Označuje, že po načtení podrobných bodů je očekáváno toto klíčové slovo znovu a po něm kovaranční matce ve tvaru pásové čtvercové symetrcké matce z knhovny MatVec (vz [ 9]). Formát matce je následující: dmenze, šířka pásu (maxmální j- pro a j různé od nuly) a seznam hodnot nad-dagonální část matce vypsaný po řádcích. 4. Seznam souřadnc podrobných bodů v pořadí X, Y (Z). 5. Voltelně klíčové slovo "constants". Seznam nutných konstant pro daný GÚ. 6. Pokud bylo použto klíčové slovo "approx" tak seznam přblžných hodnot určovaných parametrů. 7. Pokud bylo použto klíčové slovo "cm" tak kovaranční matce. Oddělovač údajů ve vstupním souboru může být jeden nebo posloupnost "bílých znaků" (mezera, tabelátor, znak konce řádku). Ve vstupní souboru může být uvedeno více GÚ. V tom případě jsou načítány a řešeny postupně. Příklad vstupního souboru "nput.txt": sphere_radus.14 -.148.341....14 -.149.335 constants.23 Program vytvoří soubory "output.txt", "output_detals.txt". Pokud není vstupní soubor v pořádku nebo pokud nekonverguje výpočet, potom bude soubor "output.txt" obsahovat nformace o chybě (třída a metoda, kde se chyba vyskytla a její pops). Pokud vše proběhne v pořádku, bude výps vypadat například následovně (komentáře jsou psány typem písma Tmes New Roman, stejně jako text příspěvku): // Název útvaru, rovnce, pořadí vyrovnaných parametrů a jejch směrodatných odchylek sphere_radus (wth fxed radus) The equaton of sphere (by ISO 136-6) s (1/2)*(x^2+y^2+z^2-R^2)= Computed constants and ther mean errors are (n order R,mR,Xs,mXs,Ys,mYs,Z,mZs) 22
(Numbers smaller than 1e-5 wll be dsplayed as "").23 2.85131e-7.299942.362654 -.897482.158766.29982.296148 //Počet podrobných bodů, nformace o exstenc kovaranční matce pro vstupní hodnoty, směrodatná odchylka jednotková aposterorní, počet terací, den a čas výpočtu, doba trvání výpočtu a kovaranční matce vyrovnaných parametrů. Number of ponts s: 5 The covarant matrx of measurng s UNKNOWN Mean standard error (a posteror) sgapo:.91663 Number of teratons s: 8 Date and tme of computaton: Wed Jan 28 3:23:36 29 Computaton tme [ms]: And ther covarant matrx s: 4 4 8.12996e-14 8.178e-15 9.615e-14-1.73693e-14 8.178e-15 1.31518e-7-1.36634e-8 1.3338e-8 9.615e-14-1.36634e-8 2.5265e-8-4.8349e-1-1.73693e-14 1.3338e-8-4.8349e-1 8.7738e-8 Soubor "output_detals.txt" obsahuje výps jednotkových aposterorních směrodatných odchylek a hodnot hledaných parametrů pro všechny terace výpočtu a pro všechny GÚ, které se počítají (tedy GÚ použté pro výpočty přblžných hodnot). Jako nultá terace je označen výps z přblžných hodnot určovaných parametrů. Směrodatné odchylky aposterorní jsou vypočteny dvakrát. Jednou z vektoru oprav z lneárního modelu vyrovnání a podruhé kontrolně z rozdílů souřadnc podrobných bodů zadaných a (většnou analytcky) vypočtených na GÚ. Příklad souboru "output_detals.txt" zkrácený na dva první sloupce parametrů: sphere_radus (wth fxed radus) The equaton of sphere (by ISO 136-6) s (1/2)*(x^2+y^2+z^2-R^2)= Computed constants and ther mean errors are (n order R,mR,Xs,mXs,Ys,mYs,Z,mZs) ter. tme[ms] sg sgcont parameter1 parameter2.1172516.23.2768 1.11247839.1745193.22999954.292534 2.96165827.8545259.22999957.3968767 3.61849295.41533698.22999976.3221593 4.14237652.1598885.22999996.31245289 5.9839226.951366.22999999.319247 23
6.918244.9172938.22999999.322156 7.9166589.9166431.22999999.29997689 8.9166311.916635.22999999.29994169 9.916636.916632.22999999.29993663 1.916635.916632.22999999.2999359 12. Závěr V textu byla představena knhovna tříd a funkcí Spatfg, určená k prokládání geometrckých útvarů v 2D (přímka, kružnce,...) a 3D (rovna, přímka, koule, válec, kužel,...) podle metody nejmenších čtverců. V knhovně jsou řešeny odhady směrodatných odchylek vyrovnaných určovaných parametrů, jejch kovaranční matce a jsou uvažovány případné kovaranční matce měření. Byly stručně popsány mplementované geometrcké útvary. Dále byla popsána programová realzace a struktura knhovny. V poslední kaptole byl popsán jednoduchý konzolový program spatfg_console, k použtí knhovny Spatfg. Lteratura [ 1] GNU General Publc Lcence [onlne]. Verze 2, červen 1991 [ct. 11.11.25] <http://www.gnu.org/lcenses/gpl.html>. [ 2] Rektrorys, K. a spolupracovníc: Přehled užté matematky II. Sedmé vydání: Nakladatelství Prometheus, 1995. [ 3] Ahn, S. J.: Least Squares Orthogonal Dstance Fttng of Curves and Surfaces n Space. In: Lecture Notes n Computer Scence, vol. 3151, p. 1-125, doctoral thess, 24. [ 4] Koska B.: Stude dsertační práce. Nepublkováno, 25. [ 5] Press, W. H. Teukolsky, S. A. Vetterlng, W. T. Flandery, B. P.: Numercal Recpes n C The Art of Scentfc Computng Second Edton. Cambrdge Unversty Press, 1992. [ 6] Čepek, A.: Informatka. Úvod do C++. Praha: ČVUT, 24, ISBN 8-1-374-1. <http://www.stanford.edu/class/cs273/refs/absolute-opt.pdf>. [ 7] ISO 136-6: Geometrcal Product Specfcatons (GPS) Acceptance and reverfcaton test for coordnate measurng machnes (CMM) Part 6: Estmaton of errors n computng Gaussan assocated features. In: Standard ISO 136-6, Geneva, Swtzerland, 21. [ 8] ČSN EN ISO 136-6: Geometrcké požadavky na výrobky (GPS) Přejímací a perodcké zkoušky souřadncových měřících strojů (CMM) Část 6: Odhad chyb př výpočtu prvků přřazených metodou nejmenších čtverců. In: Český normalzační nsttut, 22. [ 9] Čepek, A.: MatVec C++ matrx/vector template lbrary [onlne]. Verze.9.25, 4.9.26 [ct. 17.12.26]. <http://gama.fsv.cvut.cz/wk/ndex.php/matvec>. [ 1] Böhm, J. Radouch, V. Hampacher, M.: Teore chyb a vyrovnávací počet. Praha: GKP, 199. 24