Programmeren door demonstratie - Programming by demonstration

In de informatica is programmeren door demonstratie ( PbD ) een ontwikkelingstechniek voor eindgebruikers om een ​​computer of robot nieuw gedrag aan te leren door te demonstreren dat de taak rechtstreeks moet worden overgedragen in plaats van deze te programmeren via machineopdrachten.

De termen programmeren door voorbeeld (PbE) en programmeren door demonstratie (PbD) verschenen al in het midden van de jaren tachtig in onderzoek naar softwareontwikkeling om een ​​manier te definiëren om een ​​reeks bewerkingen te definiëren zonder een programmeertaal te hoeven leren. Het gebruikelijke onderscheid in de literatuur tussen deze termen is dat in PbE de gebruiker een prototypisch product van de computeruitvoering geeft, zoals een rij in de gewenste resultaten van een zoekopdracht ; terwijl in PbD de gebruiker een reeks acties uitvoert die de computer moet herhalen, en deze generaliseert voor gebruik in verschillende datasets.

Deze twee termen waren eerst ongedifferentieerd, maar PbE werd vervolgens meestal gebruikt door onderzoekers op het gebied van softwareontwikkeling, terwijl PbD meestal werd overgenomen door robotica-onderzoekers. Tegenwoordig verwijst PbE naar een heel ander concept, ondersteund door nieuwe programmeertalen die vergelijkbaar zijn met simulatoren. Dit raamwerk kan worden gecontrasteerd met Bayesiaanse programmasynthese .

Robotprogrammering door demonstratie

Het PbD-paradigma is in de eerste plaats aantrekkelijk voor de robotica-industrie vanwege de kosten die gemoeid zijn met de ontwikkeling en het onderhoud van robotprogramma's. Op dit gebied heeft de operator vaak impliciete kennis over de taak die moet worden uitgevoerd (hij/zij weet hoe het moet), maar beschikt hij/zij meestal niet over de programmeervaardigheden (of de tijd) die nodig zijn om de robot opnieuw te configureren. Door aan de hand van voorbeelden te demonstreren hoe u de taak kunt uitvoeren, kunt u de vaardigheid leren zonder elk detail expliciet te programmeren.

De eerste PbD-strategieën die in robotica werden voorgesteld, waren gebaseerd op leer- , geleidings- of afspeelmethoden die in wezen bestonden uit het verplaatsen van de robot (via een speciale interface of handmatig) door een reeks relevante configuraties die de robot sequentieel moest aannemen (positie, oriëntatie, staat van de grijper). De methode werd vervolgens geleidelijk verbeterd door zich voornamelijk te concentreren op de bediening van de teleoperatie en door verschillende interfaces te gebruiken, zoals visie.

Deze PbD-methoden maakten echter nog steeds gebruik van directe herhaling, wat in de industrie alleen nuttig was bij het bedenken van een assemblagelijn met exact dezelfde productcomponenten. Om dit concept toe te passen op producten met verschillende varianten of om de programma's toe te passen op nieuwe robots, werd het generalisatievraagstuk een cruciaal punt. Om dit probleem aan te pakken, waren de eerste pogingen om de vaardigheid te veralgemenen voornamelijk gebaseerd op de hulp van de gebruiker door middel van vragen over de bedoelingen van de gebruiker. Vervolgens werden verschillende abstractieniveaus voorgesteld om het generalisatieprobleem op te lossen, in feite gedichotomiseerd in leermethoden op symbolisch niveau of op trajectniveau.

De ontwikkeling van humanoïde robots zorgde natuurlijk voor een groeiende interesse in robotprogrammering door middel van demonstraties. Omdat een humanoïde robot zich van nature aanpast aan nieuwe omgevingen, is niet alleen het menselijke uiterlijk belangrijk, maar vereisen de algoritmen die worden gebruikt voor de besturing ervan flexibiliteit en veelzijdigheid. Vanwege de voortdurend veranderende omgevingen en de enorme verscheidenheid aan taken die een robot moet uitvoeren, vereist de robot het vermogen om voortdurend nieuwe vaardigheden te leren en de bestaande vaardigheden aan te passen aan nieuwe contexten.

Onderzoek in PbD week ook geleidelijk af van het oorspronkelijke puur technische perspectief om een ​​interdisciplinaire benadering te hanteren, waarbij inzichten uit de neurowetenschappen en sociale wetenschappen werden gebruikt om het imitatieproces bij mens en dier na te bootsen. Met de toenemende aandacht voor dit oeuvre in robotica, werd het begrip Robotprogrammering door demonstratie (ook bekend als RPD of RbD) ook geleidelijk vervangen door het meer biologische label van Leren door imitatie .

Geparametriseerde vaardigheden

Nadat een taak is gedemonstreerd door een menselijke operator, wordt het traject opgeslagen in een database. Gemakkelijker toegang krijgen tot de onbewerkte gegevens wordt gerealiseerd met geparametriseerde vaardigheden. Een vaardigheid is het opvragen van een database en genereert een traject. Zo wordt eerst de skill “opengripper(slow)” naar de motion database gestuurd en als reactie daarop wordt de opgeslagen beweging van de robotarm gegeven. De parameters van een vaardigheid maken het mogelijk om het beleid aan te passen om aan externe beperkingen te voldoen .

Een vaardigheid is een interface tussen taaknamen, gegeven in natuurlijke taal, en de onderliggende ruimte-tijdbeweging in de 3D-ruimte, die uit punten bestaat. Enkele vaardigheden kunnen worden gecombineerd tot een taak voor het definiëren van langere bewegingsreeksen vanuit een perspectief op hoog niveau. Voor praktische toepassingen worden verschillende acties opgeslagen in een vaardigheidsbibliotheek . Om het abstractieniveau verder te verhogen, kunnen vaardigheden worden omgezet in dynamische bewegingsprimitieven (DMP). Ze genereren on the fly een robottraject dat op het moment van de demonstratie nog niet bekend was. Dit helpt om de flexibiliteit van de oplosser te vergroten.

Niet-robotgebruik

Voor eindgebruikers, om een ​​workflow in een complexe tool (bijv. Photoshop ) te automatiseren , is het meest eenvoudige geval van PbD de macrorecorder .

Zie ook

Referenties

Externe links

Recensies papers

Speciale nummers in tijdschriften

Sleutellaboratoria en mensen

Videos

Een robot die een omelet leert koken:

Een robot die leert een fles cola los te draaien:

  • "Kokefles losschroeven", YouTube , DE.