Pokročilý algoritmus pre pohyb po čiare. Medzinárodné súťaže robotov - Pravidlá - Príklady robotov - LEGO EV3 Ev3 Line Trajectory Robot

Text práce je umiestnený bez obrázkov a vzorcov.
Plná verzia práce je dostupná v záložke „Súbory úloh“ vo formáte PDF

Lego Mindstorms EV3

Prípravná fáza

Vytvorenie a kalibrácia programu

Záver

Literatúra

1. Úvod.

Robotika je jednou z najdôležitejších oblastí vedecko-technického pokroku, v ktorej sa problémy mechaniky a nových technológií dostávajú do kontaktu s problémami umelej inteligencie.

V posledných rokoch pokroky v robotike a automatizovaných systémoch zmenili osobné a obchodné oblasti nášho života. Roboty sú široko používané v doprave, prieskume Zeme a vesmíru, chirurgii, vojenskom priemysle, laboratórnom výskume, bezpečnosti, hromadnej výrobe priemyselného a spotrebného tovaru. Za roboty možno považovať aj mnohé zariadenia, ktoré sa rozhodujú na základe dát získaných zo senzorov – ako napríklad výťahy, bez ktorých je náš život už nemysliteľný.

Konštruktér Mindstorms EV3 nás pozýva vstúpiť do fascinujúceho sveta robotov, ponoriť sa do zložitého prostredia informačných technológií.

Cieľ: Naučiť sa naprogramovať robota, aby sa pohyboval v priamom smere.

    Zoznámte sa s konštruktorom Mindstorms EV3 a jeho programovacím prostredím.

    Napíšte programy pre pohyb robota v priamke pre 30 cm, 1 m 30 cm a 2 m 17 cm.

    Konštruktor Mindstorms EV3.

Dizajnové diely - 601 kusov, servomotor - 3 kusy, farebný senzor, pohybový senzor, infračervený senzor a dotykový senzor. Blok mikroprocesora EV3 je mozgom LEGO Mindstorms.

Za pohyb robota je zodpovedný veľký servomotor, ktorý sa pripája k EV3 Brick a robí robota v pohybe: ísť dopredu a dozadu, otáčať sa a jazdiť po danej trajektórii. Tento servomotor má zabudovaný snímač otáčania, ktorý umožňuje veľmi presne riadiť pohyb robota a jeho rýchlosť.

Pomocou softvéru EV3 môžete prinútiť robota vykonať akciu. Program pozostáva z rôznych riadiacich blokov. Budeme pracovať s pohybovým blokom.

Pohybový blok riadi motory robota, zapína ho, vypína, núti ho pracovať v súlade s úlohami. Pohyb môžete naprogramovať na určitý počet otáčok alebo stupňov.

    Prípravná fáza.

    Vytvorenie technického odboru.

Vyznačíme si pracovné pole robota, pomocou elektrickej pásky a pravítka vytvoríme tri čiary dlhé 30 cm - zelená čiara, 1 m 15 cm - červená a 2 m 17 cm - čierne čiary.

    Potrebné výpočty:

Priemer kolesa robota - 5 cm 7 mm = 5,7 cm.

Jedna otáčka kolesa robota sa rovná obvodu kruhu s priemerom 5,7 cm. Obvod sa zistí podľa vzorca

Kde r je polomer kolesa, d je priemer, π = 3,14

l = 5,7 * 3,14 = 17,898 = 17,9.

Tie. Na jednu otáčku kolesa prejde robot 17,9 cm.

Vypočítajte počet otáčok potrebných na prejdenie:

N = 30: 17,9 = 1,68.

    1m 30cm = 130cm

N = 130: 17,9 = 7,26.

    2 m 17 cm = 217 cm.

N = 217: 17,9 = 12,12.

    Vytvorenie a kalibrácia programu.

Vytvoríme program podľa nasledujúceho algoritmu:

Algoritmus:

    Vyberte pohybový blok v softvéri Mindstorms EV3.

    Zapnite oba motory v danom smere.

    Počkajte, kým sa údaj snímača otáčania jedného z motorov nezmení na špecifikovanú hodnotu.

    Vypnite motory.

Hotový program sa načíta do riadiacej jednotky robota. Položíme robota na pole a stlačíme tlačidlo štart. EV3 ide cez pole a zastaví sa na konci danej čiary. Aby ste však dosiahli presný výsledok, musíte vykonať kalibráciu, pretože vonkajšie faktory ovplyvňujú pohyb.

    Ihrisko je inštalované na študentských laviciach, takže je možné mierne vychýlenie povrchu.

    Povrch ihriska je hladký, preto nie je vylúčená zlá priľnavosť kolies robota k poľu.

    Pri výpočte počtu otáčok sme museli čísla zaokrúhliť, a preto sme zmenou stotín otáčok dosiahli požadovaný výsledok.

5. Záver.

Možnosť naprogramovať robota tak, aby sa pohyboval po priamke, bude užitočná pri vytváraní zložitejších programov. Všetky rozmery pohybu sú spravidla uvedené v podmienkach súťaží v robotike. Sú potrebné, aby program nebol preťažený logickými podmienkami, slučkami a inými zložitými riadiacimi blokmi.

V ďalšej fáze zoznámenia sa s robotom Lego Mindstorms EV3 sa naučíte programovať zákruty pod určitým uhlom, pohyb v kruhu, špirály.

Je veľmi zaujímavé spolupracovať s dizajnérom. Ak sa dozviete viac o jeho možnostiach, môžete vyriešiť akékoľvek technické problémy. A v budúcnosti si možno vytvorte svoje vlastné zaujímavé modely robota Lego Mindstorms EV3.

Literatúra.

    Koposov D. G. "Prvý krok do robotiky pre ročníky 5-6." - M.: Binom. Vedomostné laboratórium, 2012 - 286 s.

    Filippov S. A. "Robotika pre deti a rodičov" - "Veda" 2010

    internetové zdroje

    http://lego. rkc-74.ru/

    http://www.9151394.ru/projects/lego/lego6/beliovskaya/

    http://www. lego. com/vzdelanie/


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. Zvážte najjednoduchší algoritmus na pohyb pozdĺž čiernej čiary na jednom farebnom senzore na EV3. Tento algoritmus je najpomalší, ale najstabilnejší. Robot sa nebude pohybovať striktne pozdĺž čiernej čiary, ale pozdĺž jej okraja, 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. Aby ste to dosiahli, 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 brať do úvahy č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, для движения по черной линии, с одним и двумя датчиками цвета

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

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, potom sa výkon druhého z motorov (napríklad C) 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ť.


Takto vidí človek čiaru:

Robot to vidí takto:


Túto funkciu využijeme pri navrhovaní a programovaní robota pre súťažnú kategóriu „Trajektória“.

Existuje mnoho spôsobov, ako naučiť robota vidieť čiaru a pohybovať sa po nej. Existujú zložité a veľmi jednoduché programy.

Chcem hovoriť o spôsobe programovania, ktorý zvládnu aj deti v 2. – 3. ročníku. V tomto veku je pre nich oveľa jednoduchšie skladať konštrukcie podľa návodu a programovanie robota je pre nich náročná úloha. Táto metóda však umožní dieťaťu naprogramovať robota na akúkoľvek trasu trate za 15-30 minút (berúc do úvahy postupné overovanie a úpravu niektorých vlastností trajektórie).

Táto metóda bola testovaná na obecných a regionálnych súťažiach v robotike v regióne Surgut a Khanty-Mansi Autonomous Okrug-Yugra a priniesla našej škole prvé miesta. Tam som sa presvedčil, že táto téma je pre mnohé tímy veľmi aktuálna.

Nuž, začnime.

Pri príprave na tento typ súťaže je programovanie len časťou riešenia problému. Musíte začať tým, že navrhnete robota pre konkrétnu dráhu. V ďalšom článku vám ukážem, ako na to. No keďže pohyb po čiare je veľmi bežný, začnem s programovaním.

Zvážte verziu robota s dvoma svetelnými senzormi, pretože je zrozumiteľnejšia pre žiakov základných škôl.

Svetelné senzory sú pripojené k portom 2 a 3. Motory do portov B a C.
Senzory sú umiestnené na okrajoch linky (skúste experimentovať s umiestnením senzorov v rôznych vzdialenostiach od seba a v rôznych výškach).
Dôležitý bod. Pre čo najlepšiu prevádzku takéhoto obvodu je žiaduce vybrať pár snímačov podľa parametrov. V opačnom prípade bude potrebné zaviesť blok na opravu hodnôt snímačov.
Inštalácia snímačov na podvozok podľa klasickej schémy (trojuholník), približne ako na obrázku.

Program bude pozostávať z malého počtu blokov:


1. Dva bloky svetelného senzora;
2. Štyri bloky "Matematika";
3. Dva bloky motorov.

Robot je riadený dvoma motormi. Výkon každého z nich je 100 jednotiek. Pre našu schému vezmeme priemernú hodnotu výkonu motora rovnú 50. To znamená, že priemerná rýchlosť pri pohybe v priamom smere bude rovná 50 jednotkám. Pri odchýlke od priamočiareho pohybu sa výkon motorov úmerne zvýši alebo zníži v závislosti od uhla odchýlky.

Teraz poďme zistiť, ako spojiť všetky bloky, nastaviť program a čo sa v ňom stane.
Vystavme dva svetelné senzory a priraďme im porty 2 a 3.
Vezmeme blok matematiky a vyberieme "Odčítanie".
Prepojme svetelné senzory z výstupov „Intenzita“ s pneumatikami do matematického bloku na vstupy „A“ a „B“.
Ak sú senzory robota inštalované symetricky od stredu koľajovej čiary, potom budú hodnoty oboch senzorov rovnaké. Po odčítaní dostaneme hodnotu - 0.
Nasledujúci blok matematiky sa použije ako koeficient a je potrebné v ňom nastaviť "Násobiť".
Na výpočet koeficientu je potrebné zmerať úroveň „bielej“ a „čiernej“ pomocou jednotky NXT.
Predpokladajme: biela -70, čierna -50.
Ďalej vypočítame: 70-50=20 (rozdiel medzi bielou a čiernou), 50/20=2,5 ​​(priemernú hodnotu výkonu pri pohybe po priamke v blokoch matematiky nastavíme na 50. Táto hodnota plus pridaná sila pri nastavovaní pohybu by sa mala rovnať 100)
Skúste nastaviť hodnotu na 2,5 na vstupe „A“ a potom ju zistite presnejšie.
Pripojte výstup „Výsledok“ predchádzajúceho matematického bloku „Odčítanie“ k vstupu „B“ matematického bloku „Násobenie“.
Nasleduje dvojica - blok matematiky (Sčítanie) a motor B.
Nastavenie matematického bloku:
Vstup "A" je nastavený na 50 (polovičný výkon motora).
Výstup bloku „Result“ je pripojený zbernicou k vstupu „Power“ motora B.
Po pare nasleduje matematický blok (Odčítanie) a motor C.
Nastavenie matematického bloku:
Vstup "A" je nastavený na 50.
Vstup "B" je prepojený zbernicou s výstupom "Výsledok" bloku matematiky "Násobenie".
Výstup bloku „Result“ je pripojený zbernicou k vstupu „Power“ motora C.

V dôsledku všetkých týchto akcií získate nasledujúci program:

Keďže toto všetko bude fungovať v cykle, pridáme "Cyklus", vyberieme a prenesieme to všetko do "Cyklus".

Teraz sa pokúsme zistiť, ako bude program fungovať a ako ho nakonfigurovať.


Kým sa robot pohybuje v priamom smere, hodnoty senzorov sú rovnaké, čo znamená, že výstup bloku „Odčítanie“ bude mať hodnotu 0. Výstup bloku „Multiplikácia“ tiež udáva hodnotu 0. Táto hodnota sa privádza paralelne k riadiacemu páru motora. Keďže v týchto blokoch je nastavená hodnota 50, pridanie alebo odčítanie 0 neovplyvní výkon motorov. Oba motory bežia na rovnaký výkon 50 a robot sa valí v priamom smere.

Predpokladajme, že dráha zatočí alebo sa robot odchýli od priamky. Čo sa bude diať?

Obrázok ukazuje, že osvetlenie snímača pripojeného k portu 2 (ďalej len snímače 2 a 3) sa zvyšuje, pretože sa presunie do bieleho poľa, a osvetlenie snímača 3 klesá. Predpokladajme, že hodnoty týchto snímačov sú: snímač 2 - 55 jednotiek a snímač 3 - 45 jednotiek.
Blok „Odčítania“ určí rozdiel medzi hodnotami dvoch senzorov (10) a privedie ho do korekčného bloku (vynásobenie faktorom (10 * 2,5 = 25)) a potom do riadiacich blokov.
motory.
V matematickom bloku (Pridanie) riadenia motora B na priemernú hodnotu rýchlosti 50
25 sa pridá a na motor B sa použije hodnota výkonu 75.
V matematickom bloku (Odčítanie) ovládania motora C sa od priemernej hodnoty rýchlosti 50 odpočíta 25 a na motor C sa použije hodnota výkonu 25.
Tým sa opraví odchýlka od priamky.

Ak sa dráha prudko stočí do strany a snímač 2 je na bielom a snímač 3 na čiernom. Hodnoty osvetlenia týchto snímačov sú: snímač 2 - 70 jednotiek a snímač 3 - 50 jednotiek.
Blok "Odčítanie" určí rozdiel medzi hodnotami dvoch snímačov (20) a privedie ho do korekčného bloku (20 * 2,5 = 50) a potom do riadiacich blokov motora.
Teraz v bloku matematiky (doplnok) ovládajúceho motor B sa na motor B použije hodnota výkonu 50 + 50 = 100.
V matematickom bloku (Odčítanie) riadenia motora C sa na motor C použije hodnota výkonu 50 - 50 = 0.
A robot prudko zatočí.

Na bielom a čiernom poli sa robot musí pohybovať v priamom smere. Ak sa tak nestane, pokúste sa spárovať snímače s rovnakými hodnotami.

Teraz vytvorte nový blok a použite ho na pohyb robota po akejkoľvek dráhe.
Vyberte cyklus a potom v ponuke „Upraviť“ vyberte príkaz „Vytvoriť môj blok“.

V dialógovom okne "Block Builder" pomenujte náš blok, napríklad "Go", vyberte ikonu pre blok a kliknite na "HOTOVO".

Teraz máme blok, ktorý sa dá použiť v prípadoch, keď sa potrebujeme pohybovať po čiare.