Vierbeiner Lernsimulator


10

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?


Verwenden Sie einen vorhandenen Roboter oder entwerfen und bauen Sie ihn selbst?
DaemonMaker

1
Ich habe den Roboter schon von Grund auf neu gebaut :)
Jordan

Antworten:


3

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.


1
Ich habe mir einige der Schritte angesehen, um dies zu installieren, und es sieht nach einem langen Prozess aus. Ich bin mit den meisten davon sehr unbekannt und verwende einen Mac, der nicht viel Unterstützung zu bieten scheint. +1 für eine plausible Lösung, aber ich muss vielleicht weiter suchen
Jordan

Eine Alternative wäre, einen eigenen Simulator mit so etwas wie OpenGL zu bauen. Die Komplexität hängt von der Kinematik Ihres Roboters ab und davon, ob Sie die Dynamik simulieren.
DaemonMaker

2

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.


Würde das wirklich funktionieren? Kann die OpenCV ML-Bibliothek auf ein Arduino passen?
DaemonMaker

1
Nein, aber Sie können damit die Parameter für einen Lernalgorithmus auf einem Arduino trainieren.
WildCrustacean

Das ist viel zu kompliziert für mich, ich bin erst in der High School und habe nach einer viel einfacheren und freundlicheren Alternative gesucht. Vielleicht ein Programm, mit dem ich einen virtuellen Roboter entwerfen kann, der meinem eigenen ähnlich ist, und dann die Positionen für jedes Bein anzeigt, die ich einfach kopieren und (im Wesentlichen) in den Code meines Projekts einfügen kann
Jordan

Schauen Sie sich in diesem Fall vielleicht auch diese Frage an: robotics.stackexchange.com/questions/697/… Robotik ist jedoch kompliziert, und Robotik mit maschinellem Lernen ist keine Ausnahme. Wenn Sie es mit der Robotik in der Zukunft ernst
meinen,

1
Denken Sie auch nicht, dass etwas zu schwer bis kompliziert ist, nur weil Sie in der High School sind. Es gibt viele Stellen (einschließlich dieser Website), an denen Sie Hilfe finden können, wenn Sie nicht weiterkommen.
WildCrustacean

2

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.