Tipiniai mobiliųjų robotų valdymo algoritmai (1 dalis) PDF

Summary

Šis dokumentas aprašo tipiškas mobiliųjų robotų valdymo sistemas, įskaitant elgsenos ir būsenomis grįstų valdymo metodus. Pateikiamas elgsenos detalizavimas ir planavimas bei kai kurie pavyzdžiai.

Full Transcript

Tipiniai mobiliųjų robotų valdymo algoritmai (1 dalis) 1 Turinys 2 Roboto elgsena ir valdymas Elgsenos detalizavimas Tipiniai robotų valdymo algoritmai Klajojimo algoritmai Kliūčių apėjimo algoritmai Linijos sekimo algoritmai Tipin...

Tipiniai mobiliųjų robotų valdymo algoritmai (1 dalis) 1 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 Elgsenomis grįstas roboto valdymas (Behavior-based control): 5. Robotas gali būti valdomas per rinkinį autonominių elgsenų, kurios gali būti sujungtos arba derinamos, kad pasiektų Elgsena ir norimą rezultatą.. Kiekviena elgsena yra skirta tam būsenomis tikram uždaviniui ar veiksmui atlikti, grįstas pavyzdžiui, vengti kliūčių, sekti liniją arba ieškoti objekto. valdymas. Elgsenos gali dirbti kartu arba konkuruoti tarpusavyje, priklausomai nuo situacijos. Būsenomis grįstas roboto valdymas (Statebased control): 6. Robotas veikia pagal tam tikrą būsenų mašiną (FSM). Tai reiškia, kad robotas gali būti skirtingose būsenose Elgsena ir (pavyzdžiui, "pradėti", "judėti", "stabdyti") ir perjungti tarp jų pagal tam tikras būsenomis taisykles ar sąlygas. grįstas. Kiekviena būsena gali turėti savo valdymo logiką ir elgseną. valdymas. 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ą. 7 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 elgsenas3. 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 ❑ kliūtis Apvažiuoti stacionarias tipai ❑ Išvengti judančių objektų ◼ Judėjimas trajektorija ◼ Tyrinėjimas ❑ Linijos sekimas ❑ Klaidžiojimas ❑ Sienos sekimas ❑ Teritorijos patruliavimas ◼ Laikysenos išlaikymas ◼ Važiavimas į tikslą ❑ Balansavimas ◼ Kliūčių vengimas ❑ Stabilumo išlaikymas ◼ Socialinė elgena ❑ Judėjimas ◼ Vaikščiojimas (robotams su spiečiuje kojomis) ❑ Dalinimasis resursais ❑ Eisenos kontrolė ◼ Tele-autonominis elgesys ◼ Manipuliavimas (rankoms ❑ Bendravimas su valdyti) operatoriumi ❑ Griebimas ◼ Suvokimo elgesys ❑ Perkėlimas ❑ Vizualinė paieška Tipiniai algoritmai Klajojimo algoritmai Kliūčių apėjimo algoritmai Linijos sekimo algoritmai Tipiniai 15 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 1. Ultragarso jutiklis skleidžia aukšto dažnio garso bangas 2. Garso banga sklinda oru, kol atsitrenkia į objektą Atstumo jutiklis 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 su kliūčių vengimu 22 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 sudėtingas ir griozdiškas Neįmanoma numatyti visų įmanomų elgesio variantų Taisyklėmis Labai sudėtinga ją projektuoti ir derinti grįstų Tipiniai Sunku prižiūrėti, modifikuoti ir plėsti Netinka dinamiškai kintančiose 26 27 algoritmų algoritmai aplinkose Tipiniai algoritmai trūkumai Klajojimo algoritmai Kliūčių apėjimo 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. (vienas sensorius) Paprasčiausias linijos sekimo algoritmas 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 su2 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 C B 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 44 Šaltinis: JA Gray Toeing the Line: Experiments with Line-following Algorithms 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: Šaltinis: 1 the Toeing priekyje Line: Experiments with Line-following Algorithms Linijos sekimo algoritmai (3) 45 Šaltinis: JA Gray Toeing the Line: Experiments with Line-following Algorithms Linijos sekimo algoritmai (4) 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: Toeing the Line: Experiments with Line-following Algorithms Linijos sekimo algoritmai (5) 46 Šaltinis: JA Gray Toeing the Line: Experiments with Line-following Algorithms Linijos sekimo algoritmai (6) Algoritmas: ONE BOUNCE Robotas „atšoka“ nuo linijos krašto B Šaltinis: Toeing the Line: Experiments with Line-following Algorithms Linijos sekimo algoritmai (7) Kartoja: Suka į kairę, kol aptinka „balta“ Suka į dešinę, kol aptinka „juoda“ Jutikliai: 1 priekyje JA Gray 47 Šaltinis: JA Gray Toeing the Line: Experiments with Line-following Algorithms Linijos sekimo algoritmai (8) 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: 2Toeing Šaltinis: priekyje the Line: Experiments with Line-following Algorithms Linijos sekimo algoritmai (9) 48 Šaltinis: JA Gray Toeing the Line: Experiments with Line-following Algorithms Linijos sekimo algoritmai (10) 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 Linijos sekimo algoritmai (11) 49 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 sekimo algoritmai (13) 1.Netikslus sensorių skaitymas Linijos pametimas Kodėl robotas gali pamesti liniją: Pasiklydo… B C Šaltinis: JA Gray Toeing the Line: Experiments with Line-following Algorithms 2.Staigūs linijos pokyčiai 3.Greitas robotas 4.Sudėtinga aplinka 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) ◼ Tiesioginė priklausomybė tarp sensoriaus gražinamos reikšmės ir judėjimo krypties ir/arba judėjimo greičio Proporcinis linijos sekimas (x1, y1) Juoda linija, kryptis: į dešinę Šviesos sensoriu (paviršiaus tamsum (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

Use Quizgecko on...
Browser
Browser