Bedre kunnskap om muligheter og begrensninger gir et riktigere grunnlag for å vurdere aktualiteten av slike systemer. I denne delen av Vision Skolen går vi gjennom de viktigste verktøy som brukes, og viser at produksjonsingeniører raskt vil kunne lære seg å lage enkle vision systemer.
Vision Skolen er et samarbeid med Helge Jordfald hos den norske vision pioneren Tordivel. Første del handlet om bruksområder og reduksjon i produksjonskostnader. Del 2 dekket spesifikasjon av krav, samt valg av kamera, linse og belysning – en slags ”startpakke".
Steg for steg
De fleste billedbehandlingsoppgaver løses etter følgende mønster:
- Etablere referansesystem - kalibrering eller skalering (konvertere piksel til millimeter og korrigere for linsefortegning) og lokalisere objektet (dersom posisjonen og rotasjonen ikke er 100% fiksert)
- Identifisere objektet (dersom det er flere typer objekter)
- Etablere geometriske måledata for detaljen som skal kontrolleres
- Måling (areal, dimensjoner, vinkel) og kontroll av detaljer om de er korrekt fremstilt eller montert
I konkrete eksempler vil vi nå vise hvordan de viktigste verktøy fungerer.
Verktøykassen
Alle vision systemer har en verktøykasse hvor de forskjellige billedbehandlingsverktøy konfigureres. En komplett billedbehandling består av mange små enkeltoppgaver, som hver bruker et spesifikt verktøy.
Enkle oppgaver krever få verktøy og få steg, andre krever mange verktøy og består av over hundre steg. For hvert verktøy spesifiseres et søkeområde (Range of Interest – som forkortes til ROI). Dette kan være hele bildet, eller en del av bildet, hvor det spesifikke verktøy skal operere.
Hvert verktøy har et sett med parametere, slik at funksjonen kan tilpasses den aktuelle oppgave. Alle funksjonene visualiseres grafisk på bildet slik at det er enkelt å verifisere at verktøyet fungerer korrekt. Hvert enkelt verktøy gir et sett av resultater etter en inspeksjon (avstand, areal, senterpunkt, antall etc.).
Resultatene brukes som referanser eller parametere i andre verktøy, kan lagres i databaser, kommuniseres til operatør via en bruker-interface eller sendes til en PLS eller robot. I de kommende eksemplene har vi brukt Scorpion Vision Software.
Skalering og kalibrering av bilde
Alle linser har noe fortegning, spesielt vidvinkel og makrolinser. Denne fortegningen kan umuliggjøre nøyaktige målinger eller bestemmelse av posisjon. Ved en kalibrering kan disse effektene minimaliseres. Det brukes en spesiell ”grid” hvor det er markert en rekke punkter med en gitt avstand.
Griden plasseres i objektets plan, og må ha en størrelse som dekker hele bildet. Ved å benytte dette bildet i verktøyet Calibration kan systemet automatisk korrigere for fortegningen samt skalere systemet. Skalering er kun gyldig ved den gitte avstand til kamera, og det er derfor viktig at griden plasseres eksakt i samme plan som de detaljer på objektet som skal måles. Endres avstanden mellom kamera og objekt må dette gjøres på nytt.
Lokalisering av objektet
Dersom objektet ikke er 100% fiksert må objektet lokaliseres nøyaktig før inspeksjonene kan starte. Flere verktøy, som senere skal benyttes til inspeksjonen, kan være avhengig av å ha referanse til den nøyaktig posisjonen for å gi stabile og pålitelige resultater. Og selv små bevegelser kan skape problemer.
Blob
Verktøyet Blob leter opp piksler hvor gråtoneverdiene ligger innenfor et bestemt område. Vi gir verktøyet et brukerdefinert navn (FinnObjekt), slik at vi enkelt kan forstå oppgaven til verktøyet når vi på et senere tidspunkt ønsker å modifisere oppgaven. Ved å referere denne Bloben til verktøyet ”Kalibrering”, vil alle målinger være i millimeter og posisjoner relativt til koordinatsystemet som ble dannet ved kalibrering.
Dreining
For å bestemme objektets dreining, kan vi lete opp det ytterste hullet, finne senterpunktet og konstruere et koordinatsystem med objektets tyngdepunkt som origo, og linjen mellom de to punktene som den ene aksen.
For å finne hullet settes ett nytt Blob-verktøy opp.
Identifisere objekter
Dersom flere varianter av objektet kan opptre samtidig, er det nødvendig å identifisere objektet. Dette gjøres ved å finne eller måle en eller flere karakteristika for de forskjellige objekter. Dersom arealet av objektene er en sikker identifikasjon, kan resultatet fra arealmålingen gjort i et ”Blob” verktøy benyttes. I et logikkverktøy kan man sette forskjellige grenseverdier og dermed skille variantene fra hverandre. Gode vision systemer kan håndtere mange varianter i et og samme system.
Etablere geometriske data
For at vision systemet skal kunne kontrollere detaljer, må de måleverdier som skal gi grunnlag for å teste mot grenseverdiene etableres. Som leseren sikkert allerede har forstått, brukes billedbehandlingen til å etablere de geometriske egenskaper til objektet eller detaljen. Til dette finnes egne verktøy for å finne kanter, linjer, sirkler eller buer, samt geometriske verktøy for å lage punkter og linjer. ”LineFinder” er det generelle verktøyet til å finne linjer og kanter. Innefor en ROI dannes et sett med søkelinjer i en definert retning.
Hver av søkelinjene registrerer gråtoneverdien for alle piksler den passerer. Oppgaven er å finne punkter hvor gradienten til endringen i kontrasten er størst, og trekker en rett linje mellom disse punktene. I verktøyet kan det settes en rekke forskjellige parametere som definerer hvilke punkter det søkes etter. Det kan være terskel på gradienten, om det skal søkes fra lys til mørkt eller omvendt. På lik linje finnes det spesialverktøy for å finne sirkler/buer og vinkler, og vi har allerede lært at Blob-verktøyet finner arealer.
Måling og kontroll
De ønskede målinger utføres av et eller flere verktøy, og resultatene skal deretter testes mot grenseverdier.
For å teste måleverdiene brukes logikkverktøy. I et logikkverktøy kan alle resultatene fra verktøyene importeres ved å legge inn toleranseverdiene, og vi har etablert kontrollfunksjonen. Når testen er sann gir logikkverktøyet resultatet 1, ved usann 0. Disse testresultatene vil vi senere bruke for å kommunisere med operatører, PLS eller robot.
Vi har allerede sette at en ”Blob” finner et eller flere arealer med gråtoneverdier innenfor definerte verdier. Dette kan benyttes til å kontrollere om en spesielle detalj er tilstede eller kontrollere størrelse, antall og dimensjoner på hull. Linje/kant-verktøyene gir som resultat avstand og vinkel, og ”RadialArcFinder” måler radius på buer og sirkler. På denne måten konfigureres de antall kontrollfunksjoner som er nødvendig.
Det finnes i tillegg en rekke andre verktøy, men med en forståelse for hvordan de grunnleggende verktøy fungerer er det enkelt å lære seg disse.
Siste del av Vision Skolen (del 4) dekker hvordan et vision system integreres i produksjonslinjen med operatør panel, loggefunksjon og kommunikasjon til PLS. I tillegg vil vi vise hvordan vision kan gi roboter syn.