Mobiliųjų robotų valdymo algoritmai (1 dalis) 2024 PDF

Summary

Šis dokumentas aprašo įvairius mobiliųjų robotų valdymo algoritmus, apima klajojimą, kliūčių apejimą ir linijos sekimą. Taip pat pateikiama analizė ir detalizavimas, naudojamas praktiniams roboto valdymo projektams.

Full Transcript

Tipiniai mobiliųjų robotų valdymo algoritmai 1 (1 dalis) T125B114. Robotų programavimo technologijos 2024 [email protected] Turinys 2 Roboto elgsena ir valdymas Elgsenos detalizavimas Tipiniai robotų valdymo algoritmai Klajojimo algori...

Tipiniai mobiliųjų robotų valdymo algoritmai 1 (1 dalis) T125B114. Robotų programavimo technologijos 2024 [email protected] Turinys 2 Roboto elgsena ir valdymas Elgsenos detalizavimas Tipiniai robotų valdymo algoritmai Klajojimo algoritmai Kliūčių apėjimo algoritmai Linijos sekimo algoritmai Tipinis robotas ir jo sąveika su aplinka Aplinka Žmogus Sąsaja Vykdytuvai Jutikliai Robotas Programos Valdymas Duomenys vykdymas Roboto valdymas Pagrindinis tikslas – sugretinti roboto planą/modelį su realia aplinka ir priimti sprendimus Du pagrindiniai modeliai – Elgsenomis grįstas valdymas Būsenomis grįstas valdymas 4 Elgsenomis grįstas roboto valdymas (Behavior-based control): 1. Robotas gali būti valdomas per rinkinį Elgsena ir autonominių elgsenų, kurios gali būti būsenomis sujungtos arba derinamos, kad pasiektų norimą rezultatą. grįstas 2. Kiekviena elgsena yra skirta tam tikram valdymas uždaviniui ar veiksmui atlikti, pavyzdžiui, vengti kliūčių, sekti liniją arba ieškoti objekto. 3. Elgsenos gali dirbti kartu arba konkuruoti tarpusavyje, priklausomai nuo situacijos. 5 Būsenomis grįstas roboto valdymas (State- based control): 1. Robotas veikia pagal tam tikrą būsenų Elgsena ir mašiną (FSM). Tai reiškia, kad robotas gali būti skirtingose būsenose būsenomis (pavyzdžiui, "pradėti", "judėti", grįstas "stabdyti") ir perjungti tarp jų pagal tam tikras taisykles ar sąlygas. valdymas 2. Kiekviena būsena gali turėti savo valdymo logiką ir elgseną. 3. Būsenomis grįstas valdymas gali būti naudojamas, kai yra aiškiai apibrėžti veikimo etapai arba kai reikia sekti tam tikrą procedūrą. 6 Roboto elgsena ◼ Roboto elgsena yra ◼ … valdymo taisyklės, kurios tenkina tam tikrus apribojimus tikslui pasiekti ◼ … samprotavimo, veikimo ir reagavimo į aplinką procesas, pagrįstas žiniomis ir suvokta informacija ◼ … įvesties duomenų atvaizdavimas į vykdytuvų veiksmus (t.y., funkcija) ◼ … reakcija į aplinkos dirgiklius ◼ Roboto programavimo tikslas yra pasielgti, kad robotas turėtų pageidaujamą elgseną. Roboto elgsenos valdymas 8 Realizuojamos kelios elgsenos Esant tam tikroms situacijoms, robotas jas kaitalioja klaidžiojimas aplinkoje, kliūčių vengimas, važiavimas pakrauti bateriją, važiavimas palei sieną, važiavimas sekant liniją Roboto elgsenos detalizavimas (“skaldyk ir valdyk” principas) Sudėtinga elgsena Paprasta elgsena Pvz.,“rasti kelią labirinte” Pvz., “važiuoti į priekį 3 sekundes” Sudėtingą elgseną galima išskaidyti į paprastą elgseną Elgsenos planavimas 1. Analizuoti problemą. Pavyzdyje: robotas turi patekti iš pradžios taško (1) į tikslą (2) 2. Rasti bendrą sprendimą. Pavyzdyje: robotas turi važiuoti nurodytu keliu, aplenkdamas kliūtis 3. Suskaidyti sprendimą į smulkesnius žingsnius (seką) Pavyzdyje: 1. Važiuoti į priekį 3 sekundes 2. Sukti į kairę 90º laipsnių 3. Važiuoti į priekį 5 sekundes 4. Sukti į dešinę 90º laipsnių 5. Važiuoti į priekį 2 sekundes 6. Sukti į dešinę 90º laipsnių 7. Važiuoti į priekį 2 sekundes 4. Detalizuoti kiekvieną žingsnį Pavyzdyje: 1. Važiuoti į priekį 3 sekundes 1.1. Įjungti kairįjį variklį 1.2. Įjungti dešinįjį variklį 1.3. Laukti 3 sekundes 1.4. Išjungti kairįjį variklį 1.5. Išjungti dešinįjį variklį Elgsenos detalizavimo algoritmas 1. Važiuoti į priekį 3 sekundes 1.1. Įjungti kairįjį variklį 1.2. Įjungti dešinįjį variklį 1.3. Laukti 3 sekundes 1.4. Išjungti kairįjį variklį 1.5. Išjungti dešinįjį variklį 1. Važiuoti į priekį 3 sekundes 2. Sukti į kairę 90º laipsnių 3. Važiuoti į priekį 5 sekundes 4. Sukti į dešinę 90º laipsnių 5. Važiuoti į priekį 2 sekundes 6. Sukti į dešinę 90º laipsnių 7. Važiuoti į priekį 2 sekundes Detalizavimo algoritmas: 1. Pradėti nuo sudėtingos elgsenos, kuri leidžia išspręsti problemą. 2. Suskaidyti sudėtingą elgseną į paprastesnes elgsenas 3. Kartoti 2 žingsnį tol, kol jie bus pakankamai paprasti, kad juos būtų galima aprašyti robotų programavimo kalba. Būsenomis aprašoma valdymo sistema 13 Roboto judėjimas priklauso nuo to, kokioje būsenoje yra robotas Kiekviena būsena užprogramuojama tam tikra funkcija Pasiteisina kai robotas veikia nesudėtingoje aplinkoje Robotų elgsenos tipai ◼ Tyrinėjimas ◼ Socialinė elgena ❑ Klaidžiojimas ❑ Judėjimas spiečiuje ❑ Dalinimasis resursais ❑ Teritorijos patruliavimas ◼ Važiavimas į tikslą ◼ Tele-autonominis elgesys ❑ Bendravimas su operatoriumi ◼ Kliūčių vengimas ◼ Suvokimo elgesys ❑ Apvažiuoti stacionarias kliūtis ❑ Vizualinė paieška ❑ Išvengti judančių objektų ◼ Vaikščiojimas (robotams su ◼ Judėjimas trajektorija kojomis) ❑ Linijos sekimas ❑ Eisenos kontrolė ❑ Sienos sekimas ◼ Manipuliavimas (rankoms ◼ Laikysenos išlaikymas valdyti) ❑ Balansavimas ❑ Griebimas ❑ Stabilumo išlaikymas ❑ Perkėlimas Tipiniai algoritmai Tipiniai Klajojimo algoritmai Kliūčių apėjimo algoritmai 15 algoritmai Linijos sekimo algoritmai Pasaulio modelis ir ribojimai 16 Paviršius visada yra lygus Kliūtys niekada nėra apvalios Ratai niekada neslysta Jokia išorinė jėga neveiks roboto Jutikliai visada veikia ir neteikia klaidingų rodmenų Ratai visada sukasi, kai jiems liepiama Klajojimo uždavinys Tikslas: Leisti robotui autonomiškai judėti aplinkoje be konkretaus galutinio tikslo, tačiau saugiai vengiant kliūčių ir reaguojant į aplinkos pokyčius. Pagrindiniai reikalavimai: 1.Autonomija: Robotas turi gebėti judėti be nuolatinės žmogaus intervencijos. 2.Kliūčių vengimas: Robotas turi gebėti aptikti ir saugiai išvengti kliūčių savo kelyje. 3.Aplinkos adaptacija: Robotas turi gebėti prisitaikyti prie aplinkos pokyčių, pvz., judančių objektų ar pasikeitusių kliūčių padėčių. 4.Saugumas: Robotas turi veikti taip, kad nebūtų keliama grėsmė žmonėms, gyvūnams ar aplinkai. 17 Klajojimo uždavinys Du atstumo jutikliai K ir D K D Du režimai: Miego/neaktyvumo – robotas išjungtas ir judėjimo – robotas aktyvus Užduotis: judėti aplinkoje 18 Klajojimo (roaming) algoritmai Kad būtų autonomiškas, robotas turi sugebėti siekdamas savo tikslo (užduočių įvykdymo) pats nuspręsti, kaip aplenkti kliūtis: vengti kliūčių arba apeiti kliūtis autonomiškai Kaip robotas gali išvengti kliūčių: Apsisukti ir keliauti tolyn nuo kliūties Pasukti toliau nuo kliūties, bet neapsisukti visiškai Aplenkti kliūtį ir keliauti toliau ta pačia kryptimi Jei kliūtis yra mobilus objektas, palaukti kol ji pasitrauks Aukščiau aprašytų veiksmų kombinacija 19 Atstumo jutiklis 1. Ultragarso jutiklis skleidžia aukšto dažnio garso bangas 2. Garso banga sklinda oru, kol atsitrenkia į objektą 3. Garso banga atsimuša į objektą ir grįžta į jutiklį 4. Jutiklis matuoja laiką, per kurį garso banga nukeliauja iki objekto ir atgal. 5. Naudodamas garso greitį ore, jutiklis apskaičiuoja atstumą tarp roboto ir kliūties. 6. Jei apskaičiuotas atstumas yra mažesnis už iš anksto nustatytą slenkstį, robotas aptinka kliūtį savo kelyje 20 Paprasčiausias klajojimo algoritmas 21 ◼ Jei robotas mato priekyje kliūtį: ◼ Pasukti į dešinę ◼ Toliau važiuoti ◼ Trūkumas: deterministinis algoritmas Klajojimas 22 su kliūčių vengimu Klajojimo algoritmas 23 Nedeterministinis klajojimo algoritmas ◼ Ar į kelias į yra laisvas? ❑ Jei laisvas, robotas juda tiesiai ❑ Jei užimtas, robotas suka į šoną atsitiktiniu kampu ir važiuoja toliau, kol aptinka kitą kliūtį ◼ Trūkumas: robotas įstrigti tarp dviejų kliūčių ◼ Tobulinimas: prieš pasukant, patikrinti ar numatomoje naujoje kryptyje kelias yra laisvas 24 Nedeterministinis klajojimo algoritmas 25 Realus algoritmas bus labai Taisyklėmis sudėtingas ir griozdiškas Neįmanoma numatyti visų įmanomų elgesio variantų grįstų Labai sudėtinga ją projektuoti ir derinti 26 algoritmų Sunku prižiūrėti, modifikuoti ir plėsti trūkumai Netinka dinamiškai kintančiose aplinkose Tipiniai algoritmai Tipiniai Klajojimo algoritmai Kliūčių apėjimo algoritmai 27 algoritmai Linijos sekimo algoritmai Linijos sekimas 28 Kai robotui reikia pateikti iš vieno taško į kitą be jokių kliūčių savo kelyje Galima išvengti sudėtingo kliūčių apėjimo algoritmo programavimo Robotas seka ant grindų nupieštą liniją Įvairios jutiklių įrengimo konfigūracijos: 1 jutiklis 2 jutikliai 3 jutikliai Roboto jutikliai (IR sensoriai) 29 Jeigu atspindima daug šviesos, t.y. IR detektoriaus signalo lygis yra aukštas, reiškia po jutikliu yra baltos spalvos paviršius. Jeigu atspindima mažai šviesos, t.y. IR detektoriaus signalo lygis yra žemas, reiškia po jutikliu yra juodos spalvos paviršius. Paprasčiausias linijos sekimo algoritmas (vienas sensorius) Linijos sekimas su 2 sensoriais (stora linija) Linijos sekimas su 2 sensoriais (stora linija) Linijos sekimas su 2 sensoriais (stora linija) Linijos sekimas su 2 sensoriais (stora linija) Linijos sekimas su 2 sensoriais (plona linija) 35 36 Linijos sekimas su 3 sensoriais 37 Linijos sekimas su 3 sensoriais 3 šviesumo lygių linijos sekimas Šviesos jutiklio rezultatų diapazonas dalinamas į 3 lygius σ Linija Linija + σ Pagrindas - σ Pagrindas Juoda Pilka Balta 39 Trijų lygių atspindėtos šviesos atpažinimas ◼ Linijos atspindys atpažįstamas su klaida ◼ Linijos centras yra juodas ◼ Linijos kraštas pilkas ◼ Nėra linijos – balta 40 Linijos krašto sekimas zigzagais Kairiojo krašto sekimas Dešiniojo krašto sekimas Zigzaginiai algoritmai: Robotas siekia išlaikyti liniją po savimi judėdamas tiesiai tol, kol vienas iš daviklių aptinka linijos kraštą. Tuomet robotas juda priešinga kryptimi tol, kol vėl aptinka linijos kraštą. Robotas juda zigzagais sekdamas liniją Zigzaginiai linijos sekimo algoritmai B C Zigzaginis linijos sekimas: demonstracija B C https://www.youtube.com/watch?v=IkSJDyiOT4w 43 Linijos sekimo algoritmai (1) Algoritmas 1 – FOLLOW GRAY Algoritmas 2 – ONE INSIDE Algoritmas 3 – ONE BOUNCE Algoritmas 4 – STRADDLE Algoritmas 5 – TWO INSIDE Algoritmas 6 – TWO BOUNCE Šaltinis: JA Gray Toeing the Line: Experiments with Line-following Algorithms 44 Linijos sekimo algoritmai (2) Algoritmas: FOLLOW GRAY Robotas seka kairįjį linijos kraštą: Jei aptinka „pilka“, robotas važiuoja tiesiai Jei aptinka „juoda“, suka į kairę Jei aptinka „balta“, suka į dešinę B C Jutikliai: 1 priekyje Šaltinis: JA Gray Toeing the Line: Experiments with Line-following Algorithms 45 Linijos sekimo algoritmai (3) Algoritmas: ONE INSIDE Robotas juda zigzagu išilgai linijos ir kartoja: Suka į kairę, kol aptinka „balta“ Suka į dešinę, kol aptinka „juoda“ ir vėl „balta“ Suka į kairę, kol aptinka „balta“ ir vėl „juoda“ Jutikliai: 1 priekyje C Šaltinis: JA Gray Toeing the Line: Experiments with Line-following Algorithms 46 Linijos sekimo algoritmai (4) Algoritmas: ONE BOUNCE Robotas „atšoka“ nuo linijos krašto Kartoja: Suka į kairę, kol aptinka „balta“ Suka į dešinę, kol aptinka „juoda“ Jutikliai: 1 priekyje B Šaltinis: JA Gray Toeing the Line: Experiments with Line-following Algorithms 47 Linijos sekimo algoritmai (5) Algoritmas: STRADDLE Jutikliai išdėstomi linijos šonuose Jei abu jutikliai rodo „balta“, robotas važiuoja tiesiai Jei kairysis jutiklis rodo „juoda“, robotas suka į kairę Jei dešinysis jutiklis rodo „juoda“, robotas suka į dešinę Jutikliai: 2 priekyje Šaltinis: JA Gray Toeing the Line: Experiments with Line-following Algorithms 48 Linijos sekimo algoritmai (6) Algoritmas: TWO INSIDE Jutikliai išdėstyti linijos viduje Jei abu jutikliai rodo „juoda“, robotas važiuoja tiesiai Jei kairysis jutiklis rodo „balta“, robotas suka į dešinę Jei dešinysis jutiklis rodo „balta“, robotas suka į kairę Jutikliai: 2 priekyje Šaltinis: JA Gray Toeing the Line: Experiments with Line-following Algorithms 49 Linijos sekimo algoritmai (7) Algoritmas: TWO BOUNCE Robotas atšoka nuo linijos krašto Suka į kairę, kol priekinis jutiklis aptinka „balta“ Suka į dešinę stovėdamas vietoje, kol užpakalinis jutiklis aptinka „juoda“ Suka į kairę, kol priekinis jutiklis aptinka „juoda“ ir t.t. Jutikliai: 2 (1 – priekyje, 1 - gale) Šaltinis: JA Gray Toeing the Line: Experiments with Line-following Algorithms 50 Linijos pametimas Kodėl robotas gali pamesti liniją: 1.Netikslus sensorių skaitymas 2.Staigūs linijos pokyčiai 3.Greitas robotas 4.Sudėtinga aplinka Pasiklydo… B C Patobulintas algoritmas su jutiklių tikrinimu 52 Robotas gali „pamesti“ liniją Roboto jutikliai nuolat tikrina, ar robotas seka liniją Tik jei jutikliai nemato linijos 50 kartų iš eilės, robotas sustoja Galimi du sprendimai: 1) suktis tol, kol vėl bus aptikta linija; 2) prisiminti kelią, kuriuo grįžti atgal Linijos sekimas su sankryžomis ◼ Daug linijų ◼ Linijos susikerta ◼ Reikia daugiau sensorių 53 Zigzaginių algoritmų pranašumai ir trūkumai Pranašumas: ◼ Lengva realizuoti Trūkumai: ◼ Robotas juda trūkčiodamas, nelygiai, neefektyviai, nuvažiuotas kelias yra ilgesnis Sprendimas: ◼ Naudoti sudėtingesnius algoritmus ◼ Proporcinis sekimas ◼ Proporcinis-diferencialinis sekimas ◼ PID algoritmas linijos sekimui Proporcinis linijos sekimas 5 5 Proporcinis valdymas Robotas juda proporcingai atstumui iki tikslo Linijos sekimo atveju, robotas daro staigesnį posūkį link linijos, jei nutolsta toliau nuo linijos Proporcinis valdymas gali būti tikslesnis ir greitesnis Proporcinis linijos sekimas Zigzaginis valdymas Robotas juda kairėn arba dešinėn (2 signalo lygių atpažinimas) Robotas juda tiesiai, kairėn arba dešinėn (3 signalo lygių atpažinimas) Proporcinis valdymas Robotas juda proporcingai atstumui iki tikslo Robotas daro staigesnį posūkį link linijos, jei nutolsta toliau nuo linijos Proporcinis valdymas gali būti tikslesnis ir greitesnis Proporcinis linijos sekimas Šviesos sensorius rodo kelio paviršiaus „tamsumą“ (vidutiniškai) Reikšmė kalibruojama nuo 100 (balta) iki 0 (juoda) Proporcinis linijos sekimas ◼ Tiesioginė priklausomybė tarp sensoriaus gražinamos reikšmės ir judėjimo krypties ir/arba judėjimo greičio (x1, y1) Juoda linija, kryptis: į dešinę Variklio valdymo signalas (sukimosi greitis) Šviesos sensorius (y) (paviršiaus tamsumas) (x) (x2, y2) Balta, kryptis: į kairę 58 Proporcinis linijos sekimas Proporcinio roboto valdymo algoritmas: 1. Paklaidos skaičiavimas – naudojant sensoriaus grąžinamą reikšmę, apskaičiuojamas atstumas iki tikslo (linijos) - paklaida; 2. Judėjimo tikslinimas - atliekamas veiksmas proporcingas paklaidai robotas atlieka posūkį link linijos greičiu, proporcingam atstumui iki linijos Kuo robotas yra toliau nuo linijos, tuo posūkis staigesnis ir greitis didesnis Paklaidos skaičiavimas Judėjimo tikslinimas 59 Proporcinio koeficiento P koeficiento prasmė Didelis P koeficientas Greitesnis atsakas Švytavimo efektas Mažas P koeficientas Lėtas atsakas Nėra švytavimo 60 Proporcinis- diferencialinis (PD) linijos sekimas P-valdiklio ir PD-valdiklio skirtumai P-valdiklis naudoja: Paklaidą (nuokrypį nuo linijos) PD-valdiklis naudoja: Paklaidą ir Paklaidos pokytį – kaip greitai robotas artėja (tolsta) nuo linijos Pranašumas: Judėjimo trajektorija yra glotnesnė, mažiau staigių posūkių Judėjimas yra tolydus (mažiau trūkčiojantis) Robotas „neprašoka“ linijos 62 63 PID control for line following PID (proporcinis-integralas-diferencialas) valdymas PID valdiklio algoritmas PID naudoja tris parametrus, siekiant sumažinti paklaidą (nuokrypį nuo tikslo). Proporcinis narys skirtas greitai sumažinti paklaidą Integralo narys naudojamas pašalinti pastovią paklaidą Išvestinės narys yra skirtas sumažinti staigius judesius (svyravimus). 66 67 PD-valdiklis naudoja: Paklaidą - nuokrypį nuo linijos Paklaidos pokytį – kaip greitai robotas artėja (tolsta) nuo linijos PD-valdiklio ir PID-valdiklis naudoja: Paklaidą PID-valdiklio Paklaidos pokytį Paklaidų sumą – ne judėjimo, o matavimo skirtumai paklaidą Pranašumas: Judėjimo trajektorija yra dar glotnesnė, ir tolydesnė Efektyvesnis valdymas PID valdymas (video) 68 https://www.youtube.com/watch?v=UR0hOmjaHp0 Questions? 69 Kita paskaita Spalio 2 d. (kitą Kita paskaita: savaitę) spalio 9 d. paskaitos nebus

Use Quizgecko on...
Browser
Browser