Mednarodno tekmovanje robotov - Pravila - Vzorci robotov - Lego EV3 Trajectory Robot. Napredni algoritem gibanja črte črne črte ev3

Ta naloga je klasična, ideološko preprosta, rešiti jo je mogoče večkrat in vsakič boste odkrili nekaj novega.

Obstaja veliko pristopov za rešitev težave, ki sledi vrstici. Izbira enega od njih je odvisna od specifične zasnove robota, števila senzorjev, njihove lokacije glede na kolesa in drug drugega.

V našem primeru bomo na podlagi glavnega analizirali tri primere robota model usposabljanja Robot Educator.

Za začetek sestavimo osnovni model Robota Educatorja, za to lahko uporabite navodila v programski opremi MINDSTORMS EV3.

Na primer, potrebujemo tudi svetlobne senzorje EV3. Ti svetlobni senzorji so kot noben drug najbolj primerni za našo nalogo, pri delu z njimi nam ni treba skrbeti za intenzivnost svetlobe okolice. Za ta senzor bomo v programih uporabljali način odbite svetlobe, v katerem se oceni količina odbite svetlobe rdeče osvetlitve senzorja. Meje odčitkov senzorja so 0–100 enot za "brez odboja" oziroma "popoln odboj".

Na primer, analizirali bomo 3 primere programov za premikanje po črni poti, prikazani na enakomernem, svetlem ozadju:

· En senzor, s P regulatorjem.

· En senzor, s PK regulatorjem.

· Dva senzorja.

Primer 1. En senzor, s P regulatorjem.

Oblikovanje

Senzor svetlobe je nameščen na nosilcu, ki je priročno nameščen na modelu.


Algoritem

Delovanje algoritma temelji na dejstvu, da se odčitki, ki jih vrne senzor, spreminjajo v gradientu, odvisno od stopnje prekrivanja žarka osvetlitve senzorja s črno črto. Robot ohranja položaj svetlobnega senzorja na robu črne črte. S pretvorbo vhodnih podatkov iz svetlobnega senzorja krmilni sistem generira vrednost vrtilne hitrosti robota.


Ker na realni poti senzor generira vrednosti v celotnem območju delovanja (0-100), je vrednost, h kateri stremi robot, 50. V tem primeru se vrednosti, ki se prenašajo na rotacijsko funkcijo, oblikujejo v območju -50 - 50, vendar te vrednosti niso dovolj za strmo vrtenje trajektorije. Zato je treba območje razširiti za en in pol krat na -75 - 75.

Končno je v programu funkcija kalkulatorja preprost proporcionalni regulator. katere funkcija ( (a-50)*1,5 ) v območju delovanja svetlobnega senzorja ustvari vrednosti vrtenja v skladu z grafom:

Primer algoritma

Primer 2. En senzor, s krmilnikom PK.

Ta primer je sestavljen na isti zasnovi.

Verjetno ste opazili, da se je v prejšnjem primeru robot preveč zanihal, kar mu ni omogočilo zadostnega pospeška. Zdaj bomo poskušali to situacijo nekoliko izboljšati.

Našemu proporcionalnemu regulatorju smo dodali tudi preprost kockasti krmilnik, ki bo dodal zasnovo funkciji krmilnika. To bo zmanjšalo nihanje robota blizu želene meje poti in naredilo močnejše sunke na veliki razdalji od nje.

Da bi se robot gladko premikal vzdolž črne črte, mora sam izračunati hitrost gibanja.

Oseba vidi črno črto in njeno jasno mejo. Svetlobni senzor deluje nekoliko drugače.

Prav to lastnost svetlobnega senzorja - nezmožnost jasnega razlikovanja med mejo bele in črne - bomo uporabili za izračun hitrosti gibanja.

Najprej predstavimo pojem "Idealna točka trajektorije".

Odčitki svetlobnega senzorja se gibljejo od 20 do 80, najpogosteje na beli barvi so odčitki približno 65, na črni približno 40.

Idealna točka je pogojna točka približno na sredini bele in črne barve, po kateri se bo robot premikal vzdolž črne črte.

Tukaj je lokacija pike temeljna – med belo in črno. Točno na belo ali črno ne bo mogoče nastaviti iz matematičnih razlogov, zakaj - bo jasno kasneje.

Empirično smo izračunali, da je idealno točko mogoče izračunati po naslednji formuli:

Robot se mora premikati strogo vzdolž idealne točke. Če pride do odstopanja v katero koli smer, se mora robot vrniti na to točko.

Sestavljajmo matematični opis problema.

Začetni podatki.

Popolna točka.

Trenutni odčitki svetlobnega senzorja.

Rezultat.

Moč motorja B.

Moč vrtenja motorja C.

rešitev.

Razmislimo o dveh situacijah. Prvič: robot je odstopil od črne črte proti beli.

V tem primeru mora robot povečati moč vrtenja motorja B in zmanjšati moč motorja C.

V primeru, ko robot zapelje v črno črto, je ravno nasprotno.

Bolj ko robot odstopa od idealne točke, hitreje se mora vrniti nanjo.

Toda ustvarjanje takega regulatorja je precej težka naloga in ni vedno zahtevana v celoti.

Zato smo se odločili, da se omejimo na P-regulator, ki se ustrezno odziva na odstopanja od črne črte.

V jeziku matematike bi to zapisali kot:

kjer sta Hb in Hc skupni moči motorjev B oziroma C,

Hbase - določena osnovna moč motorjev, ki določa hitrost robota. Izbran je eksperimentalno, odvisno od zasnove robota in ostrine zavojev.

Itech - trenutni odčitki svetlobnega senzorja.

I id - izračunana idealna točka.

k je koeficient sorazmernosti, izbran eksperimentalno.

V tretjem delu si bomo ogledali, kako to sprogramirati v okolju NXT-G.

V tej lekciji bomo nadaljevali z raziskovanjem uporabe barvnega senzorja. Spodaj predstavljeno gradivo je zelo pomembno za nadaljnji študij tečaja robotike. Ko se naučimo uporabljati vse senzorje Lego mindstorms EV3 pri reševanju številnih praktičnih problemov, bomo gradili na znanju, pridobljenem v tej lekciji.

6.1. Barvni senzor - način intenzivnosti odbite svetlobe

Torej, začenjamo preučevati naslednji način delovanja barvnega senzorja, ki se imenuje "Svetlost odbite svetlobe". V tem načinu barvni senzor usmeri žarek rdeče svetlobe na bližnji predmet ali površino in meri količino odbite svetlobe. Temnejši predmeti absorbirajo svetlobo, zato bo senzor odčital nižjo vrednost kot svetlejše površine. Razpon vrednosti senzorja se meri od 0 (zelo temno) do 100 (zelo svetlo). Ta način delovanja barvnega senzorja se uporablja pri številnih nalogah v robotiki, na primer za organizacijo gibanja robota po dani poti vzdolž črne črte, narisane na belem premazu. Pri uporabi tega načina je priporočljivo, da senzor postavite tako, da je razdalja od njega do proučevane površine približno 1 cm (slika 1).

riž. eno

Preidimo na praktične vaje: barvni senzor je že nameščen na našem robotu in usmerjen navzdol na površino prevleke, po kateri se bo naš robot premikal. Razdalja med senzorjem in tlemi je priporočena. Barvni senzor je že priključen na vrata "2" Opeka EV3. Naložimo programsko okolje, povežimo robota z okoljem in uporabimo polje z barvnimi črtami, ki smo ga naredili, da opravimo naloge v razdelku 5.4 Lekcije št. 5 za izvajanje meritev. Namestite robota tako, da se barvni senzor nahaja nad belo površino. "Stran s strojno opremo" programska okolja preklopijo v način "Ogled vrat" (slika 2 poz. 1). V tem načinu lahko opazujemo vse povezave, ki smo jih naredili. Na riž. 2 prikazana povezana vrata "B" in "C" dva velika motorja in do pristanišča "2" - barvni senzor.

riž. 2

Za izbiro možnosti prikaza odčitkov senzorja kliknite na sliko senzorja in izberite želeni način (slika 3)

riž. 3

Na riž. 2 poz. 2 vidimo, da je vrednost odčitka barvnega senzorja nad belo površino 84 . V vašem primeru lahko dobite drugačno vrednost, ker je odvisna od materiala površine in osvetlitve v prostoru: del svetlobe, ki se odbija od površine, zadene senzor in vpliva na njegove odčitke. Po namestitvi robota tako, da je barvni senzor nameščen nad črnim trakom, popravimo njegove odčitke (slika 4). Poskusite sami izmeriti vrednosti odbite svetlobe nad preostalimi barvnimi pasovi. Kakšne vrednosti ste dobili? Zapišite svoj odgovor v komentarje k tej lekciji.

riž. štiri

Zdaj pa rešimo praktične probleme.

Naloga številka 11: treba je napisati program za gibanje robota, ki se ustavi, ko doseže črno črto.

rešitev:

Poskus nam je pokazal, da se pri prečkanju črne črte vrednost barvnega senzorja v načinu "Svetlost odbite svetlobe" enako 6 . Torej, da bi izpolnili Naloge št. 11 naš robot se mora premikati v ravni črti, dokler želena vrednost barvnega senzorja ne postane manjša 7 . Uporabimo programski blok, ki nam je že znan "Pričakovanje" Oranžna paleta. Izberimo način delovanja programskega bloka, ki ga zahteva pogoj problema "Čakanje" (slika 5).

riž. 5

Konfigurirati morate tudi parametre programskega bloka "Pričakovanje". Parameter "Vrsta primerjave" (slika 6 poz. 1) lahko sprejme naslednje vrednosti: "Enako"=0, "Ni enako"=1, "več"=2, "Več ali enako"=3, "manj"=4, "Manj ali enako"=5. V našem primeru smo nastavili "Vrsta primerjave" v pomen "manj". Parameter "prag" nastavite enako 7 (slika 6 poz. 2).

riž. 6

Takoj ko je vrednost barvnega senzorja nastavljena na manj kot 7 , kaj se zgodi, ko je barvni senzor nad črno črto, bomo morali izklopiti motorje in ustaviti robota. Problem rešen (slika 7).

riž. 7

Za nadaljevanje študija bomo morali narediti novo polje, ki je črn krog s premerom približno 1 meter, nanešen na belo polje. Debelina krožne črte je 2 - 2,5 cm, za osnovo polja lahko vzamete en list papirja velikosti A0 (841x1189 mm), zlepite dva lista papirja velikosti A1 (594x841 mm). Na tem polju označite črto kroga in jo pobarvajte s črnim črnilom. Prav tako lahko prenesete postavitev polja, izdelano v formatu Adobe Illustrator, in nato naročite tiskanje na tkanino za pasice v tiskarni. Velikost postavitve je 1250x1250 mm. (Spodaj preneseno postavitev si lahko ogledate tako, da jo odprete v programu Adobe Acrobat Reader)

To področje nam bo koristilo pri reševanju več klasičnih nalog predmeta robotika.

Naloga številka 12: potrebno je napisati program za robota, ki se giblje znotraj kroga, obrobljenega s črnim krogom, po naslednjem pravilu:

  • robot se premika naprej v ravni črti;
  • ko doseže črno črto, se robot ustavi;
  • robot premakne dva vrtljaja motorjev nazaj;
  • robot se obrne v desno za 90 stopinj;
  • gibanje robota se ponavlja.

Znanje, pridobljeno v prejšnjih lekcijah, vam bo pomagalo ustvariti program, ki bo sam rešil nalogo 12.

Rešitev problema št. 12

  1. Začni naravnost (slika 8 poz. 1);
  2. Počakajte, da barvni senzor prečka črno črto (Slika 8 poz. 2);
  3. Pomaknite se 2 obrata nazaj (slika 8 poz. 3);
  4. Zavijte desno za 90 stopinj (slika 8 poz. 4); vrednost kota vrtenja se izračuna za robota, sestavljenega po navodilih small-robot-45544 (slika 8 poz. 5);
  5. Ponovite ukaze od 1 do 4 v neskončni zanki (slika 8 poz. 6).

riž. osem

Na delovanje barvnega senzorja v načinu "Svetlost odbite svetlobe" večkrat se bomo vrnili, ko bomo obravnavali algoritme za premikanje po črni črti. Medtem pa analizirajmo tretji način delovanja barvnega senzorja.

6.2. Barvni senzor - Način intenzivnosti svetlobe okolice

Način barvnega senzorja "Svetlost okoljske svetlobe" zelo podoben načinu "Svetlost odbite svetlobe", le da v tem primeru senzor ne oddaja svetlobe, ampak meri naravno lahka osvetlitev okolju. Vizualno lahko ta način delovanja senzorja določimo s šibko žarečo modro LED. Odčitki senzorjev se razlikujejo od 0 (pomanjkanje svetlobe) do 100 (najsvetlejša svetloba). Pri reševanju praktičnih problemov, ki zahtevajo merjenje ambientalne svetlobe, je priporočljivo senzor postaviti tako, da ostane senzor čim bolj odprt in ga ne ovirajo drugi deli in strukture.

Pritrdimo barvni senzor na našega robota na enak način, kot smo pritrdili senzor za dotik v lekciji št (slika 9). Priključite barvni senzor s kablom na vrata "2" Opeka EV3. Pojdimo k reševanju praktičnih problemov.

riž. 9

Naloga #13: potrebno je napisati program, ki spreminja hitrost našega robota glede na jakost zunanje osvetlitve.

Da bi rešili ta problem, se moramo naučiti, kako pridobiti trenutno vrednost senzorja. In Rumena paleta programskih blokov, ki se imenuje "Senzorji".

6.3. Rumena paleta - "Senzorji"

Rumena paleta programskega okolja Lego mindstorms EV3 vsebuje programske bloke, ki vam omogočajo prejemanje trenutnih odčitkov senzorjev za nadaljnjo obdelavo v programu. Za razliko od na primer programskega bloka "Pričakovanje" Programski bloki oranžne palete, rumene palete takoj prenesejo nadzor na naslednje programske bloke.

Število programskih blokov v rumeni paleti je različno v domači in izobraževalni različici programskega okolja. V domači različici programskega okolja ni programskih blokov za senzorje, ki niso vključeni v domačo različico konstruktorja. Toda po potrebi jih je mogoče povezati neodvisno.

Izobraževalna različica programskega okolja vsebuje programske bloke za vse senzorje, s katerimi se lahko uporablja Lego konstruktor Mindstorms EV3.

Vrnimo se k odločitvi. Naloge #13 in si oglejte, kako lahko sprejemate in obdelujete odčitke barvnih senzorjev. Kot že vemo: obseg vrednosti barvnega senzorja v načinu "Svetlost okoljske svetlobe" je v območju 0 prej 100 . Enako območje ima parameter, ki uravnava moč motorjev. Poskusimo prilagoditi moč motorjev v programskem bloku z odčitavanjem barvnega senzorja "krmiljenje".

rešitev:


riž. deset

Naložimo dobljeni program v robota in ga poženimo v izvedbo. Ali se je robot premikal počasi? Vklopimo LED svetilko in jo poskušajmo približati barvnemu senzorju na različne razdalje. Kaj se dogaja z robotom? Z dlanjo zaprimo barvni senzor – kaj se je zgodilo v tem primeru? Odgovore na ta vprašanja zapišite v komentarje k lekciji.

Naloga - bonus

Naložite v robota in zaženite nalogo, prikazano na spodnji sliki. Ponovite poskuse z LED svetilko. Delite svoje vtise v komentarjih k lekciji.

Oglejmo si najpreprostejši algoritem za premikanje vzdolž črne črte na enobarvnem senzorju na EV3.

Ta algoritem je najpočasnejši, a najbolj stabilen.

Robot se ne bo premikal strogo vzdolž črne črte, ampak vzdolž njene meje, se obrača v levo ali desno in se postopoma premika naprej.

Algoritem je zelo preprost: če senzor vidi črno, se robot obrne v eno smer, če belo - v drugo.

Implementacija v okolju Lego Mindstorms EV3

V obeh blokih gibanja izberite način "omogoči". Stikalo je nastavljeno na barvni senzor - meritev - barva. Na dnu ne pozabite spremeniti "brez barve" v belo. Prav tako morate pravilno določiti vsa vrata.

Ne pozabi dodati zanke, brez nje robot ne bo šel nikamor.

Preverite. Za najboljše rezultate poskusite spremeniti nastavitve krmiljenja in moči.

Gibanje z dvema senzorjema:

Že poznate algoritem premikanja robota vzdolž črne črte z enim senzorjem. Danes bomo obravnavali gibanje vzdolž črte z uporabo dveh barvnih senzorjev.
Senzorji morajo biti nameščeni tako, da med njimi poteka črna črta.


Algoritem bo naslednji:
Če oba senzorja vidita Bela barva- premikanje naprej;
Če eden od senzorjev vidi belo, drugi pa črno, se obrnemo proti črni barvi;
Če oba senzorja vidita črno, smo v križišču (na primer stop).

Za izvedbo algoritma moramo slediti odčitkom obeh senzorjev in šele nato nastaviti robota, da se premika. Za to bomo uporabili stikala, ugnezdena v drugem stikalu. Tako bomo najprej anketirali prvi senzor, nato pa, ne glede na odčitke prvega, anketirali drugi senzor, po katerem bomo nastavili akcijo.
Priključite levi senzor na vrata #1, desni senzor na vrata #4.

Program s komentarji:

Ne pozabite, da zaženemo motorje v načinu "Omogoči", tako da delujejo tako dolgo, kot je potrebno glede na odčitke senzorjev. Prav tako se pogosto pozabi na potrebo po zanki - brez nje se bo program takoj končal.

http://studrobots.ru/

Isti program za model NXT:

Preučite program gibanja. Programirajte robota. Naložite testni videoposnetek modela

Eno od osnovnih gibov v legokonstrukciji je sledenje črni črti.

Splošna teorija in posebni primeri ustvarjanja programa so opisani na spletnem mestu wroboto.ru

Opisal bom, kako to izvajamo v okolju EV3, saj obstajajo razlike.

Prva stvar, ki jo mora robot vedeti, je vrednost "idealne točke", ki se nahaja na meji črne in bele barve.

Lokacija rdeče pike na sliki ravno ustreza temu položaju.

Idealna možnost izračuna je izmeriti vrednost črno-belega in vzeti aritmetično sredino.

To lahko storite ročno. Toda slabosti so vidne takoj: tudi v kratkem času se lahko osvetlitev spremeni in izračunana vrednost se bo izkazala za napačno.

Torej lahko naredite robota, da to stori.

Med poskusi smo ugotovili, da ni potrebno meriti tako črno kot belo. Izmeriti je mogoče samo belo. In vrednost idealne točke se izračuna kot bela vrednost, deljena z 1,2 (1,15), odvisno od širine črne črte in hitrosti robota.

Izračunano vrednost je treba zapisati v spremenljivko, da lahko do nje dostopate pozneje.

Izračun "idealne točke"

Naslednji parameter, vključen v gibanje, je razmerje obratov. Večja kot je, bolj ostro se robot odziva na spremembe v osvetlitvi. Ampak tudi velik pomen povzroči nihanje robota. Vrednost se izbere poskusno posamično za vsako konstrukcijo robota.

Zadnji parameter je osnovna moč motorjev. Vpliva na hitrost robota. Povečanje hitrosti gibanja vodi do povečanja odzivnega časa robota na spremembo osvetlitve, kar lahko povzroči odmik od poti. Vrednost je izbrana tudi eksperimentalno.

Za udobje lahko te parametre zapišete tudi v spremenljivke.

Krmilno razmerje in osnovna moč

Logika premikanja po črni črti je naslednja: meri se odstopanje od idealne točke. Večja kot je, močneje si mora robot prizadevati, da se vrne vanj.

Da bi to naredili, izračunamo dve številki - vrednost moči vsakega od motorjev B in C posebej.

V obliki formule je videti takole:

Kjer je Isens vrednost odčitkov svetlobnega senzorja.

Končno implementacija v EV3. Najbolj priročno je izdati v obliki ločenega bloka.

Implementacija algoritma

To je algoritem, ki je bil implementiran v robota za srednjo kategorijo WRO 2015

Podobni članki

2022 videointercoms.ru. Mojster - Gospodinjski aparati. Razsvetljava. Obdelava kovin. Noži. Elektrika.