Czech English

3D scanner

na koleně

Pravděpodobně už jste někde zařízení nazývané 3D scanner viděli. Slouží k získání počítačového - virtuálního modelu reálného předmětu. Průmyslové skenery používané ve stavebnictví, strojírenství, ale i dalších oborech jako umění a počítačové hry jsou poměrně drahá zařízení. Co si však takový skener postavit ...


Princip 3D skeneru

Základní princip funkce většiny bezkontaktních skenerů je promítání tzv. strukturovaného obrazce na skenovaný předmět, jeho snímání kamerou a výpočet vzdálenosti jednotlivých bodů od kamery na základě triangulace. Tuto metodu používá např. i zařízení pro herní konzole Kinekt.
Zdrojem světla může být např. dataprojektor, jehož výhodou je, že se může promítaný obrazec snadno měnit. Ten však doma každý nemá. Jednodušší variantou je použití laseru, promítajícího čáru (laserová dioda s optikou). Používá se např. u laserové vodováhy, kde promítá světelnou čáru na zeď.
Nevýhodou je, že z jednoho obrázku získáme mnohem méně bodů, ale za to je vyhodnocení mnohem jednodušší.

Funkce jednoduchého skeneru

Čárový laser promítá na skenovaný předmět "čáru" - světlo se šíří pouze v jedné rovině. Na předmětu se zobrazí jako křivka odpovídající řezu tělesa. Tento průmět snímáme kamerou z vhodného směru.
V obraze nalezneme promítnutou křivku (červené body). S využitím zobrazovací rovnice kamery a triangulace určíme souřadnici těchto bodů v prostoru.
Tím získáme body jednoho řezu skenovaného předmětu. Předmět pootočíme (posuneme) o definovanou hodnotu a postup opakujeme. Velikost pohybu a tedy i počet získaných řezů určuje hustotu získaných bodů a tím i rozlišení výsledného modelu.
Výsledná přesnost získaného modelu je ovlivněna mnoha faktory
  • povrchem skenovaného objektu
  • geometrickou přesností promítaného obrazce - čáry
  • rozlišením a kvalitou použité kamery
  • přesností vzájemné polohy jednotlivých komponent
  • i vlastním zpracováním
Při použití běžně dostupných prostředků lze dosáhnout přesnosti určení polohy jednotlivých bodů lepší než 2mm.
Takto lze získat např. modely, které jsou pro následných úpravách vhodné pro 3D tisk. Nelze tedy získat model s přesností, kterou dosahují průmyslové skenery (řádově desetiny mm), ovšem mnohonásobně dražší.

Stavba 3D skeneru

Potřebné součásti:
  • čárový laser (z vodováhy nebo lze zakoupit např. na e-bay v ceně do 100 kč)
  • webkamera
  • otočný stolek poháněný krokovým motorem
  • elektronika pro ovládání laseru a krokového motoru (arduino)
Točna pro pohyb skenovaného předmětu se skládá z držáku krokového motoru a osy točny, krokového motoru, ložiska otočného kotouče a převodu. Otočný kotouč lze připevnit i přímo na hřídel motoru, ale použitý motor z tiskárny má na hřídeli pastorek, tak bylo použito i spoluzabírající kola. Tím bylo získáno větší rozlišení (více možných poloh) točny.
Pro uchycení webkamery a laseru bylo potřeba vyrobit stojánky. Zde se opět velmi dobře osvědčila 3D tiskárna pro tisk úchytek.
Po testech bylo jako optimální zvoleno snímaní obrazu pod úhlem 45° od roviny promítaného světla. Tvar řezu je už dost dobře prokreslený a pokud na objektu nejsou příliš prudké změny tvaru, které by stínily, tak je i dobře viditelný.

Software

Pro skenování lze získat software na různých internetových stránkách zabývajících se doma vyráběnými skenery.
Já jsem si to chtěl vyzkoušet sám a donutit se tak konečně zkusit počítačové zpracování obrazu (jen docela jednoduše). Dlouho jsem vybíral v jakém vývojovém prostředí to budu psát (pro PC programuji nerad a pro windows zvlášť). Nakonec jsme zvolil C#, protože je pro něj jsem našel návody jak zvládnou OpenCV (pro zpracování obrazu) a zárověň OpenGL (pro zobrazování výsledného modelu). První testovací verze softwaru nějak funguje, samozřejmě je co vylepšovat. Záleží jen na tom, zda najdu dostatek odhodlání.

Použitá literatura a odkazy na internetu

Obrázky