V-REP - Eine flexible und skalierbare Robomodelling-Plattform
Ich bin kürzlich auf einen unterhaltsamen Artikel über eine Robomodeling-Plattform in englischer Sprache gestoßen. Und da ich den Robotik-Campus-Robotik-Technologiepark vertrete und unsere Aktivitäten hauptsächlich mit Modellierung, Robotik und Elektronik zu tun haben, hielt ich es für sehr cool, diesen Artikel zu übersetzen und der Masse zugänglich zu machen. Ich hoffe die Übersetzung wird hilfreich sein.Übrigens gab es bereits eine Veröffentlichung zum Thema V-REP-Robosimulator , daher empfehle ich, diese zu lesen.Heutzutage sind die Möglichkeiten des Einsatzes von Robotik riesig, Roboter werden überall eingesetzt, von der Erforschung von Planeten bis zur Reinigung von Häusern. Die Kombination von drei Subsystemen in Robotern: Aktuator, Sensor und Steuerung macht sie in der realen Welt effektiv, erschwert jedoch die virtuelle Simulation. In diesem Artikel möchten wir Ihnen das Framework zur Simulation von Robotersystemen vorstellen - V-REP.EinführungDas exponentielle Wachstum der Rechenleistung von Computern (ganz zu schweigen von Hardware für dreidimensionale Grafiken) sowie das Aufkommen einer großen Anzahl von Open-Source-Software und -Elektronik haben die Systeme für die virtuelle 3D-Simulation von Robotern erheblich verändert. Es bestand die Möglichkeit, nicht nur die Arbeitsumgebung zu komplizieren, sondern auch den Start physischer Robotersysteme in Echtzeit sicherzustellen und mobile / eingebettete Systeme, die direkt von der Umgebung aus gesteuert werden, in die Simulation einzubeziehen.Grundsätzlich ist es möglich, den Simulator unabhängig aus verschiedenen kinematischen, physikalischen und grafischen Bibliotheken zusammenzusetzen, und die Architektur und die verwendete Methodik werden für die Leistung und Genauigkeit der Simulation von entscheidender Bedeutung sein. Ein robuster systematischer Ansatz erfordert die Verwendung universeller und skalierbarer Modellierungsstrategien.Tatsächlich besteht das Hauptziel des Simulators darin, eine große Anzahl von Werkzeugen und Fähigkeiten für die Simulation bereitzustellen. Dies ist schwierig, da wir aufgrund der Vielzahl der Robotersysteme die Besonderheiten des Simulators nicht vorhersehen können. Darüber hinaus benötigen einige Benutzer einen flexiblen Ansatz, der es ermöglicht, mit einer einfachen Programmiersprache zu arbeiten und den Simulator portabel, für alle Arten von Robotermodellen geeignet und vor allem skalierbar zu machen.Derzeit sind mehrere Modellierungsplattformen verfügbar, z. B. Open HRP , Gazebo oder Webots. Trotz der Tatsache, dass diese Plattformen eine ausreichende Funktionalität bieten, können sie keine Vielzahl ergänzender Programmierfunktionen und -techniken bieten. Ihre Simulationsmodelle und Steuerungen sind nur teilweise portabel, sie haben verschiedene Probleme und erfordern daher eine separate Verarbeitung. Beispielsweise ist es sehr häufig erforderlich, den Code auf verschiedenen Hardwareplattformen neu zu kompilieren, oder es kann erforderlich sein, das simulierte Modell und den Controller aus zwei verschiedenen Dateien sorgfältig anzupassen, oder Sie benötigen Unterstützung für die Skalierbarkeit, und dies erfolgt über wenig bekannte fest codierte Algorithmen.Der V-REP-Simulator ist das Ergebnis von Versuchen, alle Anforderungen an die Vielseitigkeit und Skalierbarkeit der Modellierungsumgebung zu erfüllen. Neben den traditionellen Modellierungsansätzen anderer Simulatoren fügt V-REP mehrere zusätzliche Ansätze hinzu. In diesem Teil des Artikels werden wir auch die V-REP-Steuerungsarchitektur betrachten, die Technologie integrierter Skripte, die verschiedene Arten von Steuerungen im Simulationsmodell ersetzen, wodurch diese Modelle äußerst portabel und skalierbar sind.Im zweiten Teil des Artikels werden wir insgesamt die Funktionalität des Modellierungssystems und seine Integration in Simulationsmodelle betrachten. Als Beispiel werden drei praktische Simulationsmodelle betrachtet, die in V-REP erstellt wurden, und deren Implementierung.Wenn komplexe Szenen erstellt werden müssen, gibt es keine bessere Option als die Verwendung eines verteilten Steuerungssystems. Dieser Ansatz vereinfacht die Aufgabe, indem die Verwaltung von Subjekten getrennt, die Simulation beschleunigt, die Prozessorlast auf mehrere Kerne oder mehrere Maschinen verteilt wird. Auf diese Weise können Sie die Ausführung von Algorithmen steuern. Es gibt jedoch Modellierungsanforderungen, die nicht vergessen werden dürfen, um dieses Ziel zu erreichen.Überblick über Simulationsmanagementtechniken.Der Steuerungssimulationscode wird mit den folgenden drei Methoden ausgeführt:1. Der Steuerungscode wird auf einem anderen Computer ausgeführt.Der Code kann auf einer separaten Maschine oder einem Roboter ausgeführt werden, der über einen bestimmten Bus (z. B. einen Anschluss, eine serielle Schnittstelle usw.) mit einem Maschinensimulator verbunden ist. Der Hauptvorteil dieses Ansatzes ist die Originalität der Steuerung (der Steuercode ist nativ und funktioniert auf der Originalausrüstung). Ein weiterer Vorteil ist der geringere Rechenaufwand für die Simulation der Maschine. Dieser Ansatz führt jedoch zu ernsthaften Einschränkungen bei der Synchronisation mit dem Simulationszyklus.2. Der Steuercode wird auf derselben Maschine ausgeführt, jedoch in einem Prozess (oder einem anderen Thread), der sich vom Simulationszyklus unterscheidet.Mit dieser Methode können wir auch eine reduzierte, ausgeglichene Belastung der Prozessorkerne verwenden, was jedoch mit einer mangelnden Synchronisation mit dem Simulationszyklus einhergeht. Meistens wird dieser Prozess mit Kommunikationsverzögerungen oder Schaltverzögerungen gekoppelt. Diese Methode wird häufig durch externe ausführbare Programme oder Plugins implementiert, die in den Simulator geladen werden.3. Der Steuercode wird auf derselben Maschine und im selben Thread wie der Simulationszyklus ausgeführt.Der Hauptvorteil dieses Ansatzes ist die Synchronisation mit dem Simulationszyklus, das Fehlen von Verzögerungen. Ein solches Verfahren wird jedoch nur mit einer Erhöhung der Rechenlast des Prozessors möglich. Diese Methode wird häufig durch Plugins implementiert, die in den Simulator geladen werden.Die häufigsten Nachteile der oben genannten Methoden sind eine schlechte Portabilität und eine schlechte Skalierung von Simulationsmodellen: Da der Steuercode nicht an das entsprechende Simulationsmodell gebunden ist, muss er separat verteilt, kompiliert und installiert werden. Dies erhöht die Anzahl der Kompatibilitätsprobleme auf verschiedenen Plattformen sowie die Anzahl der Konflikte mit anderen Bibliotheken. Die Flexibilität wird auch verringert, da Sie die ausführbare Datei für jeden kleinen Änderungscode neu kompilieren und neu laden müssen. Eine Kopie des Modells wird, wie im Fall der Multi-Roboter-Modellierung, von Drahtmechanismen unterstützt, die für jede Instanz des Simulationsmodells neue Steuerungen starten.Implementierung von V-REP .Mit V-REP kann der Benutzer verschiedene Modellierungsmöglichkeiten nutzen: (Tabelle 1 und Abb. 2)

Integrierte Skripte Dies
ist das leistungsstärkste Unterscheidungsmerkmal von V-REP. Das Lua-Skript der Hauptsimulationsschleife ( “ ”) — . , . . , , . , . : , , , , . . 3 II.
, , V-rep lua. ( /), ( ).
V-REP . lua, . . /, . API , ROS (. . ) .
API
API V-REP V-REP . API API . (C/C++, Python, Java, Matlab & Urbi) , , , . , : API , . ( ), ( , / ). API, , , ROS .
ROS
V-REP ROS , ROS V-REP ROS , ROD /. / , .
: marc@coppeliarobotics.com
, ,
, ,
, Coppelia Robotics, .
: , , . .
Source: https://habr.com/ru/post/de383009/
All Articles