Ev3 bevægelse langs linjen. Internationale robotkonkurrencer - Regler - Eksempler på robotter - Banerobot baseret på LEGO EV3. Eksempel på hvordan algoritmen fungerer

Lad os overveje enkleste algoritme bevægelse langs den sorte linje på én farvesensor på EV3.

Denne algoritme er den langsomste, men den mest stabile.

Robotten vil ikke bevæge sig strengt langs den sorte linje, men langs dens grænse, dreje til venstre og højre og gradvist bevæge sig fremad.

Algoritmen er meget enkel: Hvis sensoren ser sort, drejer robotten i den ene retning, hvis den er hvid, i den anden.

Implementering i Lego Mindstorms EV3 miljø

I begge bevægelsesblokke skal du vælge "aktiver"-tilstand. Vi sætter kontakten til farvesensor - måling - farve. I bunden, glem ikke at ændre "ingen farve" til hvid. Du skal også angive alle porte korrekt.

Glem ikke at tilføje en cyklus, robotten går ingen steder uden den.

Tjek det ud. At opnå bedste resultat prøv at ændre styrings- og effektværdierne.

Bevægelse med to sensorer:

Du kender allerede algoritmen til at flytte en robot langs en sort linje ved hjælp af en sensor. I dag vil vi se på at bevæge os langs en linje ved hjælp af to farvesensorer.
Sensorerne skal monteres, så den sorte streg løber mellem dem.


Algoritmen vil være som følger:
Hvis begge sensorer ser hvidt, bevæger vi os fremad;
Hvis en af ​​sensorerne ser hvid og den anden sort, drej mod sort;
Hvis begge sensorer ser sort, er vi ved et kryds (for eksempel stopper vi).

For at implementere algoritmen skal vi overvåge aflæsningerne af begge sensorer, og først derefter indstille robotten til at bevæge sig. For at gøre dette bruger vi switches indlejret i en anden switch. Således vil vi først polle den første sensor, og derefter, uanset aflæsningerne af den første, vil vi polle den anden sensor, hvorefter vi indstiller handlingen.
Lad os forbinde den venstre sensor til port nr. 1, den højre til port nr. 4.

Program med kommentarer:

Glem ikke, at vi starter motorerne i "On"-tilstand, så de fungerer så længe som nødvendigt baseret på sensoraflæsningerne. Også folk glemmer ofte behovet for en løkke - uden den slutter programmet straks.

http://studrobots.ru/

Det samme program til NXT-modellen:

Studer bevægelsesprogrammet. Programmer robotten. Send video af modeltestning

Algoritmer til styring af en mobil LEGO robot. Linjebevægelse med to lyssensorer

Yderligere uddannelseslærer

Kazakova Lyubov Alexandrovna


Bevægelse langs linjen


Algoritme til at bevæge sig langs den sorte linje uden en proportional controller

  • Begge motorer roterer med samme kraft
  • Hvis den højre lyssensor rammer den sorte streg, falder eller stopper effekten af ​​den venstre motor (for eksempel B)
  • Hvis den venstre lyssensor rammer den sorte linje, så falder effekten af ​​en anden af ​​motorerne (for eksempel C) (vender tilbage til linjen), falder eller stopper
  • Hvis begge sensorer er på hvid eller sort, opstår der lineær bevægelse

Bevægelsen organiseres ved at ændre effekten af ​​en af ​​motorerne


Eksempel på et program til at køre langs en sort linje uden P-controller

Bevægelse organiseres ved at ændre rotationsvinklen


  • En proportional controller (P-controller) giver dig mulighed for at justere robottens adfærd afhængigt af, hvor meget dens adfærd afviger fra den ønskede.
  • Jo mere robotten afviger fra målet, jo flere kræfter skal den til for at vende tilbage til det.

  • P-controlleren bruges til at holde robotten i en bestemt tilstand:
  • Holder manipulatorens position Bevægelse langs en linje (lyssensor) Bevægelse langs en væg (afstandssensor)
  • Holder manipulatorens position
  • Linjebevægelse (lyssensor)
  • Bevægelse langs væggen (afstandssensor)

Linjebevægelse med en sensor

  • Målet er at bevæge sig langs den "hvid-sorte" grænse
  • En person kan skelne grænsen mellem hvid og sort. En robot kan ikke.
  • Målet for robotten er i gråt

Kørsel gennem kryds

Ved brug af to lyssensorer er det muligt at organisere bevægelse langs mere komplekse ruter



Algoritme til kørsel ad en motorvej med vejkryds

  • Begge sensorer er på hvidt - robotten kører ligeud (begge motorer roterer med samme kraft)
  • Hvis den højre lyssensor rammer den sorte linje og den venstre den hvide linje, så sker der en højredrejning
  • Hvis den venstre lyssensor rammer den sorte linje, og den højre rammer den hvide linje, så drejer den til venstre
  • Hvis begge sensorer er sorte, opstår der lineær bevægelse. Du kan tælle kryds eller udføre enhver handling


Funktionsprincip for P-regulatoren

Sensor position

O=01-02


Algoritme til at bevæge sig langs den sorte linje med en proportional controller

HC = K*(C-T)

  • Ts - målværdier (tag aflæsninger fra lyssensoren på hvid og sort, beregn gennemsnittet)
  • T - strømværdi - opnået fra sensoren
  • K - følsomhedskoefficient. Jo mere, jo højere følsomhed



For at se præsentationen med billeder, design og dias, download dens fil og åbn den i PowerPoint på din computer.
Tekstindhold i præsentationsdias:
"Algorithme for at flytte langs den sorte linje med en farvesensor" Klub på "Robotics" Lærer før Yezidov Akhmed ElievichAt MBU DO "Shelkovskaya TsTT" For at studere algoritmen til at bevæge sig langs den sorte linje, vil den blive brugt Lego robot Mindstorms EV3 med én farvesensor Farvesensor Farvesensoren skelner mellem 7 farver og kan registrere fravær af farve. Som i NXT kan den fungere som en lyssensor Field for robotkonkurrencer "Line S" Den foreslåede træningsbane med en bane i form af bogstavet "S" vil give dig mulighed for at udføre endnu en interessant test af de skabte robotter for hastighed. og reaktion. Lad os overveje den enkleste algoritme til at bevæge sig langs den sorte linje på en farvesensor på EV3. Denne algoritme er den langsomste, men den mest stabile Robotten vil ikke bevæge sig strengt langs den sorte linje, men langs dens grænse og dreje til venstre og højre gradvist at bevæge sig fremad. Algoritmen er meget enkel: hvis sensoren ser sort, så drejer robotten i den ene retning, hvis den er hvid, i den anden. Følge en linje i lysstyrketilstand for reflekteret lys med to sensorer Nogle gange er farvesensoren ikke effektiv nok til at skelne mellem sort og hvide farver. Løsningen på dette problem er at bruge sensoren ikke i farvedetekteringstilstand, men i lysstyrkeregistreringstilstand for reflekteret lys. I denne tilstand, ved at kende sensorværdierne på en mørk og lys overflade, kan vi uafhængigt sige, hvad der vil blive betragtet som hvidt og hvad sort. Lad os nu bestemme lysstyrkeværdierne på hvide og sorte overflader. For at gøre dette finder vi fanen "Modulapplikationer" i EV3-blokmenuen. Nu er du i portvisningsvinduet og kan se aflæsningerne af alle sensorer i øjeblikket. vores sensorer skal lyse rødt, hvilket betyder, at de fungerer i lysstyrkeregistreringstilstand for reflekteret lys. Hvis de lyser blåt, skal du i portvisningsvinduet på den ønskede port trykke på midterknappen og vælge COL-REFLECT-tilstand Lad os nu placere robotten, så begge sensorer er placeret over den hvide overflade. Vi ser på tallene i port 1 og 4. I vores tilfælde er værdierne henholdsvis 66 og 71. Disse vil være de hvide værdier for sensorerne. Lad os nu placere robotten, så sensorerne er placeret over den sorte overflade. Lad os se på værdierne for port 1 og 4 igen. Vi har henholdsvis 5 og 6. Dette er betydningerne af sort. Dernæst vil vi ændre det forrige program. Vi vil nemlig ændre indstillingerne af kontakterne. For nu har de Farvesensor -> Måling -> Farve installeret. Vi skal også indstille farvesensor -> sammenligning -> reflekteret lysstyrke. Nu skal vi indstille "sammenligningstype" og "tærskelværdi". Tærskelværdien er værdien af ​​nogle "grå", værdier mindre end den, vi vil betragte som sort, og mere - hvid. For en første tilnærmelse er det praktisk at bruge gennemsnitsværdien mellem hvid og sort for hver sensor. Således vil tærskelværdien for den første sensor (port nr. 1) være (66+5)/2=35,5. Lad os runde op til 35. Tærskelværdi for den anden sensor (port nr. 4): (71+6)/2 = 38,5. Lad os runde op til 38. Nu indstiller vi disse værdier i hver switch i overensstemmelse hermed. Det er alt, blokkene med bevægelser forbliver på deres pladser uden ændringer, da hvis vi sætter tegnet "sammenligningstype".<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже. Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета

For at få robotten til at bevæge sig jævnt langs den sorte linje, skal du tvinge den til at beregne selve bevægelseshastigheden.

En person ser en sort streg og dens klare grænse. Lyssensoren fungerer lidt anderledes.

Det er denne egenskab ved lyssensoren - manglende evne til klart at skelne mellem hvid og sort - som vi vil bruge til at beregne bevægelseshastigheden.

Lad os først introducere begrebet "Ideelt banepunkt."

Lyssensoraflæsninger varierer fra 20 til 80, oftest på hvid er aflæsningerne cirka 65, på sort omkring 40.

Det ideelle punkt er et konventionelt punkt omtrent i midten af ​​de hvide og sorte farver, hvorefter robotten vil bevæge sig langs den sorte linje.

Her er punktets placering fundamental - mellem hvid og sort. Det vil ikke være muligt at sætte det nøjagtigt på hvid eller sort af matematiske årsager, vil blive klart senere.

Empirisk har vi beregnet, at det ideelle punkt kan beregnes ved hjælp af følgende formel:

Robotten skal bevæge sig strengt langs det ideelle punkt. Hvis der er en afvigelse i nogen retning, skal robotten vende tilbage til det punkt.

Lad os komponere matematisk beskrivelse af problemet.

Indledende data.

Ideelt punkt.

Aktuelle lyssensoraflæsninger.

Resultat.

Motorens rotationseffekt V.

Motorens rotationseffekt C.

Løsning.

Lad os overveje to situationer. For det første: robotten afveg fra den sorte linje mod den hvide linje.

I dette tilfælde skal robotten øge rotationseffekten af ​​motor B og reducere effekten af ​​motor C.

I en situation, hvor robotten går ind i den sorte linje, er det modsatte tilfældet.

Jo mere robotten afviger fra det ideelle punkt, jo hurtigere skal den vende tilbage til det.

Men at skabe en sådan regulator er en ret vanskelig opgave, og det er ikke altid nødvendigt i sin helhed.

Derfor besluttede vi at begrænse os til kun P-regulatoren, som reagerer tilstrækkeligt på afvigelser fra den sorte linje.

I matematisk sprog vil det blive skrevet således:

hvor Hb og Hc er slutpotenserne for henholdsvis motor B og C,

Base – en vis basiseffekt af motorerne, der bestemmer robottens hastighed. Det vælges eksperimentelt, afhængigt af robottens design og skarpheden af ​​svingene.

Itek – aktuelle aflæsninger af lyssensoren.

Iid – beregnet idealpunkt.

k – proportionalitetskoefficient, udvalgt eksperimentelt.

I tredje del vil vi se på, hvordan man programmerer dette i NXT-G-miljøet.

Dette problem er klassisk, ideologisk simpelt, det kan løses mange gange, og hver gang vil du opdage noget nyt for dig selv.

Der er mange tilgange til at løse det linjefølgende problem. Valget af en af ​​dem afhænger af robottens specifikke design, af antallet af sensorer, deres placering i forhold til hjulene og hinanden.

I vores eksempel vil tre eksempler på en robot blive analyseret ud fra Robot Educators hoveduddannelsesmodel.

Til at begynde med samler vi den grundlæggende model af Robot Educator pædagogisk robot til dette kan du bruge instruktionerne i MINDSTORMS EV3-softwaren.

For eksempel skal vi også bruge EV3 lysfarvesensorer. Disse lyssensorer er som ingen andre bedst egnede til vores opgave, når vi arbejder med dem, vi behøver ikke bekymre os om intensiteten af ​​det omgivende lys. Til denne sensor vil vi i programmerne bruge tilstanden reflekteret lys, hvor mængden af ​​reflekteret lys fra sensorens røde baggrundslys estimeres. Grænserne for sensoraflæsningerne er 0 - 100 enheder for henholdsvis "ingen refleksion" og "total refleksion".

Som et eksempel vil vi analysere 3 eksempler på programmer til at bevæge sig langs en sort bane afbildet på en flad, lys baggrund:

· En sensor, med P-regulator.

· Én sensor, med PC-regulator.

· To sensorer.

Eksempel 1. En sensor med P-regulator.

Design

Lyssensoren er installeret på en stråle, der er bekvemt placeret på modellen.


Algoritme

Funktionen af ​​algoritmen er baseret på det faktum, at afhængigt af graden af ​​overlapning af sensorbelysningsstrålen med en sort linje, varierer de aflæsninger, som sensoren returnerer, gradient. Robotten fastholder lyssensorens position på kanten af ​​den sorte linje. Ved at konvertere inputdata fra lyssensoren genererer styresystemet en værdi for robottens drejehastighed.


Da sensoren på en reel bane genererer værdier i hele sit driftsområde (0-100), er 50 valgt som den værdi, som robotten stræber efter. I dette tilfælde genereres de værdier, der sendes til rotationsfunktionerne området -50 - 50, men disse værdier er ikke nok til en stejl drejning af banen. Derfor bør rækkevidden udvides halvanden gang til -75 - 75.

Som følge heraf er lommeregnerfunktionen i programmet en simpel proportional controller. Hvilken funktion ( (a-50)*1,5 ) i lyssensorens driftsområde genererer rotationsværdier i overensstemmelse med grafen:

Eksempel på hvordan algoritmen fungerer

Eksempel 2. En sensor, med PK regulator.

Dette eksempel er baseret på samme konstruktion.

Du har sikkert bemærket, at robotten i det foregående eksempel svajede for meget, hvilket ikke tillod den at accelerere nok. Nu vil vi prøve at forbedre denne situation lidt.

Til vores proportionalcontroller tilføjer vi også en simpel kubecontroller, som vil tilføje en vis bøjning til controllerfunktionen. Dette vil reducere robottens svajning nær den ønskede grænse af banen, samt give stærkere ryk, når den er langt væk fra den.