Ich baue derzeit einen Roboter mit vier Beinen ( vierbeinig ), 3 Freiheitsgraden (Freiheitsgraden) und es wurde hier vorgeschlagen , dass ich einen Simulator verwende, um das Lernen auf einem Computer durchzuführen und dann die Algorithmen auf den Roboter hochzuladen. Ich verwende ein Arduino Uno für den Roboter und welche Software könnte ich verwenden, um das Lernen zu simulieren und dann auf das Arduino-Board hochladen zu können?
10
Antworten:
Pavillon ist ein gutes Werkzeug für das, was Sie tun möchten. Da Sie einen benutzerdefinierten Roboter verwenden, müssen Sie ein Modell für den Simulator erstellen . Sie haben es geschafft, dies ziemlich einfach zu machen, aber für einen Quadraped kann ich mir vorstellen, dass es ein bisschen Zeit dauern wird.
Gazebo ist auch schön, weil es gut mit ROS funktioniert, was bedeutet, dass Sie beim Erstellen ein Programm zur Steuerung Ihres Roboters erstellen und die Befehle über die Integration an den simulierten Roboter oder über Rosserial an den realen Roboter senden können . Beachten Sie jedoch, dass die Entwicklung Ihrer Lösung einige Zeit in Anspruch nimmt, wenn Sie keines dieser Tools verwendet haben.
quelle
Dies würde die Robotersimulation nicht abdecken, aber die OpenCV Machine Learning Library kann nützlich sein, um Lernalgorithmen und Trainingsparameter zu bewerten, die auf den Roboter heruntergeladen werden sollen.
Es enthält eine neuronale Netzwerkimplementierung, die für dieses Problem von besonderem Interesse sein kann.
OpenCv ist ebenfalls eine Standardbibliothek und lässt sich wahrscheinlich gut in einen anderen Simulator für den Roboter selbst integrieren.
quelle
Der kürzlich Open-Source- V-REP-Simulator kann Ihren Anforderungen entsprechen. Ich fand es zugänglicher als Gazebo und es kann unter Windows, OSX und Linux ausgeführt werden. Ihre Tutorials sind ziemlich einfach. Es gibt unzählige verschiedene Möglichkeiten, programmgesteuert mit ihm zu kommunizieren (auch mit ROS). Es sieht so aus, als gäbe es sogar ein Tutorial zum Erstellen eines Hexapods , das Sie wahrscheinlich als Ausgangspunkt verwenden könnten, wenn noch kein Vierbeiner-Beispiel verfügbar ist. Leider glaube ich, dass der Simulator direkt mit dem UI-Rendering verbunden ist, was meiner Meinung nach bei Gazebo nicht unbedingt der Fall ist.
Ihr Programm müsste also eine der vielen Möglichkeiten verwenden, um mit V-REP zu kommunizieren, und dann die Leistung eines bestimmten Gangs, der von einem Sensor in V-REP bestimmt wird, in einen Algorithmus für maschinelles Lernen (möglicherweise etwas von OpenCV as) einspeisen @ WildCrustacean erwähnt). Sie müssten dann eine Übersetzung von der Gangbeschreibung des simulierten Roboters zu etwas erstellen, mit dem die tatsächlichen Motoren Ihres Arduino gesteuert werden.
Auf der anderen Seite können Sie mithilfe einer vorhandenen Physik-Engine Ihren eigenen Simulator erstellen und ihn mit einer Grafikbibliothek rendern. Bullet und OGRE können für diesen Zweck verwendet werden, wenn Sie C ++ mögen. Es gibt Unmengen anderer für andere Programmiersprachen.
Ich würde auch untersuchen, wie Forscher, die an der Ganggenerierung arbeiten, ihre Simulationen durchführen. Möglicherweise ist ein Open Source-Projekt dafür vorhanden.
quelle