Napredni algoritam za kretanje duž linije. Međunarodna natjecanja robota - Pravila - Primjeri robota - LEGO EV3 Ev3 Line Trajectory Robot

Tekst rada postavljen je bez slika i formula.
Puna verzija rada dostupna je na kartici "Datoteke poslova" u PDF formatu

Lego Mindstorms EV3

Pripremna faza

Izrada i kalibracija programa

Zaključak

Književnost

1. Uvod.

Robotika je jedno od najvažnijih područja znanstvenog i tehnološkog napretka, u kojem se problemi mehanike i novih tehnologija dovode u dodir s problemima umjetne inteligencije.

Posljednjih godina napredak u robotici i automatiziranim sustavima promijenio je osobna i poslovna područja naših života. Roboti se široko koriste u transportu, istraživanju zemlje i svemira, kirurgiji, vojnoj industriji, laboratorijskim istraživanjima, sigurnosti, masovnoj proizvodnji industrijskih i potrošačkih dobara. Mnogi uređaji koji donose odluke na temelju podataka dobivenih od senzora također se mogu smatrati robotima – kao što su, na primjer, dizala, bez kojih je naš život već nezamisliv.

Mindstorms EV3 konstruktor poziva nas da uđemo u fascinantan svijet robota, uronimo u složeno okruženje informacijske tehnologije.

Cilj: Naučiti programirati robota da se kreće pravocrtno.

    Upoznajte se s konstruktorom Mindstorms EV3 i njegovim programskim okruženjem.

    Napišite programe za pravocrtno kretanje robota za 30 cm, 1 m 30 cm i 2 m 17 cm.

    Mindstorms EV3 konstruktor.

Dizajnerski dijelovi - 601 komad, servo motor - 3 komada, senzor boje, senzor pokreta, infracrveni senzor i senzor dodira. EV3 mikroprocesorski blok je mozak LEGO Mindstormsa.

Za kretanje robota odgovoran je veliki servo motor, koji se povezuje s EV3 Brickom i tjera robota da se kreće: ide naprijed-natrag, okreće se i vozi zadanom putanjom. Ovaj servomotor ima ugrađen senzor rotacije, koji vam omogućuje vrlo precizno upravljanje kretanjem robota i njegovom brzinom.

Možete natjerati robota da izvrši radnju pomoću softvera EV3. Program se sastoji od raznih kontrolnih blokova. Radit ćemo s blokom kretanja.

Blok pokreta kontrolira motore robota, uključuje ga, isključuje, tjera da radi u skladu sa zadacima. Možete programirati kretanje na određeni broj okretaja ili stupnjeva.

    Pripremna faza.

    Stvaranje tehničkog polja.

Obilježit ćemo radno polje robota, pomoću ljepljive trake i ravnala izradit ćemo tri linije dužine 30 cm - zelenu liniju, 1 m 15 cm - crvenu i 2 m 17 cm - crne linije.

    Potrebni izračuni:

Promjer kotača robota - 5 cm 7 mm = 5,7 cm.

Jedan okret kotača robota jednak je opsegu kruga promjera 5,7 cm. Obim se nalazi po formuli

Gdje je r polumjer kotača, d je promjer, π = 3,14

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

Oni. Za jedan okret kotača robot prijeđe 17,9 cm.

Izračunajte broj okretaja potreban za prolazak:

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.

    Izrada i kalibracija programa.

Napravit ćemo program prema sljedećem algoritmu:

Algoritam:

    Odaberite blok pokreta u softveru Mindstorms EV3.

    Uključite oba motora u zadanom smjeru.

    Pričekajte da se očitanje senzora rotacije jednog od motora promijeni na zadanu vrijednost.

    Isključite motore.

Gotov program se učitava u upravljačku jedinicu robota. Stavljamo robota na teren i pritisnemo tipku za pokretanje. EV3 vozi preko polja i zaustavlja se na kraju zadane linije. Ali da biste postigli točan završetak, morate kalibrirati, jer vanjski čimbenici utječu na kretanje.

    Teren se postavlja na studentske stolove pa je moguć blagi otklon površine.

    Površina terena je glatka pa nije isključeno loše prianjanje kotača robota na teren.

    Pri izračunavanju broja okretaja morali smo zaokružiti brojeve, pa smo promjenom stotinki okretaja postigli traženi rezultat.

5. Zaključak.

Mogućnost programiranja robota da se kreće pravolinijski bit će korisna za stvaranje složenijih programa. U pravilu su sve dimenzije kretanja navedene u projektnom zadatku za natjecanja u robotici. Oni su neophodni kako program ne bi bio preopterećen logičkim uvjetima, petljama i drugim složenim kontrolnim blokovima.

U sljedećoj fazi upoznavanja s Lego Mindstorms EV3 robotom naučit ćete kako programirati zavoje pod određenim kutom, kretanje u krug, spirale.

Vrlo je zanimljivo raditi s dizajnerom. Saznajući više o njegovim mogućnostima, možete riješiti sve tehničke probleme. I u budućnosti, možda, stvorite svoje zanimljive modele Lego Mindstorms EV3 robota.

Književnost.

    Koposov D. G. "Prvi korak u robotiku za 5-6 razrede." - M.: Binom. Laboratorij znanja, 2012. - 286 str.

    Filippov S. A. "Robotika za djecu i roditelje" - "Znanost" 2010

    Internet resursi

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

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

    http://www. lego. com/obrazovanje/


Za prikaz prezentacije sa slikama, dizajnom i slajdovima, preuzmite njegovu datoteku i otvorite je u PowerPointu na vašem računalu.
Tekstualni sadržaj slajdova prezentacije:
“Algoritam za kretanje duž crne linije s jednim senzorom boje” Krug o “Robotici” Nastavnik prije Yezidova Ahmeda Elijeviča U MBU DO “Shelkovskaya CTT” Za proučavanje algoritma za kretanje duž crne linije, Lego Mindstorms EV3 robot s jednim senzorom boje koristit će se Senzor boja Senzor boja razlikuje 7 boja i može otkriti odsutnost boje. Kao i u NXT-u, može raditi kao svjetlosni senzor Line S Robot Competition Field Predložena staza u obliku slova "S" omogućit će vam da provedete još jedan zanimljiv test stvorenih robota na brzinu i reakciju. Razmotrimo najjednostavniji algoritam za kretanje duž crne linije na jednom senzoru boje na EV3. Ovaj algoritam je najsporiji, ali najstabilniji. Robot se neće kretati strogo duž crne linije, već duž njezine granice, okrećući se lijevo i desno i postupno se kreće naprijed Algoritam je vrlo jednostavan: ako senzor vidi crno, onda se robot okreće u jednom smjeru, ako vidi bijelo - u drugom. Praćenje linije u načinu reflektiranog svjetla s dva senzora Ponekad senzor boje možda neće moći dobro razlikovati crno-bijelo. Rješenje ovog problema je korištenje senzora ne u načinu detekcije boja, već u načinu detekcije svjetline reflektirane svjetlosti. U ovom načinu rada, znajući vrijednosti senzora na tamnoj i svijetloj površini, možemo samostalno reći što će se smatrati bijelim, a što crnim. Sada odredimo vrijednosti svjetline na bijeloj i crnoj površini. Da biste to učinili, u izborniku EV3 Brick nalazimo karticu "Brick Applications" Sada ste u prozoru za prikaz porta i možete vidjeti očitanja svih senzora u trenutnom trenutku. naši senzori trebaju svijetliti crveno, što znači da su u načinu detekcije reflektirane svjetlosti. Ako svijetle plavo, u prozoru za prikaz porta na željenom portu pritisnite središnju tipku i odaberite način rada COL-REFLECT Sada ćemo robota postaviti tako da se oba senzora nalaze iznad bijele površine. Gledamo brojeve u portovima 1 i 4. U našem slučaju, vrijednosti su 66, odnosno 71. To će biti bijele vrijednosti senzora. Sada postavimo robota tako da se senzori nalaze iznad crne površine. Opet, pogledajmo vrijednosti portova 1 i 4. Imamo 5 i 6. Ovo su značenja crne. Zatim ćemo izmijeniti prethodni program. Naime, mijenjamo postavke prekidača. Sve dok imaju instaliran senzor boje -> mjerenje -> boja. Moramo postaviti senzor boje -> Usporedba -> Intenzitet reflektiranog svjetla Sada moramo postaviti "vrstu usporedbe" i "vrijednost praga". Vrijednost praga je vrijednost neke "sive", vrijednosti ispod kojih ćemo smatrati crnom, a više - bijelom. Za prvu aproksimaciju, prikladno je koristiti prosječnu vrijednost između bijele i crne boje svakog senzora. Dakle, vrijednost praga prvog senzora (priključak #1) bit će (66+5)/2=35,5. Zaokružite na 35. Vrijednost praga drugog senzora (port #4): (71+6)/2 = 38,5. Zaokružimo na 38. Sada postavljamo ove vrijednosti u svaki prekidač, odnosno. To je sve, blokovi s pokretima ostaju na svojim mjestima nepromijenjeni, jer ako stavimo znak " u "vrstu usporedbe"<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже. Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета

Jedan od osnovnih pokreta u legokonstrukciji je praćenje crne linije.

Opća teorija i konkretni primjeri izrade programa opisani su na web stranici wroboto.ru

Opisat ću kako to implementiramo u EV3 okruženju, jer postoje razlike.

Prva stvar koju robot treba znati je vrijednost "idealne točke" koja se nalazi na granici crnog i bijelog.

Položaj crvene točke na slici upravo odgovara ovom položaju.

Idealna opcija izračuna je izmjeriti vrijednost crno-bijele i uzeti aritmetičku sredinu.

Možete to učiniti ručno. Ali nedostaci su odmah vidljivi: čak i za kratko vrijeme, osvjetljenje se može promijeniti, a izračunata vrijednost će se pokazati netočnom.

Dakle, možete natjerati robota da to učini.

Tijekom pokusa ustanovili smo da nije potrebno mjeriti i crno i bijelo. Može se mjeriti samo bijelo. A vrijednost idealne točke izračunava se kao vrijednost bijele boje podijeljena s 1,2 (1,15), ovisno o širini crne linije i brzini robota.

Izračunata vrijednost mora biti zapisana u varijablu kako bi joj se kasnije pristupilo.

Izračun "idealne točke"

Sljedeći parametar uključen u kretanje je brzina okretanja. Što je veći, to će robot oštrije reagirati na promjene u osvjetljenju. Ali previsoka vrijednost će uzrokovati ljuljanje robota. Vrijednost se odabire eksperimentalno pojedinačno za svaki dizajn robota.

Posljednji parametar je osnovna snaga motora. Utječe na brzinu robota. Povećanje brzine kretanja dovodi do povećanja vremena odziva robota na promjene u osvjetljenju, što može dovesti do odlaska s putanje. Vrijednost se također odabire eksperimentalno.

Radi praktičnosti, ovi se parametri također mogu zapisati u varijable.

Omjer upravljanja i bazna snaga

Logika kretanja duž crne linije je sljedeća: mjeri se odstupanje od idealne točke. Što je veći, to bi se robot snažnije trebao truditi da mu se vrati.

Da bismo to učinili, izračunavamo dva broja - vrijednost snage svakog od motora B i C zasebno.

U obliku formule to izgleda ovako:

Gdje je Isens vrijednost očitanja svjetlosnog senzora.

Konačno, implementacija u EV3. Najprikladnije je izdati u obliku zasebnog bloka.

Implementacija algoritma

Ovo je algoritam koji je implementiran u robota za srednju kategoriju WRO 2015

Upravljački algoritmi za mobilni LEGO robot. Praćenje linije s dva svjetlosna senzora

Učiteljica dodatnog obrazovanja

Kazakova Lyubov Aleksandrovna


Kretanje linije

  • Dva svjetlosna senzora
  • Proporcionalni regulator (P regulator)

Algoritam za kretanje duž crne linije bez proporcionalnog regulatora

  • Oba motora se vrte istom snagom
  • Ako desni senzor svjetla pogodi crnu liniju, tada se snaga lijevog motora (na primjer B) smanjuje ili zaustavlja
  • Ako lijevi svjetlosni senzor udari u crnu liniju, tada se snaga drugog motora (na primjer, C) smanjuje (vraća se na liniju), smanjuje se ili zaustavlja
  • Ako su oba senzora na bijeloj ili crnoj boji, postoji pravocrtno kretanje

Kretanje je organizirano promjenom snage jednog od motora


Primjer programa za kretanje po crnoj liniji bez P-kontrolera

Kretanje je organizirano promjenom kuta rotacije


  • Proporcionalni kontroler (P-controller) omogućuje podešavanje ponašanja robota, ovisno o tome koliko se njegovo ponašanje razlikuje od željenog.
  • Što robot više odstupa od cilja, to je veća sila potrebna da se vrati do njega.

  • P-kontroler se koristi za održavanje robota u određenom stanju:
  • Zadržite položaj manipulatora Kretanje duž linije (senzor svjetla) Kretanje duž zida (senzor udaljenosti)
  • Zadržavanje položaja manipulatora
  • Kretanje linije (senzor svjetla)
  • Kretanje duž zida (senzor udaljenosti)

Praćenje linije s jednim senzorom

  • Cilj je kretanje uz granicu "bijelo-crno"
  • Osoba može razlikovati granicu bijele i crne boje. Robot ne može.
  • Meta za robota je na sivoj boji

Prijelazi

Pri korištenju dva svjetlosna senzora moguće je organizirati promet na težim rutama



Algoritam za vožnju autocestom s raskrižjima

  • Oba senzora na bijelom - robot vozi ravno (oba motora se vrte istom snagom)
  • Ako desni senzor svjetla pogodi crnu liniju, a lijevi na bijelu liniju, onda skreće udesno
  • Ako lijevi senzor svjetla udari u crnu liniju, a desni u bijelu liniju, onda skreće lijevo
  • Ako su oba senzora crna, tada dolazi do pravocrtnog kretanja. Možete brojati raskrižja ili izvoditi neku vrstu radnje


Princip rada P-regulatora

Položaj senzora

O=O1-O2


Algoritam za kretanje duž crne linije s proporcionalnim regulatorom

SW \u003d K * (C-T)

  • C - ciljne vrijednosti (uzmite očitanja sa svjetlosnog senzora na bijeloj i crnoj boji, izračunajte prosjek)
  • T - trenutna vrijednost - primljena od senzora
  • K je koeficijent osjetljivosti. Što više, to je veća osjetljivost.


Ovako osoba vidi liniju:

Ovako to vidi robot:


Ovu značajku koristit ćemo prilikom dizajniranja i programiranja robota za natjecateljsku kategoriju "Putanja".

Postoji mnogo načina da naučite robota da vidi liniju i kreće se po njoj. Postoje složeni programi i vrlo jednostavni.

Želim govoriti o metodi programiranja koju će svladati čak i djeca od 2. do 3. razreda. U ovoj dobi puno im je lakše sastavljati strukture prema uputama, a programiranje robota im je težak zadatak. Ali ova metoda će omogućiti djetetu da programira robota na bilo kojoj ruti staze za 15-30 minuta (uzimajući u obzir faznu provjeru i prilagodbu nekih značajki putanje).

Ova metoda je testirana na općinskim i regionalnim natjecanjima iz robotike u regiji Surgut i Khanty-Mansi Autonomni Okrug-Jugra i donijela je našoj školi prva mjesta. Tamo sam se uvjerio da je ova tema vrlo relevantna za mnoge timove.

Pa, krenimo.

Kada se pripremate za ovakvu vrstu natjecanja, programiranje je samo dio rješenja problema. Morate započeti s dizajniranjem robota za određenu stazu. U sljedećem članku pokazat ću vam kako to učiniti. Pa, budući da je kretanje duž linije vrlo uobičajeno, počet ću s programiranjem.

Razmislite o verziji robota s dva senzora svjetlosti, jer je to razumljivije učenicima osnovne škole.

Svjetlosni senzori su spojeni na priključke 2 i 3. Motori do priključaka B i C.
Senzori su postavljeni na rubove linije (pokušajte eksperimentirati s postavljanjem senzora na različitim udaljenostima jedan od drugog i na različitim visinama).
Važna točka. Za najbolji rad takvog kruga poželjno je odabrati par senzora prema parametrima. Inače će biti potrebno uvesti blok za ispravljanje vrijednosti senzora.
Ugradnja senzora na šasiju prema klasičnoj shemi (trokut), otprilike kao na slici.

Program će se sastojati od malog broja blokova:


1. Dva bloka svjetlosnog senzora;
2. Četiri bloka "Matematika";
3. Dva bloka motora.

Robotom upravljaju dva motora. Snaga svake je 100 jedinica. Za našu shemu uzet ćemo prosječnu vrijednost snage motora jednaku 50. To jest, prosječna brzina pri kretanju u ravnoj liniji bit će jednaka 50 jedinica. Prilikom odstupanja od pravolinijskog gibanja, snaga motora će se proporcionalno povećavati ili smanjivati, ovisno o kutu odstupanja.

Sada ćemo shvatiti kako spojiti sve blokove, postaviti program i što će se dogoditi u njemu.
Izložimo dva svjetlosna senzora i dodijelimo im priključke 2 i 3.
Uzimamo blok matematike i odabiremo "Oduzimanje".
Spojimo svjetlosne senzore s izlaza "Intenzitet" s gumama na blok matematike na "A" i "B" ulaze.
Ako su senzori robota postavljeni simetrično od središta pruge, tada će vrijednosti oba senzora biti jednake. Nakon oduzimanja dobivamo vrijednost - 0.
Sljedeći blok matematike koristit će se kao koeficijent i u njemu morate postaviti "Množenje".
Da biste izračunali koeficijent, trebate izmjeriti razinu "bijele" i "crne" pomoću NXT jedinice.
Pretpostavimo: bijela -70, crna -50.
Zatim izračunavamo: 70-50=20 (razlika između bijele i crne), 50/20=2,5 (postavimo prosječnu vrijednost snage kada se krećemo u ravnoj liniji u blokovima matematike na 50. Ova vrijednost plus dodana snaga pri podešavanju pokreta trebala bi biti jednaka 100)
Pokušajte postaviti vrijednost na 2,5 na "A" ulazu, a zatim je pokupite točnije.
Povežite izlaz "Rezultat" prethodnog matematičkog bloka "Subtraction" na "B" ulaz matematičkog bloka "Množenje".
Slijedi par - blok matematike (zbrajanje) i motor B.
Postavljanje matematičkog bloka:
Ulaz "A" je postavljen na 50 (pola snage motora).
Izlaz bloka "Rezultat" povezan je sabirnicom na ulaz "Power" motora B.
Nakon pare je matematički blok (Oduzimanje) i motor C.
Postavljanje matematičkog bloka:
Ulaz "A" je postavljen na 50.
Ulaz "B" povezan je sabirnicom s izlazom "Rezultat" bloka matematike "Množenje".
Izlaz bloka "Rezultat" povezan je sabirnicom na ulaz "Power" motora C.

Kao rezultat svih ovih radnji, dobit ćete sljedeći program:

Budući da će sve to raditi u ciklusu, dodajemo "Ciklus", odabiremo i sve to prenosimo u "Ciklus".

Sada pokušajmo shvatiti kako će program raditi i kako ga konfigurirati.


Dok se robot kreće pravolinijski, vrijednosti senzora su iste, što znači da će izlaz bloka "Subtract" imati vrijednost 0. Izlaz bloka "Množenje" također daje vrijednost 0. Ova vrijednost se dovodi paralelno s upravljačkim parom motora. Budući da je vrijednost 50 postavljena u ovim blokovima, zbrajanje ili oduzimanje 0 ne utječe na snagu motora. Oba motora rade istom snagom od 50 i robot se kotrlja ravno.

Pretpostavimo da staza skreće ili robot odstupi od ravne linije. Što će se dogoditi?

Slika pokazuje da se osvjetljenje senzora spojenog na priključak 2 (u daljnjem tekstu senzori 2 i 3) povećava, budući da se pomiče u bijelo polje, a osvjetljenje senzora 3 se smanjuje. Pretpostavimo da vrijednosti ovih senzora postaju: senzor 2 - 55 jedinica i senzor 3 - 45 jedinica.
Blok "Subtractions" će odrediti razliku između vrijednosti dva senzora (10) i prenijeti je u blok korekcije (množenje s faktorom (10 * 2,5 = 25)), a zatim u kontrolne blokove
motori.
U matematičkom bloku (Dodavanje) motora B upravljanje na prosječnu vrijednost brzine 50
25 će se dodati i vrijednost snage od 75 primijeniti na motor B.
U matematičkom bloku (Oduzimanje) upravljačkog motora C, 25 će se oduzeti od prosječne vrijednosti brzine od 50, a vrijednost snage 25 će se primijeniti na motor C.
Tako će se ispraviti odstupanje od ravne linije.

Ako staza skreće naglo u stranu i senzor 2 je na bijeloj boji, a senzor 3 na crnoj boji. Vrijednosti osvjetljenja ovih senzora postaju: senzor 2 - 70 jedinica, i senzor 3 - 50 jedinica.
Blok "Subtraction" će odrediti razliku između vrijednosti dva senzora (20) i prenijeti je u blok korekcije (20 * 2,5 = 50), a zatim u upravljačke blokove motora.
Sada u bloku matematike (Addicija) koji upravlja motorom B, vrijednost snage 50 +50 =100 bit će primijenjena na motor B.
U matematičkom bloku (Oduzimanje) upravljanja motorom C, vrijednost snage od 50 - 50 = 0 bit će primijenjena na motor C.
I robot će napraviti oštar zaokret.

Na bijelim i crnim poljima robot se mora kretati pravocrtno. Ako se to ne dogodi, pokušajte uskladiti senzore s istim vrijednostima.

Sada napravimo novi blok i upotrijebimo ga za pomicanje robota duž bilo koje staze.
Odaberite ciklus, a zatim u izborniku "Uredi" odaberite naredbu "Kreiraj moj blok".

U dijaloškom okviru "Block Builder" dajte naziv našem bloku, na primjer, "Idi", odaberite ikonu za blok i kliknite "GOTOVO".

Sada imamo blok koji se može koristiti u slučajevima kada se trebamo kretati duž linije.