Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • TV (Smart TV)
  • Kretanje robota po putanji. Upravljanje kretanjem robota pomoću sustava negativne povratne sprege

Kretanje robota po putanji. Upravljanje kretanjem robota pomoću sustava negativne povratne sprege

Kako plesati kao robot?



Robot ili roboting je stil uličnog plesa koji se pojavio 1967. godine. Ples uključuje umjetničko oponašanje pokreta robota ili lutke, čiji su elementi popularni u noćnim klubovima, na pozornici i na ulici. Iz našeg članka naučit ćete kako plesati poput djela.

Ples je postao popularan zahvaljujući legendarnom Michaelu Jacksonu. Robotiranje se temelji na kontrakciji mišića nakon koje slijedi opuštanje. Plesačice ovaj smjer koristiti linearne pokrete i fiksaciju točaka.

Plesna tehnika robota

  1. Prije učenja plesa odaberite ritmičku glazbu.
  2. Robot je stroj. Oslobodite se izraza lica, dajte svom licu hladan pogled, usmjeren u jednu točku.
  3. Zategnite tijelo i ispružite vrh glave prema gore, stopala u širini ramena, nožni prsti usmjereni u stranu, ruke dolje.
  4. Razmotrite pokrete glave. Zamislite da ste na slici i da morate pogledati njezine kutove. Laganim pokretom počnite okretati glavu prema gore udesno, zatim fiksirajte položaj, dolje fiksirajte, lijevo-fiksirajte i završite pokret podizanjem glave prema gore.
  5. Učenje prestati. Napunite pluća zrakom dubokim udisajem kroz nos, a kada vam se prsa podignu, ukočite se i nakon nekoliko sekundi izdahnite zrak. Ponovite ovaj pokret nekoliko puta.
  6. Zatim zamislite da ste balon koji se puni zrakom. Slijedeći korak 5 uputa, spojite ruke. Zamislite da ste marioneta i da vas povlače konce. Promijenite položaj ruku, okrećući tijelo različite strane. Pokrete radite polako i s pauzama. Završite pokret uspravnim stajanjem i spajanjem ruku, kao da sjedite za stolom.
  7. Bez uklanjanja položaja spojenih ruku, okrenite se ulijevo i savijte tijelo. Možete polako njihati tijelo u ritmu, zatim ispraviti ruke u stranu i saviti ih unazad.
  8. Zatim, radite na prsima. Fiksirajte glavu na mjestu i savijajte tijelo gore-dolje.
  9. Sljedeći pokret je okret. Kada se okrećete udesno, stanite na vrh lijeve noge i lagano savijte koljeno. Prilikom skretanja ulijevo, učinite isto s desnom nogom. Rotirajte ramena zajedno s nogama.
  10. Vježbajmo polusjedeće okrete. Savijte koljena i okrećite tijelo lijevo-desno kao da ste na kružnom toku.
  11. Sljedeći element uključuje pokrete ruku i tijela. Okrenite se ulijevo i zamislite da želite podići kutiju. Ravnim rukama uhvatite zamišljenu kutiju, okrenite se ravno, fiksirajte položaj, zatim okrenite ulijevo i postavite kutiju prema dolje.
  12. Napravimo val. U ovom pokretu bitna je plastičnost i gipkost tijela. Započnite val sa desna ruka, zatim uključite rame, jezgru i završite zamahom na lijevoj ruci. Također vježbajte izvođenje običnog talasa koristeći svoj trbuh.
  13. Uvježbajte opisane pokrete nekoliko puta uz glazbu pred ogledalom. Kombinacijom elemenata dobiva se ples. Nakon uvježbavanja pokreta, možete ih poredati kronološkim redoslijedom po svom ukusu. Osmislite vlastite plesne elemente.

Napomena za početnike

  • Naučite osnovne veznike. Ne zaboravite da je dobra improvizacija dobro pripremljena improvizacija.
  • Obratite više pozornosti na lijepljenje ligamenata. Prijelaz iz jednog pokreta u drugi trebao bi izgledati skladno.
  • Snimite svoju nastavu na video. To će vam pomoći da procijenite pokrete izvana i naučite pogreške na kojima ćete morati raditi.

Laboratorijska lekcija br. 1 "Programiranje"

mikrokontroler NXT Brick"

Uvod

Robotika je industrija koja se dinamično razvija kako u smislu primijenjena uporaba pa unutra znanstveno istraživanje. Pojavio se u posljednjih godina nova vrsta roba - robotski setovi omogućuju vam implementaciju projekata robota s različitim funkcionalnostima, testiranje vaših planova i njihovo korištenje u obuci.

Jedan od najpopularnijih robotskih kompleta na svijetu je LEGO Mindstorms NXT. Razvijen zajedno sa zaposlenicima Massachusetts Institute of Technology, sastoji se od velikog skupa strukturnih dijelova (više od 600 komada), 3 servo motora, seta senzora i mikroračunala NXT Brick. Komplet je osnovni za mnoge robotske događaje u svijetu, uključujući natjecanja WRO (Svjetska robotska olimpijada). Okruženje isporučeno s kompletom vizualno programiranje NXT-G, koji je izradio National Instruments na temelju svog proizvoda LabView.

Stoga je NXT kit izvrstan poligon za provedbu skupa laboratorijskih radova na njegovoj osnovi pri proučavanju robotike.

Svrha lekcije

Upoznati se s glavnim mogućnostima robotskog mikroračunala NXT Brick, njegovim upravljačkim jedinicama, sustavom izbornika, upoznati se s okruženjem za vizualno programiranje NXT-G, izvršiti programiranje osnovne funkcije: Prikaz na ekranu, reprodukcija zvukova.

Vježbajte

Istražite kontrole kocke NXT Istražite sustav izbornika kocke NXT

Istražite svrhu NXT Brick priključaka

Pokrenite programsko okruženje NXT-G

Upoznajte osnovnu paletu NXT-G alata

Upoznajte se s proširenom paletom NXT-G alata Napišite sljedeće programe:

    • emitira jedan zvučni fragment iz datoteke

      proizvodi jedan zvuk određene visine

    • jednom emitira niz zvukova iz datoteka

      emitira niz zvukova različitih tonova jednom (programiramo melodiju)

      proizvodi kontinuirani niz zvukova različitih tonova (blok "Ciklus")

      prikazuje sliku iz datoteke

      prikazuje tekst u jednom retku

      prikazuje tekst u tri retka Pripremite izvješće sa snimkama zaslona napisanih programa.

Napredak u radu

Izgled mikroračunalo NXT Brick prikazano je na sl. 1. Napajanje sa 6 AA baterija. Jedinica je opremljena LCD zaslonom s mogućnošću prikaza teksta i grafike. Za kretanje kroz odjeljke izbornika koristite tipke na Prednja ploča: narančasta OK, tamno siva - Odustani. Blok može reproducirati zvukove i iz unaprijed snimljenih datoteka i različitih tonova. Povezivanje s računalom ostvaruje se putem USB sučelje. Postoji modul bluetooth veza, koji vam omogućuje i upravljanje blokom s računala i međusobno povezivanje blokova. NXT Brick ima tri priključka za aktuatore, označene A, B i C (obično B i C za kretanje, A za manipulator), i četiri priključka za senzore, označene brojevima.

Riža. 1. NXT Brick

NXT Brick se može programirati pomoću okruženja za vizualno programiranje NXT-G. Izgled okoline sa standardnom paletom alata prikazan je na sl. 2. Ovdje je program sastavljen od blokova postavljenih na LEGO grede. Dopušteno je koristiti petlje, uvjetne skokove, interakciju sa senzorima, aktuatorima, upravljanje Bluetooth primopredajnikom, prikaz izlaza i reprodukciju zvukova.



Riža. 2. NXT-G sučelje okruženja za vizualno programiranje

Da biste uključili novi blok u program, morate ga "odvući" mišem s alatne trake na LEGO gredu. Redoslijed kojim se elementi pojavljuju odredit će redoslijed kojim se program izvršava.

    Svaki blok ima skup parametara koji određuju njegovo "ponašanje". Tako, na primjer, u bloku "Kretanje" možete odabrati smjer kretanja, njegovo trajanje i snagu koja se isporučuje motorima.

Studenti moraju odraditi laboratorijsku zadaću i izraditi izvješće.

Laboratorijska lekcija br. 2 "Osnovne tehnike upravljanja kretanjem mobilnog robota"

Svrha lekcije

Ovladati praktičnim vještinama izgradnje mobilnog robota, ovladati praktičnim vještinama programiranja različite vrste kretanja mobilnih robota.

Vježbajte

Na temelju predložene sheme sastavite dizajn mobilnog robota Napišite sljedeće programe:

Napredak u radu

Sastavite dizajn mobilnog robota. Konačni dizajn je prikazan na slici 3. Ovaj dizajn je tipičan izgled za mobilne robote. Dva pogonska kotača omogućuju kretanje, okretni kotač omogućuje okretanje. Robot se okreće hranjenjem različitih kapaciteta na desnom i lijevom motoru.


Riža. 3. Mobilna robotska kolica s rotirajućim kotačem

Prilikom sastavljanja posebnu pozornost treba obratiti na koncept kao što je "raspodjela težine". Činjenica je da glavno opterećenje u takvim kolicima treba nositi osovina pogonskih kotača. Najteži strukturni element je NXT Brick. Ako se na okretni kotač stavi prevelika težina, struktura se neće dobro okretati.



Riža. 4. Pogled odozdo. Način ugradnje motora

Motori u ovim kolicima pričvršćeni su na dno mikroračunala pomoću ravnih greda (slika 4).

Posebna pažnja treba obratiti pozornost na dizajn zakretnog kotača (slika 5). Mora se slobodno okretati oko svoje osi i oko osi pričvršćivanja. Štoviše, struktura mora biti dovoljno jaka. Riža. 5. Dizajn rotirajućih kotača

Nakon sastavljanja mobilnog robota morate izvršiti sve zadatke i pripremiti izvješće.



Laboratorijska lekcija br. 3 "Studija Mindstroms NXT senzora za dodir"

Svrha lekcije

Upoznajte se sa senzorima NXT kita, naučite ih spojiti, dijagnosticirati te svladati praktične vještine programiranja robota pomoću senzora.

Vježbajte

Opremite robota branikom temeljenim na senzorima za dodir Napišite sljedeće programe:

    • Pravocrtno kretanje naprijed do trenutka sudara sa zidom, zatim kretanje unatrag, nasumično skretanje desno ili lijevo, nastavite se kretati

Naknadno opremite robota senzorom udaljenosti Napišite sljedeće programe:

    • Prethodno linearno kretanje naprijed ili do trenutka sudara s preprekom ili kada do prepreke ostane manje od 20 cm, nakon čega se kreće natrag, nasumično skretanje udesno ili ulijevo, nastavak kretanja

Pripremite izvješće sa snimkama zaslona napisanih programa

Komplet LEGO Mindstorms NXT dolazi sa sljedećim skupom senzora: dva senzora za dodir, ultrazvučni senzor udaljenosti i senzor boje. Svi imaju standardni prikaz pričvršćivanja


Riža. 6. NXT senzor za dodir

NXT senzor za dodir zapravo je gumb. Možemo pratiti tri stanja: "pritisnuto", "otpušteno", "pritisnuto i otpušteno". Ovisno o logici programa, potrebno je analizirati jednu od te tri udaljenosti. Pomoću senzora za dodir možete riješiti, na primjer, zadatke kao što je detektor sudara, dva senzora mogu pomoći u određivanju veličine objekta itd.


Riža. 7. "Prazno" za branik



Riža. 8. Branik

Od zakrivljenih LEGO greda sastavite pravi branik. Montirajte ga na mobilnog robota.


Riža. 9. Mobilni robot s branikom

Napišite program za robota odbojnika prema laboratorijskoj zadaći.


Riža. 10. Ultrazvučni senzor udaljenosti

NXT senzor udaljenosti koristi ultrazvučnu metodu za određivanje udaljenosti do objekta. Ima emiter i mikrofon. Učinkovito djeluje na udaljenosti od 10 do 100 cm od objekta.


Riža. 11. Mobilni robot s branikom i ultrazvučnim senzorom udaljenosti.

Dopuniti dizajn robota ultrazvučnim senzorom udaljenosti i napisati program prema laboratorijskom zadatku.

Na temelju rezultata rada potrebno je izdati izvješće.

Laboratorijska lekcija br. 4 "Kretanje mobilnog robota duž crne linije"

Svrha lekcije

Upoznajte senzor svjetla i boje NXT kompleta, savladajte osnovne algoritme za kretanje po crnoj liniji.

Vježbajte

Na temelju predložene sheme sastavite dizajn mobilnog robota (2 opcije: robot na platformi s gusjenicama, robot na platformi s kotačima s rotirajućim kotačem)

Opremite robota senzorom boja Napišite sljedeće programe:

    • Kretanje duž crne linije pomoću "klasičnog algoritma"

      Kretanje duž crne crte pomoću P-kontrolera

      Kretanje duž crne crte pomoću PI regulatora

      Kretanje po crnoj crti pomoću PID regulatora Pripremite izvješće sa snimkama zaslona napisanih programa

Napredak u radu

Za obavljanje ovog posla trebat će vam NXT senzor boja. Senzor boje može raditi u dva načina: senzor boje i senzor svjetla. Za rješavanje problema kretanja po liniji prikladniji je način rada svjetlosnog senzora. U ovom slučaju, vrijednost se kreće od 0 do 255 i odgovara svjetlini reflektirane svjetlosti od osvijetljenog objekta. Za kretanje duž crne linije, preporučljivo je osvijetliti ju crvenom LED diodom.


Riža. 12. NXT senzor boja.

Uklonite senzor udaljenosti i branik s mobilnog robota i opremite ga senzorom svjetla. Senzor se nalazi duž središnje crte robota, malo ispred osi kotača.

“Klasični” program kretanja robota po crnoj liniji prikazan je na sl. 13.

Ostvari to.



Riža. 13. Najjednostavniji “klasični” algoritam za kretanje po crnoj liniji.

Modificirajte program za kretanje linije s P regulatorom, PI regulatorom i PID regulatorom.

Kada završite, pripremite izvješće.

Bibliografija

    Osnove mehatronike: monografija / Yu. M. Osipov [et al.] Savezna agencija za obrazovanje, Tomsk Državno sveučilište sustavi upravljanja i radioelektronike. - Tomsk: TUSUR, 2007. - 162 str. (90 primjeraka u biblioteci TUSUR)

    Yurevich E.I., Ignatova E.I. Osnovni principi mehatronike. Mehatronika, automatika, upravljanje, br. 3, 2006. (5 primjeraka u knjižnici TUSUR-a)

    Yurevich E.I. Osnove robotike. Udžbenik. – St. Petersburg: BHV-Petersburg, 2005.

    M. Shahinpur. Tečaj robotike. Po. s engleskog – M.: Mir, 1990.

Jedan od ključni zadaci mobilna robotika je pronalaženje rute za kretanje i njezino optimiziranje. Krećući se u radnom području, robot mora stalno procjenjivati ​​svoju okolinu, određivati ​​svoj položaj i položaj objekata koji ga okružuju. Ima ih mnogo na razne načine, uz pomoć kojih robot može odrediti svoju poziciju i izgraditi rutu između odredišnih točaka. Prilikom kretanja ulicom koristi se tehnologija satelitska navigacija, a okolni objekti detektiraju se pomoću kamera ili daljinomjera. U slučaju kretanja u zatvorenom prostoru, uz pomoć kamera i daljinomjera gradi se virtualni model prostora prema kojem se robot vodi u budućnosti. Navedene metode su općenite prirode i primjenjive u proizvoljnim situacijama, ali su zbog toga vrlo teške za provedbu i još uvijek nisu široko korištene u svakodnevnom životu.


Obično su autonomni robotski sustavi dizajnirani za specifične zadatke. Ovaj pristup nam omogućuje da formaliziramo zahtjeve za sustav i razvijemo sve moguće algoritme reakcije na promjene stanja okoliša.

Na primjer, jedan od prilično strogo formaliziranih zadataka može biti pomicanje predmeta unutra proizvodni prostori. U pravilu, prilikom prijevoza robe u skladištima ili proizvodnim radionicama, roboti uvijek iznova prelaze istu rutu. Sukladno tome, ova ruta je unaprijed poznata i za nju se može razviti sustav kontrole kretanja robota.

Prethodno radionica vozila bila kolica koja su se kretala po tračnicama. S rastom znanosti i tehnologije zamijenili su ih robocari – mobilni roboti različiti tipovi i za razne zadatke, a tračnice položene duž radionice zamijenjene su mrežom vodećih linija iscrtanih na podu.


Mobilni roboti koji se kreću u radionicama duž linije, poput robota iz dosadašnjih laboratorijskih radova, opremljeni su raznim dodirni uređaji za percepciju okoline: IC senzori, kamere, sigurnosni senzori itd. Ali za razliku od robota o kojima smo ranije govorili, pravi roboti nemojte raditi u laboratorijskim uvjetima - često linija navođenja može biti oštećena ili skrivena iza nekog predmeta, neke rute se mogu križati ili biti djelomično prekinute.


Stvarna ruta može biti podložna raznim ograničenjima, na primjer: neki dijelovi rute mogu biti zabranjeni za promet, a do nekih se može doći samo nakon prolaska kroz druge.

Postaje očito da metode kretanja po liniji, koja je zatvorena putanja, u takvom slučaju nisu sasvim prihvatljive. Primjeri raznih algoritama za kretanje po liniji mogu se naći u prethodni radovi, ali možemo odmah zaključiti da nitko od njih ne uzima u obzir isprekidanost putanje kretanja ili prisutnost raskrižja na njoj.

Ako tijekom kretanja upravljački program mobilnog robota ne može utvrditi prisutnost sjecišta vodećih linija, to može dovesti do dvosmislenosti u donošenju odluka.

Prilikom prelaska sjecišta linija, upravljački sustav mobilnog robota će primiti podatke koji pokazuju da se linija navođenja nalazi i desno i lijevo u odnosu na robota. Sukladno tome, proces donošenja odluka o sljedećim manevrima bit će poremećen.



Za prepoznavanje sjecišta vodećih linija može se koristiti mnogo različitih metoda, primjerice, često se u te svrhe koriste kamere. Ali obrada slike zahtijeva puno performansi putno računalo robota, pa takva rješenja nisu uvijek primjenjiva. Ovaj rad raspravlja o metodi upravljanja mobilnim robotom pomoću informacija koje dolaze iz niza IR senzora. Koristeći niz od sedam senzora S1-S7, postaje moguće odrediti mjesto križanja linija. Budući da postoji dosta opcija za najvjerojatnije raskrižje, trebali biste konfigurirati upravljački program robota na najveći mogući broj prihvatljivih opcija, određenih na temelju očitanja IC senzora.

Izvođenje manevara u blizini raskrižja

Pri kretanju rutom koja je linija koja se siječe, osim praćenja linije, potrebno je odabrati smjer kretanja na svakom od raskrižja. Prolazak točnim redoslijedom raskrižja omogućuje putovanje zadanom rutom na ispravan način.

U sklopu ovog rada predlaže se izrada programa slijeđenja zadane rute. Kao primjer, razmotrite osnovnu rutu prikazanu na slici. Za izradu programa kretanja zadanom rutom potrebno je na njoj odabrati posebne točke koje su raskrižja rute ili njezini prekidi. Da bi robot stigao do cilja, mora pratiti liniju i proći četiri određene točke.

Kretanje duž zadane rute određeno je algoritamskim slijedom koji specificira jedan od manevara na svakoj ključnoj točki. Konkretno, u gornjem primjeru, na prvom raskrižju rute robot se nastavlja kretati u ravnom smjeru, na drugom skreće lijevo, a na trećem skreće desno i prati ga do cilja.


Na sličan način možete razviti program za kretanje robota bilo kojom od složenijih ruta. Da biste to učinili, samo trebate postaviti redoslijed kretanja robota kroz raskrižja rute.

Upravljački program se svodi na sekvencijalno traženje svake od točaka zadanog niza. Svaka točka je opisana vlastitom funkcijom, uz pomoć koje se prepoznaje, kao i brzinom prolaska ove dionice, koja se određuje u fazi inicijalizacije programa.


Tekst programa je slijed sekvencijalnih poziva funkcija koje specificiraju traženo kretanje. Kako biste promijenili smjer kretanja robota duž linije, samo trebate promijeniti redoslijed pozivanja funkcija.

Gore navedene funkcije mogu se podijeliti u dvije glavne vrste:

1) Funkcije koje okreću robota na raskrižjima u obliku slova T i L.

2) Funkcije pomoću kojih se robot pomiče do najbližeg raskrižja bez ikakve radnje.

U prvom slučaju funkcija se sastoji od dvije odvojene operacije - poziva funkcije kretanja naprijed i poziva funkcije skretanja u zadanom smjeru.

Funkcija l_node_l_turn dizajnirana je za skretanje lijevo na najbližem lijevom raskrižju. Funkcija se sastoji od dvije druge funkcije: l_node_forward, koja je odgovorna za kretanje do najbližeg raskrižja u obliku slova L sa skretanjem ulijevo, i pivot_left, koja je odgovorna za skretanje ulijevo.

funkcija l_node_forward beskrajna petlja traži točku sjecišta trajektorija pomoću funkcije l_node_detect. Tijekom pretraživanja robot neprestano prati liniju pomoću funkcije follow_line. Nakon što detektira točku na kojoj se rute sijeku, robot napravi kratki skok naprijed, ograničen mjeračem vremena, kako bi se malo pomaknuo i dalje skrenuo ulijevo. Ovaj pokret Iznimno je važno da nakon manevra robot završi u središtu linije navođenja. Posebnu pozornost treba obratiti na proces prepoznavanja točaka raskrižja rute. Očito, dok se robot kreće rutom, mogu se pojaviti različite situacije, ali većina njih može se opisati formalnim znakovima, na primjer, aktivacijom IR senzora.


Razmotrimo proces kretanja robota kroz dio rute sa skretanjem ulijevo. Očito, dok se robot kreće, neki od IC senzora će pogoditi crnu crtu i pojavit će se jedna od dolje ilustriranih situacija.


Na slici su IC senzori koji se nalaze iznad crne linije označeni crnom bojom, dok su IR senzori koji se nalaze iznad bijele površine površine označeni bijelom bojom. Dok se robot kreće, možete ispitati svaki od senzora i pretragom opcija odrediti trenutnu poziciju robota.


Gornja funkcija opisuje postupak prepoznavanja lijevog L-skretanja. Prema gornjem algoritmu, takva točka rute se shvaća kao dio putanje na kojem se aktiviraju IR senzori br. 1, br. 2, br. 3.

Na taj način možete prepoznati bilo koji dio rute. Na prvi pogled, ovo se može činiti kao prilično jednostavan zadatak, ali vrijedi obratiti povećanu pozornost na točnost prepoznavanja trenutne pozicije. Na točnost programa može utjecati kvaliteta radne površine i brzina robota. Kako bi se povećala točnost programa, funkcija l_node_detect implementira mehanizam zaštite od lažno pozitivni. Isti uvjet provjerava se dvaput nakon programabilne odgode.


Mjere za poboljšanje točnosti rada kontrolni program su iznimno važni pri razvoju sustava upravljanja. Njihovo zanemarivanje može dovesti do neispravan rad algoritam i cijeli robotski sustav u cjelini.

Izvođenje složenih manevara

U stvarnim situacijama mobilni se roboti kreću ne samo duž ravnih dionica rute, već i duž zakrivljenih putanja, a također izvode različite manevre.


Kako više sustava kontrola sadrži opise takvih manevara, složenije rute koje robot može savladati. Na primjer, slično ruti prikazanoj dolje na slici.


Općenito, upravljački program je identičan programu koji je razmatran u prethodnom dijelu. Kao i za svaki drugi program, redoslijed prolaska čvorova putanje je specificiran.

U odnosu na prethodni dio rada dodane su dvije nove vrste kretanja - kretanje po kružnom luku i kretanje po dijagonali, a svako od ovih kretanja razlikuje se po smjeru.

Svaka od ovih funkcija sastoji se od funkcije praćenja rute - diag_corner_forward, I_curve_branch_forward i funkcije skretanja u željenom smjeru - pivot_left, pivot_right. Kretanje robota duž linije pod kutom kontrolira se pomoću IC senzora br. 1 i br. 7, koji postavljaju položaj robota iznad crte. Ako je robot iznad crte, tada se pokreće funkcija follow_line pomoću koje robot prati vlastitu poziciju u odnosu na crtu i centrira se na nju pomoću IC senzora br. 4.

Praćenje linije prvenstveno je usmjereno na kretanje po njoj sa središtem robota orijentiranim iznad crte. Budući da se središte robota podudara s IC senzorom #4, funkcija follow_line nastoji minimizirati odstupanja IC senzora #3 i #5 u odnosu na liniju.


Suština ovaj proces svodi se na ispunjavanje nekoliko uvjeta:

1) Ako je IR senzor br. 4 iznad crte, tada robot vozi ravno maksimalnom brzinom.

2) Ako jedan od IC senzora br. 3 ili br. 5 detektira liniju, robot se okreće na suprotan smjer minimalnom brzinom.

Dok prati liniju, brzina njegovog manevriranja se mijenja, ovisno o položaju robota. To se radi jer je u nekim situacijama potrebno glatke pokrete robota tako da se ne pomakne s linije, na primjer kada manevrira između senzora br. 3 i br. 5.

Ako robot dovoljno odstupi od crte, potrebno je što brže ispraviti njegov položaj, čime se njegova brzina kretanja povećava.

Funkcija change_speed odgovorna je za promjenu brzine robota, koja postavlja brzinu rotacije pogona kao postotak maksimalne vrijednosti brzine.


Zapamtite da je održavanje ograničenja brzine jedan od najvažnije uvjete, što utječe na kretanje robota duž zadane rute. Jedan od najvažnijih zahtjeva za algoritam upravljanja mobilnim robotom je usklađenost optimalna brzina za ovu dionicu rute.


Poštivanje ograničenja brzine nije samo zahtjev za prometnu sigurnost, to je, prije svega, zahtjev koji omogućuje minimiziranje pogrešaka u radu upravljačkog programa robota. Vrijedno je zapamtiti da brzina kretanja robota značajno utječe na kvalitetu prepoznavanja čvorova rute i orijentaciju samog robota u odnosu na liniju navođenja.

Glavni cilj razvijača robotskih sustava je osigurati kvalitetan i besprijekoran rad tijekom rada. Za to možete mnogo žrtvovati - produktivnost, intenzitet resursa itd., uključujući brzinu.

Zaključak

Ovaj laboratorijski rad najvažnije među djelima o kojima se ranije govorilo. To nije samo zbog složenosti predstavljenog materijala, već i zbog važnih pitanja koja se postavljaju, kao što je osiguravanje točnosti i kvalitete rada robotskih sustava.


Svrha ovog rada je pokazati da ne samo vanjski faktori utjecati na kvalitetu rada pojedinog robota. Sam robot, koji radi na temelju upravljačkog programa, može značajno utjecati na proces izvršavanja zadanog zadatka.

Programi o kojima se govori u oba dijela jasno pokazuju utjecaj brzine kretanja na kvalitetu zadane trajektorije. Kako biste konsolidirali rezultate rada, možete proučavati kretanje robota duž dolje navedene rute, koja kombinira sve moguće manevre o kojima smo ranije govorili.


Osim složenosti rute i brzine kretanja, na funkcioniranje robota značajan utjecaj ima i kvaliteta podloge po kojoj se kretanje izvodi. Sasvim je moguće da je linija po kojoj bi se robot trebao kretati oštećena ili čak prefarbana.

Dizajner robotskog sustava mora osigurati sve moguće opcije primjena vaše dizajnersko rješenje. Što se više različitih čimbenika utjecaja uzme u obzir u fazi projektiranja, to će robot točnije i učinkovitije funkcionirati.

15.01.2012, 18:51

Do sada se u člancima o algoritmima koji se koriste pri kretanju po liniji razmatrala metoda kada se činilo da senzor svjetla nadzire njezinu lijevu ili desnu granicu: čim se robot pomakne u bijeli dio polja, kontroler vraća robota do granice, senzor se počeo pomicati dublje u crnu liniju - regulator ga je ispravio natrag.
Unatoč činjenici da je gornja slika prikazana za relejni regulator, opći princip kretanja proporcionalnog (P-regulator) bit će isti. Kao što je već spomenuto, prosječna brzina takvog kretanja nije velika, a nekoliko puta se pokušalo povećati laganim kompliciranjem algoritma: u jednom slučaju korišteno je "meko" kočenje, u drugom, uz zavoje, kretanje naprijed je uveden.
Kako bi se omogućilo robotu da se pomakne naprijed u nekim područjima, dodijeljeno je usko područje u rasponu vrijednosti koje proizvodi svjetlosni senzor, što bi se konvencionalno moglo nazvati "senzor je na granici crte".
Ovaj pristup ima mali nedostatak - ako robot "slijedi" lijevu granicu crte, tada na desnim skretanjima ne otkriva odmah zakrivljenost putanje i, kao rezultat toga, provodi više vremena u potrazi za crtom i okretanju. Štoviše, možemo sa sigurnošću reći da što je zaokret oštriji, to se potraga duže odvija.
Sljedeća slika pokazuje da senzor nije na lijevoj strani granice, već na desnoj, tada bi već detektirao zakrivljenost putanje i počeo bi skretati manevre.

Stoga je dobra ideja opremiti robota s dva senzora odjednom, koji se nalaze na suprotnim stranama linije i, sukladno tome, pomogli bi robotu da brže reagira na promjene u smjeru kretanja.
Sada moramo odrediti kako će ova promjena dizajna utjecati na program. Radi jednostavnosti, opet bismo trebali početi s najjednostavnijim relejnim regulatorom i stoga nas prije svega zanimaju mogući položaji senzora u odnosu na vod:

Zapravo, može se identificirati još jedan prihvatljiv uvjet - na složenim rutama to će biti raskrižje raskrižja ili neka vrsta zadebljanja na stazi.
Drugi položaji senzora neće biti uzeti u obzir, jer su ili derivati ​​onih prikazanih gore, ili su to položaji robota kada je napustio liniju i više se neće moći vratiti na nju koristeći informacije sa senzora . Kao rezultat toga, sve gore navedene odredbe mogu se svesti na sljedeću klasifikaciju:
  • lijevi senzor je, kao i desni, iznad svijetle površine
  • lijevi senzor preko svijetle površine, desni senzor preko tamne
  • lijevi senzor preko tamne površine, desni senzor preko svijetle površine
  • oba senzora nalaze se iznad tamne površine
Ako u određenom trenutku program na robotu otkrije jedan od ovih položaja, morat će reagirati u skladu s tim:
    Ako su oba senzora iznad bijele površine, onda je to normalna situacija u kojoj je linija između senzora, tako da robot treba ići ravno. Ako je lijevi senzor još uvijek iznad svijetle površine, a desni senzor je već iznad tamna, tada je robot svojom desnom stranom zabio na crtu, što znači da treba skrenuti udesno tako da je linija opet između senzora. Ako je lijevi senzor iznad tamne površine, a desni je još iznad svijetle, tada se robot treba okrenuti ulijevo da bi se poravnao. Ako su oba senzora iznad tamne površine, opći slučaj, robot se ponovno nastavlja kretati ravno.

Gornji dijagram odmah pokazuje kako bi se točno trebalo promijeniti ponašanje motora u programu. Sada pisanje programa ne bi trebalo biti teško. Trebali biste započeti odabirom senzora koji će se prvi ispitivati. Nema od velike važnosti, pa neka ostane. Potrebno je utvrditi nalazi li se iznad svijetle ili tamne površine:
Ova vam radnja još ne dopušta da kažete u kojem smjeru robot treba ići. Ali će podijeliti gore navedena stanja u dvije skupine: (I, II) za gornju granu i (III, IV) za donju. Svaka grupa sada ima dva stanja, pa morate odabrati jedno od njih. Ako pažljivo pogledate prva dva stanja I i II, razlikuju se po položaju desnog senzora - u jednom slučaju je iznad svijetle površine, u drugom - iznad tamne. To je ono što će odrediti odabir akcije koju treba poduzeti:
Sada možete umetnuti blokove koji definiraju ponašanje motora prema gornjim tablicama: gornja grana ugniježđenog stanja definira kombinaciju "oba senzora na svjetlu", gornja - "lijevo na svjetlu, desno na mraku":
Donja grana glavnog stanja odgovorna je za drugu skupinu stanja III i IV. Ta se dva stanja međusobno razlikuju i po razini svjetlosti koju detektira desni senzor. To znači da će odrediti izbor svakog od njih:
Rezultirajuće dvije grane ispunjene su blokovima kretanja. Gornja grana je odgovorna za stanje "lijevo na mraku, desno na svijetlo", a donja grana je odgovorna za "oba senzora na mraku".
Treba napomenuti da ovaj dizajn samo određuje kako uključiti motore ovisno o očitanjima senzora na određenom mjestu u polju; naravno, nakon trenutka program mora provjeriti jesu li se očitanja promijenila kako bi se prilagodio ponašanje motora u skladu s tim, i nakon trenutka opet, opet, itd. .d. Stoga ga treba postaviti u petlju koja će omogućiti ovu ponovljenu provjeru:

Tako lijepa jednostavan program omogućit će prilično veliku brzinu kretanja robota duž linije bez letenja izvan njezinih granica, ako je ispravno konfiguriran maksimalna brzina kada se kreće u stanjima I i IV, a također i set najbolji način kočenje u stanjima II i III - što su zavoji na autocesti strmiji, to bi kočenje trebalo biti "žešće" - trebalo bi brže smanjivati ​​brzinu i obrnuto - kod glatkih zavoja sasvim je moguće kočiti isključivanjem struje ili čak potpunim smanjenjem brzine.

Nekoliko posebnih riječi treba reći io postavljanju senzora na robotu. Očito, vrijedit će iste preporuke za položaj ova dva senzora u odnosu na kotače kao i za jedan senzor, samo se vrh trokuta uzima kao sredina segmenta koji povezuje dva senzora. Samu udaljenost između senzora također treba odabrati prema karakteristikama staze: što su senzori bliže jedan drugome, robot će se češće izravnavati (izvoditi relativno spore okrete), ali ako su senzori dovoljno razmaknuti , tada postoji opasnost od izletanja sa staze, pa ćete morati više „teško“ skretati i smanjiti brzinu na ravnim dionicama.



U drugoj lekciji ćemo se pobliže upoznati s programskim okruženjem i detaljno proučiti naredbe koje postavljaju kretanje naših robotskih kolica, sastavljenih u prvoj lekciji. Dakle, pokrenimo programsko okruženje Lego mindstorms EV3, učitajmo naš projekt lessons.ev3 kreiran ranije i dodajmo ga projektu novi program- lekcija-2-1. Program možete dodati na dva načina:

  • Odaberite tim "Datoteka" - "Dodaj program" (Ctrl+N).
  • Klik "+" na kartici programa.

Programiranje paleta i programskih blokova

Skrenimo sada pažnju na donji dio programskog okruženja. Iz materijala prve lekcije već znamo da su ovdje naredbe za programiranje robota. Programeri su upotrijebili originalnu tehniku ​​i, grupiranjem programskih blokova, svakoj grupi dodijelili vlastitu boju, nazivajući grupe paletama.

Zelena paleta se zove: "Akcijski":

Ova paleta sadrži softverske blokove za upravljanje motorima, blok za prikaz i kontrolni blok za indikator statusa modula. Sada ćemo početi proučavati ove programske blokove.

Zelena paleta - akcijski blokovi

Prvi programski blok zelene palete dizajniran je za upravljanje srednjim motorom, drugi blok je za upravljanje velikim motorom. Budući da su parametri ovih blokova identični, razmotrimo postavku na primjeru bloka - velikog motora.

Za ispravne postavke upravljačka jedinica za veliki motor moramo:

  1. Odaberite priključak na koji je motor spojen (A, B, C ili D) (Sl. 3, stavka 1)
  2. Odaberite način rada motora (Sl. 3 stavka 2)
  3. Konfigurirajte parametre odabranog načina rada (Sl. 3 stavka 3)

Kako se načini rada razlikuju? Način rada: "Upaliti" pali motor s dati parametar "Vlast" a nakon toga kontrola se prenosi na sljedeći programski blok programa. Motor će se nastaviti okretati dok ga ne zaustavi sljedeći blok "Veliki motor" s režimom "Isključi" ili sljedeći blok "Veliki motor" neće sadržavati druge parametre izvršenja. Način rada "Omogući na broj sekundi" uključuje veliki motor sa instalirani kapacitet zadani broj sekundi, a tek nakon isteka vremena motor će se zaustaviti i kontrola u programu će prijeći na sljedeći programski blok. Motor će se ponašati slično u modovima "Uključi prema broju stupnjeva" I "Omogući prema broju okretaja": tek nakon završetka zadanog okretanja motora, on će se zaustaviti i kontrola u programu će se pomaknuti na sljedeći blok.

Parametar snage (na slici 3 snaga je postavljena na 75) može poprimiti vrijednosti od -100 do 100. Pozitivne vrijednosti snage postavljaju motor da se okreće u smjeru kazaljke na satu, negativne vrijednosti postavljaju motor da se okreće suprotno od kazaljke na satu. Pri vrijednosti snage 0, motor se neće okretati; što je "veća" vrijednost snage, to se motor brže okreće.

Parametar snage naveden je samo u cjelobrojnim vrijednostima; parametri: sekunde, stupnjevi, okretaji mogu imati vrijednosti s decimalnim razlomkom. Ali zapamtite da je minimalni korak rotacije motora jedan stupanj.

Posebno treba spomenuti parametar "Kočnica na kraju". Ovaj parametar, ako je postavljen na "Kočiti" uzrokuje usporavanje motora nakon izvršenja naredbe, a ako je postavljeno na "Prekoračenje", tada će se motor okretati po inerciji dok se ne zaustavi.

Sljedeća dva programska bloka "Upravljanja" i implementirati kontrolu nad parom velikih motora. Prema zadanim postavkama, lijevi veliki motor je spojen na priključak "U", a desna - do luke "S". Ali možete promijeniti priključke za povezivanje u postavkama jedinice u skladu sa zahtjevima vašeg dizajna ( Riža. 4 poz. 1).

Parametar "Upravljanja" (Riža. 4 poz. 2) može poprimiti vrijednosti od -100 do 100. Negativne vrijednosti parametra uzrokuju da robot skrene ulijevo, vrijednost 0 uzrokuje da se robot kreće ravno, a pozitivne vrijednosti uzrokuju da robot skrene udesno. Strelica iznad numeričkog parametra mijenja svoju orijentaciju ovisno o vrijednosti, pokazujući na taj način smjer kretanja robota ( Riža. 5).

Programski blok "Neovisna kontrola motora" izgleda kao softverski blok "Upravljanja". Također kontrolira dva velika motora, ali umjesto "Upravljanja" pojavi se prilika samostalno upravljanje snaga svakog motora. Uz jednaku vrijednost parametra "Vlast" za lijevi i desni motor, robot će se kretati pravocrtno. Ako napajate jedan motor negativno značenje snaga (na primjer -50), a na drugom - pozitivna vrijednost (na primjer 50), tada će se robot okrenuti na mjestu ( Riža. 6).

Stoga su načini rada ovih jedinica slični onima kod upravljačke jedinice jednog motora dodatni opis ne zahtijevaju...

Pravocrtno kretanje, okreti, okretanje i zaustavljanje

Dakle, sada možemo napisati program za robota da se kreće bilo kojom rutom.

Problem 1

Zaslon, zvuk, indikator statusa modula

Programski blok "Zaslon" omogućuje prikaz teksta ili grafičke informacije na LCD zaslonu EV3 kocke. Što bi ovo moglo značiti? praktičnu upotrebu? Prvo, u fazi programiranja i otklanjanja pogrešaka programa, možete prikazati trenutna očitanja senzora dok robot radi. Drugo, možete prikazati naziv međufaza izvršenja programa. Pa, treće, uz pomoć grafičke slike Zaslon robota možete "animirati", na primjer, pomoću animacije.

Programski blok "Zaslon" ima četiri načina rada: način "Tekst" omogućuje prikaz tekstualni niz na zaslon, mod "Oblici" omogućuje prikaz jednog od četiri geometrijski oblici(crta, krug, pravokutnik, točka), način "Slika" može prikazati jednu sliku na ekranu. Možete odabrati sliku iz bogate kolekcije slika ili nacrtati vlastitu koristeći uređivač slika. Način rada "Poništi prozor postavki" Vraća zaslon EV3 Brick na standardni informacijski zaslon prikazan dok je program pokrenut.

Pogledajmo parametre programskog bloka "Zaslon" u načinu rada "Tekst" (Sl. 9 stavka 1). U posebno polje upisuje se niz koji treba prikazati na ekranu (Sl. 9 stavka 2). Nažalost, polje za unos teksta omogućuje unos samo slova latinica, brojevi i interpunkcijski znakovi. Ako način "Očisti ekran" postaviti na vrijednost "Pravi", zaslon će se obrisati prije prikazivanja informacija. Stoga, ako trebate kombinirati trenutni izlaz s informacijama koje su već na zaslonu, postavite ovaj način na "Laž". Načini rada "X" I "Y" odrediti točku na ekranu od koje počinje izlaz informacija. Zaslon EV3 Brick širok je 178 piksela (točaka) i visok 128 piksela. Način rada "X" može uzeti vrijednosti od 0 do 177, mod "Y" može poprimiti vrijednosti od 0 do 127. Gornja lijeva točka ima koordinate (0, 0), donja desna (177, 127)

Prilikom postavljanja programskog bloka "Zaslon" možete uključiti način rada pretpregled (Sl. 9 stavka 3) i vizualno procijeniti rezultat postavki izlaza informacija.

U načinu rada "Oblici" (Sl. 11 stavka 1) postavke programskog bloka razlikuju se ovisno o vrsti figure. Dakle, kada prikazujete krug, morat ćete odrediti koordinate "X" I "Y" centar kruga, kao i vrijednost "Radius". Parametar "Ispuni" (Sl. 11 stavka 2) je odgovoran za činjenicu da će se prikazati obris figure ili će unutarnje područje figure biti ispunjeno bojom navedenom u parametru "Boja" (Sl. 11, stavka 3).

Da biste prikazali ravnu liniju, morate odrediti koordinate dviju krajnjih točaka između kojih se nalazi ravna linija.

Za prikaz pravokutnika morate navesti koordinate "X" I "Y" lijevo gornji kut pravokutnik, kao i njegov "Širina" I "Visina".

Prikazivanje boda je najlakši način! Samo naznačite njegove koordinate "X" I "Y".

Način rada "Slika", vjerojatno najzanimljiviji i najkorišteniji mod. Omogućuje vam prikaz slika na ekranu. Programsko okruženje sadrži ogromnu biblioteku slika razvrstanih po kategorijama. Uz postojeće slike uvijek možete izraditi vlastiti crtež te ga umetanjem u projekt prikazati na ekranu. ("Glavni izbornik programskog okruženja" - "Alati" - "Uređivač slika"). Prilikom izrade slike možete prikazati i znakove ruske abecede.

Kao što vidite, programsko okruženje pridaje veliku važnost prikazu informacija na zaslonu EV3 glavne kocke. Pogledajmo sljedeći važan programski blok "Zvuk". Pomoću ovog bloka možemo emitirati zvučne datoteke, tonove proizvoljnog trajanja i frekvencije na ugrađeni zvučnik bloka EV3, kao i glazbene note. Pogledajmo postavke programskog bloka u načinu rada "Reproduciraj ton" (Sl. 15). U ovom načinu rada morate postaviti "Frekvencija" tonova (Sl. 15 stavka 1), "Trajanje" zvuk u sekundi (Sl. 15 stavka 2), kao i glasnoću zvuka (Sl. 15 stavka 3).

U načinu rada "Sviraj notu" umjesto frekvencije tona, trebate odabrati notu na virtualna tipkovnica, a također postavite trajanje i glasnoću zvuka (Sl. 16).

U načinu rada "Reproduciraj datoteku" možete odabrati jednu od zvučnih datoteka iz knjižnice (Sl. 17 stavka 1), ili povezivanjem mikrofona s računalom pomoću Sound Editora ("Glavni izbornik programskog okruženja" - "Alati" - "Uređivač zvuka") snimite svoje zvučna datoteka i uključiti ga u projekt.

Pogledajmo parametar zasebno "Vrsta reprodukcije" (Sl. 17 stavka 2), zajednički svim načinima programskog bloka "Zvuk". Ako ovaj parametar postaviti na vrijednost "Pričekajte završetak", tada će kontrola biti prenesena na sljedeći programski blok tek nakon puna reprodukcija zvuk ili zvučna datoteka. Ako postavite jednu od sljedeće dvije vrijednosti, zvuk će se početi reproducirati, a kontrola u programu premjestit će se na sljedeći programski blok, samo će se zvuk ili zvučna datoteka reproducirati jednom ili će se ponavljati dok je ne zaustavi drugi programski blok "Zvuk".

Još samo da upoznamo posljednjeg programski blok zelena paleta - blok "Indikator statusa modula". Oko gumba za upravljanje EV3 modulom nalazi se indikator u boji koji može svijetliti u jednoj od tri boje: zelena, naranča ili Crvena. Odgovarajući način je odgovoran za uključivanje i isključivanje indikacije u boji (Sl. 18 stavka 1). Parametar "Boja" postavlja dizajn boja indikacije (Sl. 18 stavka 2). Parametar "Impuls" odgovoran za uključivanje/isključivanje načina treperenja indikatora boje (Sl. 18 stavka 3). Kako možete koristiti indikaciju u boji? Na primjer, moguće je tijekom različiti modovi Robot radi koristeći različite signale u boji. To će nam pomoći da shvatimo izvršava li se program kako smo planirali.


Primijenimo ovo znanje u praksi i malo obojimo naš program iz Zadatka 1.

Problem 2

Pokušajte sami riješiti problem bez gledanja u rješenje!

Najbolji članci na temu