1 / 36

Intelektikos pagrindai

Intelektikos pagrindai. P160B100 2012 m. Robertas Damaševičius r obertas.damasevicius @ktu.lt. Tipinio roboto programavimo pavyzdys: Braitenbergo mašina. Turinys. Tipin ė roboto strukt ū ra Braitenbergo mašina – gerai žinomas teorinis roboto modelis Braitenbergo mašinos programavimas

sally
Download Presentation

Intelektikos pagrindai

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Intelektikos pagrindai P160B100 2012 m. Robertas Damaševičius robertas.damasevicius@ktu.lt

  2. Tipinio roboto programavimo pavyzdys:Braitenbergo mašina

  3. Turinys • Tipinė roboto struktūra • Braitenbergo mašina – gerai žinomas teorinis roboto modelis • Braitenbergo mašinos programavimas • Braitenbergo mašina ir kvantiniai skaičiavimai

  4. Tipinė roboto struktūra (1) • Jutimas – renka ir apdoroja iš jutiklių gaunamą informaciją • Modelio sukūrimas – kuria savo aplinkos modelius tikslu judėti aplinkoje ir planuoti savo veiksmus • Sprendimas – remiantis savo jutiklių pateikta informacija pasirenka tinkamą veiksmą • Planavimas – iš vartotojo nustatytų tikslų sukuria tikslams reikalingų pasiekti veiksmų seką

  5. Tipinė roboto struktūra (2) • Veikimas – pageidaujamo veiksmo konvertavimas į atitinkamą fizinį veiksmą (pvz., judesį) • Valdymas – atlieka dabartinio veiksmo pasirinkimą iš turimos veiksmų sekos • Vadovavimas – atliekamas roboto elgsenų ir komponentų įjungimas, išjungimas ir konfigūravimas • Veiksmo pasirinkimas – tinkamiausio veiksmo pasirinkimas iš kelių galimai tinkamų veiksmų variantų

  6. Braitenberg’o mašina • Jei roboto forma yra simetrinė bent vienos ašies atžvilgiu ir jis turi du ratus, tai judėjimą galima realizuoti Braitenberg’o mašinos modeliu. • Braitenberg’o mašina yra paprasčiausias mobilus robotas.

  7. Braitenberg’o mašinos dalys Kairysis fotoelementas Dešinysis fotoelementas Buferis Dešinysis IR daviklis Kairysis IR daviklis Ratai • Buferis nustato, ar įvyko susidūrimas. • Sienos nepraleidžia šviesos. • Sienos atspindi infraraudonuosius spindulius. • Šviesos šaltiniai pakabinti lubose.

  8. Braitenberg’o mašina • Ratai yra tiesiogiai sujungti su atstumo jutikliais įvedant jiems svorius panašiai kaip dirbtiniuose neuroniniuose tinkluose. • Kiekvienam ratui valdyti, gaunamos jutiklių vertės padauginamos iš svorių, o sandaugos susumuojamos. • Gauti rezultatai perduodami ratų motorams. • Jeigu jungtis yra teigiama (stiprinanti), rato sukimosi greitis yra proporcingas jutiklio signalo vertei. • Jeigu jungtis yra neigiama (slopinanti), rato sukimosi greitis yra priešingai proporcingas jutiklio signalo vertei. • Jeigu į ratą ateina neigiamas suminis signalas – ratas pradeda suktis atgal.

  9. Pagrindiniai principai Jei signalas slopinamas, robotas artėja link šviesos Minuso ženklas reiškia neigiamą grįžtamąjį ryšį

  10. Pagrindiniai principai Jei slopinami signalai sukryžiuoti, robotas tolsta nuo šviesos

  11. Paprasčiausios Breitenberg‘o mašinos • a) Kiekvienas jutiklis sujungtas su varikliu toje pačioje pusėje • b) Kiekvienas jutiklis sujungtas su varikliu priešingoje pusėje • c) Kiekvienas jutiklis sujungtas su varikliais abejose pusėse

  12. Braitenberg‘o tipo valdymo sistemos struktūra • Bendruoju atveju gali būti daug jutiklių • Kiekviena jungtis gali būti: • stiprinanti (didinanti rato variklio greitį; žymima „+“) arba • silpninanti (mažinanti rato variklio greitį; žymima „-„) • Storesnės jungčių linijos rodo, kad iš jutiklių perduodamos reikšmės motorams turi didesnius svorius

  13. Breitenberg‘o mašinos elgsenos tipai 1 • 1) „Gyvybė“ • 2a) “Baimė” • 2b) “Agresija” • 3) “Meilė” 3 2b 2a

  14. Braitenbergo mašinos elgsena: “gyvybė” • 1-tipo mašina gali važiuoti tik tiesiai • Judėjimo greitis proporcingas jutiklio grąžinamai reikšmei

  15. Braitenbergo mašinos elgsena: “baimė” • 2a-tipo mašina su stiprinančiomis jungtimis stengiasi patekti į zoną, kurioje jos jutikliai bus mažiau aktyvuojami • Jeigu jutikliai reaguoja į šviesą, tuomet jutiklis esantis arčiau šviesos šaltinio privers atitinkamą ratą suktis greičiau ir robotas nusuks į šoną, tuo pademonstruodamas “baimės” elgseną.

  16. Braitenbergo mašinos elgsena: “agresija” • 2b-tipo mašina su stiprinančiomis jungtimis stengsis artėti prie šviesos šaltinio, tuo demonstruodama “agresijos” elgseną

  17. Braitenbergo mašinos elgsena: “meilė” • 3-tipo mašina su silpninančiomis jungtimis stengsis artėti prie šviesos šaltinio • Artėjant varikliai veiks vis silpniau, todėl robotas visą laiką bus šviesoje atsigręžęs į šviesos šaltinį, tačiau niekada nepasieks jo, tuo demonstruodamas “meilės” elgseną. • Tyrinėtojo elgesys • Jei aptinka stipresnį šviesos šaltinį, pradeda artėti prie jo

  18. 4 tipo mašina • Turi „vertybes“ (instinktus) • 4a tipas: Variklio aktyvavimo funkcija yra netiesinė (nemonotoninė), pvz., pasiekus max reikšmę vėl mažėja • Elgesys tampa sudėtingu: • mašina artėja prie šviesos šaltinio, o po to vėl nutolsta • arba sukasi aplink šaltinį tam tikru spinduliu • 4b tipas: aktyvavimo funkcija yra trūki • esant tam tikroms reikšmėms, mašina sustoja

  19. Sudėtingos Braitenbergo mašinos • 5: Logika • Įvedamos loginės elgesio taisyklės • Atminties pradmenys • 6: Pasirinkimas • Įvedamas atsitiktinumo pasirenkant faktorius • Pvz., realizuojami genetiniai algoritmai • 7: Koncepcijos • Mašina gali mokytis • Gali pati modifikuoti savo jungtis tarp jutiklių ir variklių • Gali būti realizuota naudojant Hebb learning algoritmą • 8: Erdvė • Robotas turi jutiklius ir algoritmus reikalingus žemėlapiui sudaryti

  20. Sudėtingos Braitenbergo mašinos • 9: Formos • Robotas gali atpažinti išorinių daiktų formas • 10: Samprotavimas • Robotas iš loginių teiginių gali išvesti naujus teiginius (elgesio taisykles) • 11: Taisyklės • Robotas pats gali susidaryti pasaulio modelį • 12: Reflektyvumas • Robotas žino savo „mąstymo“ taisykles (būsenas) ir pats gali keisti jų parametrų reikšmes • 13: Numatymas • Robotas gali prognuozuoti savo veiksmus ir aplinkos būseną ateityje • 14: Malonumas • Robotas pats gali pasirinkti savo būsimą būseną

  21. Change the vehicle behavior? // Sensor output goes directly to wheel on same side void doSenseLogic() { setASpeed(sA.getSense()); setBSpeed(sB.getSense()); } // Sensor output crossed to wheel on opposite side /* void doSenseLogic() { setASpeed(sB.getSense()); setBSpeed(sA.getSense()); }*/ // Each sensor goes to wheel on same side with an inhibitory connection /* void doSenseLogic() { setASpeed(sA.getInverseSense()); setBSpeed(sB.getInverseSense()); } */ // Each sensor goes to wheel on opposite side with an inhibitory connection /* void doSenseLogic() { setASpeed(sB.getInverseSense()); setBSpeed(sA.getInverseSense()); } */ // Sensors are hooked up to opposite motors, with threshhold sensing. /* void doSenseLogic() { setASpeed(sB.getNonlinearSense()); setBSpeed(sA.getNonlinearSense()); } */ • Elgseną valdo doSenseLogic()metodas

  22. Braitenbergo mašinos valdymo architektūra Jutikliai Loginės taisyklės Vykdikliai Aplinka

  23. Braitenbergo automatas Jutikliai Loginės taisyklės Vykdikliai Atmntis Aplinka

  24. Modeliavimas • Braitenbergo mašiną galima modeliuoti naudojant įvairaus tipo signalus • Analoginius • Dvejetainius • Daugiareikšmius • Miglotosios logikos • Kvantinius

  25. Kvantiniai skaičiavimai • Klasikiniai kompiuteriai skaičiavimams naudoja bitus, kurių reikšmė gali būti 0 arba 1. • Kvantiniai kompiuteriai skaičiavimams naudoja kubitus (qubits), kurių reikšmė gali būti: • 0 arba • 1 arba • 0 ir 1 superpozicija • Teorinis pagrindas: kvantinė mechanika (fizika)

  26. Miglotosios logikos blokas vykdikliai ML atmintis Jutikliai F/Q Kvantinių skaičiavimų blokas Q/F Kvantinė atmintis Hibridinė architektūra su ML ir kvantinės logikos posistemėmis APLINKA

  27. Breitenberg‘o mašinos algoritmas (Java) float l = MINIMAL_SPEED; float r = MINIMAL_SPEED; /* turn away from obstacles */ l = l + GetProximitySensor(FRONTLEFT) - GetProximitySensor(FRONTRIGHT); r = r + GetProximitySensor(FRONTRIGHT) - GetProximitySensor(FRONTLEFT); /* turn towards light sources */ r = r + GetLightSensor(LEFT) - GetLightSensor(RIGHT); l = l + GetLightSensor(RIGHT) - GetLightSensor(LEFT); /* normalize speed to [-1 ; +1] */ l = l / (4f + MINIMAL_SPEED); r = r / (4f + MINIMAL_SPEED); /* set the motors */ SetMotorSpeed(LEFTMOTOR,l); SetMotorSpeed(RIGHTMOTOR,r);

  28. MotorTest.java import josx.platform.rcx.*; class MotorTest { static final int STOP = 0; static final int RUN = 1; static final int FLOAT = 2; static int mode = STOP; static int power = 0; public static void main(String [] args) { setupButtonListeners(); while (true) { if (mode == RUN) { Motor.A.setPower( power ); Motor.A.forward(); } else if (mode == STOP) { Motor.A.stop(); } else if (mode == FLOAT) { Motor.A.flt(); } } } ... (button listener code not shown)

  29. LightTest.java import josx.platform.rcx.*; class LightTest implements SensorConstants { public static void main(String [] args) throws InterruptedException { Sensor.S1.setTypeAndMode (SENSOR_TYPE_LIGHT, SENSOR_MODE_PCT); Sensor.S1.activate(); while (true) { int lightReading; if (Button.VIEW.isPressed()) { lightReading = Sensor.S1.readRawValue(); } else { lightReading = Sensor.S1.readValue(); } LCD.showNumber( lightReading ); } } }

  30. Aggressive.java class aggressive implements SensorConstants { public static void main(String [] args) { int minBright = 100; final int gain = 12; Sensor.S1.setTypeAndMode (SENSOR_TYPE_LIGHT, SENSOR_MODE_PCT); Sensor.S1.activate(); Sensor.S3.setTypeAndMode (SENSOR_TYPE_LIGHT, SENSOR_MODE_PCT); Sensor.S3.activate(); for (int i = 0; i < 100; i++) { if (Sensor.S1.readValue() < minBright) {minBright = Sensor.S1.readValue();} else if (Sensor.S3.readValue() < minBright) {minBright = Sensor.S3.readValue();} Thread.sleep(20); } Motor.A.forward(); Motor.C.forward(); while (true) { int motorASpeed = (Sensor.S3.readValue() - minBright) / gain; int motorCSpeed = (Sensor.S1.readValue() - minBright) / gain; setMotorSpeed(Motor.A, motorASpeed); setMotorSpeed(Motor.C, motorCSpeed); } }

  31. Aggressive.java (continued) protected static void setMotorSpeed(Motor m, int motorSpeed) { if (motorSpeed < 1) { m.flt(); // important LCD.showNumber(-1); } else { if (motorSpeed > 7) { motorSpeed = 7; } m.forward(); m.setPower(motorSpeed); LCD.showNumber(motorSpeed); } } }

  32. Įvertinimas • Breitenberg‘o mašina įrodo, kad net ir paprastos architektūros robotas gali turėti sudėtingą elgseną, panašią į primityvių biologinių būtybių (pvz., vabzdžių) elgseną.

  33. Įvertinimas • Braitenberg‘o mašina paprastų elgsenų pagalba leidžia modeliuoti emocijas • Emocijos (sudėtinga elgsena) modeliuojamos kaip paprastų elgsenų (artėti/tolti nuo šviesos šaltinio) sintezė • Tokio tipo sistemą Brooks‘as vadino intelektualia • Emocijos atsiranda savaime, kaip elgesio sudėtingėjimo (evoliucijos) pasekmė

  34. Breitenberg‘o mašinos simuliatoriai • Java applet‘ai • http://www.ifi.unizh.ch/~llicht/newsimu/SimApplet.html • http://www.ai.rug.nl/~gert/applets/braitenbergJRE/ • http://kovan.ceng.metu.edu.tr/~ilke/Braitenberg/BraitenbergEN/.bin/sim.html • http://cs.nmu.edu/~jeffhorn/Classes/MA240/Fall2007/NateLyleSimulator.html

  35. Literatūra (1) • Pagrindinis: • V. Braitenberg. Vehicles: Experiments in Synthetic Psychology. http://books.google.lt/books?id=7KkUAT_q_sQC&printsec=frontcover&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false • R. Pfeifer and C. Scheier.Understanding Intelligence.The MIT Press. https://academics.skidmore.edu/wikis/Fvehicles/images/Pfeifer1996.pdf Kiti: • Taavi Salumae, Iñaki Rañó, Otar Akanyeti, Maarja Kruusmaa: Against the flow: A Braitenberg controller for a fish robot. ICRA 2012:4210-4215 • Iñaki Rañó: An Introduction to the Analysis of Braitenberg Vehicles 2 and 3 Using Phase Plane Portrait. SAB 2012:23-32 • Iñaki Rañó: An Empirical Evidence of Braitenberg Vehicle 2b Behaving as a Billiard Ball. SAB 2010:293-302 • X. Yang, R. V. Patel, Mehrdad Moallem: A Fuzzy-Braitenberg Navigation Strategy for Differential Drive Mobile Robots. Journal of Intelligent and Robotic Systems (JIRS) 47(2):101-124 (2006)

  36. Literatūra (2) • Kvantiniai skaičiavimai robotikoje • M. Lukac and M. Perkowski, "Quantum mechanical model of emotional robot behaviors". Proc. of Int. Symp. on Multiple-Valued Logic, Oslo, May 2007. • M. Lukac, D. H. Kim, Normen Giesecke, Sazzad Hossain and Marek Perkowski, "Quantum Behaviors: Synthesis and Measurement." Proc. of RM Symposium, Oslo, May 16, 2007. • M. Perkowski, "Quantum Robots. Now or Never?". Invited Talk at the 5th National Conference on Informatics. Gdansk, Poland. May 2007.

More Related