Inhoudsopgave:

Zelflopende robot - Ajarnpa
Zelflopende robot - Ajarnpa

Video: Zelflopende robot - Ajarnpa

Video: Zelflopende robot - Ajarnpa
Video: ZURU 5 SURPRISE BALL GIRLS VS BOYS BLIND BAG TOY UNBOXING & REVIEW -WAT ZIT ER IN?! - angelinaashley 2024, November
Anonim
Zelflopende robot
Zelflopende robot

Wat heb ik gemaakt?

● Een bot die kan worden getraind om op verschillende oppervlakken te lopen (vooruit te gaan). De bot toont een eenvoudig wezen met 4 'knieloze' benen die moeite hebben om vooruit te komen. Het weet dat het elk van de poten op slechts 3 mogelijke manieren kan oriënteren. Nu moet het uitzoeken wat de best mogelijke stappen zijn om in beweging te blijven. Omdat zijn beweging ook afhankelijk is van wrijving met het oppervlak, geloven we dat er voor elk ander oppervlak waarop het loopt, een andere (niet noodzakelijk unieke maar hoogstwaarschijnlijk vergelijkbare) reeks stappen zal zijn om zijn inspanning om vooruit te komen te maximaliseren.

Waar wordt het voor gebruikt?

● Het wordt het best gebruikt voor het visualiseren van looppatronen voor een AI ROBOT.

Stap 1: Het stroomdiagram

Het stroomdiagram
Het stroomdiagram

Hier een overzicht van het hele project. In grote lijnen bestaat het project uit 2 delen elektronica met mechanische structuur van de robot en de andere is het algoritme dat over pc loopt en code die over arduino loopt.

Stap 2: BELANGRIJKE BETROKKEN COMPONENTEN:

Elektronica

Arduino UNO(!)

Ultrasoon sensor

servomotoren

Bluetooth-module

codering

Arduino IDE

Teraterm

Jupyter-notitieboekje

Q-leeralgoritme

Stap 3: MODULE V1:

MODULE V1
MODULE V1

Reinforcement Learning: met behulp van ANN (Artificial Neural Network) waren we van plan onze robot te trainen en kwamen we met twee mogelijke methoden.

Beperkingen: Elk been (servomotor) is beperkt tot slechts 3 mogelijke posities 60, 90 & 120 graden. Aannames: we zijn van mening dat de beweging van de bot 4 toestanden zal vormen (een toestand is een bepaalde oriëntatie van alle vier de servo's), dat wil zeggen dat er 4 verschillende toestanden van de robot zullen zijn die we zullen beschouwen als 4 stappen die ons respectievelijk één bewegingscyclus geven, in die de bot enige afstand vooruit zal bewegen. Deze cyclus wordt oneindig herhaald om de bot in beweging te houden.

Maar het enige probleem was het aantal iteraties dat moest worden beoordeeld. We hebben 3 mogelijke oriëntaties voor elke motor en er zijn 4 verschillende motoren, waardoor het 3^4=81 toestanden is waarin de robot in een enkele stap of toestand kan bestaan. We moeten 4 verschillende stappen nemen om één complexe beweging te voltooien, wat betekent dat 81^4 = 43, 046, 721 mogelijke combinaties moeten worden gecontroleerd op maximale efficiëntie voor één bewegingscyclus. Stel dat het 5 seconden duurt om een enkele staat te trainen, dan zou het 6,8250 jaar duren om de training te voltooien!

Stap 4: MODULE V2:

Q-learning algoritme

Een algoritme voor het leren van vroege versterking, ontwikkeld voor het trainen van dingen met een eindige toestand en het vinden van de kortste paden. bron:

Wiskunde van het algoritme: er zijn 81 mogelijke toestanden voor elke stap waarin de bot zich kan bevinden, we noemen deze toestanden getallen van 1 tot 81 en wat we nu willen weten is de overgangswaarde, wat betekent dat de positie van de robot verandert (afstand verplaatst) terwijl het van een willekeurige toestand s1 naar een andere toestand s2 gaat (s1, s2 van die 81 toestanden). We kunnen het zien als een matrix met 81 rijen en 81 kolommen, waarbij een element van de matrix gelijk zal zijn aan de waarde van de afstand die het heeft verplaatst, overeenkomend met het rij- en kolomnummer. Deze waarden kunnen positief of negatief zijn, afhankelijk van de actie van de robot in het echte woord. Nu zullen we een gesloten lus van toestanden vinden waarbij de afstand die het aflegt altijd positief is. We zullen 81x81 matrixwaarden evalueren die 81^2=6561 zijn. Als we nu 5 seconden nodig hebben om deze waarde in de matrix op te slaan, dan zal het neem slechts 9.1125 uur om een hele matrix te maken en dan kan een reeks stappen om de bewegingsefficiëntie te maximaliseren gemakkelijk worden bedacht.

Stap 5: BETROKKEN PROBLEMEN -

  1. Voor sommige staten was de beweging van de bot erg ongelijk en beïnvloedde het de sensorwaarde van ultrasoon, bot zou kantelen en afstand van een verre muur oppikken.
  2. Het probleem van het loskoppelen van de laptop en het herstarten van arduino, waardoor het trainen vanaf 0-waarde erg irritant was.
  3. Het was zeer uitputtend om de robottrein gedurende 5 uur continu te bekijken.

Stap 6: MODULE A1 en A2:

  • Mechanisch onderdeel omvat het chassisbord met vier servo's eraan bevestigd. We gebruikten ijsstokjes om poten te maken.
  • Onze belangrijkste taak - om de afstand van de bot vanaf zijn oorspronkelijke positie bij te houden.
  • Onze eerste benadering was om de gyrosensor te gebruiken en de versnelling van de bot te gebruiken terwijl deze beweegt om zijn snelheid en vervolgens zijn positie te extraheren.
  • Probleem - Het bleek te ingewikkeld om te implementeren! Alternatief - We hebben de beweging van de bot beperkt tot slechts 1 dimensie en hebben een ultrasone sensor gebruikt om de afstand tot een muur recht voor ons te meten.
  • De HC05-Bluetooth-module werd tijdens de trainingsperiode gebruikt om de afstandsovergangssnelheid tussen twee stappen naar de pc te verzenden en daar werden de gegevens opgeslagen in een matrix.

Stap 7: Link naar video's:

Link naar video's
Link naar video's

Babystapjes:

Trainingsopname:

Bijna recht:

Dansende robotvideo:

Laatste video0:

Aanbevolen: