Parts Vision Recognition

Oppgaven

Tronrud Engineering produserer deler til automatiserte industriløsninger som de lager selv. Når delene skal overflatebehandles blir de sendt videre til et annet selskap. Per dags dato kommer delene i en pall hvor de er plassert over en 2D-tegning som består av informasjon om delen. Antall deler og størrelse kan variere, men vil ikke være større enn størrelsen på selve pallen. 2D-tegningene som tilhører delene blir lagret som en bunke i en hylle. Når delene kommer tilbake fra behandlingen kan de være plassert på forskjellige steder på pallen, som betyr at en lagerarbeider på Tronrud må gjenkjenne delen ved å sammenligne med 2D-tegningen som de har lagret. Noen av delene kan se så og si identiske ut, hvor kun et hull utgjør forskjellen på delene. I tillegg er det tidskrevende å gå igjennom hele bunken med 2D-tegninger for å finne riktig artikkelnummer til de ulike delene. Problemet Tronrud ønsker bistand med å løse er derfor å finne en mer effektiv og mindre ressurskrevende måte å identifisere de ulike delene.

Produktet

Produktet inneholder to løftemekanismer som skal løfte en pall hver. De skal løfte en pall med deler og en uten. Etter at pallene er løftet til en ergonomisk høyde for lagerarbeideren blir de gjenkjent når lagerarbeideren legger delene under kameraet. Etter dette legger lagerarbeideren delene i pallen uten deler. Etter prosessen er ferdig blir begge pallene senket til gulvet. En pall med deler kan veie opp til 500kg. Løftemekanismen er delt opp i 3 sammenstillinger med bevegelige deler.

Saksebein

Produktet har to hulprofiler per side. Det som gjør produktet vårt unikt fra andre saksebeinmekanismer er at den er designet på en måte som gjør at lagerarbeideren kan kjøre pallen rett inn i systemet uten behov for en plattform. Ved bruk av hjul og kulelagre er bevegelsen helt lineær i vertikal retning.

Kuleskruemekanismen

Saksebeina blir dratt opp og ned ved hjelp av av kuleskruer. Kuleskruene gjør det mulig å gjøre rotasjon om til lineære bevegelse. Kuler som roterer i sporene til gjengestanga og mutteren fører til rotasjon med lite friksjon og derfor høy effektivitet. Gjengestengene er festet til lagerbukker på begge ender og kulelagrene tillater rotasjon.

Kjede og kjedehjul

Kuleskruene er festet videre til kjedehjul og kjeder. Kjedet blir rotert av motoren, som da roterer kuleskruene og dermed drar saksebeinene opp.

Brukergrensesnitt

Til dette systemet er det viktig med brukergrensesnitt slik at brukeren av systemet kan velge hvilke deler som skal bli skannet. Brukergrensesnittet er brukervennlig, Windows design og på norsk. Brukeren skal kunne ha muligheten til å dirigere seg fram og tilbake i brukergrensesnittet uten problemer. Brukergrensesnittet skal være koblet til en database hvor informasjon blir registrert og hentet. Det er også et innloggingssystem for å ivareta sikkerhetsmessig hensyn. Etter innlogging skal brukeren velge om pallen skal sendes eller mottas, og deretter velge hvilken type overflatebehandling og tilhørende bedrift.

Database

For å kunne manipulere data i systemet vårt trengte vi en måte å lagre data på en måte slik at flere deler av systemet vårt kunne få tilgang ved behov. Derfor bestemte vi oss for å lage en SQL database som kunne ta ansvaret for å fordele dataen. Databasen er integrert med brukergrensesnittet slik at endringer som blir gjort i brukergrensesnittet skal bli registrert. For å forsikre oss om at deler som blir registrert har mulighet til å få riktig overflatebehandling blir behandlingen valgt fra en liste på brukergrensesnittet og databasen sjekker om det er gyldige bedrifter som utfører denne overflatebehandlingen. Databasen har muligheten til å lagre bilder av objekter som har blitt skannet slik at gjenkjenningsprogrammet har mulighet til å hente ut bilder basert på søkekriterier som reduserer tiden det tar for maskinen å utføre bildebehandlingen på grunn av redusert sammenligninger.

Gjenkjenningsprogrammet

Gjenkjenningsprogrammet er skrevet i C++ og vi bruker et åpen kilde biblioteket til programmet. I gjenkjenningsprogrammet bruker vi SURF algoritmen for å gjenkjenne en del ved å sammenligne nøkkelpunkter kun fra et bildet. Gjenkjenningsprogrammet leser og decoder barkode først og lagrer den i en midlertidig fil og bruker denne dataen som et bildenavn når bilder tas. Bildet representert her viser en test resultat av gjenkjenningprogrammet hvor to deler har fått match. Linjene på bildet viser nøkkelpunkter som har fått match og terminalen skriver ut match prosenten.

Gjenkjenningsprogrammet

I gjenkjenningsprogammet har vi to filer for bilder hvor i den ene er det mange bilder mens i den andre er det kun et bildet. Gjenstanden som skal gjenkjennes tas bildet av og lagres i filen som inneholder kun et bildet (overkriver filen) deretter kjører gjenkjenningsprogrammet og matcher dette bildet mot de andre bilder i den andre filen og match prosenten lagres i en midlertidig fil. Når matching er ferdig programmet viser bildet som har fått høyest match prosent og skriver ut match prosenten. Programmet er testet med ulike gjenstander.