AS-0.3200 Automaatio- ja systeemitekniikan projektityöt S11-04 Kompaktikamerat stereokamerajärjestelmässä Väliraportti Ari-Matti Reinsalo Anssi Niemi 21.3.2011
Tämä väliraportti noudattaa projektisuunnitelman pohjaa. Projektisuunnitelmassa esitellyt suunnitelmat on esitetty tavallisella fontilla, kun taas uudet lisäykset ja kommentit työn etenemisestä on kirjoitettu lihavoidulla fontilla. Projektityön tilanne 1. Suunnitteluvaihe Tässä vaiheessa perehdytään projektityön aihealueeseen ja laaditaan alustava suunnitelma työn tekemiseen. Arvioitu työmäärä: 10-15 h Deadline: 31.1.2011 Toteutunut työ: Aihealueeseen ja Matlabin Camera Calibration Toolboxiin tutustuminen sujui aikataulussa ja työmäärä vastasi suurin piirtein suunniteltua määrää. Tämä vaihe sujui edellä aikataulua ja seuraava vaihe, yhden kameran kalibrointi voitiin aloittaa aiemmin kuin suunniteltiin. Työmäärä: 10-15 h 2. Yhden kameran kalibrointi Yksittäinen kamera kalibroidaan ennen kuin stereokuvapari voidaan kalibroida. Kalibrointi suoritetaan Matlabin Camera Calibration Toolboxilla. Kalibrointia varten tuotetaan Matlabilla tietokoneen näytölle tunnetun kokoinen shakkiruudukko, josta otetaan kameralla kuvia eri suunnista. Tämän jälkeen Camera Calibration Toolboxilla määritetään kameran epäideaalisuuksia kuvaavat parametrit. Arvioitu työmäärä: 15-20 h Deadline: 15.2.2011 2
Toteutunut työ: Matlabin Camera Calibration Toolboxin asentamiseen ja käytön opettelemiseen kului muutama tunti. Odottamattomia ongelmia kuitenkin ilmeni kalibroitaessa. Kalibrointi jouduttiin suorittamaan useaan kertaan johtuen seuraavista syistä: - Vahingossa klikattiin väärää kohtaa kuvassa, jolloin koko kalibrointiprosessi jouduttiin aloittamaan alusta - Oli epäselvää halusiko Camera Calibration Toolbox shakkiruudukon ruudun koon millimetreissä vai metreissä - Vasemman ja oikean kameran ottamat kuvat oli eri kokoisia. Irfanview oli muuttanut konvertoitaessa CR2-formaatista TIF-formaattiin myös kuvien kokoa. Kuvien eri koosta aiheutui ongelma, että eri kameroiden kalibrointitulokset eivät olleet yhteneviä, eikä stereokalibrointia voinut siksi suorittaa. Aikaa kului myös paljon siihen kun yritettiin selvittää miksi kalibrointitulokset erosivat toisistaan niin paljon. Esimerkiksi toiselle kameralle polttoväliksi saatiin n. 4000 pikseliä ja toiselle n. 2000 pikseliä. Ero selittyi lopulta sillä että käytetyt kuvat olivat eri kokoisia, ja molemmat polttovälit johtivat oikeaan n. 6,75 mm polttoväliin. Työn etenemistä hidasti myös se seikka, ettei kamerasta onnistuttu saamaan kuvia ulos DNG-formaatissa jota Camera Calibration Toolbox olisi suoraan tukenut, vaan jouduttiin konvertoimaan erillisellä ohjelmalla (Irfanview) CR2-formaatista TIF-formaattiin, jota Camera Calibration Toolbox tukee myös. Työmäärä: 30 h 3. Stereokuvan kalibrointi Yksittäisten kameroiden kalibroinnin jälkeen suoritetaan stereokalibrointi, johon käytetään Matlabin valmista toolboxia tai kalibroinnin suorittava algoritmi koodataan itse. Kalibroinnin tuloksena saadaan kalibrointiparametrit eli sisäiset (intrinsic) ja ulkoiset (extrinsic) parametrit. Kyseiset parametrit vaihtelevat runsaasti eri yhteyksissä, joten on tärkeää tehdä selväksi mitkä parametrit toolbox määrittää ja ovatko ne riittävät. Arvioitu työmäärä: 25-30 h (riippuen paljon koodataanko kalibroinnin suorittava skripti itse) Deadline: 20.3.2011 3
Toteutunut työ: Kävi ilmi että Camera Calibration Toolboxissa on hyvä stereokalibrointiominaisuus jo valmiiksi, joten emme lähteneet koodaamaan sitä itse. Stereokalibrointi käyttää hyväkseen yksittäisten kameroiden kalibroinnista saatuja kalibrointitiedostoja sekä joukkoa stereokuvia. Tässä törmäsimme ongelmaan, että yksittäisten kameroiden kalibrointitiedostot eivät olleet yhteensopivia. Selvisi, että stereokalibroinnissa käytettävät kuvat täytyy olla samat, joilla yksittäisten kameroiden kalibrointi on suoritettu. Aina stereokalibrointia tehdessä joutuu siis suorittamaan työlään ja aikaavievän yksittäisen kameran kalibroinnin molemmille kameroille. Stereokalibroinnin kehittäminen automaattisemmaksi olisi turhan haastava ongelma tämän kurssin puitteissa [1], joten keskityimme kalibrointiprosessin kehittämisen sijaan kaukolaukaisinjärjestelmän kehittämiseen. Työmäärä: 10 h 4. Kaukolaukaisimen rakentaminen Suuniteltu työ: Kaukolaukaisimen rakentaminen on projektityön viimeinen vaihe. Kameran firmware tunnistaa kaukolaukaisimella tuotetun jännitepulssin, ja laukaisee kameran tämän perusteella. Alustava suunnitelma on käyttää tätä samaa jännitepulssin tunnistavaa ohjelmaa, ja tehdä uusiksi vain kaukolaukaisimen kotelointi. Jos aikaa jää, niin suunnittelemme ja toteutamme kaukolaukaisun etäohjauksella tietokoneen kautta. Arvioitu työmäärä: 15-20 h Deadline 20.4.2011 Toteutunut työ: Olemme onnistuneet pysymään reilusti edellä aikataulua johtuen siitä, ettei stereokuvan kalibrointia tarvinnut koodata itse. Päätimme panostaa siksi kaukolaukaisimeen reilusti enemmän mitä alun perin suunniteltiin. Kaukolaukaisimesta päätettiin tehdä infrapunalla toimiva, jolloin päästään eroon ikävistä kaapeleista. Komponentit saatiin tilattua aikataulussa. Ainoastaan kotelot lähettimelle ja vastaanottimelle ovat vielä hankkimatta. Piirit ovat suunniteltu ja testattu koekytkentäalustalla. Lähettimen keskeisimmän komponentin, AVR ATtiny45 mikrokontrollerin ohjelmointi sujui ongelmitta, ja oskilloskoopilla pystyttiin varmistamaan lähettimen oikea toiminta. Vastaanotin 4
käyttää IR-signaalin vastaanottamiseen TSOP31236 vastaanotinmoduulia, joka on kytketty ATtiny45-mikrokontrollerin input-pinniin. Mikrokontrolleri tulkitsee vastaanotinmoduulin tuottamaa pulssijonoa ja ohjaa kameroille menevää jännitettä. Vastaanotinjärjestelmä on myös saatu jo ohjelmoitua toimivaksi. Seuraava vaihe on minimoida lähettimen ja vastaanottimen virrankulutus silloin kun käyttäjä ei paina kytkintä. Tämän lisäksi piirit tullaan kasaamaan vielä lopullisille piirilevyille ja koteloimaan. Tähän mennessä toteutunut työmäärä: 30 h Arvioitu tuleva työmäärä: 30 h 5. Dokumentointi Dokumentointia tehdään sitä mukaan kun työ edistyy, ja työn edistymistä esitellään kolmessa eri tilaisuudessa: Suunnitelman esittely, väliraportointi ja loppuseminaari. Lopuksi työn kulusta ja tuloksista kirjoitetaan raportti. Arvioitu työmäärä: 20-25 h Deadline: 30.4.2011 Toteutunut työ: Suoritetut kalibrointitulokset on talletettu sitä mukaan kun kalibrointeja on tehty. Kaukolaukaisimen piirikaaviot ja osalistat on talletettu myös myöhempää esittelyä ja raportointia varten. Mikrokontrollerien ohjelmakoodit on tallessa lopullista raporttia varten. Työmäärä: 8 h Riskinhallinta Yhden kameran kalibrointi on melko suoraviivainen operaatio, koska Camera Calibration Toolbox hoitaa suurimman osan työstä. Toolbox tukee kuitenkin vain tiettyjä kuvaformaatteja, eikä ole varmaa saadaanko kameralta kuvia ulos näissä formaateissa. Jos kamerasta ei suoraan saa kuvia ulos oikeassa formaatissa, voidaan käyttää jotain sovellusohjelmaa, joka muuntaa kuvia formaatista toiseen. Tämän lisäksi kyseisen toolboxin käyttö ei ole tuttua, joten odottamattomia ongelmia voi tulla eteen. Camera Calibration Toolboxin käytössä on tullut vastaan useita ongelmia. Ongelmat eivät ole ylitsepääsemättömiä, mutta ne ovat olleet aikaavieviä. 5
Stereokalibrointi on projektin riskialttein osuus. Tarvittava matematiikka on suhteellisen monimutkaista, ja ongelmia voi tulla siinä ettei tarkalleen ymmärretä mitä tehdään. Tämän takia on tärkeää tutustua huolella aiheeseen ja ymmärtää käytettävät kaavat. Lisäksi, jos päädymme koodaamaan kalibrointialgoritmin itse, voi ohjelmointi osoittautua hankalaksi ja aikaavieväksi. Stereokalibrointi ei ole enää riskialttein osuus projektia, koska emme koodaa stereokalibrointiskriptiä itse, vaan käytämme Camera Calibration Toolboxin valmista stereokalibrointiominaisuutta. Kaukolaukaisin on elektroniikaltaan erittäin yksinkertainen, joten ongelmia elektroniikan toteuttamisen suhteen tuskin tulee. Ongelmia voi tulla tarvittavien osien, kuten kotelon, paristonpitimien ja painonappien saatavuuden suhteen. Näiden saatavuus on syytä selvittää hyvissä ajoin, ettei aikaa kulu osia odotellessa. Projektin painopiste siirtyi kaukolaukaisimen kehittämiseen, ja kaukolaukaisin tullaankin kehittäämään alusta asti uudestaan langattomaksi. Tämä on projektin riskialttein osuus, koska piirit tullaan suunnittelemaan, sekä mikrokontrollerit ohjelmoimaan itse alusta loppuun. Piirit ovat suhteellisen yksinkertaisia, joten suuria riskejä ei liity piirin elektroniikan suunnitteluun. Tällä hetkellä suurimmat riskit liittyvät siihen, kuinka pitkä on IR-lähettimen kantama ja kuinka tarkasti IR-signaali täytyy suunnata vastaanottimeen päin. IR-vastaanotinmoduuli antaa välillä virheellisiä signaaleita mikrokontrollerille, ja näiden ohjelmallinen suodattaminen mikrokontrollerin ohjelmassa on yksi haaste, jottei kameroille anneta jännitettä silloin kun se ei ole tarkoitus. Lähteet [1] Brandi House, Dr. Kevin Nickels, http://www.iiisci.org/journal/cv$/sci/pdfs/p360613.pdf 6