veřejná knihovna tříd a funkcí spatfig a její aplikace
Transkript
VEŘEJNÁ KNIHOVNA TŘÍD A FUNKCÍ SPATFIG A JEJÍ APLIKACE PUBLIC LIBRARY OF CLASSES AND FUNCTIONS SPATFIG AND ITS APPLICATION Bronislav Koska, Ing., ČVUT, FSv, K154 - Katedra speciální geodézie, Thákurova 7, Praha 6 - Dejvice, 166 29, [email protected] Abstract The library of classes SPATFIG (Spatial Figure) is presented in this paper. The main function of SPATFIG is fitting of primitives in 3D space (2D primitives: straight line, plane, circle; 3D: sphere, cone, cylinder ...) by the least square method (LMS). There are solved estimations of standard deviations of adjusted variables and their covariant matrix and there are considered the covariant matrix of measuring. In the paper are also presented reasons for producing this library, there is described the method of adjustment and specific method of approximate solution computing, there is also presented realization and possibilities of SPATFIG implementation in CAD systems and at last there is described programming solution of this library (in C++). Key words Spatial (prostorový), figure (útvar), fitting (prokládání), primitive (geometrické primitivum), adjustment (vyrovnání), least square method (metoda nejmenších čtverců), cone (kužel), cylinder (válec). 1 ÚVOD V příspěvku je představena knihovna tříd SPATFIG (Spatial Figure - prostorový útvar). Jedná se o knihovnu tříd a funkcí zabezpečujících prokládání geometrických primitiv v prostoru (2D primitiva: přímka, rovina, kružnice; 3D: koule, válec, jehlan, ...) podle MNČ. V knihovně jsou řešeny odhady středních chyb vyrovnaných neznámých koeficientů, jejich kovarianční matice a jsou uvažovány případné kovarianční matice měření. V anglické literatuře je tato problematika nazývána „fitting of primitives“. V příspěvku jsou dále uvedeny důvody k vzniku této knihovny, je popsán způsob vyrovnání a specifický způsob výpočtu přibližných řešení, jsou prezentovány realizace a možnosti využití implementace knihovny v CAD systémech a je popsáno programové řešení knihovny (C++). 1 Jméno a příjmení, titul, škola, fakulta, katedra, adresa školy, spojení (e-mail) 2 IMPLEMENTOVANÁ GEOMETRICKÁ PRIMITIVA Jedním ze základních rámců projektu je rozhodnutí, která primitiva bude knihovna obsahovat. Pro první verzi bylo rozhodnuto implementovat primitiva v souladu s profesionálním uživatelským softwarem 3Dipsos. Tento software je vyvíjen firmou Mensi a ta v současné době patří pod společnost Trimble. V software 3Dipsos jsou geometrická primitiva nazývána „constructed entities“ („EC“). Jedná se o tato primitiva: 2D: Straight line (přímka), Circle (kružnice), Ellipse (elipsa), Plane (vertical, horizontal ...) (rovina (vertikální, horizontální)). 3D: Sphere (with known radius ...) (koule (se známým poloměrem)), Cylinder (válec), Circular torus (kružnicový torus), Rectangular torus (pravoúhlý torus), Cone (kužel), Eccentric cone (excentrický kužel), Ellipsoid of revolution (rotační elipsoid), Box (kvádr), Pyramid (pyramida), Bounding box (ohraničený kvádr), Bounding cylinder (ohraničený válec). Primitiva mohou být vázána různými podmínkami. V době psaní článku byla implementována tučně vypsaná primitiva. Aktuální stav knihovny bude prezentován v rámci prezentace na konferenci. 3 DŮVODY PRO VYTVOŘENÍ KNIHOVNY SPATFIG Je to základní složka software k vyhodnocení mračna bodů při zpravování geometricky definovatelných ploch a objektů (druhou základní složkou je vytváření trojúhelníkových sítí na geometricky nedefinovaných plochách). Není dostupná žádná free software alternativa. Nedávno zakoupený profesionální software 3Dipsos neprovádí rozbory přesnosti, nepracuje s kovarianční maticí měření a není u něj znám algoritmus výpočtu. Skupiny pracující s oblasti 3D skenování často tyto funkce, včetně rozborů přesností, potřebují k vyhodnocení experimentů. V systému LORS (laserový a optický rotační 3D skener více v [1]) může nahradit komplexnějším způsobem výpočetní sešity z prostředí MathCad, které sloužily pro výpočet konfiguračních parametrů systému (laserová rovina, parametry točny) více v [2]. 4 MATEMATICKÉ ŘEŠENÍ KNIHOVNY SPATFIG 4.1 Vyrovnání Při řešení konfiguračních parametrů systému LORS bylo použito přímé řešení pomocí tzv. „vyrovnání měření podmínkových s neznámými“ (počet normálních rovnic = počet všech rovnic (počet bodů) + počet určovaných neznámých). Toto řešení bylo dostačující pro konfiguraci systému, protože pro určení roviny bylo používáno 10-30 bodů a pro určení točny (vyrovnání kružnice v prostoru) 5-10 bodů. Pro proložení geometrického primitiva až tisíci bodů nebyl tento způsob vhodný a proto bylo vyrovnání nahrazeno tzv. „vyrovnáním měření zprostředkujících s podmínkami pro neznámé“ (počet normálních rovnic = počet určovaných neznámých + počet doplňujících podmínek) s úpravou na ekvivalentní rovnice oprav (tzv. fingovaná měření). Toto řešení je v teorii vyrovnávacího počtu známo jako tzv. „regresní analýza“. Více informací v [3]. 4.2 Problematika vhodného obecného popisu geometrického primitiva Pro popis jednotlivých primitiv byly použity obecné tvary rovnic známé z analytické geometrie v prostoru. U ploch druhého stupně je zamýšleno použití rovnic v tzv. „standardním tvaru“ doplněných o koeficienty prostorové transformace nebo o souřadnice středu primitiva a vektory definující jeho určující osy. 4.3 Problematika určení přibližných hodnot hledaných koeficientů V případě prokládání primitiv mračnem bodů je určení přibližných hodnot koeficientů primitiv trochu nezvyklou záležitostí. Problémem je, že každý odhad může být velmi nepřesný a proto se jednotlivé odhady mohou velmi lišit. To je způsobeno například velkou hustotou a relativně malou přesností (např. střední chyba měřené délky je srovnatelná s krokem skeneru). Proto je nejprve náhodně vybrán velký počet kombinací nutného počtu bodů. Pro každou kombinaci je případně testována vhodnost konfigurace (například u roviny je ošetřeno, aby trojice určujících bodů neležela na jedné přímce ani blízko ní). A následně jsou vyloučeny odlehlé odhady přibližných hodnot, u kterých je předpokládáno normální rozdělení. U některých složitějších primitiv je výpočet přibližných hodnot řešen numericky. 5 DALŠÍ VYUŽITÍ KNIHOVNY SPATFIG Kromě samostatného využívání knihovny je možné implementovat SPATFIG do libovolného CAD systému například pomocí knihoven „dll“ (dynamic link library). Tím je možno využít již desítky let vyvíjené pracovní prostředí nejrozšířenějších CAD systémů jako je AutoCad a Microstation. Důkazem tohoto trendu je produkt CloudWorx firmy Leica, který je implementací softwaru Cyclone pro Microstation a AutoCad (Cyclone je původní software pro vyhodnocení mračna bodů firmy Leica). Byla provedena implementace stávající verze knihovny SPATFIG do systému Microstation V8 s využitím programovacího jazyka VBA a dll knihoven viz. Obr. 1). Obr. 1) 6 Implementace SPATFIG do Microstation PROGRAMOVÉ ŘEŠENÍ KNIHOVNY SPATFIG Knihovna je napsána v jazyce C++ (První verze knihovny byla vytvořena v rámci doktorandského předmětu „Objektové programování v C++“ a v rámci grantu IGS ČVUT 2004). SPATFIG využívá knihovnu tříd „gmatvec“. Z toho důvodu by měla být také šířena pod veřejnou licencí GNU GPL. 7 ZÁVĚR Byla představena vyvíjená knihovna tříd a funkcí SPATFIG, která je určena k prokládání geometrických primitiv v prostoru (2D: přímka, rovina, kružnice; 3D: koule, válec, jehlan, ...) podle MNČ. Prokládání primitiv je zkladní funkcí pro zpracování mračna bodů. V knihovně jsou řešeny odhady středních chyb vyrovnaných neznámých koeficientů, jejich kovarianční matice a jsou uvažovány případné kovarianční matice měření. V příspěvku jsou dále uvedeny důvody k vzniku této knihovny, je popsáno matematické řešení knihovny (vyrovnání, výpočet přibližných hodnot koeficientů), jsou prezentovány možnosti využití implementace knihovny v CAD systémech a je popsáno programové řešení knihovny. Je zamýšlen další rozvoj této knihovny v rámci mé disertační práce a případné zapojení diplomantů. Kromě účasti dalších řešitelů v rámci ČVUT je možné a vítané i zapojení řešitelů z jiných pracovišť. Literatura [1] KOSKA, B. - KAŠPAR, M. - POSPÍŠIL, J. - ŠTRONER, M. - KŘEMEN, T.: Development of Rotation Scanner, Testing of Laser Scanners. Konference INGEO 2004, Bratislava. [2] KOSKA, B. - ŠTRONER, M. - POSPÍŠIL, J.: Algoritmus určování rovnice obecné roviny pro laserové skenování včetně rozborů přesnosti.In: Stavební obzor. 2004, roč. 13, č. 2, s. 55-60. ISSN 1210-4027. [3] HAMPACHER, M. - RADOUCH, V. : Teorie chyb a vyrovnávací počet 20. Praha: ČVUT, 1997. 140 s. ISBN 80-01-01703-6. Recenzoval Ing. Martin Štroner, Ph.D., ČVUT, FSv, K154 - Katedra speciální geodézie, Thákurova 7, Praha 6 - Dejvice, 166 29, odborný asistent, [email protected]
Podobné dokumenty
Rozbor přesnosti před měřením modelováním
Martin Štroner, Jitka Suchá, 10.2007
V případě, že výpočet zpracovávané úlohy se bude řešit vyrovnáním MNČ, je nutné rozbor
přesnosti před měřením provádět vytvořením modelu. Stejně jako při rozbor...
Možnosti využití technologie laserového skenování k dokumentaci
obrazové korelaci. Autoři příspěvku mají k dispozici software PhotoModeler Scanner (na trhu
od 2008), který je funkčním rozšířením zavedeného softwaru pro průsekovou fotogrammetrii.
V současné době...
Veřejná knihovna tříd a funkcí SPATFIG k ortogonálnímu prokládání
LSS LORS (laserový a optický rotační skener, viz. [ 27]), kde bylo nutné při konfiguraci
systému řešit OP roviny laseru a dále kružnice ve 3D při určování osy točny.
Vzhledem k zaměření autora přís...
Optoelektronické metody 3D zaměření povrchů předmětů
V předkládané studii je přiblížena druhá uváděná skupina nástrojů, tedy problematika
prokládání geometrických útvarů množinou bodů v souladu s metodou nejmenších čtverců.
Znalost a programové zprac...
ZDE - Katedra speciální geodézie
Mapovánı́ jihlavského podzemı́
V návaznosti na práce v podzemı́ štoly Josef je možnost provést užitečné měřické práce v historickém podzemı́ města
Jihlavy. Jedná se o kompletnı́ zp...
PowerLeap PL-370/T (Rev.2), Návod pro Rychlý Start
používáte Intel Box CPU a jeho chladič, nahraďte, prosím, úchytku Intelu za specializovanou úchytku PowerLeap, která je součástí
dodávky; poté opatrně připojte napájecí kabel, zapněte počítač a upg...