Robot leert autonoom op TU/e

Een robot van de Technische Universiteit Eindhoven heeft zichzelf geleerd een pak vruchtensap te serveren. De robot werd daar niet voor geprogrammeerd, maar kon de benodigde code zelfstandig downloaden uit een daartoe ingerichte database.

De robot van de Control Systems Technology-onderzoeksgroep van de Faculteit Werktuigbouwkunde nam deel aan het project RoboEarth. Dat project heeft als doel robots in staat te stellen van elkaar te leren; zo kan informatie over omgevingen en handelingen worden uitgewisseld. Objectherkenning, navigatie, handelingen en andere robotactiviteiten kunnen middels het RoboEarth-netwerk worden uitgewisseld. De Amigo-robot van de TU/e maakte zelfstandig contact met de RoboEarth-database en downloadde autonoom de benodigde instructies om een pak vruchtensap te serveren.

Middels het RoboEarth-netwerk moeten robots soepeler met onvoorziene omstandigheden kunnen omgaan, in plaats van dat zij, zoals nu, voor elke denkbare situatie moeten worden geprogrammeerd. Door robots in staat te stellen om te leren van voorgaande gebeurtenissen en die ervaringen met elkaar te delen, zouden ze sneller en beter kunnen leren en reageren op nieuwe situaties.

Het project is een samenwerkingsverband van verschillende onderzoeksinstituten. Naast de TU/e nemen de universiteiten van Stuttgart, München, Zaragoza en Zürich, en Philips Applied Technologies aan RoboEarth deel. RoboEarth ging in december 2009 van start en kreeg 5,6 miljoen euro subsidie voor een looptijd van vier jaar. Uiteindelijk moeten robots in sterk variabele omgevingen, waaronder de zorg, kunnen worden ingezet.

Helaas!
De video die je probeert te bekijken is niet langer beschikbaar op Tweakers.net.

Door Willem de Moor

Redacteur

03-02-2011 • 14:20

84 Linkedin

Submitter: -DarkShadow-

Reacties (84)

84
83
46
2
0
4
Wijzig sortering
Anoniem: 42323
3 februari 2011 14:24
Middels het RoboEarth-netwerk moeten robots soepeler met onvoorziene omstandigheden kunnen omgaan, in plaats van dat zij, zoals nu, voor elke denkbare situatie moeten worden geprogrammeerd.
De robots kunnen sneller hun data delen met elkaar maar iedere denkbare situatie zal toch nog steeds in de database moeten worden gezet?
Dus zou het heel mooi zijn als alle robots op deze database zijn aangesloten, en wanneer zij een onbekend probleem weten op te lossen, dit toevoegen aan de database. Zo hoeft niet iedere robot een eigen oplossing te bedenken, maar gebruiken ze elkaars ideeën.
Het abstraheren van alle mogelijke situaties, naar een kleinere subset van problemen, is natuurlijk erg lastig. Hoe goed deze robots gedeeltelijke oplossingen kunnen hergebruiken zal dan ook voor een grote mate bepalen hoe succesvol ze zullen zijn.
het heeft mij minder dan n minuut gekost om de grootste zwakte in dit systeem te vinden.

'kwade' intenties, een of andere malloot leert zn robotje iemand te doden in een bepaalde situatie en de rest van de robots die ook die situatie tegenkomen zullen volgen. nu zal het waarschijnlijk niet heel lang duren voor dat die code er waar af word gehaald, maar het risco blijft bestaan.

Situatie: er is niemand thuis
wat te doen: steek het in de fik etc. etc.

zolang die robots niet kunnen onderscheiden van wat ze wel zouden mogen uitvoeren en wat niet dan is dat een groot risico.
Je kan natuurlijk veel manieren bedenken om daar mee om te gaan, om er maar een paar te noemen:
Het systeem zal om moeten kunnen gaan met verschillende oplossingen voor eenzelfde probleem. Voor deze verschillende oplossingen zal dus een waarderingsfunctie moeten worden bedacht, want niet iedere oplossing is even goed.
De makers zouden problemen die leiden tot ongewenste oplossingen zelf kunnen toevoegen aan de database met als oplossing 'send error report & shut down' met een oneindig hoge waardering, zodat altijd deze oplossing zal worden gekozen voor dit probleem.
Of een los proces dat, voordat iedere actie wordt uitgevoerd, bepaalt of dit schadelijk is voor de omgeving en zo ja deze actie abort.

[Reactie gewijzigd door Stevie-P op 3 februari 2011 14:55]

het probleem is juist dat je niet van te voren elk probleem een oplossing kan geven, dat is onmogelijk want er is een eindeloze slinger een problemen/situaties.

Er zal altijd wel iemand zijn die een tot dan nog onbekende situatie zal vinden, en dan mag je maar hopen dat diegene er iets goeds mee doet. of helemaal niets. maar als diegene daar een vervelend sciptje aan plakt zal er sowieso eerst iets mis moeten gaan voordat het word gevonden. en eigenlijk ben je dan simpel weg te laat.
Dit kan je afvangen, als je een 'counter-actie' inprogrammeert voor bijvoorbeeld het in de fik steken van het huis, daar een bepaalde categorie meegeeft en vervolgens de robot de instructie geeft 'voer een actie uit categorie A niet uit als dat betekent dat je gelijk daarna een actie uit categorie B moet uitvoeren'.

M.a.w. steek het huis niet in de fik als je het daarna moet blussen :P
"Dus zou het heel mooi zijn als alle robots op deze database zijn aangesloten, en wanneer zij een onbekend probleem weten op te lossen, dit toevoegen aan de database."

Nergens wordt gezegd dat de robots zelf het onbekend probleem gaan oplossen.
Waarschijnlijk zal nog steeds ieder probleem moeten worden uitgecodeerd door mensen. (Met vak + domein kennis) Dan moet er ook nog een validatie-traject over heen, en dan wordt de oplossing op een centrale plek bewaard zodat het werk niet dubbel uitgevoerd moet worden. M.a.w het is een soort dynamische code-reuse.

Vergelijk het met het installeren van drivers op je pc. Vroeger moest je naar de pc-winkel op zoek naar een of andere CD. Nu kan je ze downloaden. Lang leve het internet!
Toch knap dat de robots nu ook al http get-s kunnen versturen!

Mijn sarcastische ondertoon is omwille van de teleurstelling dat robots nog niet zelf kunnen leren zoals mensen dat kunnen. Ik zou niet goed worden moest ik telkens mijn moeder moeten bellen indien ik in een onbekende situatie terecht zou komen en niet direct weten wat doen.
wanneer zij een onbekend probleem weten op te lossen
En wanneer weten ze dat het probleem is opgelost zoals het hoort? Stel: robot ziet dat al de drank in z'n omgeving op is. Hij pakt een aantal cavia's uit de kooi naast hem en wringt ze uit. Robot ziet dat er weer drinken is. Upload naar database. En dan gaan alle robots deze handeling overnemen? Dan zouden deze oplossingen moeten worden gevalideerd door een mens. Dat gaat nog wel met een robot of 5, maar wat als er 10 000 zijn die dag in, dag uit bezig zijn?
zo'n vaart zal het wel allemaal niet lopen :-)

[Reactie gewijzigd door flamingworm op 3 februari 2011 16:20]

Het probleem zal zijn dat dit eigenlijk alleen werkt als alle robots aan elkaar gelijk zijn. Zo gauw de ene bijvoorbeeld een langere arm heeft als de ander, werkt het al niet meer...

Of wanneer de vorm van het pak sap anders is, de opening anders is, etc etc....
Kan iemand mij uitleggen waarom die robot een op zijn kop geplaatste kinect module als hoofd heeft? Ik zie het nut er namelijk niet van in op de manier waarop deze is toegepast.
er zit een kantelmechanisme op, dus wss is hij hier naar beneden gericht om duidelijk te maken dat ze hem niet gebruiken.. alhoewel het wel idioot is, want dan ben je je calibratie kwijt, je weet niet meer hoe de camera georienteerd is tov de rest van de robot 8)7

verder is het een kinect omdat dit een uitermate cheape 3d sensor (150 euro tegenover ettelijke 1000den euro voor een laserscanner, of zelfs maar een camera)
momenteel zijn redelijk veel onderzoeksinstituten en hobbyisten daarom al op deze kar gesprongen

als middelware hebben ze (rviz is in beeld te zien) blijkbaar ROS gebruikt, hier is al uitgebreide documentatie en veel software voor beschikbaar, allemaal opensource trouwens. kinect drivers hiervoor waren paar uur na de release van de kinect beschikbaar: nieuws: Robot krijgt driedimensionaal zicht door Kinect
Misschien mis ik iets, maar zo moeilijk kan dit toch niet zijn? Als je je robot zou bouwt dat hij zelf kan "voelen" hoe hard of zacht een object is, en hoeveel grip hij er op heeft, dan heb je die centrale database toch nergens voor nodig?

Sowieso, autonoom; De informatie in de centrale database is nog steeds door een mens gemaakt.
In een spons kun je heel hard knijpen, in een puppy kun je dat ook maar dat kun je beter niet doen. Dat moet die robot wel op 1 of andere manier te weten komen.
Dat is een heel ander verhaal. Je kunt met sensoren in de hand toch "voelen" hoe zwaar iets is, glijd het door de "vingers", dan is het waarschijnlijk zwaarder dan geschat grijp je wat harder.

Een puppy oppakken met een robothand wordt sowieso moeilijk aangezien je die maar op een paar manieren kunt oppakken met 1 hand, maar met mijn beschreven manier voorkom je wel dat de hand eieren, pakjes etc. fijnknijpt.
Dit probleem is veel moeilijker dan je het voorstelt en ik daag je uit om het daadwerkelijk op te lossen. ;) Zover ik weet lopen er op het moment 3 FP7 EU projecten die zich vrijwel uitsluitend met het grijpen van objecten bezighouden:

Grasp
Handle
Dexmart

Probeer maar eens een algoritme te verzinnen dat 'voelt of een object door de vingers glijdt'. En dan hebben we het nog niet over het lokaliseren van het object, het bepalen van de grijppunten, de robot daadwerkelijk in die configuratie krijgen, etc.
Volgens mij kan je alleen echt goed leren als je veel fouten maakt. Geen idee of dat nou zo handig is voor robots? In het plaatje zie je een bed, wat het vermoeden geeft dat het om een ziekenhuisomgeving gaat. Als ik daar lig wil ik niet dat robots aan het leren zijn, maar heel zorgvuldig zijn in hun handelingen!
Ja in principe wel, maar je kunt ook eerst simularen wat van je van plan bent en zo het aantal daadwerkelijk uitgevoerde fouten minimaliseren. In feite een soort denk voor je doet.
Ik zou gewoon door een zuster geholpen willen worden :P
Tegen die tijd hebben de robot's mooie pakjes aan :P
Ik vind dat dit inderdaad weinig te maken heeft met "aanleren".
De robot scant z'n omgeving, vergelijkt dit met situaties aanwezig in de database
en downloadt een set instrukties die toepasbaar zijn op de situatie.
Er wordt verder niet bij gezegd hoe specifiek de situatie in de omgeving moet zijn
in vergelijking met wat er in de database staat. Het is niet te hopen dat de robot
per ongeluk een fles allesreiniger verwardt met een fles ranja.
Toepassen en aanleren zijn inderdaad verschillende zaken. Hoewel "opvoeding" wel de kaders bepaalt waaruit iemand (of iets) beweegt. Als het dus toch een fles allesreiniger zou zou en het gaat wel mis dan is (in theorie) de situatie geleerd dat het niet succesvol was (en de volgende keer wordt voorkomen). Het blijft lastig om human-like te handelen. Mensen zijn inconsequent en onlogisch en kennen ontzettend veel referenties en kaders. Dit voorbeeld is niet wereldschokkend maar elke marathon wordt gelopen met relatief kleine stappen (letterlijk).
hehe dit word nog eens leuk in de toekomst. terrorist leert zn robotje in een bepaalde omstandigheid te doden. en tadaa de rest van de robotjes over de wereld volgen :Y)
everyone happy.

Het is een stap verder richting A.I. Maar is het toch nog niet helemaal. een mens kan in schatten hoe het ene probleem moet oplossen door er logisch over na te denken, dat kan dit dingetje nog niet. wanneer dit robotje dingen kan uitvoeren wanneer die echt volledig autonoom is word het echt een knap staaltje
Hoe bedenkt die robot dat hij een pak vruchtensap moet serveren, geef je hem die opdracht waarna hij inplugt in de databank om zo tot een oplossing te komen, of komt hij van de ene op de andere dag naar je toe met vruchtensap?
Anoniem: 96523
3 februari 2011 14:29
De robot werd daar niet voor geprogrammeerd, maar kon de benodigde code zelfstandig downloaden uit een daartoe ingerichte database.
Het enige dat ik uit deze zin haal is: "De robot is niet geprogrammeerd om acties uit te voeren, maar om de code uit een database te halen en die dan uit te voeren."

Wanneer iets/iemand autonoom leert is dat dmv trial and error en niet door copy&paste.

In dit geval was ik onder de onderstelling dat de robot iets nieuws kon leren, ipv even de juiste instructies opzoeken.
Wanneer iets/iemand autonoom leert is dat dmv trial and error en niet door copy&paste.
Ben het mee eens, maar wij leren toch niet alles autonoom. Sterker nog ik denk eigenlijk maar heel weinig als we eenmaal de leeftijd hebben dat we dingen uitgelegd kunnen krijgen.

Zo heb ik mijn badkamer getegeld met behulp van instructies die ik van internet heb gehaald. Dat is niet eens zo heel erg anders dan wat de robot hier doet. Heb ik dat autonoom geleerd? Nee, maar dat geldt ook voor lezen, schrijven, rekenen etc., allemaal dingen die anderen hebben bedacht en mij hebben bijgebracht...
maakte zelfstandig contact met de RoboEarth-database
Is het downloaden van code voor die specifieke taak niet hetzelfde? :?
Zie er niet echt de meerwaarde van in. Is eerder een soort updatesysteem dan autonoom leren.

[Reactie gewijzigd door ieperlingetje op 3 februari 2011 14:32]

Anoniem: 302101
3 februari 2011 14:29
Klopt ook niet dat deze Robot Autonoom een pak drinken haalt,
Zal zeker enige vorm van input aan vooraf gegaan zijn en anders brengt die robot morgen mij een pak Huismerk Appelsap.

Op dit item kan niet meer gereageerd worden.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee