Dinsdag middag

Post date: 23-Jun-2009 13:59:19

Testen met de webcam boven het zwarte vlak van de robotarm geeft de blokjes mooi weer, maar ziet het doosje met de gaten als een groot wit blok. Zodra de TL lichten uit staan (het is op het moment al vrij licht door de zon buiten) gaat het beter, helemaal goed gaat het als we de binnenkant van de (rode) doos zwart maken in plaats van (wittig) hout.

Voor het vinden van de objecten zijn verschillende mogelijkheden. We testen er twee:

    • Afbeelding omzetten naar zwart-wit met een bepaalde grenswaarde (threshold) en de ruis verwijderen
    • De kleuren die vaak voorkomen vinden en voor elke kleur die vormen markeren

Beide methoden vinden het doosje met daarin de juiste vormen. Nadeel van de zwart-wit methode is dat de donkere blokjes (blauw en groen) moeilijk te detecteren zijn, zeker op de groene vloer waar we op testen. Op het zwarte vlak gaat het beter. Een oplossing zou zijn om de donkere blokjes lichter te maken, maar dat is niet zo leuk. Bij de kleurmethode worden verschillende afbeeldingen gevonden, waar ook een aantal grijs-achtige kleuren tussen zit waar je niet zo veel mee kan. Een derde methode is edge detection, deze methode hebben we niet getest.

Met behulp van de zwart-wit methode leidt het volgende stappenplan tot de juiste match:

- Zet de afbeelding om naar zwart-wit

- Vind de twee assen van de robot (twee witte lijnen in beeld) en draai de afbeelding zodat het klopt met de assen

De schaal weet je dan nog niet. We zouden ook de webcam zelf recht kunnen hangen, en de schaal meegeven.

- Verwijder de ruis

- Vind de witte doos en het witte blokje / de blokjes en maak een apart plaatje + onthoud de coordinaten

- Het grootste plaatje is de doos. Met de doos:

* inverteer de kleuren (zwart-wit)

* vind de witte gaten (met relatieve coordinaten t.o.v. linker bovenhoek)

- Neem elk van de gaten en tel het aantal overeenkomende pixels met het gevonden blokje (beide zwart of wit)

(hoek even negeren, we zetten alle blokjes en de doos recht neer)

- De beste match met de meeste overeenkomende pixels is het gat waar het blokje naartoe moet.

Bereken de posities van het blokje en het gat

- Start de robot!

Daarna kunnen we kijken of er nog tijd over is voor een mogelijke draaiing, voor de match, de coordinaten en een gedraaide gripper.