Medzinárodná súťaž robotov - Pravidlá - Ukážky robotov - Lego EV3 Trajectory Robot. Lego EV3. Pohyb čiernej línie Pohyb riadku s volantom v ev3

15.01.2012, 18:51

Doteraz sa v článkoch o algoritmoch používaných pri pohybe po čiare uvažovalo o takejto metóde, keď svetelný senzor sledoval svoj ľavý alebo pravý okraj: akonáhle sa robot presunul do bielej časti poľa, ovládač vrátil robota na hranicu, snímač sa začal pohybovať hlboko do čiernych čiar - regulátor ho narovnal späť.
Napriek tomu, že obrázok vyššie je pre reléový ovládač, všeobecný princíp pohybu proporcionálneho (P-regulátora) bude rovnaký. Ako už bolo spomenuté, priemerná rýchlosť takéhoto pohybu nie je príliš vysoká a bolo vykonaných niekoľko pokusov o jej zvýšenie miernym skomplikovaním algoritmu: v jednom prípade sa použilo „mäkké“ brzdenie, v druhom prípade okrem zákrut, bol zavedený pohyb vpred.
Aby sa robot mohol v niektorých oblastiach pohybovať vpred, bola v rozsahu hodnôt produkovaných svetelným senzorom pridelená úzka časť, ktorá by sa dala podmienečne nazvať „senzor je na hranici čiary“.
Tento prístup má malú nevýhodu - ak robot „sleduje“ ľavú hranicu čiary, potom sa na pravej strane nezdá, že by okamžite určil zakrivenie trajektórie a v dôsledku toho trávi viac času hľadaním čiary. a sústruženie. Navyše sa dá s istotou povedať, že čím strmšia zákruta, tým dlhšie toto hľadanie trvá.
Nasledujúci obrázok ukazuje, že ak by sa senzor nenachádzal na ľavej strane hranice, ale na pravej strane, potom by už zistil zakrivenie trajektórie a začal by robiť obratové manévre.

Preto je dobré vybaviť robota dvomi senzormi naraz, ktoré sú umiestnené na opačných stranách linky a podľa toho by pomohli robotovi rýchlejšie reagovať na zmenu smeru pohybu.
Teraz je potrebné určiť, ako takáto zmena dizajnu ovplyvní program. Pre jednoduchosť by sme mali opäť začať s najjednoduchším reléovým ovládačom, a preto nás v prvom rade zaujímajú možné polohy snímačov vzhľadom na vedenie:

V skutočnosti možno vyzdvihnúť ešte jeden prijateľný stav - na náročných trasách to bude priesečník križovatky alebo nejaké zahustenie na ceste.
Iné polohy senzorov nebudú brané do úvahy, pretože sú buď odvodené od vyššie uvedených, alebo ide o pozície robota, keď opustil linku a už sa k nej nebude môcť vrátiť pomocou informácií zo senzorov. V dôsledku toho možno všetky vyššie uvedené ustanovenia zredukovať na nasledujúcu klasifikáciu:
  • ľavý snímač, rovnako ako pravý, je nad svetelným povrchom
  • ľavý senzor nad svetlým povrchom, pravý senzor nad tmavým
  • ľavý snímač nad tmavým povrchom, pravý snímač nad svetlom
  • oba snímače sú nad tmavým povrchom
Ak v určitom čase program na robote zistí jednu z týchto pozícií, bude musieť zodpovedajúcim spôsobom zareagovať:
    Ak sú oba senzory nad bielym povrchom, potom je to normálna situácia, v ktorej je čiara medzi senzormi, takže robot musí ísť rovno. Ak je ľavý senzor stále nad svetlom a pravý senzor je už nad Ak je ľavý senzor nad tmavým povrchom a pravý je stále nad Svetlý, potom sa robot musí otočiť doľava, aby sa zarovnal. Ak sú oba senzory nad tmavým povrchom, potom vo všeobecnosti robot ide opäť rovno.

Vyššie uvedený diagram okamžite ukazuje, ako presne by sa malo zmeniť správanie motorov v programe. Teraz by písanie programu nemalo byť zložité. Mali by ste začať výberom, ktorý snímač bude vyzvaný ako prvý. Je to vlastne jedno, tak to nechaj. Je potrebné určiť, či je na svetlom alebo tmavom povrchu:
Táto akcia ešte neumožňuje povedať, ktorým smerom by sa mal robot vydať. Vyššie uvedené stavy však rozdelí do dvoch skupín: (I, II) pre hornú vetvu a (III, IV) pre dolnú vetvu. Každá zo skupín má teraz dva stavy, takže si musíte vybrať jeden z nich. Ak sa pozriete pozorne na prvé dva stavy I a II, líšia sa polohou pravého snímača - v jednom prípade je nad svetlým povrchom, v druhom - nad tmavým. Toto určuje výber akcie:
Teraz môžete vložiť bloky, ktoré definujú správanie motorov podľa vyššie uvedených tabuliek: horná vetva vnorenej podmienky definuje kombináciu "oba senzory svietia", horná časť - "vľavo svieti, vpravo je tma":
Nižšia vetva hlavného stavu je zodpovedná za ďalšiu skupinu štátov III a IV. Tieto dva stavy sa od seba líšia aj úrovňou osvetlenia, ktorú zachytí správny snímač. Takže to určí výber každého z nich:
Výsledné dve vetvy sú vyplnené pohybovými blokmi. Horná vetva je zodpovedná za stav „vľavo v tme, vpravo vo svetle“ a dolná vetva je zodpovedná za „oba senzory v tme“.
Treba poznamenať, že tento dizajn určuje iba spôsob zapínania motorov v závislosti od údajov snímačov na určitom mieste v teréne, prirodzene, po chvíli musí program skontrolovať, či sa hodnoty zmenili, aby sa opravili správanie sa motorov podľa toho a po chvíli znova, znova atď.. d. Preto by mal byť umiestnený v slučke, ktorá zabezpečí túto opakovanú kontrolu:

Takýto pomerne jednoduchý program zabezpečí pomerne vysokú rýchlosť pohybu robota po čiare bez prekročenia jej limitov, ak správne nastavíte maximálnu rýchlosť pri pohybe v stavoch I a IV a tiež nastavíte optimálny spôsob brzdenia v stavoch II a IV. III - čím strmšie sú zákruty na trati, tým "tvrdšie" by malo byť brzdenie - rýchlosť by mala klesať rýchlejšie a naopak - pri plynulých zákrutách je celkom možné použiť brzdenie vypnutím energie alebo dokonca mierny pokles rýchlosti.

Pár samostatných slov treba povedať aj o umiestnení senzorov na robote. Je zrejmé, že pre umiestnenie týchto dvoch snímačov vzhľadom na kolesá budú platiť rovnaké odporúčania ako pre jeden snímač, len stred segmentu spájajúceho dva snímače sa považuje za vrchol trojuholníka. Samotná vzdialenosť medzi senzormi by mala byť zvolená aj z charakteristík dráhy: čím bližšie sú senzory k sebe, tým častejšie sa robot vyrovná (vykonáva relatívne pomalé otáčky), ale ak sú senzory dostatočne rozmiestnené , potom hrozí vyletenie z trate, takže na rovinkách budete musieť vykonávať tesnejšie zákruty a pomalší pohyb.



Aby sa robot pohyboval hladko po čiernej čiare, musíte ho prinútiť, aby sám vypočítal rýchlosť pohybu.

Človek vidí čiernu čiaru a jej jasnú hranicu. Svetelný senzor funguje trochu inak.

Práve túto vlastnosť svetelného senzora – neschopnosť jasne rozlíšiť hranicu bielej a čiernej – využijeme na výpočet rýchlosti pohybu.

Najprv si predstavme pojem „Ideálny bod trajektórie“.

Hodnoty svetelného senzora sa pohybujú od 20 do 80, najčastejšie na bielom, hodnoty sú asi 65, na čiernom asi 40.

Ideálnym bodom je podmienený bod približne v strede bielej a čiernej farby, po ktorom sa bude robot pohybovať po čiernej čiare.

Tu je zásadné umiestnenie bodky – medzi bielou a čiernou. Na bielu alebo čiernu to nebude možné z matematických dôvodov presne nastaviť, prečo - to bude jasné neskôr.

Empiricky sme vypočítali, že ideálny bod možno vypočítať pomocou nasledujúceho vzorca:

Robot sa musí pohybovať presne pozdĺž ideálneho bodu. Ak dôjde k odchýlke v ktoromkoľvek smere, robot sa musí vrátiť do tohto bodu.

Poďme skladať matematický popis problému.

Počiatočné údaje.

Perfektná pointa.

Aktuálne hodnoty svetelného senzora.

Výsledok.

Výkon motora B.

Výkon otáčania motora C.

rozhodnutie.

Uvažujme o dvoch situáciách. Po prvé: robot sa odklonil od čiernej čiary smerom k bielej.

V tomto prípade musí robot zvýšiť rotačný výkon motora B a znížiť výkon motora C.

V situácii, keď robot nabehne na čiernu čiaru, je opak pravdou.

Čím viac sa robot odchyľuje od ideálneho bodu, tým rýchlejšie sa doň potrebuje vrátiť.

Vytvorenie takéhoto regulátora je však pomerne náročná úloha a nie vždy sa vyžaduje ako celok.

Preto sme sa rozhodli obmedziť sa na P-regulátor, ktorý adekvátne reaguje na odchýlky od čiernej čiary.

V jazyku matematiky by to bolo napísané takto:

kde Hb a Hc sú celkové výkony motorov B a C, v tomto poradí,

Hbase - určitý základný výkon motorov, ktorý určuje rýchlosť robota. Vyberá sa experimentálne v závislosti od konštrukcie robota a ostrosti zákrut.

Itech - aktuálne hodnoty svetelného senzora.

I id - vypočítaný ideálny bod.

k je koeficient proporcionality vybraný experimentálne.

V tretej časti sa pozrieme na to, ako to naprogramovať v prostredí NXT-G.

Jedným zo základných pohybov v legokonštrukcii je sledovanie čiernej čiary.

Všeobecná teória a konkrétne príklady vytvárania programu sú popísané na stránke wroboto.ru

Popíšem, ako to implementujeme v prostredí EV3, pretože existujú rozdiely.

Prvá vec, ktorú robot potrebuje vedieť, je hodnota „ideálneho bodu“, ktorý sa nachádza na hranici čiernej a bielej.

Umiestnenie červenej bodky na obrázku práve zodpovedá tejto polohe.

Ideálnou možnosťou výpočtu je zmerať hodnotu čiernej a bielej a použiť aritmetický priemer.

Môžete to urobiť ručne. Nevýhody sú však okamžite viditeľné: aj počas krátkeho času sa osvetlenie môže zmeniť a vypočítaná hodnota sa ukáže ako nesprávna.

Takže môžete prinútiť robota, aby to urobil.

V priebehu experimentov sme zistili, že nie je potrebné merať čiernu aj bielu. Je možné merať iba bielu. A hodnota ideálneho bodu sa vypočíta ako hodnota bielej vydelená 1,2 (1,15), v závislosti od šírky čiernej čiary a rýchlosti robota.

Vypočítaná hodnota musí byť zapísaná do premennej, aby ste k nej mali neskôr prístup.

Výpočet „ideálneho bodu“

Ďalším parametrom zapojeným do pohybu je pomer otáčania. Čím je väčšia, tým ostrejšie reaguje robot na zmeny osvetlenia. Príliš vysoká hodnota však spôsobí kývanie robota. Hodnota sa volí experimentálne individuálne pre každý dizajn robota.

Posledným parametrom je základný výkon motorov. Ovplyvňuje rýchlosť robota. Zvýšenie rýchlosti pohybu vedie k zvýšeniu doby odozvy robota na zmeny osvetlenia, čo môže viesť k vybočeniu z trajektórie. Hodnota je tiež vybraná experimentálne.

Pre pohodlie je možné tieto parametre zapísať aj do premenných.

Pomer riadenia a základný výkon

Logika pohybu pozdĺž čiernej čiary je nasledovná: meria sa odchýlka od ideálneho bodu. Čím je väčší, tým silnejší by sa mal robot snažiť vrátiť sa k nemu.

Na tento účel vypočítame dve čísla - hodnotu výkonu každého z motorov B a C samostatne.

Vo forme vzorca to vyzerá takto:

Kde Isens je hodnota nameraná svetelným senzorom.

Nakoniec implementácia v EV3. Najvýhodnejšie je vydať formou samostatného bloku.

Implementácia algoritmu

Toto je algoritmus, ktorý bol implementovaný do robota pre strednú kategóriu WRO 2015


Ak chcete zobraziť prezentáciu s obrázkami, dizajnom a snímkami, stiahnite si jeho súbor a otvorte ho v PowerPointe na vašom počítači.
Textový obsah snímok prezentácie:
„Algoritmus na pohyb po čiernej čiare s jedným farebným senzorom“ Kruh na tému „Robotika“ Učiteľ pred Yezidovom Ahmedom Elievichom na UMB DO „Shelkovskaya CTT“ Na štúdium algoritmu na pohyb po čiernej čiare robot Lego Mindstorms EV3 s jedným farebným senzorom bude použitý Farebný senzor Farebný senzor rozlišuje 7 farieb a dokáže zistiť absenciu farby. Rovnako ako v NXT môže fungovať ako svetelný senzor Line S Robot Competition Field Navrhovaná dráha v tvare písmena „S“ vám umožní uskutočniť ďalší zaujímavý test vytvorených robotov na rýchlosť a reakciu. Zoberme si najjednoduchší algoritmus na pohyb po čiernej čiare na jednom farebnom senzore na EV3. Tento algoritmus je najpomalší, ale najstabilnejší. Robot sa nebude pohybovať striktne po čiernej čiare, ale po jej hranici, otáčať sa doľava a doprava a postupný pohyb vpred Algoritmus je veľmi jednoduchý: ak senzor vidí čiernu farbu, potom sa robot otáča jedným smerom, ak vidí bielu, druhým smerom. Trasovanie čiary v režime odrazeného svetla s dvoma snímačmi Niekedy nemusí byť farebný snímač schopný veľmi dobre rozlíšiť čiernu a bielu. Riešením tohto problému je použitie snímača nie v režime detekcie farieb, ale v režime detekcie jasu odrazeného svetla. V tomto režime, keď poznáme hodnoty snímača na tmavom a svetlom povrchu, môžeme nezávisle povedať, čo sa bude považovať za biele a čo za čierne. Teraz určme hodnoty jasu na bielom a čiernom povrchu. Ak to chcete urobiť, v ponuke tehly EV3 nájdeme záložku „Aplikácie tehly“ Teraz ste v okne zobrazenia prístavu a môžete vidieť hodnoty všetkých senzorov v aktuálnom okamihu. naše senzory by mali svietiť na červeno, čo znamená, že sú v režime detekcie odrazeného svetla. Ak svietia modro, v okne zobrazenia portu na požadovanom porte stlačte stredové tlačidlo a vyberte režim COL-REFLECT Teraz umiestnime robota tak, aby boli oba senzory umiestnené nad bielou plochou. Pozeráme sa na čísla v portoch 1 a 4. V našom prípade sú to hodnoty 66 a 71. Toto budú biele hodnoty senzorov. Teraz umiestnime robota tak, aby boli senzory umiestnené nad čiernou plochou. Opäť sa pozrime na hodnoty portov 1 a 4. Máme 5 a 6. Toto sú významy čiernej. Ďalej upravíme predchádzajúci program. Meníme totiž nastavenia prepínačov. Pokiaľ majú nainštalovaný Color Sensor -> Measurement -> Color. Musíme nastaviť Color Sensor -> Comparison -> Reflected Light Intensity Teraz musíme nastaviť "typ porovnania" a "prahovú hodnotu". Prahová hodnota je hodnota nejakej „šedej“, hodnoty, pod ktorými budeme považovať čiernu, a ďalšie - biele. Pre prvú aproximáciu je vhodné použiť priemernú hodnotu medzi bielou a čiernou farbou každého snímača. Prahová hodnota prvého snímača (port #1) bude teda (66+5)/2=35,5. Zaokrúhlite na 35. Prahová hodnota druhého snímača (port #4): (71+6)/2 = 38,5. Zaokrúhlime na 38. Teraz nastavíme tieto hodnoty v každom prepínači, resp. To je všetko, bloky s pohybmi zostanú na svojich miestach nezmenené, pretože ak do "typu porovnania" dáme znak "<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже. Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета

Riadiace algoritmy pre mobilného LEGO robota. Sledovanie čiary pomocou dvoch svetelných senzorov

Učiteľ doplnkového vzdelávania

Kazakova Lyubov Alexandrovna


Pohyb linky

  • Dva svetelné senzory
  • Proporcionálny regulátor (P regulátor)

Algoritmus pohybu pozdĺž čiernej čiary bez proporcionálneho regulátora

  • Oba motory sa otáčajú s rovnakým výkonom
  • Ak pravý svetelný senzor narazí na čiernu čiaru, výkon ľavého motora (napríklad B) sa zníži alebo zastaví
  • Ak ľavý svetelný senzor narazí na čiernu čiaru, výkon druhého z motorov (napríklad C) sa zníži (vráti sa do čiary), zníži sa alebo sa zastaví.
  • Ak sú oba snímače biele alebo čierne, potom ide o priamočiary pohyb

Pohyb je organizovaný zmenou výkonu jedného z motorov


Príklad programu na pohyb po čiernej čiare bez P-regulátora

Pohyb je organizovaný zmenou uhla natočenia


  • Proporcionálny regulátor (P-controller) umožňuje upraviť správanie robota v závislosti od toho, ako veľmi sa jeho správanie líši od želaného.
  • Čím viac sa robot odchyľuje od cieľa, tým väčšia sila je potrebná na návrat k nemu.

  • P-kontrolér sa používa na udržanie robota v určitom stave:
  • Držte polohu manipulátora Pohybujte sa pozdĺž čiary (senzor svetla) Pohybujte sa pozdĺž steny (senzor vzdialenosti)
  • Držanie polohy manipulátora
  • Pohyb čiary (svetelný senzor)
  • Pohyb po stene (senzor vzdialenosti)

Sledovanie čiar s jedným senzorom

  • Cieľom je pohybovať sa po hranici „bielo-čierne“
  • Človek dokáže rozlíšiť hranicu bielej a čiernej. Robot nemôže.
  • Cieľ pre robota je na šedej farbe

Prejazdy

Pri použití dvoch svetelných senzorov je možné organizovať premávku na náročnejších trasách



Algoritmus pre jazdu po diaľnici s križovatkami

  • Oba senzory na bielom - robot jazdí v priamom smere (oba motory sa otáčajú s rovnakým výkonom)
  • Ak pravý svetelný senzor narazí na čiernu čiaru a ľavý na bielu čiaru, otočí sa doprava
  • Ak ľavý svetelný senzor narazí na čiernu čiaru a pravý na bielu čiaru, otočí sa doľava
  • Ak sú oba snímače čierne, dôjde k priamočiaremu pohybu. Môžete počítať križovatky alebo vykonať nejakú akciu


Princíp činnosti P-regulátora

Poloha snímačov

O=01-02


Algoritmus pohybu pozdĺž čiernej čiary s proporcionálnym ovládačom

SW \u003d K * (C-T)

  • C - cieľové hodnoty (odčítajte hodnoty zo svetelného senzora na bielej a čiernej farbe, vypočítajte priemer)
  • T - aktuálna hodnota - prijatá zo snímača
  • K je koeficient citlivosti. Čím viac, tým vyššia je citlivosť.