Mobiliųjų robotų valdymo algoritmai – II dalis PDF

Summary

Šis dokumentas aprašo įvairius algoritmus, skirtus mobiliųjų robotų valdymui. Yra pateikiamos informacijos apie PID valdiklius, sienų sekimo algoritmus, kampinio sekimo algoritmus ir kitus svarbius aspektus.

Full Transcript

Mobiliųjų robotų valdymo algoritmai – II dalis Turinys Prisiminkime: PID valdiklis linijos sekimui Sienos sekimas PID Kampinis PID Dvigubas PID Neraiškios logikos PID Būsenų erdvės modelis MPC Labirinto įveikimo algoritmai...

Mobiliųjų robotų valdymo algoritmai – II dalis Turinys Prisiminkime: PID valdiklis linijos sekimui Sienos sekimas PID Kampinis PID Dvigubas PID Neraiškios logikos PID Būsenų erdvės modelis MPC Labirinto įveikimo algoritmai 3 PID valdiklio algoritmas PID naudoja tris parametrus, siekiant sumažinti paklaidą (nuokrypį nuo tikslo). Proporcinis narys skirtas greitai sumažinti paklaidą Integralinis narys naudojamas pašalinti pastovią paklaidą Diferencialinis narys yra skirtas sumažinti staigius judesius (svyravimus). 5 PID valdiklio koeficientų prasmė 6 Per mažas Kp – ilgi „švytavimai“ Per didelis Kp – greitis „švytavimai“ Per mažas Kd – per maži pokyčiai Per didelis Kd – per dideli pokyčiai Per mažas Ki – linija „prašokama“ (nestabilu) Per didelis Ki – nepasiekiama norima reikšmė (linija) PID valdiklio koeficientų derinimas Nustatykite visas PID koeficientų reikšmes = 0. 7 Nustatykite Kp reikšmę 1 ir stebėkite robotą. Tikslas yra priversti robotą sekti liniją, net jei jis labai svyruoja. Jei robotas praranda liniją, sumažinkite Kp reikšmę. Jei robotas negali pereiti posūkio, padidinkite Kp reikšmę. Priskirkite Kd reikšmę 1. Pabandykite padidinti šią vertę, kol pamatysite mažesnį svyravimą. Kai robotas gana stabiliai seka liniją, priskirkite Ki reikšmę nuo 0,5 iki 1,0. Jei Ki vertė yra per didelė, robotas greitai suks į kairę ir į dešinę. Jei jis yra per maža, nematysite jokio skirtumo. Kai robotas tiksliai seka liniją, galite padidinti greitį. Greitis turi įtakos PID valdikliui ir jį reikės sureguliuoti keičiantis greičiui. Patikslinkite PID koeficiento vertes. Praktinis uždavinys: Tikslas: Draudžiamų robotas turi būti tam tikroje zonoje, kuri zonų vengimas neapribota sienomis arba kitokiais barjerais Robotas gali judėti laisvai, turi sugebėti apeiti kliūtis 6 Galimi sprendimai: nubrėžtos linijos, infraraudonųjų spindulių barjeras, palaidotas elektros laidas, kurį gali aptikti roboto jutikliai; GPS koordinatės ir GPS imtuvas 9 Sienos sekimo algoritmas 7 Roboto užduotis yra sekti didelio objekto kontūrą Jei robotas savo judėjimo kelyje aptinka objektą, jis gali keliauti aplink objektą judėdamas objekto perimetru PID valdymo algoritmas Realizacija P (proporciniu) valdikliu 9 PID valdiklis sienos sekimui Realizacija PID valdikliu (1) Jutiklis stebi sieną, kad įvertintų atstumą nuo sienos d ir apskaičiuoja paklaidos vertę e = dtikslas – d (2) PID valdiklis naudoja šią klaidos reikšmę ir ankstesnę paklaidos reikšmę, kad apskaičiuotų roboto vairo posūkio kampą. 11 (3) Vairo mechanizmas įjungia vairavimo kampą ir pasuka robotą link norimos vertės. PID algoritmas sienos sekimui Kampinis sienų sekimo algoritmas Reikia dviejų atstumo jutiklių. Vietoje atstumo paklaidos, mažinkite kampo paklaidą Kampinis sienos sekimo algoritmas 1. Išmatuokite atstumą iki sienos naudodami jutiklį.. 2. Apskaičiuokite kampą tarp roboto ir sienos kaip vertikalaus atstumo tarp roboto ir sienos santykio su horizontaliu atstumu tarp roboto ir sienos arctangentą. 3. Palyginkite kampą su norimu kampu. Jei kampas yra didesnis nei pageidaujamas kampas, judėkite arčiau sienos. Jei kampas yra mažesnis už norimą kampą, pasitraukite nuo sienos. 4. Pakartokite 1–4 veiksmus, kad išlaikytumėte pastovų atstumą ir kampą sienos atžvilgiu Kampinis sienos sekimo algoritmas Dvigubas PID valdiklis sienų sekimui Dvigubas PID sienos sekimui 1. Išmatuokite atstumą iki sienos naudodami jutiklį. 2. Apskaičiuokite atstumo paklaidą tarp norimo atstumo ir išmatuoto atstumo. 3. Naudokite atstumo PID valdiklį, kad apskaičiuotumėte valdymo išvestį pagal atstumo paklaidą 4. Išmatuokite kampą tarp roboto ir sienos naudodami trigonometriją. 5. Apskaičiuokite kampo paklaidą tarp norimo kampo ir išmatuoto kampo. 6. Naudokite kampo PID valdiklį, kad apskaičiuotumėte valdymo išėjimą pagal kampo paklaidą. 7. Reguliuokite variklio galią, kad būtų išlaikytas pastovus atstumas ir pastovus kampas tarp roboto ir sienos. 8. Pakartokite 1–7 veiksmus Dvigubo PID algoritmas sienos sekimui Sienos sekimo problema: kampai 19 Sienos sekimas su posūkiu ties kampu (1) Sienos sekimas su pusūkiu ties kampu (2) Sienos sekimas su pusūkiu ties kampu (3) Tipiniai valdymo algoritmai... Sienos sekimo algoritmai Neraiškios logikos algoritmai Tipiniai 23 valdymo algoritmai Neraiškioji logika ir narystės funkcijos Narystės laipsnis Narystės funkcijos Greitis Neraiškiąja logika grįstas sienos sekimo algoritmas Neraiškios logikos taisyklių pavyzdys NEGATIVE BIG NEGATIVE SMALL ZERO POSITIVE SMALL POSITIVE BIG S – Small, M – Medium, B – Big, PB – Positive Big, VB – Very Big Trikampės narystės f-jos Trapecinės narystės f-jos Neraiškios logikos funkcijų pavyzdys (atstumo valdymas) Neraiškios logikos funkcijų pavyzdys (kampo valdymas) Trikampės narystės f-jos Trapecinės narystės f-jos Valdymo signalų skaičiavimas Neraiškiąja logika grįsti skaičiavimai roboto valdymui (fuzzy inference) 30 Neraiškiosios logikos PID valdiklis sienos sekimui Neraiškiosios logikos PID roboto valdymo algoritmas Vadovas: Neraiškia logika grįstas sienos sekimas 1.Apibrėžkite įvesties kintamuosius: atstumą iki sienos ir kampą tarp roboto ir sienos. 2.Apibrėžkite neaiškius rinkinius, kad įvesties duomenys būtų susieti su neraiškiais terminais, pvz., „arti“, „toli“, „dešinėn“, „kairėje“ ir kt. 3.Apibrėžkite išvesties kintamuosius: valdymo veiksmus, kuriuos turi atlikti robotas, pvz., pasukti į kairę arba į dešinę arba reguliuoti greitį. 4.Apibrėžkite neraiškias taisykles: apskaičiuokite valdymo taisykles, pagrįstus įvesties duomenimis ir neaiškiais rinkiniais, naudojant „jei-tada“ teiginių rinkinį. 5.Gaukite neraiškius išėjimus (rezultatus): taikykite valdymo taisykles, apskaičiuojant įvesties duomenų priklausomybės laipsnį neaiškiose aibėse ir nustatykite neraiškius valdymo veiksmus. 6.Atlikite defuzifikaciją: paverskite neraiškią išvestį atgal į aiškią išvestį, kuri vėliau taikoma roboto judėjimui valdyti Neraiškia logika grįstas sienos sekimas Neraiškia logika grįstas sienos sekimas Tipiniai valdymo algoritmai... Sienos sekimo algoritmai Būsenų erdvės modelis Nuspėjamasis modelio valdymas Tipiniai Būsenos erdvės valdymas 36 valdymo algoritmai Robotas modeliuojamas daugiamatėje būsenos erdvėje, kurią apibrėžia kintamųjų, tokių kaip padėtis, greitis ir pagreitis, rinkinys. Jutikliai matuoja roboto būseną (padėtį ir orientaciją) linijos (ar sienos) atžvilgiu Valdymo algoritmas naudoja apskaičiuotą būsenos informaciją, kad apskaičiuotų veiksmus, kurių reikia norint išlaikyti robotą at linijos (arba šalia sienos) Privalumas: gali susidoroti su lenktomis linijomis arba išsišakojimais Trūkumas: reikalingi pažangesni jutikliai ir skaičiavimas; sunkiau įgyvendinti ir sureguliuoti Būsenos erdvės modelis yra lygtis, vaizduojanti roboto judėjimą nuo vieno laiko žingsnio iki kito Roboto padėtis ir orientacija vadinama būsenos vektoriumi. Padėtis (X, Y koordinatės) Orientacija (kampas γ) –aplink z ašį prieš laikrodžio rodyklę (nuo x ašies). Greitis v yra tiesinis greitis x kryptimi = vx = vcos(γ) tiesinis greitis y kryptimi = vy = vsin(γ) kampinis greitis aplink z ašį = ω Matrica A rodo, kaip sistemos būsena [x padėtis, y padėtis, posūkio kampas γ] pasikeičia iš t-1 į t, kai nevykdoma jokia valdymo komanda Matrica B rodo, kaip sistemos būsena (t. y. [x,y,γ]) pasikeičia iš t-1 į t dėl valdymo komandų (t. y. valdymo įėjimų v ir ω). Valdymo įvestys yra linijinis greitis (v) ir kampinis greitis (ω) ("krypties greitis"). Nuspėjamasis modelio valdymas (Model Predictive Control, MPC) Nuspėjamasis modelio valdymas (MPC) sienos sekimui Nuspėjamasis modelio valdymas (MPC) naudoja matematinį roboto modelį, kad prognozuotų jo būsimą elgesį ir optimizuotų valdymo veiksmų seką, kad būtų pasiektas norimas tikslas. MPC išsprendžia dinaminio optimizavimo problemą, kuri apima būsimo sistemos elgesio numatymą naudojant modelį, kuris fiksuoja jos dinamiką ir apribojimus. MPC tikslas yra optimizuoti (sumažinti) sąnaudų funkciją, kuri grąžina nuokrypį nuo norimos trajektorijos (paklaidą), atsižvelgiant į būsenų, įvesties ir išvesties apribojimus. Optimizavimo uždavinys gali būti išspręstas naudojant kvadratinio programavimo (QP) sprendimą Kad robotas sektų sieną, MPC gali optimizuoti vairavimo kampą ir greitį, kad galėtų sekti sieną, tuo pačiu sumažinant nuokrypį (paklaidą) MPC algoritmas sienos sekimui Turinys Labirinto įveikimo algoritmai Labirinto įveikimo algoritmai robotikoje yra svarbūs dėl keleto priežasčių: 1.Pagrindinės navigacijos problemos sprendimas 2.Mokymosi ir problemų sprendimo gebėjimai 3.Aplinkos suvokimas 4.Realios pasaulio taikymai 5.Varžybos ir konkursai 6.Prototipavimas ir testavimas Labirito įveikimo algoritmų 45 svarba Labirinto struktūra GOAL START 46 Pledge algoritmas 1) Eiti link sienos 2) Eiti tol, kol siena yra dešinėje 3) Tęsti, kol bus išeita iš labirinto 47 Labirinto perėjimas naudojant grafų teorijos algoritmus Grafo sudarymas Medžio sudarynas Paieškos į gylį (Depth-First Search, DFS) algoritmas ◼ Robotas skenuoja kiekvienos celės sienas ir sukonstruoja DFS medį, kurio GOAL šaknis yra START celė ◼ Sukonstravus medį, jame randamas kelias ◼ Algoritmas baigiamas, kai randama GOAL celė START 51 Paieškos į gylį (Depth First Search, DFS) algoritmas while (true) { if robot is at GOAL cell exit_maze(); if there is an unexplored, unobstructed neighbor Mark parent of neighbor as current cell; Proceed to the neighbor; else if robot is not in START cell Backtrack; else return; // No GOAL cell exists, so we exit } 52 Trémaux algoritmas ◼ Garantuotai suranda sprendimą, bet nebūtinai optimalų 53 Trémaux algorithm: demo Labirinto įveikimas naudojant linijos sekimą

Use Quizgecko on...
Browser
Browser