5 eenvoudige manieren om robotbotsingen te voorkomen (en een laatste redmiddel)

Hoe voorkom je dat je robot in botsing komt met objecten in zijn werkruimte? Hier leest u hoe u robotbotsingen kunt voorkomen zonder het uzelf moeilijk te maken.

Een recente vraag op het RoboDK-forum wees op een veelvoorkomend probleem met robots. Gebruiker Micronexx vroeg hoe botsingen te voorkomen. Ze vroegen of RoboDK automatisch botsingsvrije paden genereert, of dat de gebruiker handmatige aanpassingen moet maken.

Dit is een ingewikkelder probleem dan het op het eerste gezicht lijkt. RoboDK bevat zeker functionaliteiten die u helpen botsingen te voorkomen, waaronder enkele automatische routering. Het “vermijden van botsingen” in robotica is echter een diep en complex onderwerp. Hele onderzoeksprojecten zijn gewijd aan trajectplanning en het vermijden van botsingen. Er zijn zelfs geavanceerde Artificial Intelligence-algoritmen voor ontwikkeld.

Het goede nieuws is dat dingen voor de meesten van ons niet zo ingewikkeld hoeven te zijn. Er zijn eenvoudigere manieren om te voorkomen dat uw robot met objecten in botsing komt.

5 eenvoudige manieren om robotbotsingen te voorkomen

Het is meestal het beste om eenvoudig te beginnen.

Dit is een goede vuistregel bij het oplossen van problemen in uw robotprogrammering. Hoewel robots in staat zijn tot geavanceerde functionaliteit, zijn de eenvoudige technische oplossingen vaak de beste.

Hier zijn 5 eenvoudige manieren om te voorkomen dat uw robot met objecten in botsing komt.

1. Plan uw werkruimte vanaf het begin goed

Botsingen komen het vaakst voor wanneer de werkruimte niet goed is gepland. Begin elke robotintegratie met het plannen van de ruimte, bijvoorbeeld door deze op papier te schetsen.

Plan in welke gebieden de robot zich zal verplaatsen en welke gebieden buiten zijn bereik zullen zijn. Probeer de opeenvolging van bewegingen van de robot met uw eigen arm uit te voeren voordat u ze in de robot begint te programmeren.

2. Verwijder mogelijke obstakels fysiek

De beste manier om botsingen te voorkomen, is ervoor te zorgen dat er niets is waar de robot tegenaan kan botsen. Dit betekent het verwijderen van alles wat het pad van de robot uit de werkruimte zou kunnen belemmeren.

Zorg ervoor dat er een duidelijk pad is tussen de verschillende delen van de werkruimte. Als de robot objecten van de ene locatie oppakt en op een andere locatie assembleert, verwijder dan alles uit de werkruimte tussen deze twee locaties.

Dit lijkt misschien voor de hand liggend, maar het is gemakkelijk om te vergeten dit te doen wanneer u offline programmeren gebruikt. U ziet bijvoorbeeld een pilaar in de werkruimte van de robot en zegt: ‘Het is oké. Ik vermijd het gewoon in het robotprogramma.” Maar omdat je programmeert in een gesimuleerde omgeving waar de pilaar niet bestaat, vergeet je het en programmeer je de robot om er dwars doorheen te bewegen.

3. Koppel de echte wereld aan de simulatie

De echte wereld en de simulatie binnen RoboDK moeten zo goed mogelijk op elkaar aansluiten. U kunt dit op 2 manieren bereiken:

  1. Maak een nauwkeurig model van de fysieke werkruimte binnen de simulatie — Dit omvat het meten van de exacte locatie van elk object en het modelleren ervan in de software. Het kan extreem tijdrovend zijn en hoe meer u vertrouwt op de nauwkeurigheid van de simulatie, hoe minder ruimte er is voor fouten.
  2. Objecten uit de echte wereld verwijderen die niet in de simulatie voorkomen — Dit omvat het vereenvoudigen van de echte werkruimte door objecten te verwijderen.

In de praktijk is de beste optie een combinatie hiervan. Je verwijdert alle overbodige objecten uit de fysieke werkruimte en voegt alle benodigde objecten toe aan de simulatie.

4. Programmeerdoelen handmatig aanpassen

Voordat u complexe algoritmen voor het vermijden van botsingen gaat gebruiken, kunt u proberen de bewegingen van de robot zelf aan te passen. Voor de meeste toepassingen is het handmatig verplaatsen van de doelen binnen RoboDK een snelle, effectieve en robuuste oplossing.

Als de robot bijvoorbeeld tijdens een Joint Move-commando tegen een object botst, voegt u gewoon een paar extra waypoints toe om het object te vermijden. Of – nog beter – vraag of het object überhaupt wel in de werkruimte moet staan.

Een praktijk die botsingen aanzienlijk kan verminderen, is beslissen of elke beweging een “reizende” beweging of een “operationele” beweging is. Voer alleen reizende bewegingen uit in de vrije ruimte waar er geen obstakels zijn. Stop vervolgens op een kleine afstand van de operatie (ook wel de “benaderingsafstand” genoemd) en ga voorzichtig naar de taak voordat u de operationele verplaatsing uitvoert.

5. Gebruik de nieuwe functie van de bewerkingswizard

Robotbewerking is een taak waarbij u waarschijnlijk geautomatiseerde trajectplanning nodig heeft. RoboDK maakt het gemakkelijk om bewerkingspaden te genereren met behulp van de ingebouwde bewerkingswizard.

Meestal zult u geen aanrijdingen hebben als u het bovenstaande advies opvolgt. Er is echter een optie om automatisch botsingen tijdens de bewerking te voorkomen, die we hebben toegevoegd in de nieuwste versie van RoboDK. Lees het antwoord van Albert op het forum waarin wordt uitgelegd hoe je deze nieuwe functie kunt gebruiken.

Deze functie voorkomt botsingen door de robot automatisch rond de z-as van het gereedschap te laten draaien. Hierdoor zullen niet alle botsingen worden vermeden, maar het verbetert wel de robuustheid van de bewerkingswizard.

Laatste redmiddel: gebruik een geavanceerde bewegingsplanner

Als je alle bovenstaande stappen hebt doorlopen en hebt besloten dat je nog steeds autonome botsingsvermijding nodig hebt, is het tijd om de “grote wapens” uit te breken. Dit betekent het gebruik van algoritmen voor bewegingsplanning van derden om uw robottraject te genereren.

Er zijn heel veel trajectplanners die automatisch botsingen detecteren en vermijden. De meeste zijn echter onderzoeksprogramma’s in een zeer vroeg stadium en zijn daarom niet erg betrouwbaar. Ook zijn de meeste ontworpen voor mobiele robots die alleen in 2 dimensies bewegen.

Er zijn echter een paar fatsoenlijke trajectplanners die werken voor industriële robotmanipulatoren. Wees gewaarschuwd, om ze te gebruiken moet je serieus programmeren.

  1. Verplaats het! — Verplaats het! is een van de meest ontwikkelde grafische bewegingsplanners voor robotmanipulatie. Het maakt gebruik van het OMPL-framework en biedt een eenvoudige (achtige) grafische interface. Het is geïntegreerd in ROS. Als je al bekend bent met ROS, kan dit een goede optie zijn. Zo niet, dan heb je misschien een behoorlijke leercurve.
  2. Open bewegingsplanningbibliotheek (OMPL) — Het is mogelijk om OMPL alleen te gebruiken, zonder MoveIt! Het biedt bibliotheken in C++ en heeft ook Python-bindingen. Er is een redelijke hoeveelheid documentatie, maar het zal nog steeds een leercurve met zich meebrengen, aangezien de bibliotheek veel functionaliteit heeft.
  3. Bubbels – Dit is een kleine bibliotheek die de CEO van RoboDK, Albert Nubiola, aanbeveelt. Het is een stand-alone bewegingsplanner voor manipulatoren die gebruik maakt van het probabilistische roadmap-algoritme (PRM). Het is geschreven in C++ en heeft heel weinig documentatie. Maar als je een programmeertovenaar bent en zin hebt in een uitdaging, kan het een veel minder opgeblazen oplossing zijn voor het gebruik van MoveIt.

Over het algemeen is het beter om botsingen te voorkomen door een van de eenvoudigere methoden te gebruiken. Maar als u de geavanceerde algoritmen moet gebruiken, is het vermijden van botsingen een fascinerend onderwerp.

About admin

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *