• No results found

6. Slutsats och fortsatt arbete

6.2 Förslag till fortsatt studie

Vid arbetet av den här rapporten har det kommit fram flera intressanta aspekter som skulle vara intressant att fortsätta med. Det skulle ge en större förståelse för beteendebaserade styrsystem och skulle även komplettera resultatet av jämförelsen av beteendebaserade och självlärda styrsystem.

• Undersöka fler och då utföra mer systematiska tester angående självlärda och beteendebaserade styrsystem mot varandra, samt använda olika arkitekturer. Till exempel testa om det finns några andra arkitekturer för självlärda styrsystem som kan klara av det första experimentet med ett likvärdigt resultat som de beteendebaserade styrsystemen.

• Eftersom beslutsenheten evolveras fram med färdigtränade moduler som kan ha svagheter eller brister som påverkar hela styrsystemet vore det intressant om modulerna kunde vidareutvecklas i samband med att beslutsenheten evolveras fram. Detta kan även leda till att koordinationen mellan modulerna förbättras ytterligare. Ett alternativ till detta vore om beslutsenheten och modulerna evolverades fram tillsammans från start, modulerna behöver inte då tränas fram för sig själva innan evolveringen av beslutsenheten.

• Undersöka hur olika metoder att evolvera fram styrsystemen hur det kan påverka slutresultatet för både beteendebaserade och självlärda styrsystem. Skiljer det mellan beteendebaserade eller självlärda styrsystem i hur påverkbara de är för vilken metod som används vid evolveringen?

• Från resultatet av projektet framträder en hypotes att man bör ta större notis om beteendebaserade styrsystem och inte enbart när de nämns syfta tillbaka till Brooks (1986) ”subsumption architecture” (SA) som något otänkbart. Utan istället tänka på möjligheterna med konceptet som Brooks föreslog att det övergripande beteendet kunde delas upp. Genom att utveckla olika arkitekturer inom beteendebaserade styrsystem skulle det kunna vara möjligt att få bättre och effektivare styrsystem än vad de självlärda arkitekturerna skulle kunna åstadkomma. Det vore intressant att undersöka vidare om denna hypotes stämmer.

Referenser

Referenser

Borghi, G., Colombetti, M. och Dorigo, M. (1996). Behavior analysis and training: A methodology for behavior engineering. IEEE Transactions on Systems, Man, and

Cybernetics - Part B, 26(3):365-380.

Brooks, R. A. (1986). A robust layered control system for a mobile robot. IEEE

Journal of Robotics and Automation. RA-2(1): p. 14-23.

Brooks, R. och Maes, P. (1990). Learning to coordinate behaviors. In Proceedings of

the Eighth National Conference on Artificial Intelligence – AAAI-90, pp.796-802.

San Mateo, CA: Morgan Kaufmann.

Carlsson, J. och Ziemke, T. (2001). YAKS - Yet Another Khepera Simulator. In: Rückert, Sitte & Witkowski (Eds.) Autonomous Minirobots for Research and

Entertainment - Proceedings of the 5th International Heinz Nixdorf Symposium.

Paderborn, Germany: HNI-Verlagsschriftenreihe.

Chatila, R., Giralt, G. och Vaisset, M (1983). An Integrated Navigation and Motion Control Sytstem for Autonomous Multisensory Mobile Robots, Robotics Reserach 1,

Brady and Paul eds, MIT Press, 191-214.

Dorffner (1997). Radical Connectionism – a neural bottom-up approach to A, in Dorffner (Ed.). Neural Networks and New AI, ITS.

Elman, J.L. (1990). Finding structure in time. Cognitive Science, 14: 179-211.

Floreano, D. and Nolfi, S. (2000). Evolutionary Robotics – The Biology, Intelligence, and Technology of Self-Organizing Machines. The MIT Press, Cambridge, Massachusetts.

Floreano, D. och Mondada, F. (1996). Evolution of homing navigation in real mobile robot. IEEE Transactions on Systems, Man, and Cybernetics – Part B : Cybernetics 26(3):396-407.

Heemskerk, J., Neary, J. och Sharkey, N.E. (1996a) Subsuming behaviours in Neural Network Controllers. In Proceedings of ROBOLEARN96, Florida, July.

Heemskerk, J., Neary, J. och Sharkey, N.E. (1996b) Training artificial neural network controllers for Robot Control, Proceedings of Engineering Applications of Neural

Networks - EANN96, London, June.

Heemskerk, J. och Sharkey, N.E. (1997). The neural mind and the robot. In A.J. Browne (ED.), Neural Network Perspectives on Cognition and Adaptive Robotics. Bristol U.K.: IOP Press.

Holland, J. H. (1975). Adaptation in Natural and Artificial Systems. Ann Arbor, MI: University of Michigan Press.

Mahadevan, S., och Connell, J. (1992). Automatic programming of behavior-based robots using reinforcement learning. Artificial Intelligence, 55: 311-365.

Miglino, O., Lund, H. H. och Nolfi, S. (1995). Evolving mobile robots in simulated and real environments, Artificial Life, 2(4), pp.417-434.

Nilsson, N. J. (1984). Shakey the Robot, SRI AI Center Technical Note 323.

Nolfi, S. (1997a). Evolving non-trivial behaviors on real robots: A garbage collecting robot. Robotics and Autonomous System, 22:187-198.

Referenser Nolfi, S. (1997b). Using emergent modularity to develop control system for mobile robots. Adaptive Behavior, 3-4:343-364.

Norvig, P. och Russell, S. (1995). Artificial Intelligence – A modern approach,

Prentice Hall International Edition.

Tsuji, S. (1984). Monitoring of a Buildening Environment by a Mobile Robot,

Robotics Research 2, Hanafusa and Inoue eds, MIT Press , 349-356.

Ziemke, T. (1999). Remembering how to behave: RNNs for adaptive robot behavior. In Medsker & Jain (Eds.). Recurrent Neural Networks: Design and Applications. CRC Press: Boca Raton.

Ziemke (2000). On 'Parts' and 'Wholes' of Adaptive Behavior: Functional Modularity and Diachronic Structure in Recurrent Neural Robot Controllers. In From animals to

animats 6 - Proceedings of the Fifth International Conference on the Simulation of Adaptive Behavior (SAB 2000, Paris, Sept. 2000). Cambridge, MA: MIT Press.

Bilaga A Experiment 1: Energisamlande robot

Bilaga A Experiment 1: Energisamlande robot

Tekniska detaljer angående energisamlande robot

För experimentet används en simulerad Kheperarobot som är utrustad med 8 stycken infraröda sensorer, 6 sensorer fram och 2 sensorer bak. De infraröda sensorerna kan även mäta omkringliggande ljus och 2 av dessa sensorer användes även för att mäta ljuskällan används som indata. Roboten är utrustad med en golvsensor som blir aktiverad när den befinner sig inne i regionen. Roboten får även vid varje tidssteg den aktuella energinivån som indata.

De beteendebaserade styrsystemens moduler evolveras fram i den miljö de är tänkta att utföras i, men de använder inte all den utrustning som är nämnd ovan. För modulers evolvering finns det ingen begränsning på energin, utan det finns energi för samtliga tidssteg som maximalt kan utföras.

Styrsystem, även inräknat beslutsenheter och moduler, evolveras fram genom en slumpmässig population av 100 individer över 2000 generationer. Vid varje generation väljs 20 av de bästa individerna ut med hjälp av metoden elitism och av dessa reproduceras de övriga 80 nya individerna med mutation av de 20 utvalda individerna. Respektive styrsystem/individ bland modulerna utför 100 tidssteg, medan de självlärda styrsystemen/individerna samt beslutsenheterna utför 300 tidssteg.

Robot 1A – självlärt styrsystem

Styrsystemet använder samma fitnessfunktion som Floreano och Mondada (1996) använde sig av. Fitnessfunktionen är F = V * (1-i). Där (V) är medelrotations- hastigheten av de båda hjulen och (i) är högsta sensoraktiviteten på IR sensorerna. (V) ska bidra med en högre hastighet och (1-i) med större distans till objekt runt omkring. Däremot i regionen ges ingen fitness. Förhoppningen är att fitnessfunktion kommer ge styrsystemet ett beteende att vilja röra på sig så fort som möjligt med båda hjulen och det utanför regionen där den endast kommer befinna sig korta stunder för att ladda upp energin.

Robot 1B – beteendebaserat styrsystem med beslutsenhet

Den första modulen, som ska undvika väggar och regionen samt ha maximal hastighet på båda hjulen, använder samma fitnessfunktion som robot 1A, F = V * (1-i).

Den andra modulen, som ska hitta till regionen och ladda upp energin, evolveras fram med nästan samma fitnessfunktion som robot 1A, F = V * (1-i). Det som skiljer är att det nu ges +10 i fitness när roboten befinner sig i regionen. Styrsystemet kommer då att sträva efter att finna regionen och vilja stanna där.

Beslutsenheten använder sig av de bästa individerna från respektive modul då den evolveras fram. Fitnessfunktionen för beslutsenheten är densamma som för robot 1A. Styrsystemet bör få ett beteende där beslutsenheten aktiverar modul ett först som kör runt roboten i miljön, däremot när energin börjar bli låg aktiveras modul två för att roboten ska åka och ladda upp energin. Därefter aktiveras modul ett igen och så fortsätter processen.

Bilaga A Experiment 1: Energisamlande robot

Robot 1C – beteendebaserat styrsystem med beslutsenhet

Den första modulen, som ska hitta till regionen och ladda upp energin, har samma fitnessfunktion och förutsättningar som modul två från robot 1B. Därför kommer endast en träning av modulen att utföras och användas i både robot B och C.

Den andra modulen, som ska undvika vägar och regionen, använder fitnessfunktionen F = (1-i), där (i) är högsta sensor aktiviteten på IR sensorerna. Styrsystemet får ingen fitness om roboten befinner sig i regionen, samt det ges –1000 i fitness om roboten krockar mot en vägg.

Den tredje modulen, som ska försöka ha maximal hastighet på båda hjulen, använder fitnessfunktionen F = (W1*W2), där (W1*W2) är produkten av de båda hjulens motoraktivitet. Modul får ingen bestraffning för att köra in i väggar, utan fokus är endast på hastigheten på hjulen. Styrsystemet får även fitness när den befinner sig inom regionen.

Beslutsenheten använder sig av de bästa individerna från respektive modul då den evolveras fram. Fitnessfunktionen för beslutsenheten är densamma som för robot 1A. Styrsystemet bör få ett beteende där beslutsenheten aktiverar modul tre när inga hinder finns framför. När roboten närmar sig en vägg eller regionen aktiveras modul två som undviker väggen eller regionen och gör det möjligt att aktivera modul tre igen. När robotens energi börjar bli låg aktiveras modul ett för att roboten ska åka och ladda upp energin. Därefter börjar proceduren om igen där modul två och tre turas om att aktiveras.

Robot 1D – beteendebaserat styrsystem med beslutsenhet

Den första modulen, som ska svänga vänster åt roboten, använder fitnessfunktionen F = (W2-W1). Där (W1) är motoraktiviteten för vänster hjul och (W2) är motoraktiviteten för höger hjul. Styrsystemet kommer sträva efter att ha hög motoraktivitet på höger hjul och låg motoraktivitet på vänster hjul. Roboten kommer då att svänga åt vänster.

Den andra modulen, som ska köra rakt fram, använder fitnessfunktionen F = (W1*W2), där (W1*W2) är produkten av de båda hjulens motoraktivitet. Denna modul är evolverad på samma sätt som den tredje modulen för robot 1C.

Den tredje modulen, som ska svänga höger åt roboten, använder fitnessfunktionen F = (W1-W2). Modulen använder en liknande fitnessfunktion som modul ett gör, fast nu kommer styrsystemet att sträva efter att ha hög motoraktivitet på vänster hjul och låg motoraktivitet på höger hjul. Roboten kommer då att svänga åt höger.

Beslutsenheten använder sig av de bästa individerna från respektive modul då den evolveras fram. Fitnessfunktionen för beslutsenheten är densamma som för robot 1A. Styrsystemet bör få ett beteende där en lämplig koordinationen mellan modulerna anpassas till miljön på bästa möjliga sätt. Det är svårt att i förhand komma fram till när modulerna ska aktiveras. Modul ett eller tre bör aktiveras när roboten närmar sig någon vägg för att kunna undvika dem. Men om det är endast då som dessa moduler kommer att aktiveras är osäkert och det får istället resultatet påvisa.

Bilaga B Experiment 2: Skräpplockande robot

Bilaga B Experiment 2: Skräpplockande robot

Tekniska detaljer angående skräpplockande robot

För experimentet används en simulerad Kheperarobot som är utrustad med 8 stycken IR sensorer, 6 fram och 2 bak, som känner av avstånd till nära omkringliggande objekt. Handsensor som är aktiv om roboten bär på ett objekt, annars är den inaktiv. De beteendebaserade styrsystemens moduler evolveras fram i den miljö de är tänkta att utföras i, men de är inte utrustade med handsensorn utan endast 8 IR sensorer. Styrsystem, även inräknat beslutsenheter och moduler, evolveras fram genom en slumpmässig population av 100 individer i 1000 generationer. Vid varje generation väljs 20 av de bästa individerna ut och av dessa skapas 80 nya individer. Varje individ för en generation utför 15 epoker och 200 tidssteg vid varje epok.

Robot 2A – självlärt styrsystem

Styrsystemet använder en liknande fitnessfunktion som Nolfi (1997a) använde sig av. Styrsystemet får endast belöningar när den plockar upp eller släpper ett objekt. Fitnessfunktionen ger +5 när den har plockat upp ett objekt och +100 när den släpper objektet. Det som skiljer våra fitnessfunktioner åt är hur stor belöning styrsystemet ges. Nolfi gav också en större belöning för att släppa ett objekt än för att plocka upp ett. Nolfi motiverar ett högre värde när roboten släpper ett objekt med att det tvingar den evolutionära processen att välja individer som klarar av att utföra hela processen, att både plocka upp och släppa ett objekt.

För det självlärda styrsystemet testades flera olika arkitekturer, men i rapporten visas endast den arktitektur som gav bäst resultat. De övriga arkitekturerna som testades kan ses i figur B1.

Figur B1 Arkitekturer som testades för det självlärda styrsystemet

Resultatet från dessa arkitekturer kan ses i tabell B1 där det framgår att samtliga av arkitekturerna fick sämre resultat än robot 2B, men bättre reslutat än vad robot 2C kunde prestera.

Bilaga B Experiment 2: Skräpplockande robot

Test på 500 tidssteg \ Styrsystem

Arkitektur A Arkitektur B Arkitektur C Arkitektur D

Maxantal utsläppta objekt under en epok

12 15 15 10 Medelantal utsläppta

objekt / epok

3,19 4,01 3,55 4,21

Tabell B1 Presenterar resultat på de bästa individerna från respektive arkitekturer av de självlärda styrsystemen för utförande av 500 tidssteg.

Från tabell B2 framgår det att samtliga arkitekturer återigen fick sämre resultat än robot 2B, däremot är inte samtliga arkitekturer bättre än robot 2C, utan till exempel visar arkitektur C sämre resultat. För arkitekturen C klarar endast 2,2 % av försöken av att tömma miljön helt på objekt.

Test på 5000 tidssteg \ Styrsystem

Arkitektur A Arkitektur B Arkitektur C Arkitektur D Klarade släppa ut ett

objekt

79,14 % 78,03 % 84,02 % 98,42 %

Klarade släppa ut två objekt

67,23 % 71,42 % 75,52 % 97,09 %

Klarade släppa ut tre objekt

56,07 % 66,20 % 58,85 % 94,78 %

Klarade släppa ut fyra objekt

48,07 % 58,60 % 34,22 % 87,00 %

Klarade släppa ut fem objekt

41,03 % 40,96 % 12,54 % 65,03 %

Klarade släppa ut samtliga objekt

34,78 % 14,93 % 2,20 % 29,46 %

Tabell B2 Presenterar resultat på de bästa individerna från respektive arkitektur av de självlärda styrsystemen för utförande av 5000 tidssteg och där uppgiften var att tömma miljön på objekt.

Robot 2B – beteendebaserat styrsystem med beslutsenhet

Den första modulen, som ska lokalisera objekt och plocka upp dem, använder en fitnessfunktion som ger belöningen +100 när roboten plockar upp ett objekt och bestraffningen –1 om den krockar med en vägg. För att få styrsystemet att köra roboten så rakt som möjligt används även fitnessfunktionen F = (W1*W2), där (W1*W2) är produkten av de båda hjulens motoraktivitet. När roboten har plockat upp eller rättare sagt kört på ett objekt förflyttas roboten till en ny position inom regionen där roboten automatiskt släpper objekt. Objektet som roboten plockade upp ställs tillbaka på den position där den var innan den plockades upp och roboten är åter redo att plocka upp ett nytt objekt. Styrsystemet kommer då att kunna hantera situationer då den blir aktiverad nära en vägg och därifrån kunna börja söka efter ett objekt.

Bilaga B Experiment 2: Skräpplockande robot

Den andra modulen, som ska släppa objektet den bär på vid en vägg, använder en fitnessfunktion som ger belöningen +100 när roboten åker in regionen där den automatisk släpper objektet. Styrsystemet bestraffas med –1 om den kör på ett objekt. Det ges en bestraffning direkt om roboten kör på ett objekt på grund av att den hela tiden bär på ett objekt. När roboten släpper ett objekt eller rättare sagt åker in i regionen där det sker automatiskt förflyttas roboten till en ny slumpmässig position innanför regionen där roboten släpper objekten. Även för denna modul används också fitnessfunktionen F = (W1*W2) för att få styrsystemet att köra roboten så rakt som möjligt, där (W1*W2) är produkten av de båda hjulens motoraktivitet.

Beslutsenheten använder sig av de bästa individerna från respektive modul då den evolveras fram. Fitnessfunktionen för beslutsenheten är densamma som för robot 2A. Styrsystemet bör få ett beteende där beslutsenheten aktiverar modul ett först som lokaliserar ett objekt och plockar upp det genom att köra på det. När roboten har plockat upp objektet aktiveras modul två för att åka mot en vägg för att släppa objektet. När roboten har åkt nära en vägg släpps objektet automatiskt och då aktiveras modul två igen.

Robot 2C – beteendebaserat styrsystem med beslutsenhet

Den första modulen, som ska svänga vänster åt roboten, använder fitnessfunktion F = (W2-W1). Där (W1) är motoraktiviteten för vänster hjul och (W2) är motoraktiviteten för höger hjul. Styrsystemet kommer sträva efter att ha hög motoraktivitet på höger hjul och låg motoraktivitet på vänster hjul. Roboten kommer då att svänga åt vänster. Den andra modulen, som ska köra rakt fram, använder fitnessfunktionen F = (W1*W2), där (W1*W2) är produkten av de båda hjulens motoraktivitet. Modulen får ingen bestraffning för att köra in i några väggar, utan fokus är endast på hastigheten på hjulen.

Den tredje modulen, som ska svänga höger åt roboten, använder fitnessfunktionen F = (W1-W2). Använder en liknande fitnessfunktion som modul ett gör, fast nu kommer styrsystemet att sträva efter att ha hög motoraktivitet på vänster hjul och låg motoraktivitet på höger hjul. Roboten kommer då att svänga åt höger.

Beslutsenheten använder sig av de bästa individerna från respektive modul då den evolveras fram. Fitnessfunktionen för beslutsenheten är densamma som för robot 2A. Styrsystemet bör få ett beteende där en lämplig koordination mellan modulerna anpassad till miljön på bästa möjliga sätt. Det är svårt att i förhand komma fram till när modulerna ska aktiveras. Modul ett eller tre bör aktiveras när roboten närmar sig en vägg eller ett objekt när den redan plockat upp ett för att kunna undvika dem. Men om det är endast så dessa moduler kommer aktiveras eller om båda modulerna ens kommer att användas är osäkert och det får istället resultatet påvisa.

Related documents