/
/
/
Ontwikkelen domein specifieke taal voor logistieke planning

Ontwikkelen domein specifieke taal voor logistieke planning

Ik heb een grafische modeleeromgeving gemaakt waarmee assemblage-probleemstellingen, en ook product-bevoorradings-probleemstellingen (waarbij producten op een tray, of kit, worden verzameld door een AGV; dit wordt het kitting-domein genoemd) formeel worden beschreven.

Het doel van een formele beschrijving is dat dit geautomatiseerd kan worden vertaald in een formaat zodat er oplossingen kunnen worden gevonden voor de probleemstellingen. Een niet-formele beschrijving mist deze kwalificatie.

De modeleeromgeving is onderdeel van een studie naar de toepasbaarheid van PDDL (Problem Domain Definition Language) voor flexibele productiemethoden.

Hiertoe heb ik in MetaEdit+ een metamodel gemaakt voor het assemblage-domain en het kitting-domein. Een meta-model specificeert de randvoorwaarden en regels waaraan een model (van een modelleeromgeving) moet voldoen. Hierdoor kunnen gebruikers eenvoudig een probleem grafisch definiëren, door middel van het gebruik van objecten uit een bibliotheek en het leggen van verbindingen tussen objecten.

De PDDL voor het assemblage-probleem is door mij ontwikkeld, de PDDL voor het kitting-domein is ontwikkeld door de Universiteit Leuven (Vahid Mokhtari https://github.com/mokhtarivahid/Robotic-Kitting-PDDL). Een generator in MetaEdit+, die is ontwikkeld door mij, vertaalt het grafische model, gemaakt door de gebruiker, in de juiste PDDL voor dat specifieke probleem.

Nadat de grafische probleemstelling is vertaald naar PDDL wordt dit gevoed aan verschillende PDDL-solvers (Optic, PoPF). Geconcludeerd is dat simpele problemen zoals 1 AGV die twee kits met ieder 5 verschillende producten kan brengen naar twee verschillende productielocaties. Zo’n vraagstuk kan nog wel tijdig worden opgelost met de Optic solver, ook al wordt bij deze complexiteit al geen optimale (“de snelste”) oplossing gevonden.

Het probleem is NP-hard, dat betekent dat het aantal mogelijke oplossingen enorm toeneemt met als gevold dat voor vraagstukken met meerdere AGVs, die gelijktijdig mogen rijden, al zelden een oplossing wordt gegenereerd. Als vervolg worden alternatieven voor PDDL-solvers gezocht door AI-experts. De modelleeromgeving die ik gemaakt heb in MetaEdit+ zal hierbij dienen om modellen te genereren die als input dient voor de nieuw te onderzoeken solvers. Onderdeel van het project Multirob van Flanders Make (2022), is de executie van de plannen zoals gegenereerd door de solvers. Hiertoe heb ik een generator gemaakt (in MetaEdit+ met de programmeertaal MERL) die het gegenereerde plan inleest en python-code genereert die door een AGV is uit te voeren. De gehele work-flow van probleemstelling, via PDDL, tot executie is getoond in oktober 2022 op het Flanders Make-symposium, zie de video hieronder.

Demo vullen tray

Visual components is software geschikt voor het modelleren van AGVs en assemblage bewerkingen, maar mist de mogelijkheid tot optimalisatie van de bewerkingen. Daarom heb ik een importer gemaakt die elementen uit Visual components haalt en deze in MetaEdit+ laadt, zodat daar de optimalisatie-probleemstelling kan worden gedefinieerd, daar heb ik onderstaande video voor gemaakt.