Do sada, u člancima o algoritmima koji se koriste pri kretanju duž linije, takva se metoda razmatrala kada je svjetlosni senzor, takoreći, pratio njegovu lijevu ili desnu granicu: čim se robot pomakne na bijeli dio polja, kontroler je vratio robota na granicu, senzor se počeo kretati duboko u crne linije - regulator ga je ispravio natrag.
Unatoč činjenici da je gornja slika za relejni regulator, opći princip kretanja proporcionalnog (P-regulatora) bit će isti. Kao što je već spomenuto, prosječna brzina takvog kretanja nije jako visoka, a nekoliko je pokušaja da se poveća laganim kompliciranjem algoritma: u jednom slučaju korišteno je "meko" kočenje, u drugom, osim zavoja, uvedeno je kretanje naprijed.
Kako bi se robotu omogućilo da se kreće naprijed u nekim područjima, dodijeljen je uski dio u rasponu vrijednosti proizvedenih svjetlosnim senzorom, što bi se uvjetno moglo nazvati "senzor je na granici linije". Ovaj pristup ima mali nedostatak - ako robot "prati" lijevu granicu linije, tada se čini da u desnom zavoju ne određuje odmah zakrivljenost putanje i, kao rezultat toga, provodi više vremena u potrazi za crtom i okretanje. Štoviše, može se s povjerenjem reći da što je zavoj strmiji, to potraga traje dulje.
Sljedeća slika pokazuje da ako se senzor ne nalazi na lijevoj strani granice, već na desnoj strani, tada bi već otkrio zakrivljenost putanje i počeo bi izvoditi manevre skretanja.
![]() |
![]() |
![](https://i1.wp.com/prorobot.ru/lego/line-following-2-sensors/095_two_sensors.png)
![](https://i0.wp.com/prorobot.ru/lego/line-following-2-sensors/096_two_sensors_3_states.png)
![](https://i2.wp.com/prorobot.ru/lego/line-following-2-sensors/097_two_sensors_2_more_states.png)
- lijevi senzor, kao i desni, nalazi se iznad svjetlosne površine
- lijevi senzor iznad svjetle površine, desni senzor iznad tamne
- lijevi senzor iznad tamne površine, desni senzor iznad svjetla
- oba senzora su iznad tamne površine
![](https://i0.wp.com/prorobot.ru/lego/line-following-2-sensors/098_two_sensors_possible_states.png)
- Ako su oba senzora iznad bijele površine, onda je ovo normalna situacija u kojoj je linija između senzora, pa robot mora ići ravno. Ako je lijevi senzor još uvijek iznad svjetlosne površine, a desni senzor je već iznad tamni, onda je robot zabio desnom stranom na crtu, što znači da se treba okrenuti udesno da linija opet bude između senzora. Ako je lijevi senzor iznad tamne površine, a desni je još uvijek iznad svijetli, onda se robot treba okrenuti ulijevo kako bi se poravnao.Ako su oba senzora iznad tamne površine, onda u općem slučaju robot opet nastavlja ravno.
![](https://i1.wp.com/prorobot.ru/lego/line-following-2-sensors/099_two_sensors_with_moves.png)
![](https://i2.wp.com/prorobot.ru/lego/line-following-2-sensors/100_two_sens_prog01.png)
![](https://i1.wp.com/prorobot.ru/lego/line-following-2-sensors/101_two_sens_prog02.png)
![](https://i1.wp.com/prorobot.ru/lego/line-following-2-sensors/102_two_sens_prog03.png)
![](https://i2.wp.com/prorobot.ru/lego/line-following-2-sensors/103_two_sens_prog04.png)
![](https://i0.wp.com/prorobot.ru/lego/line-following-2-sensors/104_two_sens_prog05.png)
![](https://i2.wp.com/prorobot.ru/lego/line-following-2-sensors/105_two_sens_prog06.png)
Nekoliko odvojenih riječi treba reći i o postavljanju senzora na robota. Očigledno je da će se za položaj ova dva senzora u odnosu na kotače primijeniti iste preporuke kao i za jedan senzor, samo se sredina segmenta koji povezuje dva senzora uzima kao vrh trokuta. Samu udaljenost između senzora također treba odabrati prema karakteristikama staze: što su senzori bliže jedan drugom, to će se robot češće izravnati (izvoditi relativno spore okrete), ali ako su senzori dovoljno razmaknuti , tada postoji opasnost od izlijetanja sa staze, pa ćete na ravnima morati izvoditi čvršće zavoje i sporije kretanje.
Kako bi se robot glatko kretao duž crne linije, morate ga natjerati da izračuna samu brzinu kretanja.
Osoba vidi crnu liniju i njezinu jasnu granicu. Senzor svjetla radi malo drugačije.
Upravo to svojstvo svjetlosnog senzora – nemogućnost jasnog razlikovanja granice između bijele i crne – koristit ćemo za izračunavanje brzine kretanja.
Najprije uvedemo pojam “Idealna točka putanje”.
Očitavanja svjetlosnog senzora kreću se od 20 do 80, najčešće na bijeloj, očitanja su oko 65, na crnoj oko 40.
Idealna točka je uvjetna točka otprilike u sredini bijele i crne boje, nakon koje će se robot kretati duž crne linije.
Ovdje je mjesto točke temeljno - između bijele i crne. Neće ga biti moguće postaviti točno na bijelo ili crno iz matematičkih razloga, zašto - bit će jasno kasnije.
Empirijski smo izračunali da se idealna točka može izračunati pomoću sljedeće formule:
Robot se mora kretati strogo duž idealne točke. Ako dođe do odstupanja u bilo kojem smjeru, robot se mora vratiti u tu točku.
Skladajmo matematički opis problema.
Početni podaci.
Savršena točka.
Trenutna očitanja svjetlosnog senzora.
Proizlaziti.
Snaga motora B.
Snaga rotacije motora C.
Odluka.
Razmotrimo dvije situacije. Prvo: robot je odstupio od crne linije prema bijeloj.
U tom slučaju robot mora povećati snagu rotacije motora B i smanjiti snagu motora C.
U situaciji kada robot zabije u crnu liniju, točno je suprotno.
Što robot više odstupa od idealne točke, brže se mora vratiti u nju.
Ali stvaranje takvog regulatora je prilično težak zadatak i nije uvijek potreban u cijelosti.
Stoga smo se odlučili ograničiti na P-regulator koji adekvatno reagira na odstupanja od crne linije.
Jezikom matematike ovo bi bilo napisano kao:
gdje su Hb i Hc ukupne snage motora B i C, redom,
Hbase - određena bazna snaga motora, koja određuje brzinu robota. Odabire se eksperimentalno, ovisno o dizajnu robota i oštrini zavoja.
Itech - trenutna očitanja svjetlosnog senzora.
Id - izračunata idealna točka.
k je koeficijent proporcionalnosti, odabran eksperimentalno.
U trećem dijelu ćemo pogledati kako to programirati u okruženju NXT-G.
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
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, robot se okreće u jednom smjeru, ako vidi bijelo - u drugom smjeru. 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 boje, 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 prikaza 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 boja -> 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, для движения по черной линии, с одним и двумя датчиками цвета
Upravljački algoritmi za mobilni LEGO robot. Praćenje linije s dva svjetlosna senzora
Učiteljica dodatnog obrazovanja
Kazakova Lyubov Aleksandrovna
![](https://i1.wp.com/fhd.multiurok.ru/f/7/5/f7526b48d2c8cd41d54f4fbad5991107eb8706c4/img1.jpg)
Kretanje linije
- Dva svjetlosna senzora
- Proporcionalni regulator (P regulator)
![](https://i1.wp.com/fhd.multiurok.ru/f/7/5/f7526b48d2c8cd41d54f4fbad5991107eb8706c4/img2.jpg)
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
![](https://i0.wp.com/fhd.multiurok.ru/f/7/5/f7526b48d2c8cd41d54f4fbad5991107eb8706c4/img3.jpg)
Kretanje je organizirano promjenom snage jednog od motora
![](https://i2.wp.com/fhd.multiurok.ru/f/7/5/f7526b48d2c8cd41d54f4fbad5991107eb8706c4/img4.jpg)
Primjer programa za kretanje po crnoj liniji bez P-kontrolera
Kretanje je organizirano promjenom kuta rotacije
![](https://i1.wp.com/fhd.multiurok.ru/f/7/5/f7526b48d2c8cd41d54f4fbad5991107eb8706c4/img5.jpg)
- 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.
![](https://i0.wp.com/fhd.multiurok.ru/f/7/5/f7526b48d2c8cd41d54f4fbad5991107eb8706c4/img6.jpg)
- 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)
![](https://i2.wp.com/fhd.multiurok.ru/f/7/5/f7526b48d2c8cd41d54f4fbad5991107eb8706c4/img7.jpg)
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
![](https://i1.wp.com/fhd.multiurok.ru/f/7/5/f7526b48d2c8cd41d54f4fbad5991107eb8706c4/img8.jpg)
Prijelazi
Pri korištenju dva svjetlosna senzora moguće je organizirati promet na težim rutama
![](https://i2.wp.com/fhd.multiurok.ru/f/7/5/f7526b48d2c8cd41d54f4fbad5991107eb8706c4/img9.jpg)
![](https://i0.wp.com/fhd.multiurok.ru/f/7/5/f7526b48d2c8cd41d54f4fbad5991107eb8706c4/img10.jpg)
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
![](https://i1.wp.com/fhd.multiurok.ru/f/7/5/f7526b48d2c8cd41d54f4fbad5991107eb8706c4/img11.jpg)
![](https://i1.wp.com/fhd.multiurok.ru/f/7/5/f7526b48d2c8cd41d54f4fbad5991107eb8706c4/img12.jpg)
Princip rada P-regulatora
Položaj senzora
O=O1-O2
![](https://i0.wp.com/fhd.multiurok.ru/f/7/5/f7526b48d2c8cd41d54f4fbad5991107eb8706c4/img13.jpg)
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.
![](https://i0.wp.com/fhd.multiurok.ru/f/7/5/f7526b48d2c8cd41d54f4fbad5991107eb8706c4/img14.jpg)
![](https://i2.wp.com/fhd.multiurok.ru/f/7/5/f7526b48d2c8cd41d54f4fbad5991107eb8706c4/img15.jpg)