Robotbandtransport Simuleren: Bewezen Best Practices
Een van de meest uitdagende taken in offline programmeren is het simuleren van een robotbandtransport. Hier zijn 10 best practices om het gemakkelijker te maken.
Bandtransporten kunnen lastig zijn om te simuleren. Zodra je bewegende objecten toevoegt aan je robotprogramma, worden dingen lastig.
Gelukkig zijn er bepaalde stappen die je kunt ondernemen om het simuleren van een bandtransport met offline programmeren te vereenvoudigen.
3 Goede Voorbeelden van Gesimuleerde Bandtransporten
De beste manier om goede programmeerpraktijken te leren is om te kijken naar goed ontworpen voorbeelden.
In RoboDK hebben we geprobeerd om het zo makkelijk mogelijk te maken om een bandtransport toe te voegen aan je simulatie. Je vindt drie bandtransport-demo's in de Library-map, die wordt toegevoegd wanneer je RoboDK op je computer installeert.
De Verschillende Manieren om in RoboDK te Programmeren
Er zijn drie manieren waarop je aspecten van een RoboDK-simulatie kunt programmeren. Elk van deze wordt gedemonstreerd in de bandtransport-demo's. Ze zijn:
- Als een mechanisme/robot: Robots worden in RoboDK geprogrammeerd als mechanismen en bandtransporten kunnen worden geprogrammeerd als lineaire mechanismen.
- Als een grafisch programma: Je kunt robotprogramma's maken met grafische programmering met behulp van de instructiepictogrammen zoals Lineaire Beweging, Pauze, I/O Instellen, etc.
- Als een Python-script: Bijna alles kan in RoboDK worden geprogrammeerd als een eenvoudig Python-script, inclusief robotprogramma's en mechanismen. Sensoren worden altijd gesimuleerd als Python-scripts.
Voorbeeld 1: Bandtransport met 2 Robots
Onze populairste demo toont twee robots die een bandtransport laden en lossen met grepers. De video toont een complete tutorial voor het zelf maken van deze demo.
- Type bandtransport: Python-script
- Robotprogramma: Grafische programmering
Voorbeeld 2: Pick and Place met 2D Camera
Deze demo gebruikt dezelfde opstelling als de lasersensor-demo hieronder. Echter, het gebruikt een gesimuleerde 2D-camera om de positie en oriëntatie van de dozen te detecteren.
- Type bandtransport: Lineair mechanisme
- Robotprogramma: Python-script
Voorbeeld 3: Pick and Place met Lasersensor
Deze demo laat zien hoe dozen op een bewegend bandtransport geladen en gelost kunnen worden. Er wordt een lasersensor gebruikt om te detecteren wanneer dozen op het bandtransport in een positie zijn om opgepakt te worden. Omdat het de rotatie van objecten niet kan detecteren, moeten ze elke keer op dezelfde manier uitgelijnd zijn.
- Type bandtransport: Lineair mechanisme
- Robotprogramma: Python-script
10 Best Practices voor het Simuleren van Robotbandtransporten
Er zijn veel lessen te leren door alleen al te kijken naar de bovenstaande demo's.
Hier zijn 10 best practices die je in actie kunt zien in de demo's:
1. Gebruik de Demo's als Startpunt
Waarom het wiel opnieuw uitvinden als je dat niet hoeft? We hebben de demo's beschikbaar gesteld om het je makkelijker te maken om je eigen robot te programmeren. Gebruik ze als startpunt en pas ze aan aan je eigen behoeften. Hierdoor kun je veel sneller aan de slag.
2. Behandel Elk Gebied en Elke Robot Apart
Een veelgemaakte fout is om te proberen elk deel van de simulatie vanuit hetzelfde grafische programma of Python-script te besturen. Dit wordt snel onbeheersbaar en is een zeker recept voor een verwarrend programma.
In de demo's hebben we elke simulatie opgesplitst in drie gebieden:
- Het ophaalgebied
- Het bandtransport
- Het afzetgebied.
Elk van deze gebieden wordt apart behandeld en elke robot wordt ook apart behandeld.
3. Maak Referentiekaders voor Elk Gebied
Als je kijkt naar de eerste demo (de met de tafel), zul je zien dat we het Referentiekader Instellen-commando vaak gebruiken. Je kunt dit zien door met de rechtermuisknop op het FeedConveyor-programma te klikken en Instructies Tonen te selecteren.
Elke keer dat de robot een operatie uitvoert, veranderen we het referentiekader. Dit is een goede programmeerpraktijk, maar nieuwe gebruikers vergeten dit vaak. Een uniek referentiekader voor elk gebied maakt het gemakkelijk om het bandtransport en de robots te verplaatsen indien nodig.
4. Stel Thuisposities in voor Elk Gebied
Op dezelfde manier kun je uit de eerste demo zien dat elke robot een thuispositie krijgt voor elk gebied. Dit plaatst de robot dicht bij het gebied maar op een veilige afstand om botsingen te vermijden. Elke keer dat een robot een object uit een gebied pakt, moet het eerst snel naar deze thuispositie bewegen en daarna op een gecontroleerde manier naar het object.
5. Stel de Maximale Ophaafafstand in
RoboDK simuleert eind-effectoren met een vrij eenvoudige methode. Wanneer een Koppel-actie-instructie wordt aangeroepen, wordt elk grijpbaar object in de buurt van de robotgreper opgepakt. Je kunt de maximale afstand hiervoor instellen via het Tools-menu > Opties en de Maximale afstand om een object aan een robotgereedschap te koppelen instellen.
6. Kies de Juiste Bandtransportmethode
Zoals je uit de demo's kunt zien, kan een bandtransport ofwel worden geprogrammeerd als een lineair mechanisme of als een Python-programma. Je kunt lezen over de voordelen van beide benaderingen in ons artikel "Hoe je een Robotbandtransport Programmeert Zonder Gek te Worden".
7. Gebruik Ondernamingen voor Detectie
Als je kijkt naar de tweede demo (die een 2D-camera gebruikt), is niet direct duidelijk hoe de sensor elk onderdeel detecteert. Het "geheim" is dat RoboDK gemeenschappelijke onderdeelnamen gebruikt om bij te houden welke objecten gemanipuleerd kunnen worden.
Klik met de rechtermuisknop op het PartsToPallet Python-script en selecteer Python-script Bewerken. Je ziet dat de PART_KEYWORD is ingesteld op "Part". Alle grijpbare objecten in de simulatie beginnen met dit trefwoord. De sensor zal alleen objecten met de juiste naam detecteren.
8. Stem Snelheden Cautieus op Elkaar Af
Een van de grootste uitdagingen bij bandtransportprogrammering is dat je de snelheden van de robot en het bandtransport zorgvuldig op elkaar moet afstemmen.
Als je kijkt naar de derde demo (met de lasersensor), kun je het effect van niet-afgestemde snelheid zien. Dubbelklik op het SetSimulationParams-script. Klik OK voor de doosgrootte en pallegrootte, maar verander de snelheid van het bandtransport naar 60 mm/s. Dubbelklik op MainSimulation om het programma te starten. Je zult zien dat de robot begint dozen te missen.
9. Probeer Het Te Breken!
Een van de beste manieren om een robuust robotprogramma te ontwikkelen is om te proberen het "te breken", zoals we net deden door met de bandtransportsnelheid te knoeien. Als je programma correct werkt, kan dat je in een vals gevoel van veiligheid wiegen.
Probeer te ontdekken welke situaties het programma laten falen. Op die manier weet je zeker dat je robotprogramma echt robuust is tegen veranderingen.
10. Bereid Je Voor op Testen in de Echte Wereld
Uiteindelijk is een simulatie maar een simulatie. Pas wanneer je je programma naar de echte robot downloadt en het test met een fysiek bandtransport, kun je zien of het in de praktijk echt werkt.
Onthoud: bandtransporten zijn lastig. Wees voorbereid om je programma vaker te testen dan als je geen bandtransport zou gebruiken.
Heb je vragen over het gebruik van bandtransporten in RoboDK? Laat het ons weten in de reacties hieronder of sluit je aan bij de discussie op LinkedIn, Twitter, Facebook of Instagram.
Industriële robot
- Archimedes: De Emotie-Detecterende AI Robot Uil
- Meesterworden in 3D-printer bed reinigen: Stapsgewijze handleiding
- Robotvisie in de Industrie: Van Visie naar Zelf-Programmering
- Wat Is Een Zelf-Programmerende Robot En Waarom Het Belangrijk Is
- Efficiëntie Maximeren: Waarom Ervaren Robotoperators Essentieel Zijn
- Robotica in de productie: een bewezen evolutie van efficiëntie en innovatie
- Robotlassen Beheersen: Een Eenvoudige Gids voor Foutloze Resultaten
- Robot Euler-hoeken Beheersen: Een Uitgebreide Gids
- 6 Bewezen Stappen om Industriële Robots Effectief te Herbestemmen
- Hoe de beste robotpicksoftware te kiezen voor efficiënte automatisering
- Fanuc P-250iA Coating Robot: Ongekende dekking, precisie & efficiëntie