Die Antworten, die ich auf die Frage zum Trainieren eines Linienroboters mit Verstärkungstechniken erhielt, ließen mich darüber nachdenken, wie man einen Roboter trainiert. Ich glaube, es gibt im Wesentlichen zwei Möglichkeiten -
- Trainiere den physischen Roboter.
- Modellieren Sie den Roboter und simulieren Sie das Training.
- Habe ich etwas verpasst?
Ansatz 2 ist definitiv der bessere Ansatz. Eine Kenntnis der Bewegung (Reaktion) von vornherein würde jedoch ein bestimmtes PWM-Signal (Stimulus) verursachen, wenn sich der Roboter in einem bestimmten Zustand befindet. Die durch ein PWM-Signal verursachte Bewegung kann von der ( 1 ) aktuellen Batteriespannung, ( 2 ) der Masse des Roboters und der ( 3 ) aktuellen Geschwindigkeit abhängen (habe ich etwas verpasst?).
Wie modelliere ich einen solchen Roboter? Und wie modelliere ich es schnell? Wenn ich die Batterie wechsle oder ein paar Platinen und andere Peripheriegeräte hinzufüge und die Masse des Roboters ändere, müsste ich den Roboter umbauen und neu trainieren. Kann ich dies tun, indem ich einige zufällige Stimulus-PWMs bereitstelle und die Reaktion messe?
hinzugefügt: Meine verwandte Frage in dsp.SE.
Update: Eine erwähnenswerte Änderung des Titels von Ian, die es wert ist, erwähnt zu werden: " Wie trainiere ich einen Roboter so, dass er, wenn sich seine Dynamik ändert, nicht komplett neu trainiert werden muss? " Ich denke, dies ist auch eine gute Frage, aber anders als die eine, die ich hier frage. Ich bin im Moment mit dem Re-Training einverstanden.
quelle
Antworten:
Aus meiner Sicht gibt es hier zwei Hauptfragen. Die erste ist, wie modelliere ich einen Roboter? Dies wird häufig mit einer getan Zustandsraum Formulierung der Bewegungsgleichungen . Die genauen Gleichungen hängen von der physischen Konstruktion Ihres Roboters ab. Ja, um sie mit PWM-Eingang zu modellieren, müssen Sie die Übertragungsfunktion aus den PWM-Werten bestimmen, die Sie an den Ausgang Ihrer Aktuatoren liefern. Dann schließen Sie diese Funktion für das Steuersignal in Ihrem Modell an. Auch hier ist die Ableitung dieser Funktion roboterspezifisch. Die aktuelle Batteriespannung und die Masse des Roboters wären wahrscheinlich nützlich, aber ich weiß nichts über die Geschwindigkeit.
Die zweite Frage ist angesichts eines mathematischen Modells meines Roboters, wie man einen RL-Algorithmus (Reinforcement Learning) am besten trainiert, um ihn zu steuern. Kurz gesagt, es gibt keinen besten Weg. Das Training direkt am Roboter ist in der Regel zeitaufwändig, da der Roboter länger braucht, um Versuche durchzuführen. Simulationen können jedoch zu Richtlinien führen, die weniger genau sind, da die Physik der Simulation notwendigerweise vereinfacht wird. Ein anderer Ansatz besteht darin, den Lernenden in der Simulation zu schulen, um eine vernünftige Annäherung zu erhalten, und dann die resultierende Richtlinie zur weiteren Verfeinerung auf den Roboter zu übertragen. Dies schlägt natürlich fehl, wenn das Modell nicht genau genug ist. Es erfordert auch zusätzliche Entwicklung.
Schließlich fragen Sie: "Kann ich [den Roboter umbauen und neu trainieren], indem ich einige zufällige Stimulus-PWMs bereitstelle und die Reaktion messe?" Im Fall von RL gibt es keinen Grund zu der Annahme, dass die neue optimale Richtlinie der vorherigen optimalen Richtlinie entspricht, und daher gibt es nicht viel Grund zu der Annahme, dass einige zufällige Kontrollen ausreichende Informationen liefern, um die Richtlinie angemessen zu ändern. Eine Umschulung muss natürlich nur stattfinden, wenn die Änderungen, die Sie an Ihrem Roboter vornehmen, die Formulierung des Zustandsraummodells und / oder des von Ihnen verwendeten Aktionsmodells beeinflussen. Wenn sich Ihr Aktionsmodell beispielsweise auf Aktionen auf hoher Ebene bezieht ("nach links gehen", "nach rechts gehen", "nach vorne gehen"), müssen Sie die Dynamik ändern, wie Sie diese Bewegungen implementieren, aber die Richtlinie sollte weiterhin gelten .
quelle
Zur Modellierung
Denavit–Hartenberg parameters
wird üblicherweise die Kinematik verwendet. Der von der Stanford University angebotene Kurs Einführung in die Robotik ist auf YouTube verfügbarquelle