ev3 robotprogramma bewegingslijn. Geavanceerd lijnbewegingsalgoritme

ev3 robotprogramma bewegingslijn. Geavanceerd lijnbewegingsalgoritme

Besturingsalgoritmen voor een mobiele LEGO robot. Lijn volgen met twee lichtsensoren

Docent aanvullend onderwijs

Kazakova Lyubov Alexandrovna


Lijn beweging

  • Twee lichtsensoren
  • Proportionele regelaar (P-regelaar)

Algoritme om langs de zwarte lijn te bewegen zonder een proportionele controller

  • Beide motoren draaien met hetzelfde vermogen
  • Als de rechter lichtsensor de zwarte lijn raakt, dan neemt het vermogen van de linker motor (bijvoorbeeld B) af of stopt
  • Als de linker lichtsensor de zwarte lijn raakt, dan neemt het vermogen van de andere van de motoren (bijvoorbeeld C) af (keert terug naar de lijn), neemt af of stopt
  • Als beide sensoren wit of zwart zijn, is er sprake van een rechtlijnige beweging

De beweging wordt georganiseerd door de kracht van een van de motoren te veranderen


Voorbeeld van een programma om langs de zwarte lijn te bewegen zonder een P-controller

De beweging wordt georganiseerd door de rotatiehoek te veranderen


  • Met de proportionele controller (P-controller) kunt u het gedrag van de robot aanpassen, afhankelijk van hoeveel zijn gedrag afwijkt van het gewenste.
  • Hoe meer de robot van het doel afwijkt, hoe meer kracht er nodig is om ernaar terug te keren.

  • De P-controller wordt gebruikt om de robot in een bepaalde staat te houden:
  • Houd de positie van de manipulator vast Beweeg langs een lijn (lichtsensor) Beweeg langs een muur (afstandssensor)
  • De positie van de manipulator vasthouden
  • Lijnbeweging (lichtsensor)
  • Bewegen langs een muur (afstandssensor)

Lijn volgen met één sensor

  • Het doel is om langs de grens "wit-zwart" te gaan
  • Een persoon kan de grens van wit en zwart onderscheiden. De robot kan dat niet.
  • Het doel voor de robot is op de grijze kleur

overtochten

Bij gebruik van twee lichtsensoren is het mogelijk om het verkeer op moeilijkere routes te organiseren



Algoritme voor het rijden op een snelweg met kruispunten

  • Beide sensoren op wit - de robot rijdt in een rechte lijn (beide motoren draaien met hetzelfde vermogen)
  • Als de rechter lichtsensor de zwarte lijn raakt en de linker op de witte lijn, dan draait hij naar rechts
  • Als de linker lichtsensor de zwarte lijn raakt en de rechter de witte lijn, dan draait hij naar links
  • Als beide sensoren op zwart staan, vindt er een rechtlijnige beweging plaats. Je kunt kruispunten tellen of een soort actie uitvoeren


Het werkingsprincipe van de P-regelaar

Positie van sensoren

O=O1-O2


Algoritme om langs de zwarte lijn te bewegen met een proportionele controller

SW \u003d K * (C-T)

  • C - streefwaarden (neem metingen van de lichtsensor op wit en zwart, bereken het gemiddelde)
  • T - huidige waarde - ontvangen van de sensor
  • K is de gevoeligheidscoëfficiënt. Hoe meer, hoe hoger de gevoeligheid.



Als u een presentatie met afbeeldingen, ontwerpen en dia's wilt bekijken, download het bestand en open het in PowerPoint op jouw computer.
Tekstinhoud van presentatiedia's:
"Algoritme om langs een zwarte lijn te bewegen met één kleursensor" Cirkel op "Robotica" Leraar voor Yezidov Ahmed Elievich Bij MBU DO "Shelkovskaya CTT" Om het algoritme te bestuderen om langs een zwarte lijn te bewegen, een Lego Mindstorms EV3-robot met één kleurensensor wordt gebruikt Kleursensor Kleursensor onderscheidt 7 kleuren en kan de afwezigheid van kleur detecteren. Net als in de NXT kan het als een lichtsensor werken Line S Robot Competitieveld De voorgestelde "S"-vormige baan stelt je in staat om nog een interessante test uit te voeren van de gemaakte robots voor snelheid en reactie. Overweeg het eenvoudigste algoritme om langs een zwarte lijn op een enkele kleurensensor op EV3 te bewegen. Dit algoritme is het langzaamste, maar het meest stabiel. De robot zal niet strikt langs de zwarte lijn bewegen, maar langs de rand, naar links en rechts draaiend en geleidelijk vooruit Het algoritme is heel eenvoudig: als de sensor zwart ziet, draait de robot in de ene richting, als hij wit ziet - in de andere richting. Een lijn volgen in de modus Gereflecteerd licht met twee sensoren Soms kan de kleurensensor niet goed onderscheid maken tussen zwart en wit. De oplossing voor dit probleem is om de sensor niet in de kleurdetectiemodus te gebruiken, maar in de detectiemodus voor gereflecteerd licht. In deze modus, wetende de waarden van de sensor op een donker en licht oppervlak, kunnen we onafhankelijk zeggen wat als wit wordt beschouwd en wat zwart zal zijn. Laten we nu de helderheidswaarden op de witte en zwarte oppervlakken bepalen. Om dit te doen, vinden we in het menu van de EV3-steen de tab "Brick Applications". Nu ben je in het poortvenster en kun je de metingen van alle sensoren op het huidige moment zien. onze sensoren moeten rood oplichten, wat betekent dat ze in de detectiemodus voor gereflecteerd licht staan. Als ze blauw schijnen, drukt u in het poortvenster op de gewenste poort op de middelste knop en selecteert u de COL-REFLECT-modus. Nu zullen we de robot zo plaatsen dat beide sensoren zich boven het witte oppervlak bevinden. We kijken naar de getallen in poort 1 en 4. In ons geval zijn de waarden respectievelijk 66 en 71. Dit zijn de witwaarden van de sensoren. Laten we nu de robot zo plaatsen dat de sensoren zich boven het zwarte oppervlak bevinden. Laten we nogmaals kijken naar de waarden van poorten 1 en 4. We hebben respectievelijk 5 en 6. Dit zijn de betekenissen van zwart. Vervolgens zullen we het vorige programma aanpassen. We veranderen namelijk de instellingen van de schakelaars. Zolang ze Kleursensor -> Meting -> Kleur hebben geïnstalleerd. We moeten de kleursensor -> vergelijking -> intensiteit van gereflecteerd licht instellen. Nu moeten we het "vergelijkingstype" en de "drempelwaarde" instellen. De drempelwaarde is de waarde van wat "grijs", de waarden waaronder we zwart zullen beschouwen, en meer - wit. Voor de eerste benadering is het handig om de gemiddelde waarde tussen wit en zwart van elke sensor te gebruiken. De drempelwaarde van de eerste sensor (poort #1) zal dus (66+5)/2=35,5 zijn. Rond af op 35. Drempelwaarde van de tweede sensor (poort #4): (71+6)/2 = 38.5. Laten we naar boven afronden op 38. Nu stellen we deze waarden respectievelijk in elke schakelaar in. Dat is alles, de blokken met bewegingen blijven ongewijzigd op hun plaats, want als we het teken " in het "vergelijkingstype" plaatsen<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже. Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета

Om de robot soepel langs de zwarte lijn te laten bewegen, moet je hem zelf de bewegingssnelheid laten berekenen.

Een persoon ziet een zwarte lijn en zijn duidelijke grens. De lichtsensor werkt iets anders.

Het is deze eigenschap van de lichtsensor - het onvermogen om de grens tussen wit en zwart duidelijk te onderscheiden - die we zullen gebruiken om de bewegingssnelheid te berekenen.

Laten we eerst het begrip "Ideaal punt van het traject" introduceren.

De meetwaarden van de lichtsensor variëren van 20 tot 80, meestal op wit, de meetwaarden zijn ongeveer 65, op zwart, ongeveer 40.

Het ideale punt is een voorwaardelijk punt ongeveer in het midden van witte en zwarte kleuren, waarna de robot langs de zwarte lijn zal bewegen.

Hier is de locatie van de stip fundamenteel - tussen wit en zwart. Het zal om wiskundige redenen niet mogelijk zijn om het precies op wit of zwart in te stellen, waarom - het zal later duidelijk worden.

Empirisch hebben we berekend dat het ideale punt kan worden berekend met behulp van de volgende formule:

De robot moet zich strikt langs het ideale punt bewegen. Als er in beide richtingen een afwijking optreedt, moet de robot naar dat punt terugkeren.

Laten we componeren wiskundige beschrijving van het probleem.

Initiële data.

Perfect punt.

De huidige meetwaarden van de lichtsensor.

Resultaat.

Motorvermogen B.

Rotatievermogen motor C.

Oplossing.

Laten we twee situaties bekijken. Ten eerste: de robot week af van de zwarte lijn naar de witte.

In dit geval moet de robot het rotatievermogen van motor B verhogen en het vermogen van motor C verlagen.

In een situatie waarin de robot de zwarte lijn inrijdt, is het tegenovergestelde waar.

Hoe meer de robot afwijkt van het ideale punt, hoe sneller hij ernaar moet terugkeren.

Maar het creëren van een dergelijke regelgever is een nogal moeilijke taak en is niet altijd in zijn geheel vereist.

Daarom hebben we besloten ons te beperken tot een P-regelaar die adequaat reageert op afwijkingen van de zwarte lijn.

In de taal van de wiskunde zou dit worden geschreven als:

waarbij Hb en Hc de totale vermogens zijn van respectievelijk motoren B en C,

Hbase - een bepaald basisvermogen van de motoren, dat de snelheid van de robot bepaalt. Het wordt experimenteel geselecteerd, afhankelijk van het ontwerp van de robot en de scherpte van de bochten.

Itech - huidige metingen van de lichtsensor.

Ik id - berekend ideaal punt.

k is de evenredigheidscoëfficiënt, experimenteel geselecteerd.

In het derde deel gaan we kijken hoe we dit kunnen programmeren in de NXT-G omgeving.

Deze taak is klassiek, ideologisch eenvoudig, kan vele malen worden opgelost en elke keer ontdek je iets nieuws.

Er zijn veel manieren om het regelvolgende probleem op te lossen. De keuze voor een ervan hangt af van het specifieke ontwerp van de robot, van het aantal sensoren, hun locatie ten opzichte van de wielen en elkaar.

In ons voorbeeld worden drie robotvoorbeelden gedemonteerd op basis van het hoofdzelfstudiemodel van Robot Educator.

Om te beginnen stellen we het basismodel van de Robot Educator samen, hiervoor kun je de instructies in de MINDSTORMS EV3-software gebruiken.

Ook hebben we bijvoorbeeld EV3-lichtkleursensoren nodig. Deze lichtsensoren zijn als geen ander het meest geschikt voor onze taak, wanneer we ermee werken, hoeven we ons geen zorgen te maken over de intensiteit van het omgevingslicht. Voor deze sensor gebruiken we in de programma's de modus gereflecteerd licht, waarin de hoeveelheid gereflecteerd licht van de rode verlichting van de sensor wordt geschat. De limieten van de sensoruitlezingen zijn 0 - 100 eenheden, voor respectievelijk "geen reflectie" en "totale reflectie".

We analyseren bijvoorbeeld 3 voorbeelden van programma's voor het bewegen langs een zwart pad afgebeeld op een gelijkmatige, lichte achtergrond:

· Eén sensor, met P-regelaar.

· Eén sensor, met PK-regelaar.

· Twee sensoren.

Voorbeeld 1. Eén sensor, met P-regelaar.

Ontwerp

De lichtsensor is gemonteerd op een balk die handig op het model is geplaatst.


Algoritme

De werking van het algoritme is gebaseerd op het feit dat, afhankelijk van de mate van overlap, de sensorverlichtingsbundel met een zwarte lijn, de door de sensor geretourneerde meetwaarden in een gradiënt variëren. De robot houdt de positie van de lichtsensor op de rand van de zwarte lijn. Door de invoergegevens van de lichtsensor om te zetten, genereert het besturingssysteem de waarde van de draaisnelheid van de robot.


Omdat de sensor op een echt traject waarden genereert in zijn gehele werkbereik (0-100), is de waarde waarnaar de robot streeft 50. In dit geval worden de waarden die naar de rotatiefunctie worden verzonden, gevormd in het bereik -50 - 50, maar deze waarden zijn niet genoeg voor een steile trajectrotatie. Daarom moet het bereik met anderhalf keer worden uitgebreid tot -75 - 75.

Ten slotte, in het programma, is de rekenmachinefunctie een eenvoudige proportionele controller. wiens functie ( (a-50)*1.5 ) in het werkbereik van de lichtsensor genereert de rotatiewaarden in overeenstemming met de grafiek:

Een voorbeeld van het algoritme

Voorbeeld 2. Eén sensor, met PK-controller.

Dit voorbeeld is gecompileerd op hetzelfde ontwerp.

Je hebt waarschijnlijk gemerkt dat de robot in het vorige voorbeeld te veel zwaaide, waardoor hij niet voldoende kon accelereren. Nu zullen we proberen deze situatie een beetje te verbeteren.

Aan onze proportionele controller voegen we ook een eenvoudige kubuscontroller toe, die een draai aan de controllerfunctie zal geven. Dit zal het slingeren van de robot in de buurt van de gewenste grens van het traject verminderen en sterkere schokken op grote afstand ervan maken.

Een van de basisbewegingen in legoconstructie is het volgen van de zwarte lijn.

De algemene theorie en specifieke voorbeelden van het maken van een programma worden beschreven op de site wroboto.ru

Ik zal beschrijven hoe we dit in de EV3-omgeving implementeren, want er zijn verschillen.

Het eerste dat de robot moet weten, is de waarde van het "ideale punt" dat zich op de grens van zwart en wit bevindt.

De locatie van de rode stip in de figuur komt precies overeen met deze positie.

De ideale berekeningsoptie is om de waarde van zwart-wit te meten en het rekenkundig gemiddelde te nemen.

U kunt het handmatig doen. Maar de nadelen zijn direct zichtbaar: al is het maar voor een korte tijd, de verlichting kan veranderen en de berekende waarde zal onjuist blijken te zijn.

Dus je kunt een robot het laten doen.

Tijdens experimenten ontdekten we dat het niet nodig is om zowel zwart als wit te meten. Alleen wit kan worden gemeten. En de waarde van het ideale punt wordt berekend als de waarde van wit gedeeld door 1,2 (1,15), afhankelijk van de breedte van de zwarte lijn en de snelheid van de robot.

De berekende waarde moet naar een variabele worden geschreven om er later toegang toe te krijgen.

Berekening van het "ideale punt"

De volgende parameter die bij de beweging betrokken is, is de draaisnelheid. Hoe groter het is, hoe scherper de robot reageert op veranderingen in verlichting. Maar bij een te hoge waarde gaat de robot wiebelen. De waarde wordt experimenteel individueel geselecteerd voor elk robotontwerp.

De laatste parameter is het basisvermogen van de motoren. Het beïnvloedt de snelheid van de robot. Een toename van de bewegingssnelheid leidt tot een toename van de reactietijd van de robot op een verandering in verlichting, wat kan leiden tot een afwijking van het traject. De waarde wordt ook experimenteel geselecteerd.

Voor het gemak kunnen deze parameters ook naar variabelen worden geschreven.

Stuurverhouding en basisvermogen

De logica van het bewegen langs de zwarte lijn is als volgt: de afwijking van het ideale punt wordt gemeten. Hoe groter het is, hoe sterker de robot ernaar moet streven om ernaar terug te keren.

Om dit te doen, berekenen we twee getallen - de vermogenswaarde van elk van de motoren B en C afzonderlijk.

In formulevorm ziet het er als volgt uit:

Waarbij Isens de waarde van de lichtsensormetingen is.

Tot slot de implementatie in EV3. Het is het handigst om in de vorm van een apart blok uit te geven.

Implementatie van het algoritme

Dit is het algoritme dat in de robot is geïmplementeerd voor de middencategorie WRO 2015

keer bekeken