Ziel dieses Projektes ist es, den Pepper Roboter eine Schiene mit einem Ball in einer Dimension balancieren zu lassen. Dafür gibt es eine blaue Unterlage mit rotem Ball. Ein Balltracker ermittelt das Delta (Abstand Mittelpunkt der blauen Fläche und Ball) und gibt diesen in einem Thread zurück.
Der Balltracker erkennt den Ball auf einfarbigem Hintergrund und liefert ein Delta zum Mittelpunkt des Untergrunds zurück.
@ https://github.com/pemami4911/deep-rl
Eine Webcam wird per USB an den Linux Computer angeschlossen (/dev/video1) und ein Pepper Roboter sollte sich im selben Netzwerk befinden. Alle Einstellungen sind in der Settings.py vorzunehmen.
Es werden dem Roboter Zufallszahlen gesendet um eine willkürliche Bewegung zu erzeugen. Dabei wird über die Kamera der aktuelle state beobachtet und die Informationen über den Anfangs- und Folgezustand sowie erhaltener Reward in eine Textdatei im json Format geschrieben. Dies ist die Grundlage für das Offline Lernen der gesammelten Daten in ein Modell.
Die gesammelten Zufallsbewegungen werden jetzt wieder in zufälliger Reihenfolge iterativ in einen replayBuffer geschrieben und miteinander kombiniert. Dadurch entsteht ein auf den gesammelten Daten trainiertes Modell. Hierbei wird je nach Einstellung alle 250 Episoden das aktuelle Modell in einem eigenen Ordner gespeichert.
Trainiert ein Model von Anfang an mit Bewegungen am Roboter.
Das vorher trainierte Modell wird angewandt und erzeugt basierend auf dem aktuellen State (Motorstellung und Delta) eine Action um in einen möglichst guten Folgezustand zu kommen. Dafür werden die verschiedenen Modelle durch iteriert und deren Resultate ausgegeben.
Erstellt ein Modell zum Vorhersagen der Folgezustände und Rewards basierend auf den Trainingsdaten. Supervised Learning Modell. Dient der Evaluierung des mit Reinforcement Learning erstellten Modells.
pip install -I imutils opencv-python tensorflow==1.3.0 tflearn==0.3.2 numpy==1.16.6 commentjson==0.8.2 qi==1.6.14