Vaasa Hacklabin 3D-skanneri

Vaasa Hacklab sai Fuugin säätiöltä tukea 3D-skanneriprojektiin. 3D-skannerin sydämenä toimii 30 kappaletta Raspberry Pi -tietokoneita kameramoduuleilla, joita ohjataan ottamaan yhtä aikaa kuva lähiverkon kautta.

Vaasa Hacklab 3D-skanneri
Vielä ei olla ihmiskokoluokassa, mutta vedenkeitinkokoluokan proto.

Skannerirakennelman johtojen määrää pyrittiin vähentämään viemällä sekä tietoverkko että virta Raspberyille PoE (Power over Ethernet) -tekniikalla verkkojohtoa pitkin. Tämä vaatii PoE-virtasyöttöön kykenevän kytkimen, jollainen sitten löytyikin edullisesti käytettynä. Lisäksi Raspberryihin vaadittiin lisälaitteistoa, jolla virta saatiin pilkottua ulos kaapelista ja syötettyä Raspberryille.

PoE-piirilevyistä muodoistui oma alaprojekti. ELL-i:llä http://ell-i.org/ oli juuri suunnitteluvaiheessa GPL-lisenssillä PoE-piirilevy Raspberryjä varten, joten päätimme ryhtyä yhteistyöhön. ELL-i suunnitteli, me kommentoimme suunnitelmia; etsimme mahdollisia virheitä, esitimme toiveita ja muutenkin osallistuimme projektiin. ELL-i toimitti meille protolevyjä, ensin itse kolvattavia, loppuvaiheessa valmiiksi kokoonpantuja. Muutaman protokierroksen ja yhden vakavamman bugin korjauksen jälkeen tuotteen designiin oltiin tyytyväisiä. Lisätietoja PoE-levystä: http://ell-i.org/products/poe-for-raspi/datasheet/

Laitteiston hankkimisen ja muutaman ohjelmisto-ongelman selvittämisen jälkeen rakennettiin ensimmäinen skanneri. Skannerin runko on tehty Ikean Lack –pöydästä, jossa on kiinni useampia Raspberryjä kameroineen 3D-tulostetuilla pidikkeillä. Raspberryt on kiinnitetty tankoihin, muutama kappale päällekkäin, muodostaen kehän jonka keskelle kuvattava kohde asetetaan. Ikea–pöydän alle kiinnitettiin kytkin nätisti suoraan jalkoihin kiinni. Viimeisin versio lähiverkkokaapeleiden avulla sähköä siirtävistä PoE-lisälaitteista saapuu ELL-i:ltä loppuvuodesta, Lack-protossa käytetään suurimmaksi osaksi ATX-virtalähdettä Raspberryjen sähköistämiseen. Prototyypin avulla on hahmoteltu kameroiden oikeaa suuntausta ja kohdistamista riittävän tarkkuuden saavuttamiseksi.

Raspberryissä pyörii Raspbian Wheezy Linux, jotka käynnistyvät omilta SD-korteilta, mutta käyttöjärjestelmä ladataan NFS-verkkojaon yli. Tämän ansiosta järjestelmän muutoksiin riittää yhden paikan muokkaaminen ja kaikki Raspberryt seuraavat perässä seuraavan käynistyksen yhteydessä. Raspberryissä käytämme suurimaksi osaksi Raspbianissa valmiina olevia Python–kirjastoja. Ainoa ulkopuolinen sovellus on python-picamera, joka mahdollistaa Raspberryn kameran hallinnan python skriptistä. Jokainen Raspberry tarkkailee verkossa liikuvia multicast-paketteja ja ottaa kameramoduulilla kuvan sopivasti muotoillun paketin saapuessa laskentakoneelta.

Otetut kuvat tallennetaan multicast-paketissa olevien tietojen mukaiseen tiedostoon, josta ne haetaan verkon yli laskentakoneelle, joka muodostaa yksittäiskuvista 3D-mallin. Tämän toteuttamisen käytettiin usean palvelintietokoneen yhtäaikaiseen käskyttämiseen SSH-yhteyden yli suunniteltua Python-kirjastoa Fabric. Kuvien saavuttua laskentakoneelle voidaan niitä käsitellä halutulla ohjelmalla. Tässä projektissa on käytetty VisualFSM ohjelmaa http://ccwu.me/vsfm/ joka yhdistää käsittelyn kolme eri vaihetta. Ensin löydetään kaikki kuvaparit SIFT algoritmillä ja sen jälkeen löydetään kuvien paikka toisiinsa verrattuna ”Newton type Bundle Adjustment” algoritmin avulla. Viimeiseksi vaiheeksi jää pistepilven teko joka tehdään kahdessa ajossa, ensin sparse point cloud joka on nopea ja muodostaa karkean mallin, sen jälkeen muodostetaan tiheä pistepilvi, josta saadaan tarkka lopullinen malli.

Käytettyjen skriptien koodit on tarjolla GitHubissa: https://github.com/vaasahacklab/3d-scanner-scripts

Seuraava vaihe projektissa on suunnitella ja rakentaa isompi kehä kameroiden kiinnittämistä varten ja kokeilla isomman esineen skannausta.

Vaasa Hacklab

Vaasa Hacklab on avoin ja yhteisöllinen askarteluverstas tieteestä, teknologiasta ja tekemisestä kiinnostuneille Vaasassa. Yhdistys on perustettu maaliskuussa 2013. Vaasa Hacklab järjestää kursseja ja teemailtoja tekemisestä ja teknologiasta. Avoimuus ja yhdessä tekeminen ovat toiminnan perusteita
http://vaasa.hacklab.fi
http://github.com/vaasahacklab

2 kommenttia artikkeliin ”Vaasa Hacklabin 3D-skanneri”

  1. Aika edistynyt projekti. Kysyn tietämättä mitään aiheesta, mutta eikö yhdelle rasperrylle voi saada useampia kameroita? Pitääkö kuvat ottaa samaan aikaan?

    Vastaa
    • Kuva samaan aikaan kaikilla kameroilla niin on mahdollista saada 3D-malli liikkuvastakin kohteesta (lapset, eläimet).

      Vastaa

Jätä kommentti