Mit einem Robotik-Simulator können Anwendungen für einen physischen Roboter erstellt werden, ohne von der tatsächlichen Maschine abhängig zu sein. Dies spart Kosten und Zeit. In einigen Fällen können diese Anwendungen ohne Änderungen auf den physischen Roboter übertragen (oder neu erstellt) werden.
Der Begriff Robotersimulator kann sich auf mehrere verschiedene Robotersimulationsanwendungen beziehen. In mobilen Robotik-Anwendungen können verhaltensbasierte Robotik-Simulatoren beispielsweise einfache Welten starrer Objekte und Lichtquellen erstellen und Roboter für die Interaktion mit diesen Welten programmieren. Verhaltensbasierte Simulationen ermöglichen Aktionen, die eher biologischer Natur sind, im Vergleich zu Simulatoren, die eher binär oder rechnerisch sind. Außerdem können verhaltensbasierte Simulatoren aus Fehlern „lernen“ und die anthropomorphe Qualität der Zähigkeit demonstrieren.
Eine der beliebtesten Anwendungen für Robotik-Simulatoren ist das 3D-Modellieren und Rendern eines Roboters und seiner Umgebung. Diese Art von Robotersoftware verfügt über einen Simulator, einen virtuellen Roboter, der die Bewegung eines realen Roboters in einem realen Arbeitsbereich nachahmen kann. Einige Robotersimulatoren verwenden eine Physik-Engine zur realistischeren Bewegungserzeugung des Roboters. Die Verwendung eines Robotik-Simulators für die Entwicklung eines Robotersteuerprogramms wird dringend empfohlen, unabhängig davon, ob ein Roboter verfügbar ist oder nicht. Der Simulator ermöglicht das bequeme Schreiben und Debuggen von Roboterprogrammen mit der endgültigen Version des Programms, das an einem tatsächlichen Roboter getestet wurde. Dies gilt hauptsächlich für industrielle Roboteranwendungen.
Sensorgestützte Roboteraktionen sind viel schwieriger zu simulieren und offline zu programmieren, da die Roboterbewegung von den augenblicklichen Sensorwerten in der realen Welt abhängt.
Funktionen
Moderne Simulatoren bieten in der Regel folgende Funktionen:
Schnelles Roboter-Prototyping
Verwendung des eigenen Simulators als Erstellungswerkzeug (Virtual Robot Experimentation Platform, Webots, R-Station, Marilou, 4DV-Sim).
Externe Werkzeuge verwenden.
Physik-Engines für realistische Bewegungen. Die meisten Simulatoren verwenden ODE (Gazebo, LpzRobots, Marilou, Webots) oder PhysX (Microsoft Robotics Studio, 4DV-Sim).
Realistische Wiedergabe 3d. Zum Erstellen der Umgebungen können Standard-3D-Modellierungs-Tools oder Tools von Drittanbietern verwendet werden.
Dynamische Roboterkörper mit Scripting. C, C ++, Perl, Python, Java, URBI, MATLAB-Sprachen, die von Webots verwendet werden, Python von Gazebo.
Simulatoren
Zu den neuesten verfügbaren Technologien für die Programmierung gehören diejenigen, die eine virtuelle Simulation verwenden. Simulationen mit virtuellen Modellen der Arbeitsumgebung und der Roboter selbst können sowohl für das Unternehmen als auch für den Programmierer Vorteile bieten. Durch die Verwendung einer Simulation werden die Kosten gesenkt und Roboter können offline programmiert werden, wodurch Ausfallzeiten für eine Montagelinie vermieden werden. Roboteraktionen und Montageteile können Monate vor der Produktion von Prototypen in einer dreidimensionalen virtuellen Umgebung visualisiert werden. Das Schreiben von Code für eine Simulation ist auch einfacher als das Schreiben von Code für einen physischen Roboter. Während der Schritt zu virtuellen Simulationen für Programmierroboter ein Fortschritt beim Design der Benutzeroberfläche ist, stecken viele solcher Anwendungen erst in den Kinderschuhen.
Allgemeine Information
Software | Entwickler | Entwicklungsstatus | Lizenz | 3D-Rendering-Engine | Physik-Engine | 3D-Modellierer | Unterstützte Plattformen |
---|---|---|---|---|---|---|---|
Actin | Energid Technologies | Aktiv | Proprietär | OpenGL | Proprietär | Proprietär | Windows, Mac OS, Linux, RTLinux, VxWorks, RTOS-32 und RTX. (QNX geplant) |
ARS | RAL | Inaktiv | BSD | VTK | ODE | Keiner | Linux, Mac OS, Windows |
AUTOMAPPPS | Convergent Information Technologies GmbH | Aktiv | Proprietär | OpenGL | unbekannte | Intern | Linux, Windows |
Pavillon | Open Source Robotics Foundation (OSRF) | Aktiv | Apache 2.0 | OGER | ODE / Bullet / Simbody / DART | Intern | Linux |
MORSE | Akademische Gemeinschaft | Aktiv | BSD | Mixer-Spiel-Engine | Kugel | Mixer | Linux, BSD *, macOS |
OpenHRP | AIST | Aktiv | Finsternis | Java3D | ODE / Intern | Intern | Linux, Windows |
RoboDK | RoboDK | Aktiv | Proprietär | OpenGL | keiner | Intern | Linux, Mac OS, Windows, Android |
SimSpark | O. Obst et al. (+26) | Aktiv | GNU GPL (v2) | Intern | ODE | Keiner | Linux, Mac OS, Windows |
V-Rep | Coppelia Robotics | Aktiv | Proprietär / GNU GPL | Intern | ODE / Bullet / Vortex / Newton | Intern | Linux, Mac OS, Windows |
Webots | Cyberbotics Ltd. | Aktiv | Proprietär | Proprietär | Proprietär(basierend auf ODE) | Proprietär | Linux, Mac OS, Windows |
4DV-Sim | 4D Virtualiz | Aktiv | Proprietär | OGER | PhysX | Intern | Linux |
OpenRAVE | OpenRAVE-Gemeinschaft | Aktiv | GNU LGPL | Coin3D / OpenSceneGraph | ODE / Bullet | Intern | Linux, Mac OS, Windows |
Software | Entwickler | Entwicklungsstatus | Lizenz | 3D-Rendering-Engine | Physik-Engine | 3D-Modellierer | Unterstützte Plattformen |
Technische Information
Software | Hauptprogrammiersprache | Formate unterstützen | Erweiterbarkeit | Externe APIs | Robotik-Middleware-Unterstützung | Primäre Benutzeroberfläche | Kopflose Simulation |
---|---|---|---|---|---|---|---|
Actin | C ++ | SLDPRT, SLDASM, STEP, OBJ, STL, 3DS, Collada, VRML, URDF, XML, ECD, ECP, ECW, ECX, ECZ, | Plugins (C ++), API | unbekannte | ROS | GUI | Ja (ActinRT) |
ARS | Python | unbekannte | Python | unbekannte | Keiner | unbekannte | unbekannte |
AUTOMAPPPS | C ++, Python | Schritt, IGES, STL | Plugins (C), API | XML, C | Steckdose | GUI | Ja |
Pavillon | C ++ | SDF / URDF, OBJ, STL, Collada | Plugins (C ++) | C ++ | ROS, Player, Sockets (Protobuf-Meldungen) | GUI | Ja |
MORSE | Python | unbekannte | Python | Python | Buchsen, YARP, ROS, Pocolibs, MOOS | Befehlszeile | Ja |
OpenHRP | C ++ | VRML | Plugins (C ++), API | C / C ++, Python, Java | OpenRTM-Aist | GUI | unbekannte |
RoboDK | Python | Schritt, IGES, STL, WRML | Plugins (C ++), API | C / C ++, Python, Matlab | Steckdose | GUI | unbekannte |
SimSpark | C ++, Ruby | Ruby Scene Graphs | Mods (C ++) | Netzwerk (sexpr) | Steckdosen (sexpr) | GUI, Sockets | unbekannte |
V-Rep | LUA | OBJ, STL, DXF, 3DS, Collada, URDF | API, Add-Ons, Plugins | C / C ++, Python, Java, Urbi, Matlab / Octave | Steckdosen, ROS | GUI | Ja |
Webots | C ++ | WBT, VRML, X3D | API, PROTOs, Plugins (C / C ++) | C, C ++, Python, Java, Matlab, ROS | Buchsen, ROS, NaoQI | GUI | Ja |
4DV-Sim | C ++ | 3DS, OBJ, Mesh | Plugins (C ++), API | FMI / FMU, Matlab | ROS, Sockets, Plug & Play-Schnittstellen | GUI | Ja |
OpenRAVE | C ++, Python | XML, VRML, OBJ, Collada | Plugins (C ++), API | C / C ++, Python, Matlab | Steckdosen, ROS, YARP | GUI, Sockets | Ja |
Software | Hauptprogrammiersprache | Formate unterstützen | Erweiterbarkeit | Externe APIs | Roboter-Middleware-Unterstützung | Primäre Benutzeroberfläche | Kopflose Simulation |
Infrastruktur-Unterstützung
Software | Mailingliste | API-Dokumentation | Öffentliches Forum / Hilfesystem | Benutzerhandbuch | Issue Tracker | Wiki |
---|---|---|---|---|---|---|
Actin | Nein | Ja | Nein | Ja | Ja (intern) | Nein |
ARS | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte |
AUTOMAPPPS | Ja | Ja | Nein | Ja | Ja | Nein |
Pavillon | Ja | Ja | Ja | Ja | Ja | Ja |
MORSE | Ja | Ja | Nein | Ja | Ja | Nein |
OpenHRP | Ja | Ja | Nein | Ja | Ja | Nein |
RoboDK | Ja | Ja | Nein | Ja | Nein | Nein |
SimSpark | Ja | Ja | Nein | Ja | Ja | Ja |
V-Rep | Nein | Ja | Ja | Ja | unbekannte | Nein |
Webots | Nein | Ja | Ja | Ja | Ja | Ja |
4DV-Sim | Ja | Nein | Ja | Ja | Ja | Nein |
OpenRAVE | Ja | Ja | Ja | Ja | Ja | Ja |
Software | Mailingliste | API-Dokumentation | Öffentliches Forum / Hilfesystem | Benutzerhandbuch | Issue Tracker | Wiki |
Code-Qualität
Software | Statischer Code-Checker | Style Checker | Testsystem (e) | Test Funktionsumfang | Testen Sie die Zweigabdeckung | Zeilen von Code | Kommentarzeilen | Kontinuierliche Integration |
---|---|---|---|---|---|---|---|---|
Actin | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | Jenkins |
ARS | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte |
AUTOMAPPPS | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte |
Pavillon | cppcheck | cpplint | gtest und qtest | 46,1% | 34,3% | 190,7k | 60,45k | Jenkins |
MORSE | N / A | Pylint | Python unittests | unbekannte | unbekannte | 31,4k | 9,0 k | Jenkins, Travis |
OpenHRP | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte |
RoboDK | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte |
SimSpark | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte |
V-Rep | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte |
Webots | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte |
4DV-Sim | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte |
OpenRAVE | unbekannte | unbekannte | Python-Nase | unbekannte | unbekannte | unbekannte | unbekannte | Jenkins |
Software | Statischer Code-Checker | Style Checker | Testsystem (e) | Test Funktionsumfang | Testen Sie die Zweigabdeckung | Zeilen von Code | Kommentarzeilen | Kontinuierliche Integration |
Eigenschaften
Software | CAD in Bewegung | Dynamische Kollisionsvermeidung | Relative Endeffektoren | Offline-Programmierung | Echtzeit-Streaming-Steuerung von Hardware |
---|---|---|---|---|---|
Actin | Ja (Werkzeugpfade) | Ja | Ja | Ja | Ja |
ARS | unbekannte | Nein | unbekannte | Nein | Nein |
Pavillon | unbekannte | Ja | Ja | Ja | Ja |
MORSE | unbekannte | Nein | unbekannte | Nein | Nein |
OpenHRP | unbekannte | Nein | unbekannte | Nein | Nein |
RoboDK | unbekannte | Nein | unbekannte | Ja | Nein |
SimSpark | unbekannte | Nein | unbekannte | Nein | Nein |
V-Rep | unbekannte | Nein | unbekannte | Nein | Nein |
Webots | unbekannte | Ja | Ja | Ja | Ja |
4DV-Sim | unbekannte | Nein | unbekannte | Nein | Nein |
OpenRAVE | unbekannte | Nein | unbekannte | Nein | Nein |
Software | CAD in Bewegung | Dynamische Kollisionsvermeidung | Relative Endeffektoren | Offline-Programmierung | Echtzeit-Streaming-Steuerung |
Familien von Robotern
Software | UGV (Bodenmobiler Roboter) | UAV (Flugroboter) | AUV (Unterwasserroboter) | Roboterarme | Roboterhände (Greif-Simulation) | Humanoide Roboter | Menschliche Avatare | Volle Liste |
---|---|---|---|---|---|---|---|---|
Actin | Ja (kann Manipulatoren enthalten) | Ja (kann Manipulatoren enthalten) | Ja (kann Manipulatoren enthalten) | Ja | Ja | Ja | Ja | |
ARS | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | |
Pavillon | Ja | Ja | Ja | Ja | Ja | Ja | Ja | |
MORSE | Ja | Ja | Teilweise | Etwas | Nein | Nein | Ja | |
OpenHRP | Ja | Nein | Nein | Ja | Ja | Ja | Ja | |
RoboDK | Nein | Nein | Nein | Ja | Nein | Nein | Nein | |
SimSpark | Ja | Nein | Nein | Könnte sein | Könnte sein | Ja | Nein | |
V-Rep | Ja | Ja | Nein | Ja | Ja | Ja | Ja | |
Webots | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Webots-Robotermodelle |
4DV-Sim | Ja | Ja | Nein | Ja | Könnte sein | Nein | Ja | |
OpenRAVE | Ja | unbekannte | unbekannte | Ja | Ja | Ja | Ja | |
Software | UGV (Bodenmobiler Roboter) | UAV (Flugroboter) | AUV (Unterwasserroboter) | Roboterarme | Roboterhände (Greif-Simulation) | Humanoide Roboter | Menschliche Avatare | Volle Liste |
Unterstützte Aktuatoren
Software | Allgemeine kinematische Ketten | Kraftgesteuerte Bewegung | Volle Liste | Zirkuläre kinematische Ketten | Kinematisch redundante Ketten | Verzweigte kinematische Ketten |
---|---|---|---|---|---|---|
Actin | Ja | Ja | Bewegungsbeschränkungen | Ja | Ja | Ja |
ARS | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | |
Pavillon | Ja | Ja | Ja | Ja | Ja | |
MORSE | Ja | Ja | MORSE-Stellantriebe | unbekannte | unbekannte | unbekannte |
OpenHRP | Ja | Ja | unbekannte | unbekannte | unbekannte | |
RoboDK | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | |
SimSpark | Ja | Nein | SimSpark-Effektoren | unbekannte | unbekannte | unbekannte |
V-Rep | Ja | Ja | unbekannte | unbekannte | unbekannte | |
Webots | Ja | Ja | Webots Stellantriebe | Ja | Ja | Ja |
4DV-Sim | Ja | Ja | unbekannte | unbekannte | unbekannte | |
OpenRAVE | Ja | Ja | Gelenke, zusätzliche Stellglieder | Ja | Ja | Ja |
Software | Allgemeine kinematische Ketten | Kraftgesteuerte Bewegung | Volle Liste | Zirkuläre kinematische Ketten | Kinematisch redundante Ketten | Verzweigte kinematische Ketten |
Unterstützte Sensoren
Software | Odometry | IMU | Kollision | Geographisches Positionierungs System | Monokulare Kameras | Stereokameras | Tiefenkameras | Omnidirektionale Kameras | 2D-Laserscanner | 3D-Laserscanner | Volle Liste |
---|---|---|---|---|---|---|---|---|---|---|---|
Actin | Ja | Ja | Ja | unbekannte | Ja | Ja | Ja | Ja | Ja | Ja | |
ARS | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | |
AUTOMAPPPS | unbekannte | unbekannte | unbekannte | unbekannte | Ja | Ja | Ja | unbekannte | Ja | Ja | |
Pavillon | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | |
MORSE | Ja | Ja | Ja | Ja | Ja | unbekannte | Ja | unbekannte | Ja | Ja | MORSE Sensoren |
OpenHRP | unbekannte | Ja | Ja | unbekannte | Ja | unbekannte | Ja | unbekannte | Ja | Ja | OpenHRP-Sensoren |
RoboDK | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | unbekannte | |
SimSpark | Ja | Ja | Ja | Teilweise | Ja | Teilweise | unbekannte | unbekannte | Nein | Nein | SimSpark-Wahrnehmungen |
V-Rep | unbekannte | Ja | Ja | Ja | Ja | Ja | Ja | unbekannte | Ja | Ja | |
Webots | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Webots-Sensoren |
4DV-Sim | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | |
OpenRAVE | Ja | Ja | Ja | Ja | Ja | Ja | Ja | unbekannte | Ja | Ja | |
Software | Odometry | IMU | Kollision | Geographisches Positionierungs System | Monokulare Kameras | Stereokameras | Tiefenkameras | Omnidirektionale Kameras | 2D-Laserscanner | 3D-Laserscanner | Volle Liste |
Andere Simulatoren
Open-Source-Simulatoren kurz
: ein 3D-Welt-Multiagentensimulator in Python.
EZPhysics: Kombination von Ogre3D- und ODE-Physik, GUI macht alle Objektdaten der ODE verfügbar, Netzwerk-Fernsteuerung optional über Matlab / Simulink.
Khepera Simulator ist ein Open-Source-Windows-Simulator für den Khepera-Roboter vor Webots.
Klamp’t: Ein Simulator, der 2013 eingeführt wurde und auf stabilen Trimesh-Trimesh-Kontakt spezialisiert ist. Unterstützt die Fortbewegung und Manipulation von Beinen
LpzRobots: Ein 3D-Physik-Robotersimulator, der an der Universität Leipzig entwickelt wurde.
miniBloq: Diese Roboterprogrammierungssoftware für Arduino-Boards verfügt über einen neuen Simulator.
Moby: Eine in C ++ geschriebene dynamische Bibliothek für Starrkörper.
OpenSim Simulator für Gelenk- und Radroboter mit vielfältigen Eigenschaften. Die Weiterentwicklung wurde im Jahr 2006 eingestellt.
Robotics Toolbox für MATLAB ist eine Freie Software, die Funktionen zur Darstellung von Pose (homogene Transformationen, Euler- und RPY-Winkel, Quaternionen), Arm-Robotern (Vorwärts- / Invers-Kinematik, Dynamik, Simulation, Animation) und mobiler Roboter bietet (Kontrolle, Lokalisierung, Planung und Animation).
ARTE A Robotics Toolbox for Education (ARTE) ist ein auf Matlab basierendes Lernprogramm für Freie Software. Es bietet Funktionen zur Darstellung von Position und Orientierung. Enthält auch Funktionen zum Simulieren von Roboterarmen (direkte / inverse Kinematik, Dynamik, Bahnplanung und mehr). Die Toolbox umfasst eine Vielzahl von 3D-Robotermodellen, die in einer Roboterzelle angezeigt und simuliert werden können.
Simbad 3d Robot Simulator Java-basierter Simulator
SimRobot: Ein Robotersimulator-Softwarepaket, das an der Universität Bremen und dem Deutschen Forschungszentrum für Künstliche Intelligenz entwickelt wurde.
Stage: 2.5D-Simulator, der häufig mit dem Player verwendet wird, um das Player / Stage-System zu bilden. Teil des Spielerprojekts
STDR-Simulator Ein einfacher, flexibler und skalierbarer 2D-Multi-Roboter-Simulator zur Verwendung innerhalb des Robot-Betriebssystems.
UCHILSIM: Ein physikbasierter Simulator für AIBO-Roboter, der in RoboCup 2004 eingeführt wurde.
UWSim: Ein Unterwasser-Simulator für die Forschung und Entwicklung von Schiffsrobotern, der Sensor-, Dynamik- und Physik-Simulationen beinhaltet.
Closed-Source- und proprietäre Simulatoren
anyKode Marilou
ORCA-Sim: Ein (Windows) 3D-Robotersimulator mit der Physik-Engine von Newton Game Dynamics.