Inhaltsverzeichnis:

Selbstlaufender Roboter - Gunook
Selbstlaufender Roboter - Gunook

Video: Selbstlaufender Roboter - Gunook

Video: Selbstlaufender Roboter - Gunook
Video: Kampfroboter und die neueste Militärtechnologie. 2024, Juli
Anonim
Selbstlaufender Roboter
Selbstlaufender Roboter

Was habe ich gemacht?

● Ein Bot, der trainiert werden kann, auf verschiedenen Oberflächen zu gehen (vorwärts zu gehen). Der Bot zeigt eine einfache Kreatur mit 4 „knielosen“Beinen, die Schwierigkeiten hat, sich vorwärts zu bewegen. Es weiß, dass es jedes der Beine nur auf 3 mögliche Arten ausrichten kann. Jetzt muss es die bestmöglichen Schritte finden, die es unternehmen kann, um in Bewegung zu bleiben. Da seine Bewegung auch von der Reibung mit der Oberfläche abhängt, glauben wir, dass es für jede andere Oberfläche, auf der es geht, unterschiedliche (nicht unbedingt einzigartige, aber höchstwahrscheinlich ähnliche) Schritte gibt, um seine Anstrengung beim Vorwärtskommen zu maximieren.

Was wird es verwendet?

● Es wird am besten verwendet, um die Laufmuster für einen KI-ROBOTER zu visualisieren.

Schritt 1: Das Flussdiagramm

Das Flussdiagramm
Das Flussdiagramm

Hier eine Aufschlüsselung des gesamten Projekts. Im Großen und Ganzen besteht das Projekt aus 2 Teilen Elektronik mit mechanischer Struktur des Roboters und der andere ist der Algorithmus, der über den PC läuft, und der Code, der über Arduino läuft.

Schritt 2: BETEILIGTE WICHTIGSTE KOMPONENTEN:

Elektronik

Arduino UNO (!)

Ultraschallsensor

Servomotor

Bluetooth-Modul

Codierung

Arduino-IDE

Teraterm

Jupyter-Notizbuch

Q-Lernalgorithmus

Schritt 3: MODUL V1:

MODUL V1
MODUL V1

Reinforcement Learning: Mit ANN (künstliches neuronales Netzwerk) wollten wir unseren Roboter trainieren und haben zwei mögliche Methoden entwickelt.

Einschränkungen: Jedes Bein (Servomotor) ist auf nur 3 mögliche Positionen von 60, 90 und 120 Grad beschränkt. Annahmen: Wir gehen davon aus, dass die Bot-Bewegung 4 Zustände darstellt (ein Zustand ist eine bestimmte Ausrichtung aller vier Servos), dh es wird 4 verschiedene Zustände des Roboters geben, die wir als 4 Schritte betrachten, bzw. uns einen Bewegungszyklus geben, in die der Bot ein Stück weit vorrücken wird. Dieser Zyklus wird endlos wiederholt, um den Bot in Bewegung zu halten.

Aber das einzige Problem war die Anzahl der zu bewertenden Iterationen - Wir haben 3 mögliche Orientierungen für jeden Motor und es gibt 4 verschiedene Motoren, was 3 ^ 4 = 81 Zustände ergibt, in denen der Roboter in einem einzigen Schritt oder Zustand existieren kann. Wir müssen 4 verschiedene Schritte ausführen, um eine komplexe Bewegung abzuschließen, was bedeutet, dass 81^4 = 43, 046, 721 mögliche Kombinationen auf maximale Effizienz für einen Bewegungszyklus überprüft werden müssen. Angenommen, es dauert 5 Sekunden, um einen einzelnen Zustand zu trainieren, es würde 6,8250 Jahre dauern, um das Training abzuschließen!

Schritt 4: MODUL V2:

Q-Lernalgorithmus

Ein Algorithmus für das frühe Verstärkungslernen, der entwickelt wurde, um Dinge mit endlichem Zustand zu trainieren und die kürzesten Wege zu finden. Quelle:

Mathematik des Algorithmus: Es gibt 81 mögliche Zustände für jeden Schritt, in dem sich der Bot befinden kann. Wir nennen diese Zustände als Zahlen von 1 bis 81 und jetzt möchten wir den Übergangswert wissen, d), während es sich von einem zufälligen Zustand s1 in einen anderen Zustand s2 bewegt (s1, s2 von diesen 81 Zuständen). Wir können es als eine Matrix mit 81 Zeilen und 81 Spalten sehen, wobei ein Element der Matrix gleich dem Wert der Entfernung ist, von der es sich entsprechend seiner Zeilen- und Spaltennummer bewegt hat. Diese Werte können positiv oder negativ sein, abhängig von der Aktion des Roboters im realen Wort. Jetzt werden wir eine geschlossene Schleife von Zuständen finden, bei der die zurückgelegte Entfernung immer positiv ist. Wir werden 81x81 Matrixwerte auswerten, die 81^2 = 6561 sind. Wenn wir jetzt 5 Sekunden brauchen, um diese Werte in der Matrix zu speichern, wird es Nehmen Sie nur 9.1125 Stunden, um eine ganze Matrix zu erstellen, und dann könnte eine Schleife von Schritten zur Maximierung der Bewegungseffizienz leicht herausgefunden werden.

Schritt 5: BETROFFENE PROBLEME -

  1. In einigen Staaten war die Botbewegung sehr ungleichmäßig und beeinflusste den Sensorwert des Ultraschalls, der Bot neigte sich und nahm Entfernung von einer entfernten Wand auf.
  2. Das Problem der Trennung vom Laptop und des Neustarts von Arduino war sehr irritierend.
  3. Den Roboterzug 5 Stunden lang ununterbrochen zu beobachten, war sehr erschöpfend.

Schritt 6: MODUL A1 und A2:

  • Der mechanische Teil umfasst die Chassisplatte mit vier daran befestigten Servos. Wir haben Eiscreme-Sticks verwendet, um Beine zu machen.
  • Unsere Hauptaufgabe - die Entfernung des Bots von seiner Ausgangsposition zu verfolgen.
  • Unser erster Ansatz bestand darin, einen Gyrosensor zu verwenden und die Beschleunigung des Bots zu verwenden, wenn er sich bewegt, um seine Geschwindigkeit und anschließend seine Position zu extrahieren.
  • Problem - Die Implementierung erwies sich als zu kompliziert! Alternative - Wir haben die Bewegung des Bots auf nur eine Dimension beschränkt und einen Ultraschallsensor verwendet, um den Abstand zu einer gerade vorausliegenden Wand zu messen.
  • Das HC05-Bluetooth-Modul wurde während der Trainingsphase verwendet, um die Abstandsübergangsrate zwischen zwei Schritten an den PC zu übertragen und dort die Daten in einer Matrix zu speichern.

Schritt 7: Link zu Videos:

Link zu Videos
Link zu Videos

Babyschritte:

Trainingsaufnahme:

Fast geradeaus:

Video zum tanzenden Roboter:

Final Vide0:

Empfohlen: