Išmanieji metodai robotikoje PDF
Document Details
Uploaded by FlatterJasper7622
Tags
Summary
This document provides an overview of intelligent methods in robotics. It covers topics such as computational intelligence, heuristic methods, and virtual physics, using examples to illustrate each concept.
Full Transcript
Išmanieji metodai robotikoje Kompiuterinis (computational) intelektas - gebėjimas išmokti konkrečią užduotį iš duomenų ar eksperimentinio stebėjimo....
Išmanieji metodai robotikoje Kompiuterinis (computational) intelektas - gebėjimas išmokti konkrečią užduotį iš duomenų ar eksperimentinio stebėjimo. Euristiniai metodai - remiasi analogija su gamta Virtualioji fizika – gamtos jėgos Dirbtiniai neuroniniai tinklai – gyvų organizmų nervų sistema Evoliuciniai skaičiavimai / Skaitinis intelektas Genetiniai algoritmai – gyvųjų organizmų (computational intelligence) dauginimasis ir evoliucija Paskaitos turinys Virtualiosios fizikos metodai Dirbtinio intelekto (DI) metodai Apmokymas su paskatinimu Neuroniniai tinklai Evoliuciniai skaičiavimai Virtuali (dirbtinė) fizika Vienas iš euristinių robotų valdymo metodų (physicomimetics – fizikinė mimetika) Robotus valdo virtualios jėgos, panašios į gamtos fizines jėgas, Roboto jutikliai turi gauti pakankamai informacijos, kad apskaičiuotų robotą „veikiančią“ jėgą Jėgos apskaičiuojamos pagal gamtos dėsnių analogiją Tamprumo jėgos laukas Elektrostatinis laukas (elektros krūvių sąveika) Gravitacijos laukas (kūnų su svoriu sąveika) Dirbtiniai laukai Robotų valdymas naudojant virtualią fiziką Prielaidos: Robotai yra fizinės dalelės Matmenys – taškiniai (dydžio galima nepaisyti) Egzistuoja dviejose ar trijose dimensijose Kiekvienas robotas turi poziciją x ir greitį v. Laikas yra diskretus, kinta kas dt Apribojimai: Parametras Fmax, kuris riboja didžiausią roboto juntamą jėgą. Parametras Vmax riboja didžiausią roboto greitį Traukos laukas Stūmos laukas Virtualių jėgų laukai Traukos laukai (gravitacinis laukas arba elektrostatinis laukas tarp skirtingo ženklo krūvių) Suminis laukas Stūmos laukai (elektrostatinis laukas tarp to paties ženklo krūvių) Visas potencialų laukas taške x apibrėžiamas kaip visų stūmos ir traukos laukų suma šiame taške Vektorinė dviejų virtualių laukų suma Robotą veikiantis jėgų laukas yra traukos ir stūmos laukų vektorinė suma (superpozicija) Robotų valdymas naudojant virtualią fiziką Kiekvienu laiko žingsniu, dalelės padėtis kinta dydžiu dx , kuris priklauso nuo greičio, t.y. dx = v · dt. Dalelės greitis kiekviename žingsnyje keičiasi dydžiu dv. Greičio pokytį dv = F · dt, lemia dalelę veikianti jėga F. Stabilizavimui naudojama trinties jėga, kaip trinties koeficiento ir greičio sandauga. Tamprumo x jėgos laukas Robotą veikiančios jėgos modeliavimui naudojama spyruoklę veikianti jėga Huko dėsnis: F = - k · x k – tamprumo koeficientas (konstanta) x – atstumas iki tikslo. Jei robotas yra toliau nei x, jį traukia Jei robotas yra arčiau nei x, jį stumia Elektrostatinis laukas Lennard-Jones funkcijos potencialo laukai Tipinė užduotis: kliūčių vengimas Naudokite atvirkštinį kvadratinį dėsnį η yra stūmimo koeficientas, o ρ (q, q_obs) reiškia atstumą tarp objekto ir kliūties. q_0 yra kiekvienos kliūties įtakos laukos spindulys. Kliūčių vengimas Robotą veikiančią jėgą galime apibrėžti taip: kur f vektorius yra jėga, vektorius r yra atstumas nuo roboto iki artimiausio objekto. Bendra roboto juntama stūmos jėga yra visų sukurtų kliūčių jėgų suma: Kad robotas judėtų tikslo link, pridedame traukos jėgą: Tipinė užduotis: kelio planavimas Problema: rasti kelių seką, kuri perkelia robotą į paskirties vietą. Reikalavimai: Vengti kliūčių Pasiekti tikslą Tikslas: apsuptas traukos lauko. a) aplinka, b) traukos laukas link tikslo Kliūtys: apsuptos stūmos laukų. c) stūmos laukas nuo kliūčių, d) vektorinių laukų suma Brūkšniuota linija rodo roboto kelią. Žvaigždutė žymi vietinį minimumą Idealus rezultatas: judėti tikslo link vengiant susidūrimo su kliūtimis. Dinamiškos kliūtys: greitai atnaujinant potencialų lauką išvengiama judančių kliūčių. Optimalus kelias – kelias su mažiausia kaina Gauta roboto trajektorija Į jėgų lauką galima žiūrėti kaip į funkcijos reikšmių kraštovaizdį Robotas pereina nuo didelės funkcijos reikšmės prie mažos reikšmės naudojant „nuokalnės“ kelią (t.y neigiamą gradientą). Tai vadinama nusileidimu – robotas leidžiasi žemyn funkcijos reikšmės paviršiumi, kol pasiekia funkcijos minimumą Galimos dirbtinių laukų problemos Vietiniai minimumai Traukos ir stūmos jėgos gali susilyginti, todėl robotas nejuda Arti esančios kliūtys arba aklavietė. Galimos dirbtinių jėgos laukų problemos Spąstai Vietinis minimumas kliūtyje Nestabilumas Roboto/aplinkos sistemos dinamika gali tapti nestabili. Didelis greitis, siauri koridoriai, staigūs pokyčiai. Rotaciniai ir atsitiktiniai laukai Atsitiktinis laukas. Leidžia išvengti kai kurių vietinių minimumų Pridedamas sūkimosi laukas aplink kliūtis Panaikina simetriją Leidžia išvengti kai kurių vietinių minimumų Galimos dirbtinių jėgos laukų problemos Judančios kliūtys Kai roboto greitis arba judančios kliūties greitis yra didelis, robotas gali susidurti su judančiomis kliūtimis Kelio planavimas: Navigacijos funkcija Padėties, greičio, pagreičio ir laiko funkcija, kuri naudojama planuojant roboto trajektorijas per aplinką. Dirbtinė potencialo funkcija, kuri neturi minimalių taškų, išskyrus tikslo tašką. Norint pasiekti tikslinę padėtį, robotui tereikia sekti neigiamą paviršiaus gradientą. Kliūtims priskiriama didelė potencialo vertė, o tikslui - mažas potencialas. Tikslas: sukurti įmanomus, saugius kelius, kurie vengia kliūčių, tuo pačiu leisdami robotui pasiekti tikslą Tikimybinė navigacijos funkcija Įvedama leistina susidūrimo tikimybė, kuri riboja riziką (iki nustatytos vertės) roboto judėjimo metu. Tikimybinė navigacijos funkcija planuoja kelią nuo roboto iki tikslo, kuris subalansuoja riziką susidurti ir aplinkkelius, būtinus pavojingiems regionams išvengti. Potencialų laukas konstruojamas taip, kad kiekvieną robotą „stumtų“ kiti robotai ir kliūtys Rezultate visi robotai tolygiai pasiskirstys teritorijoje Robotų Kiekvieną robotą veikia jėga išsiskirstymas: F – jėga, U – potencialų laukas, - gradientas potencialų Kiekvienas robotas ir kliūtis turi potencialą k0 – potencialo stiprumas, ri – atstumas nuo roboto iki kliūties lauko metodas (kito roboto) Roboto judėjimą aprašo lygtis X‘‘ – pagreitis (greičio pokytis), x‘ – greitis, m – roboto masė, v – trinties koeficientas Trinties koeficientas reikalingas tam, kad nesant išorės jėgų poveikiui robotas sustotų, t.y. po tam tikro laiko visa sistema pereina į statinės pusiausvyros būseną Tyrinėjimo Apskaičiuojamas Lennard-Jones elgsena jėgos potencialų laukas ir kiekvieną robotą veikianti pusiausvyros jėga Apskaičiuojama roboto greičio vektoriaus kryptis, kur Fx ir Fy yra jėgos projekcijos x ašyje ir y ašyje. Robotai, esantys grupės pakraštyje, pradeda tolti, kad ištirtų neaplankytą plotą ir tai „traukia“ visą būrį, nes kiti robotai seka tyrinėjančius robotus, kad išlaikytų grupės struktūrą. Teritorijos padengimas: simuliacija Prieš simuliaciją ir simuliacijos metu Klausimai? Dirbtinis intelektas (AI) simuliuoja žmogus intelektas mašinose, kurios yra užprogramuotos mąstyti kaip žmonės ir mėgdžioti jų veiksmus bet kokia mašina, kuri pasižymi charakteristikomis, paprastai susijusiomis su žmogaus protu, pvz mokymusi ir Dirbtinis problemų sprendimu. bet koks įrenginys („protingas robotas“), kuris suvokia savo aplinką ir imasi veiksmų kurie maksimaliai padidina jo intelektas galimybes pasiekti tikslus. Dvi rūšys: Stiprus AI - protingo roboto gebėjimas suprasti ar išmokti bet kokią intelektinę užduotį, kurią žmogus gali atlikti Silpnas AI – algoritmų naudojimas konkrečioms iš anksto išmoktoms problemų sprendimo ar samprotavimo užduotims tirti ar atlikti (ekspertinės sistemos) Save apsimokančios sistemos Apsimokančios sistemos sukuria programą indukcijos pagalba iš pateiktų pavyzdžių. Naudojami dirbtiniai neuroniniai tinklai arba kiti mašininio apmokymo metodai Etapai: 1. Robotas stebi, kaip atliekama užduotis 2. Geri pavyzdžiai naudojami valdymo programai sukonstruoti 3. Robotas bando atlikti užduotį pats Apmokymas su paskatinimu Aplinka Veiksmas (Reinforcement learning) Mašininio mokymo metodas, pagrįstas atlygiu už Būsena, norimą elgesį ir baudimu už nepageidaujamą Atlygis elgesį. Robotas mokosi interaktyviai bandymų ir klaidų metodu atsižvelgdamas į gaunamą grįžtamąjį ryšį apie Apmokymo metodas savo veiksmų rezultatus aplinkoje. (dirbtinis intelektas) Robotas turi būseną, reaguoja į aplinką, atlieka veiksmus ir kartais gauna atlygį ir pagal gautą atlygį keičia savo būsena Robotas yra apdovanojamas, jei pasiekia savo tikslą Pvz., kuo arčiau seka pageidaujama trajektorija Apmokymo su paskatinimu Aplinka principai (vertintojas) 1 Veiksmai Besimokantis agentas 2 Atlygio kaupimas (robotas) 3 Vertinimas Veiksmai 4 Veiksmų optimizavimas Atlygis Rezultatai Pavyzdys: Vaikščiojantis robotas Pradinis etapas: Robotas atlieka atsitiktinius veiksmus, dažnai Vaikščiojančio nukrenta ar juda netikslingai. roboto Patirties kaupimaspagal gautą atlygį ar baudą.: Kiekvieno veiksmo pasekmės įvertinamos apmokymas Politikos (strategijos) atnaujinimas: Remdamasis patirtimi, robotas koreguoja savo veiksmus, kad padidintų bendrą gautą atlygį per laiką. Iteracinis mokymasis: Procesas kartojamas daug kartų, kol robotas išmoksta optimaliai vaikščioti. Roboto apmokymas vaikščioti https://youtu.be/yJrX7oOwkoA https://youtu.be/dQ0nqD3lo9o Pavyzdys: Robotų futbolas Geras būdas testuoti daugelio robotų sistemų elgsenos valdymo algoritmus Daugelio robotų sistema Robotai nepriklausomi Sudėtinga ir dinaminė aplinka Realaus-laiko elgsena Laukas ir kamuolys - aplinka https://www.youtube.com/watch?v=_PC- V5GJP6Q Atlygio funkcijos Komandos atlygis Paskatinimas už įmuštą įvartį Vieno roboto atlygis Paskatinimas už sėkmingai atliktą veiksmą (pvz., kamuolio perėmimą, perdavimą, atmušimą,...) Evoliucinė robotika Genetinio algoritmo taisyklės Roboto elgsena aprašoma genų vektoriumi (chromosoma) Sugeneruojama pradinė galimų sprendimų aibė („individai“) Naudojamos kryžminimo, mutacijos ir atrinkimo operacijos Kryžminimas leidžia generuoti naujus sprendimus iš esamos populiacijos Mutacija pakeičia vieną ar daugiau genų reikšmių chromosomoje Atrinkimas atliekamas naudojant gerumo funkciją, kuri įvertina sprendimo kokybę Kiekvienoje kartoje atrenkami geriausi individai, kurie naudojami kitos kartos sprendimų aibei sugeneruoti 38 Roboto kelio planavimas Tikslas: robotų kelio planavimas Paskirtis: optimizuoti kiekvieno roboto kelią, kad išvengti susidūrimų, ir sutrumpinti kelionės trukmę Metodas: pritaikyti genetinį algoritmą, kad optimizuoti kiekvieno roboto kelią Kelio genetiniai operatoriai Mutacija Chromosoma – kelių atvaizdavimas Kelio Chromosoma Pavyzdžiai atvaizdavimas Eilute Užkoduojam 0-1-2-6-9-11- užkuoduotas a grafo 15-17-22-25- sprendimas mazgų 26 (kelias) aplankymo 0-4-8-10- tvarka 1520-23-26 Kryžminimas Tikslas: Keistis informacija iš dviejų pasirinktų chromosomų Kryžminimo taškas: pirmasis identiškas abiejų tėvų mazgas Pavyzdys: Tėvas1: 0-1-2-6-9-11-15-17-22- 25-26 Tėvas2: 0-4-8-10-15-20-23-26 Vaikas1: 0-1-2-6-9-11-15-20-23- 26 Vaikas2: 0-4-8-10-15-17-22- 25-26 Mutacijos operatorius Mutacijų dažnis yra mažas (norint išvengti lokalaus minimumo) 1. Atsitiktinai pasirinkti vieną geną (mazgą) mutuoti 2. Tolesni mazgai parenkami atsitiktinai iš nuosekliai sujungtų mazgų Vertinimas Gerumo funkcija: kelio ilgis, energijos sąnaudos kelionės laikas Prižiūrimas apmokymas Tikslas: išmokti roboto elgsenos valdymo algoritmą (modelį) D. Pierce, B.J. Kuipers, Map learning with un-interpreted sensors and effectors, Artificial Intelligence 91:169-227. Prižiūrimi AI metodai „išmoksta“ valdymo modelį, apmokomi įvesties duomenų ir žinomų išvesties duomenų porų Tada modelis gali būti naudojamas kaip valdiklio programavimui, planavimui ir kt. 45 Neuroninius tinklus sudaro: Dirbtinių neuronų sluoksniai Svoriai jungiantis neuronus tarp Klasikiniai dirbtiniai sluoksnių Įvairių tipų (architektūrų) neuronų neuroniai tinklai tinklai: Daugiasluoksniai tinklai Konvoliuciniai Rekurentiniai ▪ Problema: kaip pasirinkti tinklo dydį ir struktūrą? Jei tinklas per mažas, jis neišmoks apibendrinti Jei tinklas yra per didelis, jis persimokys ir nemokės veikti su nežinomais duomenimis Kliūčių vengimas naudojant mobilųjį robotą naudojant neuroninį tinklą Užduotis: intelektuali valdymo sistema, pritaikanti dirbtinį neuroninį tinklą išmokti aplinką iš atstumo sensoriaus duomenų valdyti mobilųjį robotą judėti trajektorija be susidūrimo Duomenų kodavimas Daviklis grąžina kampą, kur yra kliūtis Koduojama kaip: [0 0 0 0 0 0 1 0] Išvestis: kampas, kuriuo turi būti pasuktas robotas Neuronų tinklo architektūra Neuroninio tinklo Pavyzdys skaidrėje mokymas Roboto valdymo algoritmas DI metodų pranašumai ir trūkumai Privalumai: Gali tiesiogiai naudoti sudėtingus jutiklių duomenis uždaviniams spręsti Gali išmokti sudėtingų netiesinių veiksmų, kuriuos sunku ar neįmanoma įgyvendinti naudojant tradicinius valdymo algoritmus Trūkumai: Persimokymas – DI metodai gali būti per daug pritaikyti prie konkrečios problemos, t.y. rezultatai nebūtinai apibendrina kitas užduotis. Paaiškinamumas – kaip interpretuoti išmoktą elgesį ir pritaikyti jį kitoms robotikos problemoms spręsti, kai roboto valdiklis yra apmokytas naudojant DI?