XRP NL - First Tech Challenge

De aandrijving van de robot

Het hoofdgedeelte van uw XRP wordt de aandrijflijn genoemd. We noemen het zo omdat het de twee wielen bevat die uw robot aandrijven. De XRP heeft een differentiële aandrijflijn. Dit is dezelfde soort aandrijflijn die u op een schranklader ziet.

De XRP-robot draait met behulp van schrankbesturing, wat betekent dat terwijl de robot draait sommige wielen, soms de voorste wielen, slippen. Dit vereist meer energie om de bochten te voltooien en is afhankelijk van de wrijving van de voorwielen en het specifieke rijoppervlak.

Elk wiel van de aandrijflijn van uw XRP heeft een motor. We kunnen code gebruiken om deze motor te vertellen wat we willen dat hij doet. Door de snelheden van de twee aandrijfmotoren in te stellen, kunt u de robot in een gewenst pad laten bewegen. Er zijn veel variaties in hoe deze motoren ingesteld kunnen worden. Hier zijn enkele basisvoorbeelden:

Rechtdoor rijden

De meest fundamentele gang van zaken die de robot zal doen is rechtuit rijden. Om dit te doen, bewegen beide wielen met dezelfde snelheid vooruit, zodat de robot rechtdoor rijdt.

Draaien in een boog

Robots kunnen in een boog draaien, waarbij het ene wiel sneller rijdt dan het andere, waardoor de robot van het snellere wiel wegdraait. Naarmate het snelheidsverschil tussen de twee wielen groter wordt, wordt de bocht korter. Als de draai doorgaat, rijdt de robot in een volledige cirkel. In dit geval neemt de straal van de cirkel af naarmate de verschillen in wielsnelheid groter worden.

Ter plaatse draaien

Een voordeel van de XRP ten opzichte van een autobesturing is dat hij op zijn plaats kan draaien, waarbij de robot draait op een punt dat zich ongeveer tussen de twee wielen bevindt. Hierdoor kan de robot gemakkelijk uit krappe ruimtes komen zonder een wijde boog te hoeven draaien. De puntbocht wordt vaak gebruikt om de robot tussen twee plaatsen te laten navigeren, omdat het een gemakkelijk voorspelbaar pad volgt.

Draaien op één wiel

Als één wiel vooruit of achteruit rijdt en het andere wiel blijft stilstaan, zal de robot op zijn plaats draaien, waarbij het draaiende centrum het stilstaande wiel is. Dit wordt vaak een zwenkbeweging genoemd omdat de robot rond het niet-bewegende wiel zwenkt. Bij een zwenkbeweging is de diameter van de cirkel die door het buitenste wiel wordt afgelegd twee keer zo groot als de wielbaan.

Inspanning

Er zijn verschillende manieren waarop we de motoren kunnen vertellen wat ze moeten doen. Het meest elementaire dat we kunnen regelen is de inspanning die de motor moet leveren.

Stel u voor dat u op een vlakke ondergrond fietst en met een normale snelheid trapt. Stel u nu voor dat u een heuvel tegenkomt. Als u met dezelfde snelheid blijft trappen, zult u niet vertragen wanneer u de heuvel op gaat. Dit is echter niet gemakkelijk! U zou harder moeten trappen om met dezelfde snelheid de heuvel op te gaan.

Stelt u zich nu eens voor dat u, wanneer u bij de heuvel komt, net zo hard blijft trappen als op het vlakke stuk. U zult langzamer de heuvel opgaan, maar u zult niet zo moe zijn. Dit is wat we bedoelen met de inspanning van de motor. U vertelt de motor niet hoe snel hij moet bewegen, maar hoe hard hij moet werken. Als u de motoren van uw robot vertelt om met een constante kracht te werken, zal de snelheid van uw robot veranderen, afhankelijk van of hij op een vlakke of hellende ondergrond rijdt.

In beide video's gebruikt de robot dezelfde inspanning. In de eerste video beweegt de robot langzaam bergopwaarts omdat de zwaartekracht de inspanning tegenwerkt. In de tweede video beweegt de robot snel bergafwaarts omdat de zwaartekracht in dezelfde richting werkt als de inspanning. De kracht van de motoren is hetzelfde, maar de snelheid hangt af van de weerstand tegen de kracht.

Tip

Inspanning is ook als het gaspedaal in een auto. Als u een heuvel op gaat, moet u meer gas geven om dezelfde snelheid op de heuvel te houden. Als u niet meer gas geeft, zult u vertragen.

Eerste bewegingen

Let op

Plaats uw XRP bovenop een doos of ander voorwerp zodat de wielen niets raken en vrij kunnen ronddraaien.

Laten we, voordat we met de robot gaan rondrijden, wat eenvoudige code schrijven om een van de wielen te laten draaien. Hierdoor raakt u vertrouwd met de programmeeromgeving van de XRP en kunt u controleren of uw XRP zelf goed werkt.

Probeer het uit

Maak een nieuw bestand in de IDE met de naam spin_wheels.py. Voeg er de volgende code aan toe:

uit XRPLib.defaults importeer *


linker_motor.set_effort(0.5)

Voer de code uit en kijk wat er gebeurt.

Laten we de code regel voor regel opsplitsen:

uit XRPLib.defaults import * vertelt uw robot om code uit XRPLib te laden. Maakt u zich nu niet te veel zorgen over wat alle commando's in deze regel betekenen, weet alleen dat u deze regel bovenaan de meeste van uw XRP-programma's zult plaatsen.

left_motor.set_effort(0.5) gebruikt een functie die voor u is voorzien in XRPLib genaamd set_effort die wordt toegepast op de linkermotor. De 0,5 is een parameter voor deze functie die aangeeft dat we willen dat de motor 50% inspanning levert. Op de XRP schrijven we percentages als decimale getallen tussen 0 en 1, waarbij 1 100% is.

Nu we de linkermotor getest hebben, gaan we de rechtermotor testen! Hoe denkt u de code aan te passen om de rechtermotor te laten draaien? Vervang gewoon links_motor door rechts_motor.

Probeer het uit

Wijzig uw code en voer deze uit op de robot. Controleer of het rechter wiel draait.

Duw een voorwerp zoals een potlood tegen het wiel om wat weerstand toe te voegen. Merk op hoe het wiel vertraagt als u dit doet, omdat het meer moeite zou kosten om dezelfde snelheid te houden.

Achteruit gaan

We hebben de wielen vooruit laten draaien, maar wat als we achteruit willen gaan? Om dit te doen, hoeven we alleen maar een negatief getal in te voeren voor de inspanningsparameter. Dit betekent dat we elk getal tussen -1 en 1 kunnen gebruiken voor de inspanningswaarde. -1 is volledige inspanning achteruit, 1 is volledige inspanning vooruit en 0 stopt de motor.

Uitproberen

Probeer code te schrijven die beide wielen achteruit laat draaien.

Deze tabel toont enkele verschillende inspanningswaarden en wat het wiel zou doen:

Snelheidswaarde

Actie wiel

1

Wiel draait vooruit bij 100% inspanning

0.5

Wiel draait vooruit bij 50% inspanning

0

Wiel stopt met draaien

-0.5

Wiel draait achteruit bij 50% inspanning

-1

Wiel draait achteruit bij 100% inspanning