Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Je kunt ook een cookievrije versie van de website bezoeken met minder functionaliteit. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , reacties: 38, views: 12.020 •

Aan de TU Delft worden diverse onderzoeksprojecten op het gebied van robotica uitgevoerd. Een van die projecten is onderzoek naar lopen bij robots. Een eenvoudige oplossing voor het laten lopen van een humanoïde, tweebenige robot zou het simpelweg programmeren van de benodigde loopalgoritmes zijn, maar dat zou de inzetbaarheid van dergelijke robots te zeer beperken. Er valt immers niet te programmeren voor elke variabele, zoals verschillen in ondergrond of het al dan niet dragen van een last en daarmee gepaard gaande veranderingen in de gewichtsverdeling. Een robot die zelf leert lopen en dat loopgedrag kan aanpassen aan verschillende omstandigheden, is daarom veelzijdiger.

Dat is precies wat Leo moet doen. Leo is een project van Erik Schuitema en de robot leert lopen door middel van machine learning, of preciezer: reinforcement learning. Na een simulatie van lopen in een computer wordt het algoritme dat Leo zichzelf heeft geleerd in de echte wereld getest en verbeterd. Mocht het programma de robot toch laten vallen, dan kan Leo zichzelf oprichten; een servo in de arm zorgt daarvoor. In elk van de twee 'benen' zitten nog eens drie servo's, een voor elk gewricht. Leo loopt zelfstandig, maar zit vast aan een arm voor voeding en zijwaartse stabilisatie. Alle benodigde berekeningen om het lopen mogelijk te maken worden uitgevoerd door de on-board-computer, een op 1,2GHz geklokte VIA Eden-processor, met 1GB werkgeheugen. Eriks collega Wouter Caarls gebruikt Leo nu voor een vervolgonderzoek naar verschillende leeralgoritmen.

Een andere 'looprobot', die tijdens de demonstratie aan de TU Delft niet te zien was, is Phides. Deze robot is groter en krachtiger dan Leo en vooral bedoeld voor onderzoek naar rennen. De robot moet op termijn helpen bij de ontwikkeling van protheses voor zowel gehandicapten als mensen die met technische hulpmiddelen verder, sneller en beter willen rennen. Anders dan Leo is Phides niet gebouwd voor machine learning.

Reacties (38)

Nice hoor, jammer dat ik niet ~10jaar geleden wist dat ze bij TU Delft robotica trajecten hadden (als ze die toen uberhaupt al hadden)

Zit tegenwoordig zelf thuis robots te bouwen, ook met dynamixels :D (wel goedkopere versie hehe, maar zijn idd echt meesterlijke servos, waar ie wat mij betreft te weinig over zegt, wat ze zo goed maakt is dat je de positie kan uitlezen, ze een ingebouwde failsafe hebben, en ze als daisy chain werken)
Het zijn "3Mxels" geen dynamixels. Ze hebben ze intern ontworpen maar doen redelijk hetzelfde.
Hmm zien er wel uit als RX-28's? maar is natuurlijk alsnog mogelijk dat ze de tandwielen/motor hebben aangepast.
volgens mij zegt hij ook in het filmpje dat het (door iedereen verkrijgbare) dynamixels zijn.
Hoewel er in het lab zeker veel "3Mxels" gebruikt worden zitten er in LEO inderdaad gewone RX-28s.
Hehe leuk. Ik heb nog een stage gedaan in dat lab en toen was Leo ook al in ontwikkeling :D
Leuk om hier op tweakers eens een artikel te zien over Leo.
hobby servotjes worden toch vaak met pwm aangestuurd? :)

ik vind het aanleren maar erg relatief. de robot maakt een database vol met waardes, wanneer tie een waarde overschrijd, weet het script dat er een val-actie kan komen. Erg gaaf om het te zien hoe dit zo snel vooruit gaat! :9
Het is natuurlijk de bedoeling dat het na een paar keer niet meer valt. Dan is er een 'zelf-geleerde' tegenaktie en die zat nog niet in het 'script'.
Superschattig om te zien :) Daarnaast is deze manier van complexe bewegingen ontwikkelen, net zoals mensen en dieren het leren. Door vallen en opstaan worden succesvolle acties beter 'onthouden' en daarna vaker toegepast. Ik ben de link kwijt, maar er was ooit een zelflerend A.I. programma/spel ontwikkelt, waarmee je AI robotjes kon leren navigeren en schieten op vijanden. Je kon met schuiven prioriteiten en/of doelen instellen, waarna je de robotjes specifiek kon trainen door trial and error.

Ik snap niet echt waarom in het filmpje wordt gezegd dat 'men' vroeger dacht dat complexe bewegingen op deze manier niet ontwikkeld konden worden. Lijkt mij toch iets heel triviaals dat dit zo werkt, net als in de natuur immers. Daarnaast in software dus al een paar jaar geleden bewezen dat het werkt.

Leuke techniek om erg complexe robotsystemen te kunnen ontwikkelen. Op den duur waarschijnlijk complexer dan de beste programmeur ooit kan programmeren ...
Zo'n spel waar je het over hebt is aan de UvA een onderdeel van het lesprogramma master A.I. voor het vak Advanced Topics in Autonomous Agents - hier moesten we leeralgorithmes maken (meestal reinforcement learning methodes) waarmee mini-agents (virtuele robotjes) leren navigeren, schieten, samenwerken, verdedigen, en op den duur gezamenlijke strategieŽn ontwikkelen om "capture the flag" te spelen.

Dat alles op basis van de een open-source package ontwikkeld aan de UvA:

http://staff.science.uva.nl/~jellekok/software/
Tja, achteraf gezien lijkt alles logisch... Dit is een terugkerend thema in de wetenschap en in de AI uiteraard ook. Een aantal decennia geleden werkte iedereen met uitgebreide symbolische systemen die na uren rekenen een centimeter vooruit bewogen en dan weer opnieuw begonnen met rekenen (ik chargeer een beetje) en werd je raar aangekeken als neurale netwerken gebruikte, nu is het bijna andersom.

Wat ik me wel afvraag is hoezeer de arm effect zal hebben op het leeralgorithme. Wordt er nu niet geoptimaliseerd zonder de stabiliteit in de gaten te houden, waardoor de robot alleen met ondersteuning goed kan lopen?
Er wordt nu inderdaad geoptimaliseerd voor deze situatie met ondersteuning. Maar ook voor bijvoorbeeld het type ondergrond. Voordeel van de arm is dat de situatie makkelijker is, er minder mogelijkheden tot vallen zijn, er dus minder geprobeerd hoeft te worden en het leerproces sneller gaat. Het principe hierachter kan natuurlijk uitgebreid worden voor een complexere situatie nodig om geheel vrij te lopen.
In 3D dynamica worden veel problemen die in 2D nog lineair zijn niet-lineair. Dit is heel veel complexer om te regelen en wordt grotendeels opgelost door het traject te beperken tot een boloppervlak. Inderdaad zal de robot, als je hem helemaal los laat lopen heel waarschijnlijk direct omvallen en niet op kunnen staan. De robot is trouwens ook asymmetrisch gebouwd, met slechts ťťn gewone arm.
Los daarvan is de arm natuurlijk erg praktisch, omdat de robot zo veel minder ruimte nodig heeft en makkelijk van elektriciteit kan worden voorzien.
Idd, wat betreft software. Kan mij een documentaire herinneren waarin ze mbv software wilde achterhalen hoe dinosauriŽrs vroeger over de aardbodem liepen. In het programma hadden ze een model die een aantal stappen zette, de 1ste keer valt het model, tweede keer ook, ....... duizendste keer ook e.t.c.. totdat het model wel volledig een traject kan belopen. Dit was volgens mij +- 5 jaar terug dat ik dat zag.
Ik denk dat de decennia lange ontwikkeling van de Asimo toch wel wijst op een overtuiging dat praktisch alles moest worden aangeleerd door het toevoegen van programmatuur.

Ik zou eerst ook de opmerking maken dat het zo jammer is dat in dit wereldje het wiel zo vaak opnieuw moet worden uitgevonden. Echter het een computer autonoom bewegingen (of andere acties) lijkt me de toekomst te zijn in dit vakgebied.
In het geval van lopen zit de complexiteit erin dat je tijdens het lopen niet in evenwicht bent. Je kunt als je normaal aan het lopen bent niet instantaan stoppen, omdat je dan omvalt. Deze manier van 'instabiel' lopen is veel sneller en efficienter (qua energieverbruik) dan 'stabiel' lopen wat veel humanoid robots nog doen.
Ik kan me voorstellen dat een dergelijke pas moeilijk is om zelf aan te leren voor een robot. En dat ze daarom vroeger dachten dat het met reinforcement learning niet gaat werken. Als de complexiteit van de leerlogica groter is dan van het uiteindelijke resutaat schiet je je doel natuurlijk voorbij.
Het probleem is dat hoe complexer het gedrag is dat je wilt leren, hoe meer trials je nodig hebt. In simulatie is dat niet zo'n probleem, maar de echte wereld gaat niet sneller dan real-time. Bovendien heb je op een echte robot allerlei extra problemen, zoals control delay, backlash, oneffenheden, etc.

Om in zo'n situatie toch nog iets interessants te leren moet je voorkennis toevoegen in de vorm van min of meer geparametriseerde controllers. Als je dan niet oppast wordt het uiteindelijke gedrag daardoor teveel beperkt. LEO laat zien het voor deze taak zonder voorkennis ook gaat, terwijl dat eigenlijk niet verwacht werd.
In de echte wereld hoef je ook zelden iets helemaal van scratch te leren. Vrijwel altijd zijn er genoeg voorbeelden beschikbaar van mensen die het gewenste gedrag voordoen, bijvoorbeeld lopen of rennen. Een speciale vorm van reinforcement learning die hier rekening mee houd wordt apprenticeship learning genoemd. Het idee hierbij is dat het voor een expert makkelijker is om iets voor te doen dan het te beschrijven in de vorm van een reward of cost functie.
Een klein kind kan inderdaad heel veel mensen zien lopen, maar desondanks leert hij/zij het toch nog echt wel helemaal helemaal van scratch. Iemand zien lopen is niet genoeg, je kan iemand niet vertellen of uitleggen hoe hij moet gaan lopen, dat moet hij/zij zelf doen en ervaren.

Bij fietsen kan je het nog deels afkijken, je weet hoe je stuur werkt, ze vertellen je dat je voeten rondjes moeten draaien op die trappers, en er is zelfs iemand die je fiets tijdelijk recht houdt. Maar again, je zal toch zelf je evenwichtsorgaan onder controle moeten krijgen. Uitvinden en ontdekken wat je moet doen om maar niet om te vallen.
B'VO Leeghwater

Ontopic: Er waren meerdere projecten die tentoongesteld moesten worden, maar helaas waren sommige nog niet klaar of deden het gewoonweg niet meer.

Verder was dit het symposium voor de opening van de Robotics Instituut aan de TU Delft. Dit instituut zal samen met andere instellingen werken aan het verbeteren van het robotica techniek! Super mooi!

[Reactie gewijzigd door Ortixx op 28 januari 2013 17:51]

Gepaste muziek trouwens: Thomas Newman - Typing Bot (Wall-E soundtrack) :P
Een van de andere robots waar ze mee bezig zijn in het robotics-lab op 3ME van de TU-Delft
is een 'ren' robot op hetzelfde principe met 2 vrijheidsgraden, om behalve lopen ook het rennen (en hinkelen, huppelen en vallen) te 'leren'. Extra moeilijkheidsgraad hierin is de input: Leo loopt en heeft een continu input van zijn voetsensoren of deze op de grond staan (en dus ook de hoogte en hoek).
een robot die rent laat de grond ook los waardoor deze ook kan duiken (vallen) en input mist.
genaamd Phenix. http://www.youtube.com/watch?v=MHqkC1vS7qA

Een van de robots die meerdere vrijheidsgraden heeft en zeer stabiel staat is een robot die wordt ontwikkeld voor de Robo-cup wedstrijden in Humanoid League.

Meer informatie:
http://www.dbl.tudelft.nl/ *delft biorobotics lab*

Veel van deze technologie vindt behalve in de robotica ook zijn weg terug naar proteses voor mindervaliden en zelfs atleten.


*Leeghwater / slurf*
Niet in de video getoond: 4 servo's aangestuurd door een Perl-script die op gepaste tijden op de toetsen Q,W, O en P duwen.
Erg nuttige bijeenkomst daar in Delft! Ben er met collega geweest, goede zet die oprichting van het Robot Lab. Eindelijk weer eens een nuttige conferentie gehad!

@PjotrStroganov: ik hoorde dat de Jappanners Asimo niet wilden demonstreren als de vloer meer dan 4mm afwijkend was.

[Reactie gewijzigd door jopiek op 28 januari 2013 20:44]

Ik vind de zin robots leren zelf lopen bedrieglijk. De robots leren namelijk niet ze kunnen zich slechts automatisch finetunen. Dit is geen leren dit is ook puur programmatische logica waar de robot niet buiten kan.

Nou kan men in de wereld van wetenschap en taal nog veel discussieerden wat leren is en waaronder we het kunnen verdelen. Een robot die zogenaamd leert volgt slechts een voorgeprogrammeerd script wat slechts enkele variabelen in zich zelf automatisch kan aanpassen. Hierdoor kan het zichzelf finetunen maar daarbij zal het ook blijven.

Leren draagt ook bij aan het aanpassen van bestaande kennis, gedrag, vaardigheden of waarden. Daarmee zou je kunnen stellen dat een robot zelf kan leren. Gedeeltelijk maar want hij kan nog steeds niet zelf leren lopen. Zichzelf bijstellen zou mij een betere titel zijn het kan namelijk al lopen hij stelt alleen de waarden van de logica die zijn makers het hebben gegeven.

Het idee dat een machine kan leren bestaat al langer en is al vaker op deze wijze bewezen. Ik vind dit dan ook niet zo bijzonder. Natuurlijk wel respect voor de kundige mensen die dit soort projecten kunnen waarmaken. Ik hoop over een paar jaar de doorbraak op kunstmatige intelligentie mee te maken. Echter denk ik dat hiervoor meer biologisch onderzoek nodig is dan robotisch onderzoek.

[Reactie gewijzigd door meneer william op 28 januari 2013 22:35]

Deze robot is juist op dit vlak anders. De gebruikte logica (reinforcement learning) is zeer generiek en het aantal parameters enorm (enkele miljoenen).

In het bijbehorende proefschrift kun je lezen dat deze robot zonder (of met zeer beperkte) voorkennis, met random geinitialiseerde parameters, helemaal zelf kan leren lopen vanaf nul, zonder vooraf geprogrammeerde oplossing of oplossingsvorm.

In dit filmpje kun je zien hoe het leerproces eruit ziet op de echte robot.

[Reactie gewijzigd door keez- op 28 januari 2013 22:57]

Werkt heel simpel, is gewoon metingen van de sensoren die steeds dicht bij de opgegeven waarde moeten komen, robot onthoud elke beweging en hoe succesvol die was, is die succesvol zal die vaker die beweging doen met nieuwe aanpassen, valt die dan doet die die beweging minder en gaat andere proberen. Is basis leerproces, vallen en opstaan proces.

Op geven moment loop je robot zoals je dat hebt opgeven in de waarde voor de sensoren.

Is overigens niks nieuws doen alle hobbyisten die bezig zijn met biped robots, is bij deze robot is het geautomatiseerd, wat overigens bij dure robots al heel lang is.

Voordeel is dat de robot het zelf kan aanpassen, en dus met rugzak op gewoon naar voren gaat hangen zonder dat daar extra nieuw code voor nodig is, eerste paar passen met nieuwe rugzak op heb je wel kans dat je dure spullen beschadig raken. :D

Edit/
Maar dat aanpassen kunnen veel robots ook al, gewoon door sensor metingen. Boston dynamics heeft paar leuke robots, kan je tegenaan trappen en dan corrigeren zich gewoon razendsnel. Eigen is er niet eens behoefte aan zelflerende lopende de robot, waarom iets laten leren als je het ook gelijk erin kan zet vanaf het begin. Kan beter gewoon programmeren en via sensoren laten corrigeren, dat kan heel efficiŽnt en snel met huidige giga samples adc's die we tegenwoordig tot ons beschikking hebben.

Waarom eigen onze gebreken als mensen in robot inbouwen, robot heeft nu juist voordeel dat je iets rechtstreeks in geheugen kan zetten zonder te hoeven leren, van een op andere moment kan robot ineens iets als je er de juist code inzet.

[Reactie gewijzigd door mad_max234 op 30 januari 2013 00:09]

Ik vind de zin robots leren zelf lopen bedrieglijk. De robots leren namelijk niet ze kunnen zich slechts automatisch finetunen. Dit is geen leren dit is ook puur programmatische logica waar de robot niet buiten kan.
Dat is bij jou niet anders natuurlijk. Wij mensen leren door in onze hersenen (en door onze ouders) beloond te worden voor goed gedrag. Lopen leer je letterlijk met vallen en opstaan. Vallen doet pijn, dus als je een paar stappen zet zonder te vallen, onthouden je hersenen maar wat graag hoe ze de benen hebben aangestuurd. Dat is er door miljoenen jaren evolutie ingehamerd. Nu sta je niet meer stil bij hoe je je voeten neerzet, hoe je je benen buigt en wat er gebeurt als het tapijt niet mooi vlak is.

Deze robot "leert" zelf alle parameters die nodig zijn om stabiel te lopen. Natuurlijk zijn de functies door een mens ingeprogrammeerd, maar zoals ik al eerder zei: zo komt een baby ook op de wereld: vol informatie die later pas relevant zal zijn.
Nou kan men in de wereld van wetenschap en taal nog veel discussieerden wat leren is en waaronder we het kunnen verdelen. Een robot die zogenaamd leert volgt slechts een voorgeprogrammeerd script wat slechts enkele variabelen in zich zelf automatisch kan aanpassen. Hierdoor kan het zichzelf finetunen maar daarbij zal het ook blijven.
Maar jij bent net zo beperkt. Waar de graden van vrijheid bij deze robot wellicht deels door software worden beperkt, worden ze bij jou door spierkracht, bewegingsvrijheid van je gewrichten e.d. beperkt. En als je drie van deze robots neerzet, zullen ze verschillende paden volgen met alle bijbehorende fouten om te komen tot een lopende robot. Ook dat is bij mensen niet anders.
Leren draagt ook bij aan het aanpassen van bestaande kennis, gedrag, vaardigheden of waarden. Daarmee zou je kunnen stellen dat een robot zelf kan leren. Gedeeltelijk maar want hij kan nog steeds niet zelf leren lopen. Zichzelf bijstellen zou mij een betere titel zijn het kan namelijk al lopen hij stelt alleen de waarden van de logica die zijn makers het hebben gegeven.

Het idee dat een machine kan leren bestaat al langer en is al vaker op deze wijze bewezen. Ik vind dit dan ook niet zo bijzonder. Natuurlijk wel respect voor de kundige mensen die dit soort projecten kunnen waarmaken. Ik hoop over een paar jaar de doorbraak op kunstmatige intelligentie mee te maken. Echter denk ik dat hiervoor meer biologisch onderzoek nodig is dan robotisch onderzoek.
Als je het heel elementair bekijkt moeten we in staat zijn om een machine hetzelfde leerproces te geven als een mens. Onze hersenen zijn ook maar cellen met zeer voorspelbare chemische reacties erin.
Mensen hebben toch ook gewoon een beperkt aantal vrijheidsgraden? Elke spier kan je enkel zeggen hoe hard je hem wilt opspannen. Ons evenwichtsorgaan is heel vergelijkbaar met standaard accelerometers + gyroscopen.

Het aantal spieren dat je goed moet aansturen om te kunnen lopen is enorm hoog, maar toch eindig. Het duurt ook niet voor niets jaren om lopen volledig onder de knie te krijgen.

Mensen zijn zeker niet 100% autonoom bij het leren. Wanneer we andere mensen zien hebben we neuronen in onze hersenen die zich spiegelen aan hun acties en/of emoties (gebrek hieraan leidt tot autisme). Als baby's volwassenen zien rondlopen gaan ze dat proberen na te doen. We zijn zelf zo geprogrammeerd om in de eerste levensjaren alles proberen na te doen.

Gevolg is dat we zelf ook een goed idee van de paramaters hebben. We zien dat bij al de rest stappen begint bij het rechtstaan op 2 benen en je dan probeert 1 voet naar voren te zetten. Dit lukt natuurlijk niet van de eerste keer dus mama en papa komen je helpen zodat je niet zomaar omvalt. Ze beperken dus je vrijheidsgraden. Langzaam maar zeker leren kinderen dan steeds meer op hun eentje te lopen, via muren en uiteindelijk gewoon alleen. Het gaat nog steeds niet altijd goed, maar na het "finetunen" van de parameters komt alles in orde.

Mensen zijn eigenlijk op fysiek vlak weinig beperkt. We hebben ingebouwde reflexen die de allerbelangrijkste taken voor zich nemen en in een proces van miljoenen jaren zijn onze hersenen steeds beter geworden in fijne motorische taken en evenwicht.

Robots daarintegen hebben VEEL minder precieze "spieren" en hun hersenen zijn gemaakt om droge wiskunde mee te doen. Op fysiek vlak zijn robots even erg als een gehandicapt kindje. Daarbovenop hebben robots geen empathie dus kunnen ze zich niet spiegelen, tenzij we ze manueel een voorbeeld geven. Robots hebben ook geen reflexen, als ze beginnen te vallen hebben ze geen supersnelle reacties om de val nog op tijd te stoppen. Ze hebben ook gewoon last van beperkte processing power. Onze hersens zijn eigenlijk belachelijk goed in fysische simulaties/voorspellingen. Als ik een glas laat vallen dan ZIE ik het al uiteenspatten op de grond nog voor het de grond raakt. Dit heeft voor een groot deel ook te maken met ervaring, maar dan nog hebben we "gevoel" voor onze omgeving dat robots gewoon missen. Dit kan je natuurlijk bij in het leerproces steken maar dan moet je eerst nog eens realtime beeldverwerking inbouwen. Mensen zien objecten en relaties tussen objecten ipv pixels. We hebben nog altijd heel veel moeilijkheden om computers op dezelfde manier te laten kijken naar de wereld.

Robots moeten het dus doen met veel minder vrijheidsgraden, VEEEEEEL minder informatie, computers zijn niet gemaakt om dit soort data te verwerken en ipv miljoenen jaren trial & error hebben ze vaak slechts een ontwikkelingstraject van enkele jaren en wordt er relatief weinig "reflex" informatie doorgegeven die de ontwikkeling van een volgende generatie zou versnellen. Dit gaat niet omdat elke generatie fysiek te veel verschilt.

Ik vind het toch knap. Engineering hoeft niet in grote sprongen vooruit te gaan altijd. Langzaam maar zeker komen ze steeds dichter bij hoe mensen leren lopen, er zijn ontwikkelingen die lichtere en sterkere aandrijvingen voor robots gaan opleveren waardoor ze meer vrijheidsgraden krijgen. Daarbovenop worden processors steeds sneller waardoor we steeds meer informatie kunnen verwerken en bij in het leerproces opnemen. De auto zoals we hem vandaag kennen heeft ook een lange geschiedenis achter de rug. Zeker in het begin kon het niet opboksen tegen paard en kar. Maar kijk eens wat voor wonderbaarlijke stukjes technologie we tegenwoordig "for granted" nemen?

Op dit item kan niet meer gereageerd worden.



Populair: Desktops Vliegtuig Luchtvaart Crash Smartphones Laptops Apple Games Besturingssystemen Rusland

© 1998 - 2014 Tweakers.net B.V. onderdeel van De Persgroep, ook uitgever van Computable.nl, Autotrack.nl en Carsom.nl Hosting door True

Beste nieuwssite en prijsvergelijker van het jaar 2013