1
Afstudeerproject :
Beursopstelling met Robot
Versie
:
Eindverslag
Bijgewerkt
:
04-06-2013
Student
:
Hans Jonkers
2 Inhoud Voorwoord ... 4 Samenvatting ... 5 Aanbevelingen ... 5 1. Inleiding ... 7
2. Analyse van het spel Jenga ... 7
2.1 Uitleg van het spel Jenga ... 7
2.2 Aanpak van de analyse... 8
2.3 Conclusie ... 9
3. De opstelling ... 9
3.1 Eisen aan de opstelling: ... 9
3.2 Concept opstelling ... 9
3.3 De robot met controller ... 10
3.4 De toegepaste blokken ... 10
3.4.1 Plaats van de toren op het speelveld ... 11
3.4.2 Oppakken blokjes na instorten toren ... 11
3.4.3 blokjes uit de toren halen ... 12
3.5 Het Visionsysteem ... 12 3.5.1 Functionele eisen ... 12 3.5.2 Camerakeuze ... 13 3.6 Het werktuig ... 13 3.6.1 De grijper ... 13 4. Flowdiagrammen ... 14 5. De communicatiestructuur ... 18 5.1 Hardware opbouw ... 18 5.2 Communicatie Methode ... 18 5.3 Communicatie Protocol ... 19 6. Software ... 20
6.1 Software voor het verwerken van de beelddata ... 20
6.2 Software voor de user interface(HMI) ... 21
6.3 Software voor het aansturen van de robot ... 24
6.3.1 Tool Center Point (TCP) ... 24
6.3.2 Coördinatenstelsels ... 25
6.3.3 Posities en rotaties ... 26
7. De proefopstelling ... 28
8. Conclusie en aanbevelingen ... 30
3
8.2 Aanbevelingen ... 30
Nawoord ... 30
Literatuur ... 31
Bijlage 1. PMD ... 32
Bijlage 2. foto’s gemaakt na het instorten van de toren met het originele spel... 40
Bijlage 3. Datasheet IRB1600 ... 42
Bijlage 4. Datasheets IRC5-Controller... 44
Bijlage 5. Samenstelling van het robot systeem ... 46
Bijlage 6. Opdrachtomschrijving aan derden voor de opstelling en het werktuig ... 47
Bijlage 7. Datasheet Time of Flight camera Mesa SR4000 ... 49
Bijlage 8. Resolutie berekeningen voor de camera ... 56
Bijlage 9. Ruiswaarden van de camera ... 58
Bijlage 10. Opdrachtomschrijving aan derden voor ontwerp van het visionsysteem. ... 60
Bijlage 11. Rapid code ... 62
Bijlage 12. Meetmethoden voor visionsystemen ... 72
Bijlage 13. Een weergave van de mogelijke posities en rotaties. ... 74
4
Voorwoord
Dit rapport is het afstudeerverslag van een hbo student elektrotechniek en beschrijft een opdracht waarvoor de combinatie van vision en robotica is vereist. Vooral lezers die geïnteresseerd zijn in toepassingen van robots in combinatie met een Time of Flight camera kunnen in dit rapport informatie vinden.
Mijn dank gaat uit naar docentbegeleider Peter Klijn, die mij aan de opdracht heeft geholpen en zich heeft ingezet voor het zoeken van studenten die nodig waren voor het uitvoeren van activiteiten met betrekking tot de opdracht. Ook mijn vrouw Jacobien en dochter Elsa wil ik bedanken voor het grammaticaal doornemen van mijn verslag.
Verder wil ik beide bedrijfsbegeleiders Henk Meeuwissen en Robin van Praat danken voor hun kritische en opbouwende kritiek tijdens de voortgangsbesprekingen.
5
Samenvatting
De opdrachtgever voor dit afstudeerproject is CSi Industries B.V te Raamsdonksveer. CSi is werkzaam in de branche van Automated Material-handling systemen en levert volledig geïntegreerde material handlingsystemen. Hierbij moet gedacht worden aan;
- Conveyorsystemen voor verpakte producten - Verpakkingsmachines
- Palletiseer machines - Pallet handling machines
- Order picking systemen in distributiemagazijnen
CSi is een dynamisch en innovatief bedrijf dat wereldwijd opereert. Eén van de manieren om toekomstige klanten te interesseren voor de producten en mogelijkheden van CSi is via (vak)beurzen. Momenteel worden op beurzen zware, kostbare opstellingen geplaatst. Door de omvang en kosten van deze opstellingen worden ze niet op kleine beurzen geplaatst. Daarom is er binnen CSi behoefte aan een lichte, compacte beursopstelling. Deze opstelling moet makkelijk te vervoeren en te plaatsen zijn en op een leuke, interactieve manier de beursbezoeker prikkelen om de CSi-stand te bezoeken. Tevens moet de opstelling op een representatieve manier de producten en diensten van CSi aan de beursbezoeker laten zien.
De opdracht is om een beursopstelling te maken met een robot en die het spel Jenga te laten spelen. De beursbezoeker geeft de robot opdracht om uit een toren van blokken een blok te pakken en deze weer bovenop de toren te leggen. Dit gaat net zolang door totdat de toren instort. Om te laten zien dat CSi een innovatief bedrijf is en van de nieuwste technieken gebruik maakt, moet voor het weer opbouwen van de toren een visionsysteem worden gebruikt. Dit visionsysteem moet informatie aan de robot geven, zodat deze in staat is uit de chaos van blokken de toren weer opnieuw op te bouwen. De opdracht bestaat uit het ontwerpen van een complete beursopstelling met robot, werktuig en visionsysteem.
Uit de testen met een proefopstelling (hoofdstuk 7) bleek dat de gemaakte routines in robotstudio en de gekozen grijper goed functioneerde. Er is geconstateerd dat de door het visionsysteem gegenereerde 3D-beelddata niet nauwkeurig genoeg is, zie hiervoor bijlage 14. Door deze onnauwkeurigheid worden de posities van de blokken na het instorten van de toren niet goed doorgegeven aan de robot. Dit resulteert in een toren die schots en scheef wordt opgebouwd. In de huidige opzet worden de blokken, bij het spelen van het spel, alleen op basis van coördinaten uit de toren getrokken. Een scheefstelling van de toren tijdens het spelen wordt daardoor niet gesignaleerd. Dit kan betekenen dat de grijper naast een blok grijpt. Dit zou men kunnen oplossen door in het werktuig extra sensoren aan te brengen die de scheefstelling van de toren kunnen meten. Momenteel is er geen terugkoppeling op het werktuig met als gevolg dat de robot niet kan “voelen” of een blokje los zit. Dit zou kunnen betekenen dat na één blok te hebben verwijderd de toren al omvalt. Een terugkoppeling in de vorm van een krachtsensor zou hier een oplossing kunnen bieden. De user interface van de robotcontroller (FlexPendant), die nu wordt gebruikt, is niet geschikt voor een beursopstelling. Hiervoor kan in de toekomst beter een touchmonitor worden gebruikt. De in robotstudio gemaakte routines zijn door middel van de proefopstelling (hoofdstuk 7) in de praktijk getest en kunnen worden gebruikt als start voor een vervolgopdracht.
Aanbevelingen Blokken:
- Doorsnede moet vierkant zijn.
6 - Oppervlak moet glad zijn.
- Lichte kleur (voorkeur wit). Lange zijden mogen eventueel voorzien zijn van afschuining, kopse kanten absoluut niet.
Tafel:
- Matte witte ondergrond, liefst zo glad mogelijk om te zorgen dat de blokken na het omvallen van de toren zoveel mogelijk vlak komen te liggen.
Werktuig:
- Omdat de blokken tijdens het opbouwen van de toren niet exact in het midden worden opgepakt, moet in het werktuig het blok dusdanig worden gepositioneerd dat de toren recht kan worden opgebouwd.
- Er dient een terugkoppeling naar de robot plaats te vinden, zodat kan worden bepaald of het blok los ligt.
- Er dient een terugkoppeling naar de robot plaats te vinden, zodat kan worden bepaald of het blok is vastgepakt.
Visionsysteem:
- De camera is gevoelig voor direct zonlicht wat resulteert in extra ruis. Extern infrarood licht moet dus voorkomen worden.
- Bij een matte, witte ondergrond werd de minste ruis gegenereerd. Een glimmend oppervlak is niet wenselijk, want dit resulteert in waardes die niet bruikbaar zijn.
7
1. Inleiding
De opdrachtgever voor het project CSi, te Raamsdonksveer, levert volledig geautomatiseerde material handlingsystemen over de hele wereld. Hierbij moet u denken aan:
Conveyorsystemen voor verpakte producten.
Verpakkingsmachines.
Palletiseer machines.
Pallet handling machines.
Order picking systemen in distributiemagazijnen.
Eén van de manieren om toekomstige klanten te interesseren voor de producten en mogelijkheden van CSi is via (vak)beurzen. Momenteel worden op beurzen zware, kostbare opstellingen geplaatst. Door de omvang en kosten van deze opstellingen worden ze niet op kleine beurzen geplaatst. Om ook voor de kleinere beurzen een opstelling te hebben, is er binnen CSi behoefte aan een lichte, compacte robotopstelling
De opdracht is om een beursopstelling te maken met een robot en die het spel Jenga te laten spelen. Deze beursopstelling moet makkelijk te vervoeren en te plaatsen zijn en op een leuke, interactieve manier de beursbezoeker prikkelen om de CSi-stand te bezoeken. Als interactie met het publiek wordt gekozen voor het spel Jenga. Hierbij wordt de beursbezoeker uitgenodigd de robot opdracht te geven een blok te pakken uit de toren en deze weer bovenop de stapel te leggen. Dit gaat net zolang door totdat de toren instort. Vanuit de chaos van blokken moet de robot nu in staat zijn de toren op te bouwen. Het plaatsen en in gebruik nemen van de opstelling moet ook door niet-technici mogelijk zijn, omdat niet alle medewerkers van CSi, die op de stand staan, een technische opleiding hebben.
Voor het uitvoeren van de opdracht wordt in hoofdstuk 2 eerst een analyse van het spel Jenga gemaakt. De resultaten van deze analyse worden verwerkt in hoofdstuk 3, hier wordt de concept opstelling beschreven. Aan de hand van de gemaakte flowdiagrammen in hoofdstuk 4 wordt het uitwerken van de besturing en de software beschreven in de hoofdstukken 5 en 6. Samen met de resultaten die we hebben gevonden door het uitvoeren van testen op een proefopstelling (hoofdstuk 7) zijn de conclusies en aanbevelingen verwerkt in hoofdstuk 8.
2. Analyse van het spel Jenga
Om de opdracht goed uit te kunnen voeren, moet vooraf worden bekeken hoe het spel moet worden gespeeld en hoe het verloopt. Dit hoofdstuk beschrijft een analyse van het spel Jenga. Hierin wordt proefondervindelijk vastgesteld hoe groot de blokken moeten worden en hoe hoog de toren maximaal kan worden. Ook wordt gekeken hoe een ingestorte toren eruit ziet. De gegevens van deze analyse gaan we gebruiken om te bepalen hoe we de concept opstelling het beste kunnen maken. We moeten hier denken aan de grootte van de speeltafel, de plaats van de toren en met welke posities en rotaties we te maken hebben, na het instorten van de toren, voor het oppakken van de blokken.
2.1 Uitleg van het spel Jenga
Jenga wordt gespeeld met 54 houten blokken. De blokken worden gestapeld in de vorm van een toren. Elke laag bestaat uit drie blokken die plat naast elkaar liggen en elke laag is loodrecht geplaatst op de vorige. Een Jenga toren bestaat dus uit 18 lagen. Zodra de toren is gebouwd, mag de speler die hem heeft gebouwd beginnen. De speler neemt een blok uit een willekeurige laag onder de bovenste laag en legt het blok bovenop de toren. Hierbij mag slechts één hand worden gebruikt. De toren mag ook alleen met één hand tegelijk aangeraakt worden. Hierna is de beurt voorbij. Zo ontstaat in de loop van het spel een steeds hogere en instabielere toren. Als de volgende speler van mening is dat de toren gaat omvallen, mag hij/zij nog 10 seconden wachten voordat de beurt verder gaat. Het spel eindigt als de toren omvalt.
8
De verliezer is de persoon die de toren om laat vallen (de speler die aan de beurt was toen de toren viel) (Jenga, 2013).
Figuur 1. Een Jenga-toren.
2.2 Aanpak van de analyse
Om het verloop van het spel te kunnen bepalen is het spel tien maal gespeeld en hierbij steeds het aantal lagen geteld net voordat de toren instort. Op deze manier wordt bepaald hoe hoog de toren kan worden. Als aanvang wordt steeds begonnen met 18 lagen, uit de factor laag/18 kan de relatie tussen de hoogste laag en de aanvangslaag worden bepaald. Ook zijn er foto’s genomen van de richting waarin de toren valt. Zie bijlage 2 voor nog meer foto’s.
Tabel 1 Het verloop van het spel
De resultaten van het verloop van het spel
Poging Aantal lagen voor instorten Factor laag/18 1 25 1,4 2 20 1,1 3 21 1,2 4 24 1,3 5 23 1,3 6 25 1,4 7 21 1,2 8 24 1,3 9 24 1,3 10 25 1,4 Gemiddeld 23,2 1,3
9 Figuur 2. Een ingestorte toren.
2.3 Conclusie
Uit de factor laag/18 blijkt dat de maximale hoogte 1.4 x de beginhoogte is. Aan de hand van de foto’s is te zien dat de toren steeds in een redelijk rechte lijn valt parallel aan een plat vlak van de toren. Ook is te zien dat de blokken volkomen willekeurig vallen en een deel van de toren overeind blijft staan. Doordat de toren steeds op dezelfde plaats wordt opgebouwd, moet dit deel van de tafel worden schoon geveegd. Dit betekent een extra functie voor het werktuig. Verder moet een vangnet ervoor zorgen dat de blokken niet van de speeltafel vallen. Omdat de blokken ongeordend vallen is voor het bepalen van de posities en rotaties van de op te pikken blokken is een visionsysteem vereist, zodat de robot in staat is om met de informatie van het visionsysteem de toren weer op te bouwen.
3. De opstelling
Dit hoofdstuk beschrijft de kaders en eisen voor het ontwerp van de opstelling. De opstelling bestaat uit verschillende onderdelen, zoals het mechanische frame met daarop het speelveld met de blokken, de robotcontroller, de robot met werktuig en het visionsysteem.
3.1 Eisen aan de opstelling:
De opstelling moet met een bestelbus te vervoeren zijn. Dit betekent maximale afmetingen van 300 x 160 x 190 cm. De maximale massa mag niet meer dan 1200 kilogram bedragen.
Makkelijk op te stellen: de installatie moet ook door niet- technici kunnen worden opgesteld
.
Er moet gebruik gemaakt worden van een robot.
Er moet gebruik gemaakt worden van een visionsysteem.
Deze moet voldoen aan de veiligheidsnormen.
Het moet een beurswaardige opstelling worden met een industriële look die vooral de thema’s van CSi uitdraagt zoals: Palletiseren, Product Handling en positioneren.
3.2 Concept opstelling
De opstelling moet in ieder geval bestaan uit een tafel waarop het spel kan worden gespeeld. De grootte van de tafel wordt bepaald door de reikwijdte van de robot. Om manoeuvreerruimte te houden, stellen we de effectieve reikwijdte van de robot op 100 cm. Als gekozen wordt voor een vierkanten tafel dan worden de afmetingen bepaald door de uiterste hoeken. We zouden dan kunnen werken met een tafel van 70 x 70 cm (100/ √2 = 70 cm). Als gekozen wordt voor een ronde tafel dan kunnen we werken met een diameter van 100 cm. Aan de rand van de tafel moeten voorzieningen worden getroffen die voorkomen dat de blokken van de tafel vallen en dat er bezoekers binnen het bereik van de robot kunnen komen. De combinatie van robot en speeltafel moet worden gemonteerd op een frame dat met een heftruck of pompwagen kan worden verplaatst. De controller kan op een plateau met wielen worden geplaatst. Uitgaande van een ronde tafel zou een conceptopstelling er dan uit kunnen zien als in figuur 3.
10 Figuur 3. Een conceptopstelling.
Deze opzet is met CSi doorgenomen en akkoord bevonden. In overleg met de begeleidende docent is besloten om voor het maken van de opstelling en het werktuig de hulp in te roepen van een mechatronica student. Hiervoor is een opdracht met probleemstelling en functionele eisen gemaakt. In bijlage 6 de bijbehorende opdrachtomschrijving.
3.3 De robot met controller
De robot met controller is voorgeschreven door CSi en wordt een ABB-robot van het type IRB 1600-6/1.45. Het betreft hier een robot met zes bewegingsassen. Hoe meer assen des te groter is de wendbaarheid en flexibiliteit. De toegepaste controller inclusief motordrivers wordt geleverd in een single cabinet uitvoering. De controller kan van meerdere opties worden voorzien. Wat belangrijk voor ons is dat het mogelijk moet zijn om met een PC te communiceren. In de huidige opzet zijn er geen extra analoge of digitale kaarten nodig. Zie voor verdere informatie bijlagen 3, 4 en 5.
3.4 De toegepaste blokken
Om wat meer body aan de opstelling te geven, gaan we grotere blokken toepassen. Er is gekozen voor geschaafde vurenhouten blokken met een afmeting van 43 x 43 x 140 mm. Bij deze keuze heeft een aantal overwegingen een rol gespeeld:
Geschaafd vurenhout van 43 x 43 mm kan in verschillende lengtes bij elke bouwmarkt worden gekocht. De blokken moeten dan alleen nog op maat worden gemaakt.
Door hoogte en breedte van de blokken hetzelfde te houden, hoeft er voor het bepalen van de positie geen rekening te houden met een platte of smalle kant.
De afmetingen zijn zodanig dat ze gemakkelijk door het visionsysteem kunnen worden herkend.
De afmetingen zijn zodanig dat een grijper ze gemakkelijk kan pakken.
De massa van 130 gram is geen probleem voor de pay load van de robot.
De blokken hebben voldoende “body” om de aandacht te trekken van de beursbezoekers. We gaan uit van 30 blokken, waarmee we een toren kunnen bouwen van tien lagen met een hoogte van 43 cm.
11 3.4.1 Plaats van de toren op het speelveld
Nu de afmetingen van de blokken en het type robot bekend zijn, moeten er afspraken gemaakt worden waar de toren moet worden opgebouwd. Om het volledige bereik van de robot te benutten kan de toren het beste in het midden van de tafel worden geplaatst onder een hoek van 45 graden. De blokken hebben een onderlinge afstand van zeven millimeter. Op die manier kan de robot er altijd bij en hebben de blokken ruimte om te vallen. Verder moeten er nog afspraken worden gemaakt hoe de blokken worden geïdentificeerd. Hiervoor gaan we de toren verdelen in rijen en kolommen. De combinatie van een rij en een kolom bepaalt de plaats van het blok.
Figuur 4. Afspraken voor opbouw toren.
3.4.2 Oppakken blokjes na instorten toren
Na het instorten van de toren kunnen de blokjes in divers posities liggen. Het werktuig moet zo worden geconstrueerd dat het de blokken in alle mogelijke posities kan pakken. In figuur 5 is te zien dat we te maken hebben met drie mogelijke rotaties. Bij het programmeren van de robot moet hier rekening mee worden gehouden. De blokjes worden op de vlakke kant opgepakt en daarna boven op de toren geplaatst.
12 Figuur 6. Opbouwen toren.
3.4.3 blokjes uit de toren halen
Voor het spelen van het spel moet de beursbezoeker een keuze maken uit welke kolom en uit welke rij het blok moet worden getrokken. Vervolgens trekt de robot dit blok uit de toren. Dit gebeurt door het blok aan de kopse kant te pakken.
Figuur 7.Een blokje wordt uit de toren getrokken. 3.5 Het Visionsysteem
Na het instorten van de toren liggen de blokken door elkaar op het speelveld. Om de toren opnieuw op te kunnen bouwen, moet er gebruik worden gemaakt van een visionsysteem. Dit hoofdstuk beschrijft de mogelijke meetmethoden en er wordt op basis van de functionele eisen en eisen van de klant een keuze gemaakt voor de camera.
3.5.1 Functionele eisen
Het visionsysteem moet worden gekalibreerd.
Het visionsysteem moet melden dat de toren is ingestort.
Het visionsysteem in staat moet zijn om de richting te bepalen waarin de toren is gevallen.
Het visionsysteem moet melden dat het speelveld vrij is, zodat de toren opnieuw kan worden opgebouwd.
Het visionsysteem de coördinaten van de gevallen blokken (X, Y, Z, RX, RY, RZ) moet doorgeven aan de robot zodat deze in staat is het blok op te pakken en te verplaatsen.
13 Als opdrachtgever heeft CSi ook nog extra eisen:
De camera moet aan de kop van de robot worden gemonteerd.
Er moet gebruik worden gemaakt van hoogwaardige state of the arttechniek. 3.5.2 Camerakeuze
Om een goede keuze te maken voor de toe te passen camera(‘s) is een onderzoek verricht naar de mogelijke meetmethoden (bijlage 12). Om aan alle eisen te voldoen, is gekozen voor een Time of Flight camera en wel de Mesa SR4000. Deze keuze is genomen op basis van de volgende overwegingen:
Om de opstelling gemakkelijk in bedrijf te stellen en compact te houden, is het werken met meerdere camera’s niet handig.
De methode waarbij steeds een scan moet worden gemaakt, valt af vanwege de tijd die dit kost. De opstelling gaat dan niet dynamisch werken.
Bij Fotometrische stereo 3D bestaat, zeker bij verschillende beursopstellingen, het gevaar voor valse reflecties van andere lichtbronnen.
De ToF-meetmethode werkt met infrarood. Hierdoor is er geen externe belichting nodig.
Door de compacte afmetingen is de camera gemakkelijk in een werktuig te integreren.
De programmeersoftware is vrij te bepalen.
Er wordt gebruik gemaakt van een methode die voor CSi redelijk nieuw is, maar zeker perspectief biedt voor de toekomst.
Een nadeel is dat de camera duur in aanschaf is (€ 3500,--) maar vanwege de beschikbaarheid bij Avans Hogeschool vormde dat geen belemmering. Deze keuze is met CSi doorgenomen en akkoord bevonden. In bijlage 7 vind je de specificaties van de camera. Bijlage 8 geeft de berekeningen voor de resolutie en bijlage 9 geeft informatie over de ruiswaarden van de camera. In overleg met de begeleidende docent is besloten het visionsysteem als een subsysteem te beschouwen en uit te besteden. Hiervoor is een opdracht met probleemstelling en functionele eisen gemaakt, zie hiervoor bijlage 10.
3.6 Het werktuig
Het werktuig is een belangrijk onderdeel van de robot. Het werktuig wordt aan de kop van de robot gemonteerd en bevat de gereedschappen die de robot nodig heeft om de gewenste functies uit te kunnen voeren.
3.6.1 De grijper
Eén van de onderdelen van het werktuig is de grijper. De grijper moet in staat zijn om de blokken op de platte en kopse kant te pakken, want de blokken kunnen zowel in rechte als in dwarse richting uit de toren worden getrokken. Er moet nog onderzoek worden verricht naar de juiste grijper. Voorlopig wordt uitgegaan van een simpele zuignap zonder intelligentie. Om te bepalen of dit werkt, is er onderzoek verricht met een simpele zuignap van het merk Piab van Pneutec. De verwachting is dat het grijpen op de kopse kant van het blok het moeilijkst is en daarom is de test hierop uitgevoerd. Het resultaat zie je in onderstaande afbeeldingen.
14 Figuur 8. De zuignap zonder kunststof ring.
Figuur 9. De zuignap met kunststof ring.
Conclusie
Het blokje op de vlakke kant oppakken is geen probleem. Bij het oppakken aan de kopse kant, zonder extra voorzieningen, hangt het blok los te bengelen aan de zuignap. Door het aanbrengen van een kunststof ring wordt ervoor gezorgd dat het blok tegen de ring wordt aangetrokken en zodoende een starre bevestiging vormt met de zuignap. Zie hiervoor figuur 9. Het blok wordt nu gefixeerd en zit stevig vast. Er kan dus in het ontwerp gebruik gemaakt worden van een zuignap mits we maatregelen nemen voor het fixeren van het blok. Deze keuze is met CSi doorgenomen en akkoord bevonden. In overleg met de begeleidende docent is besloten de opstelling en het werktuig als een subsysteem te beschouwen en uit te besteden. Hiervoor is een opdracht met probleemstelling en functionele eisen gemaakt. In bijlage 6 vind je de bijbehorende opdrachtomschrijving.
4. Flowdiagrammen
Dit hoofdstuk beschrijft de verschillende functies die nodig zijn om het spel te spelen en de toren weer op te bouwen. Bij het inschakelen van de opstelling zal eerst het visionsysteem moeten worden gekali-breerd. Daarna kunnen de blokken ongeordend op het speelveld worden geplaatst. Aan de hand van de posities en rotaties die de robot krijgt van het visionsysteem wordt de toren nu opgebouwd. Door middel van bijvoorbeeld een touch monitor geeft de beursbezoeker de opdracht aan de robot om een blokje uit de toren te pakken en bovenop de stapel te plaatsen. Als de toren omvalt, wordt dit gesignaleerd door het visionsysteem. Voordat de toren opnieuw wordt opgebouwd, moet eerst de plaats van de toren worden leeg geveegd. Met behulp van de data van het visionsysteem veegt de robot deze plaats leeg en bouwt de toren weer op. Om alle functies uit te voeren zijn er twee routines nodig. Een routine voor het spelen van het spel en een routine voor het opbouwen van de toren. Voor beide routines is een flowdiagram gemaakt. Om het plaatje duidelijk te houden zijn deze op één pagina geplaatst.
15 Nee Ja Nee Ja Nee Ja
Figuur 10. Flowdiagram ten behoeve van de robotcontroller voor het opbouwen van de toren
Wacht op START Vraag beelddata Is Bouwplek voor toren vrij? Bepaal veegrichting
Controleer positie blok
Ga naar positie blok
Pak Blok
Plaats blok in toren
Werk blok data bij Positie ok? Liggen er nog
blokken? Verwerk beelddata Ga naar snapshot positie
Veeg veld vrij
Vraag beelddata
Verwerk beelddata Ga naar snapshot positie
Geef foutmelding Wacht op reset
16 Nee Ja Nee Ja
Figuur 11. Flowdiagram ten behoeve van de robotcontroller voor het spelen van het spel.
Wacht op START
Speel Jenga
Ga naar snapshot positie
Vraag beelddata
Toren overeind
Wacht op INPUT HMI
Controleer keuze
Pak blokje uit toren
Werk blok data bij Keuze ok?
Plaats blok op toren
Werk blok data bij Verwerk beelddata
17
Hieronder volgt een beschrijving van de verschillende blokken in het flowdiagram. De robot wacht op het startcommando.
De robot wacht op input van de beursbezoeker. Dit kan zijn een keuze voor het spelen van het spel, het opbouwen van de toren of het kiezen van de positie van het te pakken blok. De beursbezoeker geeft hiervoor een kolom en een rij in voor het blok dat hij uit de toren wil trekken. Het uitgangspunt is dat de camera op de kop van de robot wordt gemonteerd. Op het moment dat de camera een snapshot moet maken, moet de robotkop in een positie worden gebracht, zodat het deel
waarvan de snapshot wordt genomen volledig in het beeld van de camera is.
Hier stuurt de robotcontroller een verzoek naar de server om een snapshot te nemen.
De 3D-beelddata wordt hier toegekend aan de variabelen in robotstudio. Nadat de toren is ingestort wordt uit de beelddata de veegrichting bepaald. Deze richting is nodig om te voorkomen dat de blokken over de rand van de tafel worden geschoven.
Het stukje van het speelveld waar de toren moet worden opgebouwd wordt hier door middel van een veegbeweging vrij gemaakt.
Deze functie controleert of de ontvangen coördinaten en rotaties binnen het bereik van de robot vallen.
Geeft een foutmelding op de user interface wanneer na de controle van de coördinaten en rotaties van het blok een fout wordt geconstateerd. Nadat de gebruiker de fout die is opgetreden na de controle van de positie van het blok heeft hersteld, kan het opbouwen van de toren worden hervat.
De robot wordt naar de positie gestuurd volgens de ontvangen coördinaten en rotaties.
Het werktuig krijgt de opdracht om het blok te pakken. Het blok dat is opgepakt, wordt op de toren geplaatst.
Na het plaatsen of verwijderen van een blok in of uit de toren moet worden bijgehouden welke plaatsen er nog gekozen mogen worden door de beursbezoeker en vanaf welke rij en kolom de toren moet worden opgebouwd. Dit gebeurt door middel van een array.
Wacht op INPUT HMI
Ga naar snapshot positie
Vraag beelddata
Verwerk beelddata Bepaal veegrichting
Veeg veld vrij
Controleer positie blok
Ga naar positie blok
Pak Blok Plaats blok op toren
Werk blok data bij Geef foutmelding
Wacht op reset Wacht op START
18
Hier wordt gecontroleerd of de keuze die de beursbezoeker heeft gemaakt een juiste is. Als een blok wordt gekozen dat al verwijderd is, dient een nieuwe keuze gemaakt te worden.
De robot trekt het door de beursbezoeker opgegeven blokje uit de toren.
5. De communicatiestructuur
Voor het uitvoeren van de opdracht hebben we een camera, een robot, een PC en software nodig. In dit hoofdstuk wordt beschreven hoe de verschillende componenten met elkaar communiceren, welke methode van communiceren er is gebruikt en hoe het communicatieprotocol eruit ziet
5.1 Hardware opbouw
Figuur 12. De Hardwarestructuur.
De hardware bestaat uit zes onderdelen. De camera is verbonden met de router. Deze stuurt beeldinformatie naar de computer wanneer die daar om vraagt. De computer is verbonden met de router. Deze verwerkt de beeldinformatie van de camera en stuurt op verzoek van de controller de verwerkte 3D-beelddata door. Via de HMI, hiervoor kan een touch monitor worden gebruikt, vindt de interactie plaats met de beursbezoeker en de robot. De controller is verbonden met de router. De controller vraagt de 3D-beelddata op van de computer en stuurt de robot aan. De FlexPendant is verbonden met de controller en wordt in de test fase als user interface gebruikt.
5.2 Communicatie Methode
De toegepaste communicatiemethode is socket messaging. Een socket is een universeel communicatie- kanaal dat onafhankelijk is van het netwerkprotocol dat wordt gebruikt. Met deze methode zijn we in staat data tussen computers uit te wisselen door gebruik te maken van het TCP/IP netwerkprotocol.
Controleer keuze
19 Algemene opzet
Figuur 13. De opbouw van data uitwisseling met socket messaging (ABB, 2004-2009) .
Eerst wordt zowel bij de server als de cliënt een socket aangemaakt. De server gaat nu wachten totdat de cliënt verbinding maakt. De verbinding wordt gemaakt door de actieve partner (cliënt) en wordt geaccep- teerd door de passieve partner (server). De actieve partner kan nu data gaan versturen en krijgt hierop een bevestiging met data terug. De communicatie is dus een voortdurend vraag- en antwoordspel en blijft duren zolang de verbinding bestaat.
5.3 Communicatie Protocol
Uit de gemaakte flowdiagrammen kan de informatie worden gehaald die de controller uit de 3D-beelddata moet halen. De gehele boodschap wordt gevormd als een reeks van getallen gescheiden door een uitroepteken. In deze string wordt de data in een vooraf bepaalde volgorde verzonden. In robotstudio wordt deze string door middel van parsing weer ontrafeld.
20
Tabel 2 Het communicatie protocol tussen Computer en Controller
Het communicatie protocol
Plaats Aantal karakters
Naam Type Waarde Omschrijving
1 2 Errorcode Num 0 / 99 Errorcode
2 4 PosX Num 0 / 1000 X – coördinaat van blokje
3 4 PosY Num 0 / 1000 Y – coördinaat van blokje
4 4 PosZ Num 0 / -500 Z – coördinaat van blokje
(negatief is omhoog)
5 4 RotX Num 0 - 90 Rotatie over X
6 4 RotY Num -45/+45 Rotatie over Y
7 4 RotZ Num -180/+180 Rotatie over Z
8 1 Bouwplekvrij num 0/1 Is er plaats voor bouwen
toren?
0 = Nee 1 = Ja
9 1 Speelveldleeg Num 0/1 Liggen er nog blokken
0 = Nee 1 = Ja
10 1 Torenok Num 0/1 Staat de toren nog overeind
0 = Nee 1 = Ja
11 1 Veegrichting Num 0/1 Welke kant moet er geveegd
worden?
0 = Links naar Rechts 1 = Rechts naar Links
Figuur 14. Weergave van de originele string voor en na het parsen. 6. Software
Nu de hardware opbouw bekend is, moet nog software worden geschreven. Het betreft hier de software voor het verwerken van de beelddata, de software voor de user interface en de software voor de robot. 6.1 Software voor het verwerken van de beelddata
Voor het omzetten van de beeldinformatie van de camera naar posities voor de robot moet software worden geschreven. Deze software draait op een computer die deel uitmaakt van het netwerk. Het schrijven van deze software is uitbesteed. Hiervoor is een opdracht met probleemstelling en functionele eisen gemaakt. In bijlage 10vind je de bijbehorende opdrachtomschrijving.
21 6.2 Software voor de HMI
De HMI is bedoeld om het als gebruiker mogelijk te maken een machine te bedienen. Vanuit de HMI kunnen processen worden gestart, gestopt en gemonitord. Er is nog niet concreet over de invulling van de HMI nagedacht, maar uiteindelijk is het de bedoeling dat de HMI wordt uitgevoerd in de vorm van een touch monitor.
Voor testdoeleinden is er voor gekozen om de IRC5 FlexPendant als user interface te gebruiken. Dit is een PC met Microsoft software en wordt standaard gebruikt als interface tussen de operator en de IRC5 controller van ABB. In robotstudio kun je gebruik maken van de applicatie screenmaker om snel een eerste schermindeling te maken, te testen en aan te passen. Dit is vooral in de testfase handig, want in deze fase wordt de user interface nog voor een groot deel voor debug doeleinden gebruikt
Figuur 15. De IRC5 FlexPendant.
22
Aan de hand van de flowdiagrammen is bekeken welke informatie relevant is voor debug doeleinden en daar is het scherm van de FlexPendant op ingericht.
Hieronder volgt een gedetailleerde beschrijving van de opbouw van het scherm van de FlexPendant: Reset
Voor het op NUL zetten van next Kolom en next Rij. Next Kolom
Geeft aan in welke kolom het volgende blok in de toren wordt geplaatst. Next Rij
Geeft aan in welke rij het volgende blok in de toren wordt geplaatst Build
Geeft opdracht voor het opbouwen van de toren.
Keuze Kolom
Dit is een getal tussen 0 en 3 en geeft de kolom aan van waaruit het blok uit de toren getrokken moet worden.
Keuze Rij
Dit is een getal tussen 0 en 10 en geeft de rij aan van waaruit het blok uit de toren getrokken moet worden.
Play
Geeft opdracht om het blok op de plaats van keuze kolom en keuze rij uit de toren te trekken.
POS.
Geeft de coördinaten van X, Y en Z verkregen uit de beelddata van de camera weer. Het is ook mogelijk om hier zelf een waarde in te geven. ROT.
Geeft de rotaties van X, Y en Z verkregen uit de beelddata van de camera weer. Het is ook mogelijk om hier zelf een waarde in te geven.
GoPos
Bij het indrukken van deze knop pakt de robot het blok op bovenstaande positie. Deze knop is voor testdoeleinden en vervalt in de definitieve versie.
Snap
Bij het indrukken van deze knop gaat de robot naar de snapshot positie en geeft de server opdracht voor het maken van een snapshot. Deze knop is bestemd voor testdoeleinden en vervalt in de definitieve versie.
23 Status
De statusmelding geeft informatie over de toestand van de robot en het programma. In de statusmelding kun je zien met welke routine of opdracht de controller bezig is.
Error en Errorcode
De errormelding geeft informatie over fouten die tijdens een opdracht op kunnen treden. De errorcode is een getal dat hoort bij een errormelding. Het is namelijk in een programma makkelijker een getal af te vragen dan een string. Voorlopig zijn de volgende errorcodes met bijbehorende melding bekend.
00 = Geen fouten
01 = Object buiten bereik
Dit treedt op als de coördinaten buiten het speelveld vallen. Dit wordt gecontroleerd in de routine controleer positie blok.
02 = Data niet ok
Dit treedt op als de verstuurde beelddata niet overeenkomt met het afgesproken protocol. Dit is nog niet geïmplementeerd.
03 = Camera niet gecalibreerd
Deze foutmelding wordt meegestuurd met de beelddata. Dit wordt gecontroleerd in de beelddata software.
04 = Geen blok op deze positie
Dit treedt op als de beursbezoeker een blok uit de toren wil trekken dat al is verwijderd. Deze check wordt gemaakt in de routine controleer keuze.
24 6.3 Software voor het aansturen van de robot
In dit hoofdstuk worden eerst de algemene begrippen zoals die van toepassing zijn in de robotica beschreven, namelijk Tool Center Point, coördinatenstelsels, posities en rotaties. Daarna worden de flowdiagrammen gebruikt om de verschillende procedures in de software te ontwikkelen. Het gebruikte softwarepakket voor het programmeren van de ABB robot is Robotstudio en wordt gebruikt voor simulatie en offline programmeren van ABB-robots. De simulaties in Robotstudio gedragen zich hetzelfde als de “echte” robot. Met Robotstudio kunnen wijzigingen en simulaties worden uitgevoerd op een reeds geschreven programma zonder dat de robot of het productieproces moet worden stilgezet. Je kunt van tevoren bekijken hoe dat er in de praktijk uit gaat zien. In bijlage 11 de volledige code.
6.3.1 Tool Center Point (TCP)
In een eenvoudige toepassing kan het toolcoördinatenstelsel worden gebruikt om de oriëntatie van het gereedschap te definiëren. Dit coördinatenstelsel kan niet worden gewijzigd en is als volgt gedefinieerd ten opzichte van de montageflens van de robot.
• De oorsprong is het midden van de montageflens.
• De x-as wijst in tegengestelde richting van het gat voor de paspen.
• De z-as valt samen met as 6 van de robot en staat loodrecht op de montageflens.
Figuur 17. het toolcoördinatenstelsel
De bewegingen die een robot maakt zijn in principe bewegingen van het gereedschapmiddelpunt, oftewel het Tool Center Point. Het TCP wordt normaal ergens gedefinieerd op het gereedschap, bijvoorbeeld in het mondstuk van een lijmpistool of in het midden van een grijper. De positie en oriëntatie van het TCP liggen vast ten op zichte van het toolcoördinatenstelsel van de robot en het TCP beweegt mee met de hand van de robot. Indien geen TCP gedefinieerd wordt door de programmeur ligt dit op het toolcoördinatenstelsel. Het is mogelijk meerdere TCP's vast te leggen voor een robot. Echter één daarvan kan slechts actief zijn. Meerdere TCP's zijn belangrijk en gemakkelijk wanneer een robot verschillende bewerkingen of werkzaamheden moet uitvoeren met verschillende gereedschappen (VDL Steelweld, 2009).
25 Figuur 18. Toegepaste TCP in robotstudio
6.3.2 Coördinatenstelsels
Coördinatenstelsels worden toegepast om het joggen en programmeren van de robot te vereenvoudigen. In de onderstaande figuur zijn de belangrijkste coördinatenstelsels weergegeven.
Figuur 19. De verschillende coördinatenstelsels
Het base- en het tool coördinatenstelsel kunnen niet aangepast worden. Echter ten opzichte van het base coördinatenstelsel kunnen in de "vaste wereld" verschillende hulpstelsels aangemaakt worden. Ten opzichte van het tool coördinatenstelsel kunnen met de robot meebewegende gereedschapscoördinaten (TCP’s) worden gedefinieerd. De coördinatenstelsels kunnen worden geprogrammeerd door numerieke waarden te specificeren of door de robot langs een aantal posities te joggen. Hieronder volgt een omschrijving van de belangrijkste stelsels en hun toepassing.
Het base coördinatenstelsel bevindt zich in de basis van de robot: • Het begin bevindt zich in het snijpunt van as 1 en het sokkeloppervlak. • Het XY-vlak is hetzelfde als het sokkeloppervlak.
• De X-as wijst naar voren.
• De Y-as wijst naar links (vanuit de robot gezien). • De Z-as wijst naar boven.
Als de robot op de vloer gemonteerd is, kan men simpel weg programmeren in het base coördinatenstelsel. Als de robot ondersteboven opgehangen is, wordt het programmeren in het base coördinatenstelsel moeilijker, omdat de richtingen van de assen niet hetzelfde zijn als de hoofdrichtingen in de werkruimte. Het kan gemakkelijk zijn een gemeenschappelijk worldframe te definiëren wanneer
26
meerdere robots in een werkruimte moeten samenwerken. Indien een robot op een slede wordt gebruikt, kan het eveneens gemakkelijk zijn een worldframe aan te maken. Het world coördinatenstelsel valt samen met het base coördinatenstelsel indien het niet specifiek is bepaald. Een robot kan werken met verschillende bevestigingen of werkoppervlakken die verschillende posities en oriëntaties hebben. Voor elke bevestiging kan een user coördinatenstelsel worden gedefinieerd. Indien alle paden ten opzichte van dit user coördinatenstelsel zijn opgeslagen, hoeft niet opnieuw geprogrammeerd te worden als een bevestiging wordt verplaatst of verdraaid. Door het user coördinatenstelsel even veel te verplaatsen of te verdraaien zullen alle geprogrammeerde posities de bevestiging volgen. Indien een bevestiging of werkoppervlak meerdere werkobjecten bevat die door de robot moeten worden verwerkt of behandelt, is het raadzaam gebruik te maken van object coördinatenstelsels. Op deze manier is het programma gemakkelijk aan te passen indien het object wordt verplaatst of indien een nieuw object, op een andere plaats moet worden geprogrammeerd (VDL Steelweld, 2009).
In de simulatie voor de Jenga robot zijn twee user coördinatenstelsels aangemaakt Wobj_Veld en Wobj_Toren. Wobj_Veld wordt gebruikt als referentie(nul)punt om in combinatie met de camera de posities en rotaties van de blokken te bepalen nadat de toren is ingestort. Wobj_Toren wordt gebruikt als referentiepunt voor bewerkingen die met het opbouwen van de toren en het pakken van blokken uit de toren te maken hebben.
Figuur 20. Een weergave van de gebruikte user coördinatenstelsels.
6.3.3 Posities en rotaties
Naast de posities X, Y en Z kunnen de blokken drie mogelijke rotaties hebben zoals in onderstaande figuur is te zien. Een rotatie in het platte vlak (Z-rotatie) een rotatie in de lengte van het blok (Y-rotatie) en een rotatie in de breedte van het blok (X-rotatie) en een combinatie van deze drie.
27
Voordat de software wordt gerealiseerd, moeten er eerst afspraken tussen het visionsysteem en de robotcontroller worden gemaakt. Er moet worden bepaald hoe het coördinatenstelsel eruit gaat zien en hoe de rotaties worden gedefinieerd. Voor het coördinatenstelsel worden de volgende afspraken gemaakt. Coördinaat (0,0) ligt linksonder in de hoek. De y-posities liggen op de horizontale as en de x-posities op de verticale as. De z-positie (de hoogte) wordt nu negatief gezien ten opzichte van de tafel. Uiteindelijk is het speelveld de rode cirkel. Er moeten dus maatregelen worden genomen om ervoor te zorgen dat alleen de posities binnen de cirkel valide zijn. Ook moet er rekening worden gehouden met de minimale en maximale X-, Y- en Z-posities en rotaties in verband met de reikwijdte van de robot.
Figuur 22. Het toegepaste coördinatenstelsel
De z-rotatie heeft een bereik tussen de +180˚ en -180˚. De z-rotatie wordt voor een groot deel bepaald door de y-rotatie. Wanneer de y-rotatie 0˚ is, dus het blok in het platte vlak ligt, maakt het niet uit of je de positie hoek of de tegenover liggende negatieve hoek pakt.
28
Voor de definitie van de y-rotatie gelden de volgende afspraken. De y-rotatie heeft een bereik van 0˚ tot 90˚.
Figuur 24. Y-rotatie
Voor de definitie van de x-rotatie gelden de volgende afspraken. De x-rotatie heeft een bereik van +45˚ tot -45˚. In bijlage 13 een weergave van de mogelijke posities en rotaties.
Figuur 25. X-rotatie
In de software wordt, nadat de beelddata is binnen gehaald, gecontroleerd of de posities en rotaties hun grenzen niet overschrijden en binnen het speelveld vallen. Wanneer dit het geval is wordt een melding gegeven en het programma gepauzeerd. Nadat het probleem is opgelost kan het programma worden hervat.
7. De proefopstelling
Eind februari 2013 kregen we bij Avans de beschikking over een ABB IRB120-robot. Met deze robot hebben we een testopstelling gemaakt. Hiermee hebben we testen verricht in combinatie met de ToF-camera, de grijper en de blokken. Voor mij als afstudeerder een welkome aanwinst, want nu kunnen de geschreven routines voor de robot in de praktijk worden getest en het gaf mij de kans om met een ABB-controller te werken. Om de werking van de grijper (zuignap par3.6.1) te testen, is de routine voor het opbouwen van de toren gebruikt. In eerste instantie werd de toren opgebouwd vanaf een vast pickpoint. Dit werkte meteen. Na het opbouwen van de toren, door de robot, is de routine play Jenga getest. Hier bleek dat de grijper ook geschikt was om blokken aan de kopse kant uit de toren te trekken. Eerst werden hiervoor de blokken gekozen die los in de toren zaten. Ook de blokken die vast zaten in de toren werden probleemloos door de grijper uit de toren getrokken. Dit resulteerde wel in het scheef trekken van de toren. Het boven op de toren plaatsen nadat het blok uit de toren was getrokken ging ook goed. Deze routines zijn allemaal in robotstudio gemaakt en gesimuleerd, een teken dat robotstudio erg goed overeenkomt met de werkelijkheid. Daarna is er verbinding gemaakt met de PC voor het ophalen van de 3D-beelddata. Het communicatieprotocol zoals beschreven in hoofdstuk 5 werkte probleemloos. Bij het doorgeven van de 3D-beelddata liepen we tegen de beperkingen van de robot aan wat betreft reikwijdte. Onze testen konden alleen maar uitgevoerd worden in het gebied voor en deels naast de opbouwplek van de toren. Als eerste zijn er testen uitgevoerd in het platte vlak met alleen een Z-rotatie. De door de PC gegenereerde 3D-beelddata kwam steeds goed binnen, maar er zat een behoorlijke afwijking in de X-, Y-,
29
en Z-coördinaten. De afwijking in de Z-rotatie bedroeg maar 2°. Door de afwijkingen in de posities werden de blokken helemaal niet of niet goed door de robot opgepakt. Ondanks de onnauwkeurigheid in positie werd besloten om door te gaan met het verder testen van twee rotaties. Ook hier hadden we weer hetzelfde probleem; rotaties in Z- en Y-richting nauwkeurig, X-,Y- en Z-posities niet. De resultaten van de testen hebben geleid tot de conclusies en aanbevelingen in hoofdstuk 8. Er wordt nog gewerkt aan de 3D-beelddata om de posities nauwkeuriger door te geven.
30
8. Conclusie en aanbevelingen 8.1 Conclusies
De beperkte resolutie van de camera zorgt ervoor dat de blokken tijdens het opstapelen niet altijd exact in het midden worden opgepakt. Dit resulteert in een toren die schots en scheef wordt opgebouwd. De grijper functioneert goed, maar doordat de blokjes uit de toren worden getrokken kan niet worden “gevoeld” of een blok los zit. Dit zou kunnen betekenen dat na één blok te hebben verwijderd de toren al omvalt. In de huidige opzet worden de blokken alleen op basis van coördinaten uit de toren getrokken. Een scheefstelling van de toren tijdens het spelen wordt niet gesignaleerd. Dat kan betekenen dat de grijper naast een blok grijpt. Nadat de toren is omgevallen moet zeker worden gesteld dat de blokken binnen het bereik van de robot liggen tijdens het opbouwen van de toren. Verder is gebleken dat de geschreven routines in robotstudio goed werken en geschikt zijn om te gebruiken als uitgangspunt voor een vervolgopdracht.
8.2 Aanbevelingen Blokken:
- Doorsnede moet vierkant zijn.
- Om het spel goed te kunnen spelen uitvoeren met verschillende toleranties.
- Lichte kleur (voorkeur wit). Lange zijden mogen eventueel voorzien zijn van afschuining, kopse kanten absoluut niet.
Tafel:
- Matte witte ondergrond, liefst zo glad mogelijk om te zorgen dat de blokken na het omvallen van de toren zoveel mogelijk vlak komen te liggen.
Werktuig:
- Omdat de blokken tijdens het opbouwen van de toren niet exact in het midden worden opgepakt, moet in het werktuig het blok dusdanig worden gepositioneerd dat de toren recht kan worden opgebouwd.
- Er dient een terugkoppeling naar de robot plaats te vinden, zodat kan worden bepaald of het blok los ligt.
- Er dient een terugkoppeling naar de robot plaats te vinden, zodat kan worden bepaald of het blok is vastgepakt.
Visionsysteem:
- De camera is gevoelig voor direct zonlicht wat resulteert in extra ruis. Extern infrarood licht moet dus voorkomen worden.
- Bij een matte witte ondergrond werd de minste ruis gegenereerd. Een glimmend oppervlak is niet wenselijk, want dit resulteert in waardes die niet bruikbaar zijn.
Nawoord
Vanaf 23 april 2013 is er binnen CSi een project gestart voor het realiseren van de opstelling. De bedoeling is dat in oktober 2013 een volledig werkend systeem op een beurs wordt tentoongesteld. Er is tot nu toe uitgegaan van een ABB IRB1600-robot. Dit lijkt tot een te grote opstelling te leiden. De komende weken moet worden onderzocht of de robot niet kleiner kan worden. Dit zal ook afhangen van de minimale afmetingen van de blokken die nog te detecteren zijn door de camera. Wat betreft de geschreven software in robotstudio levert dat geen problemen op.
31
Literatuur
Jenga (2013). Verkregen van: http://nl.wikipedia.org/wiki/Jenga VDL Steelweld (2009). Industriële robots. Verkregen van:
http://www.induteq.nl/induteq/bestanden/Training%20Robottechniek.pdf
ABB (2004-2009).Application manual Robot communication and I/O control. Verkregen van: control
http://lecture.sccsc.edu/amt/AMT%20206%20Electricity%20and%20Automation/ABB %20IRB%20140%20Robot/files/3HAC020435-001_revF_en.pdf
32 Bijlage 1. PMD
PROJECT MANAGEMENT DOCUMENT
Project: Beursopstelling met Robot
Versie: 8
Bijgewerkt : 26-10-2012
Startdatum: 01-08-2012
Einddatum: juni 2013
Akkoord Bedrijf Akkoord Hogeschool Opsteldatum:
Student : Hans Jonkers Studentnr: 2025890
33
Uitvoeringsgegevens
Bedrijfsgegevens:
CSi Netherlands
Lissenveld 41
4941VL Raamsdonksveer
Nederland
Tel: +31 162 575000
E-mail: info@csiweb.nl
Bedrijfsbegeleiding:
Henk Meeuwissen
Tel: 0162-575197
06-20435081
E-mail: henkmeeuwissen@csiweb.nl
Robin van Praat
E-mail: RobinvanPraat@csiweb.nl
Onderwijsinstelling:
Avans Hogeschool
Academie voor Technologie en Management
Adres:
Postadres:
Lovensdijkstraat 61-63
Avans Hogeschool
4818AJ Breda
Postbus 90.116
Receptie 076- 525 05 00
4800 RA Breda
Hogeschoolbegeleiding:
Peter Klijn
Tel: 076-5238549
E-mail: plaj.klijn@avans.nl
Student
Hans Jonkers
Kortendijksestraat 99
4706CC Roosendaal
Tel: 076-5250592
06-10157397
34
Bedrijfskarakteristiek
Branche
De branche waar CSi zich in bevindt is Automated Material-handling systemen.
CSi industries B.V levert volledig geïntrigeerde material handlingsystemen en heeft installaties
geleverd over de hele wereld.
hierbij moet u denken aan;
- Conveyorsystemen voor verpakte producten
- Verpakkingsmachines
- Palletiseer machines
- Pallet handling machines
- Order picking systemen in distributiemagazijnen
Geschiedenis
CSi, in 1964 opgericht in Rotterdam, is al meer dan 45 jaar actief op de markt, aanvankelijk als
kleine transportbandleverancier, maar het bedrijf groeide en werd uiteindelijk in de jaren ‘70,
een deel van de Zweedse PLM-groep.
Tijdens de jaren ’80 werd het een zelfstandig bedrijf, dat uiteindelijk werd gekocht door het Stork
concern. Na verschillende pogingen om de Stork Group te herstructureren, vond er een
management buy-out plaats. Vanaf 2001 werd CSi weer een onafhankelijk bedrijf.
In 2003 werd het bedrijf Ridder Packaging Systems aangekocht en samengevoegd met CSi. Ook
werd de merknaam Ivanhoe op de markt gebracht. Hieronder zouden vanaf dat moment
gestandaardiseerde palletiseeroplossingen verkocht worden. In 2005 werd een nieuwe
productievestiging in Roemenië geopend. CSi Ramania voor het vervaardigen van logistieke
systemen en AlphaLas voor het fabriceren van apparatuur voor derden.
Organisatie
De hoofdvestiging bevindt zich te Raamsdonksveer in Nederland, daar zetelt ook het algemene
bestuur. Het management team bestaat uit 5 personen.
CSi heeft in totaal ongeveer 400 mensen in dienst en realiseert een jaaromzet van ongeveer 50
miljoen.
Product, diensten en assortiment
CSi heeft een enorm breed scala aan producten die toegespitst zijn op de marktgebieden waar
deze voor zijn ontwikkeld. Voor elk marktgebied worden aparte producten en diensten
aangeboden. Dit komt omdat CSi een geheel probleem aanpakt en vervolgens de oplossing
turnkey aanlevert bij de klant. Het bedrijf heeft dus het gehele project in handen van begin tot
eind.
35
Diensten
Consultancy
Om de klanten te helpen hun weg naar automatisering soepel te laten verlopen biedt CSi een
reeks van consultancy activiteiten aan.
Turnkey oplossingen
Door ervaring in verschillende industrietakken heeft CSi kennis opgebouwd om een grote
verscheidenheid aan machines met de nieuwste technologieën aan te bieden.
Life Cycle Services
CSi biedt haar klanten een grote verscheidenheid aan diensten aan om tijdens de volledige
levenscyclus van het material handlings systeem aan alle behoeftes te voldoen.
Leasing
Via de divisie CSi Financial Services biedt CSi de mogelijkheid om een project op basis van
lease-overeenkomsten te leveren in plaats van via een rechtstreekse aankoop.
Producttransport
CSi is een van ’s werelds grootste toonaangevende leveranciers van conveyorsystemen voor
primair verpakte producten.
Verpakken
CSi is trots op de nauwe partnerschappen die ze vormen met hun klanten. Hierdoor zijn ze in
staat om de meest geschikte verpakkingstechnologie te zoeken die beschikbaar is op de markt.
Paktransport
CSi is gespecialiseerd in het ontwerpen en vervaardigen van conveyorsystemen voor secundair
verpakte goederen.
Palletiseren
Palletiseersystemen besparen tijd en maken zware handmatige palletiseerhandelingen aan het
einde van de verpakkingslijn overbodig.
Orderpicken en opslagsystemen
CSi’s hoge capaciteit zone picking conveyors bieden mogelijkheden om klantspecifieke bakken
naar de juiste locatie in het magazijn te vervoeren.
Sorteren
CSi biedt een scala aan sorteertechnologieen die is afgestemd op de individuele behoeften van
elke klant.
36
Beleid (huidige beleidsdoelen)
Bedrijfsfilosofie
CSi streeft er voortdurend naar de prettigste, meest gerespecteerde en hoogst gewaardeerde
producent van intelligente product handling systemen te zijn.
Doel is er voor te zorgen dat de contacten met de klanten langdurig en plezierig zijn.
Innovatie
Het aanbieden van de best mogelijke oplossing aan de klanten vereist een hoog niveau van
innovatie. CSi ontwikkelt voortdurend nieuwe producten en diensten om aan de eisen van hun
klanten te voldoen.
Veiligheid, gezondheid en milieu
CSi heeft het VG&M- beleid hoog in het vaandel staan, het vormt de kern van CSi’s
duurzaamheidsaanpak.
Duurzaamheid
CSi beleid hierin is eenvoudig; ze willen de negatieve effecten die voortvloeien uit hun
activiteiten actief verminderen, vanaf het initiele concept en gedurende de gehele levenscyclus
van hun diensten en producten.
De stichting Peter Pan is een liefdadigheidsinstelling, opgericht door CSi, die kansarme kinderen
in vele landen ondersteunt. Bij de activiteiten van de stichting spelen directie en medewerkers
een belangrijke rol.
Probleemstelling van het project
CSi is een dynamisch en innovatief bedrijf dat wereldwijd met klanten heeft te maken. Eén van de
manieren om de toekomstige klanten te interesseren voor de producten en mogelijkheden van
CSi is via (vak)beurzen. Momenteel worden op beurzen zware, kostbare opstellingen geplaatst.
Door de omvang en kosten van deze opstellingen worden ze niet op kleine beurzen geplaatst.
Daarom is er binnen CSi behoefte aan een lichte, compacte robotopstelling. Deze robotopstelling
moet makkelijk te vervoeren en te plaatsen zijn en op een leuke, interactieve manier de
beursbezoeker prikkelen om de CSi-stand te bezoeken. Tevens moet de robotopstelling op een
representatieve manier de producten en diensten van CSi aan de beursbezoeker laten zien.
Omdat niet alle medewerkers van CSi die op de stand staan technisch zijn, moet het plaatsen en
in gebruik nemen ook door een niet-technisch iemand mogelijk zijn.
37
Doelstelling
- Het realiseren van een compacte beurs-robotopstelling.
- De opstelling moet op een leuke, interactieve manier de beursbezoeker prikkelen om de
CSi-stand te bezoeken en zodoende kennis te nemen van de producten en diensten van
CSi.
- Als middel voor de interactie met het publiek wordt het spel jenga
(nl.wikipedia.org/wiki/Jenga) gebruikt. De beursbezoeker geeft hierbij opdracht aan de
robot om een blokje uit de stapel te pakken en bovenop de toren te leggen.
-
De opstelling moet makkelijk te verplaatsen zijn en in bedrijf gesteld kunnen worden.
Globaal tijdschema
Maand Handeling
Augustus
- Opstellen van PMD
- Opstellen functionele eisen vision opdracht voor studenten van de
minor embedded
-
September
- Taken verdelen en plannen mijlpalen studenten embedded
- Conceptschets maken van totale opstelling
- Analyseren van toe te passen grijper
-
Oktober
- Definitief ontwerp van totale opstelling.
- Ontwerpen werktuig.
- Testen van opgeleverde producten van studenten.
-
November
- Programmeren van Robotstudio en Flex Pendant.
-
December
- Testen van proefopstelling
-
Januari
- Bijstellen mogelijkheden vision systeem aan de hand van oplevering
van opdracht door studenten minor embedded.
- Tussenverslag inleveren
-
Februari
- Testen van proefopstelling
- Demo geven aan belanghebbenden
-
Maart
- Analyseren mogelijkheden HMI als vervanging van Flex Pendant
-
April
- Realiseren definitieve HMI
- Realiseren definitieve opstelling
-
Mei
- Testen van beurswaardigheid van opstelling
-
Juni
- Opleveren van verslag en Beursopstelling met Robot
-
38
Eisen (randvoorwaarden)
1. Externe voorwaarden
: dit zijn onveranderbare eisen die van buiten komen
2. Functionele eisen
: hoe moet het projectresultaat straks functioneren
3. Bedrijfseigen beperkingen
: bijvoorbeeld gebruikelijke procedures.
4. Risicoanalyse
Externe voorwaarden
De opstelling kan als een machine worden beschouwd en moet dus voldoen aan de
machinerichtlijn.
Functionele eisen
- De robot kan een willekeurig object uit een bestaande toren nemen, waarvan de positie
volledig bekend is (dus van het object ook).
- Nadat de toren is ingestort, maakt de robot eerst het speelveld vrij.
- Als het speelveld vrij is, wordt met behulp van camera’s en sensoren uit de chaos een
nieuwe toren gebouwd.
Bedrijfseigen beperkingen
- Als CSi een voorgeschreven werkprotocol op hardware en software gebied heeft, dient dit
protocol te worden gevolgd.
- Bij voorkeur moeten de componenten worden gekocht bij leveranciers waar CSi al een
relatie mee heeft.
- In verband met afschrijving moet de robot elk jaar worden gewisseld met een nieuwe.
Risicoanalyse
- De opstelling wordt gebruikt in een drukke, publieke omgeving. Om de veiligheid van
beursbezoekers te waarborgen moet te allen tijde gevaar voor beursbezoekers worden
vermeden.
- Om imagoschade te voorkomen dient de opstelling volgens genormeerde
veiligheidsnormen te opereren.
Kwaliteitsbewaking
Het functioneren en alle werkzaamheden van de student zullen als eerste worden gecontroleerd
door bedrijfsbegeleider Henk Meeuwissen. Deze zal alle documenten die worden geproduceerd
controleren op de kwaliteit en eisen waar het aan moet voldoen. Daarnaast zal hij toezicht houden
op de vordering van het project door middel van voortgangsgesprekken.
Voor technische vragen over de uitvoering van het project kan bedrijfsbegeleider Robin van Praat
worden benaderd.
39
Organisatie
Afspraken Avans:
- Levert afstudeerder voor maximaal 2 dagen per week gedurende een jaar.
- Biedt expertise en ondersteuning vanuit het lectoraat mechatronica.
- Levert studenten voor ondersteuning.
Afspraken CSi
- Heeft budget voor aanschaffen van componenten.
- Biedt afstudeerder de mogelijkheid om in ieder geval 2 dagen per week op hun locatie te
werken.
- Biedt expertise en ondersteuning aan afstudeerder op het gebied van bij voorbeeld:
o Machineveiligheid
o Robotbesturing
o Elektrische realisatie van opstelling
o Mechanische realisatie van opstelling
Informatie
Alle informatie en documentatie die tijdens het project wordt gegenereerd, zal tijdens het project
worden beheerd door Hans Jonkers. Bij beëindiging van het project wordt alle beschikbare
informatie overgedragen aan Henk Meeuwissen, bedrijfsbegeleider bij CSi.
De voor dit project noodzakelijke documentatie zal op gezette tijden tijdens het project ter inzage
worden aangeboden. Deze documenten zullen, afhankelijk van de inhoud, worden aangereikt aan
Henk Meeuwissen en Peter Klijn.
Alle documenten zullen tijdens het project digitaal worden verzonden en slechts op verzoek worden
afgedrukt. Aan het einde van het project zullen alle documenten worden gebundeld en zowel
digitaal als in hardcopy aan de benodigde partijen worden uitgereikt.
Persoon
Bedrijf
Soort informatie
Henk Meeuwissen
CSi
henkmeeuwissen@CSiweb.nl Alle
Robin van Praat
CSi
RobinvanPraat@csiweb.nl
Alle
40
42 Bijlage 3. Datasheet IRB1600
44 Bijlage 4. Datasheets IRC5-Controller
46 Bijlage 5. Samenstelling van het robot systeem
Optie Code Omschrijving
Second language 644-1 Frans
Third language 645-7 Nederlands
DeviceNet# Lean 748-1 Communicatie met DeviceNet kan worden toegepast
Fieldbus adapters 840-2 PROFIBUS module aanwezig
MultiFunction 824-1 Meerdere functies kunnen tegelijkertijd worden uitgevoerd
Multitasking 623-1 Zie Multifunction
Flexpendant Interface 617-1 Nodig voor het gebruik van FlexPendant Interface
PC interface 616-1 Nodig voor communicatie met een externe PC FTP and NFS client 614-1 Nodig voor communicatie via ethernet
Path Recovery 611-1 Extra feature voor robot
World Zones 608-1 Optie voor gebruiken van World zones binnen rapid.
Accessories
FlexPendant 701-1 FlexPendant met 10 m snoer Digitale I/O kaart 716-1 Digital 24V 16In/16Out 1 EA
47
Bijlage 6. Opdrachtomschrijving aan derden voor de opstelling en het werktuig Aanleiding
Het lectoraat Mechatronica ontwikkelt in samenwerking met het bedrijf CSi een robot die het spel Jenga kan spelen. Het spel Jenga bestaat uit een toren van gelijkvormige blokjes, waarbij de spelers om de beurt (op een willekeurige plaats) een blok uit de toren moeten trekken en bovenop de toren plaatsen. Het spel eindigt als de toren instort. Voor deze toepassing wordt gebruik gemaakt van een industriële robot van ABB die informatie krijgt van een TOF-camera. Deze robot en camera moeten uiteraard in een opstelling verwerkt worden. Deze opstelling moet een aantrekkelijk uiterlijk hebben, omdat het de bedoeling is dat deze als beursopstelling gebruikt gaat worden. Van de opstelling is al een eerste opzet bekend. Deze opstelling moet echter nog geconstrueerd worden (inclusief berekening qua sterkte en stabiliteit). Verder moet de robot nog voorzien worden van een werktuig waarmee blokjes vastgegrepen en geplaatst kunnen worden en het speelveld kan worden leeggeveegd.
Opdracht
Het construeren van de opstelling en het ontwerpen en construeren van een werktuig waarmee de Jenga-blokken gehanteerd kunnen worden.
Voorgeschreven componenten
Een ABB robot van het type IRB 1600-6/1.45.
De bijbehorende IRC5 controller in single cabinet uitvoering.
Als TOF-camera de Mesa SR4000.
Als grijper wordt in eerste instantie uitgegaan van een zuignap. Toegepaste blokken
Materiaal : Geschaafd vuren hout
Afmetingen : 43x43x140 mm
Gewicht : 130 gram Het Frame
Het frame moet aan een aantal eisen voldoen. Deze eisen zijn:
Compact: de installatie moet door een dubbele deur kunnen.
Licht in gewicht: de installatie moet te verplaatsen zijn door een pompwagen of heftruck.
Makkelijk te vervoeren: de installatie moet in een bestelbusje passen.
Makkelijk op te stellen: de installatie moet ook door niet- technici kunnen worden opgesteld.
Uitdragen waar CSi voor staat.
Opereren volgens genormeerde veiligheidsnormen: om imagoschade te voorkomen.
De tafel met het speelveld
Op de tafel wordt het spel gespeeld. Er is gekozen voor een ronde tafel met een diameter van 100 cm en een hoogte van 80 cm. De diameter van de tafel wordt hierbij bepaald door de reikwijdte van de robot en de hoogte is een standaard hoogte voor een werkbank. Om te voorkomen dat de blokken van de tafel vallen, moet er een opvangrand met een minimale hoogte van 30 cm. rondom de rand van het tafelblad worden gemonteerd.
48
Het frame voor de controller
De controller wordt op een plateau met wielen geplaatst en kan in de nabijheid van de robot uit het zicht van de beursbezoekers worden opgesteld.
Functionele eisen voor het werktuig:
- Moet de onderste laag van de toren kunnen pakken. - Moet de toren van alle kanten kunnen benaderen.
- Moet de mogelijkheid bieden voor het schoonvegen van het speelveld.
- Voorlopig wordt er uitgegaan van een pneumatische grijper daarom moet er plaats zijn voor een zuignap.
- Moet plaats bieden aan de TOF-camera
- Bij het ontwerp moet rekening worden gehouden met de bewegingen voor het uitvoeren van de verschillende functies, zodat slangen en snoeren niet kapot worden getrokken.
Veiligheidseisen
Om imagoschade te voorkomen dient de opstelling volgens genormeerde veiligheidsnormen te opereren.
Bij voorkeur houden we de opstelling zo open mogelijk, maar indien de veiligheid in het geding is, moet ook worden gedacht aan een fysieke afscherming
Voor extra informatie kun je contact opnemen met Hans Jonkers
Lokaal 61.228
49 Bijlage 7. Datasheet Time of Flight camera Mesa SR4000