Un simulatore di robotica viene utilizzato per creare un’applicazione per un robot fisico senza dipendere dalla macchina reale, risparmiando così tempo e costi. In alcuni casi, queste applicazioni possono essere trasferite sul robot fisico (o ricostruite) senza modifiche.
Il termine simulatore di robotica può fare riferimento a diverse applicazioni di simulazione robotica.Ad esempio, nelle applicazioni di robotica mobile, i simulatori di robotica basati sul comportamento consentono agli utenti di creare mondi semplici di oggetti rigidi e sorgenti di luce e di programmare robot per interagire con questi mondi. La simulazione basata sul comportamento consente azioni di natura più biologica rispetto ai simulatori più binari o computazionali. Inoltre, i simulatori basati sul comportamento possono “imparare” dagli errori e sono in grado di dimostrare la qualità antropomorfica della tenacia.
Una delle applicazioni più popolari per i simulatori di robotica è la modellazione 3D e il rendering di un robot e il suo ambiente. Questo tipo di software di robotica ha un simulatore che è un robot virtuale, che è in grado di emulare il movimento di un robot reale in una vera area di lavoro. Alcuni simulatori di robotica usano un motore fisico per una generazione del movimento più realistica del robot. L’uso di un simulatore di robotica per lo sviluppo di un programma di controllo robotico è altamente raccomandato, indipendentemente dal fatto che un robot sia disponibile o meno. Il simulatore consente ai programmi di robotica di essere convenientemente scritti e debuggati off-line con la versione finale del programma testata su un robot reale. Ciò vale principalmente per le applicazioni robotiche industriali, poiché il successo della programmazione off-line dipende da quanto l’ambiente reale del robot sia simile all’ambiente simulato.
Le azioni del robot basate su sensori sono molto più difficili da simulare e / o programmare fuori linea, poiché il movimento del robot dipende dalle letture istantanee del sensore nel mondo reale.
Caratteristiche
I moderni simulatori tendono a fornire le seguenti caratteristiche:
Prototipazione rapida di robot
Utilizzo del proprio simulatore come strumento di creazione (Virtual Robot Experimentation Platform, Webots, R-Station, Marilou, 4DV-Sim).
Usando strumenti esterni.
Motori di fisica per movimenti realistici. La maggior parte dei simulatori utilizza ODE (Gazebo, LpzRobots, Marilou, Webots) o PhysX (Microsoft Robotics Studio, 4DV-Sim).
Rendering realistico 3d. Per costruire gli ambienti è possibile utilizzare strumenti di modellazione 3D standard o strumenti di terze parti.
Corpi robot dinamici con scripting. Linguaggi C, C ++, Perl, Python, Java, URBI, MATLAB utilizzati da Webots, Python utilizzato da Gazebo.
simulatori
Tra le più recenti tecnologie oggi disponibili per la programmazione vi sono quelle che utilizzano una simulazione virtuale. Le simulazioni con l’uso di modelli virtuali dell’ambiente di lavoro e dei robot stessi possono offrire vantaggi sia all’azienda che al programmatore. Utilizzando una simulazione, i costi sono ridotti e i robot possono essere programmati off-line, eliminando i tempi di fermo per una catena di montaggio. Le azioni dei robot e le parti di assemblaggio possono essere visualizzate in un ambiente virtuale tridimensionale mesi prima che i prototipi vengano persino prodotti. Scrivere un codice per una simulazione è anche più facile che scrivere codice per un robot fisico. Mentre il passaggio a simulazioni virtuali per la programmazione di robot è un passo avanti nella progettazione dell’interfaccia utente, molte di queste applicazioni sono solo nella loro infanzia.
Informazione generale
Software | Sviluppatori | Stato di sviluppo | Licenza | Motore di rendering 3D | Motore di fisica | Modellatore 3D | Piattaforme supportate |
---|---|---|---|---|---|---|---|
actina | Tecnologie energiche | Attivo | proprio | OpenGL | proprio | proprio | Windows, macOS, Linux, RTLinux, VxWorks, RTOS-32 e RTX. (QNX pianificato) |
ARS | RAL | Non attivo | BSD | VTK | ODE | Nessuna | Linux, macOS, Windows |
AUTOMAPPPS | Convergent Information Technologies GmbH | Attivo | proprio | OpenGL | sconosciuto | Interno | Linux, Windows |
Gazebo | Open Source Robotics Foundation (OSRF) | Attivo | Apache 2.0 | ORCO | ODE / Bullet / Simbody / DART | Interno | Linux |
MORSE | Comunità accademica | Attivo | BSD | Motore di gioco Blender | proiettile | Miscelatore | Linux, BSD *, macOS |
OpenHRP | AIST | Attivo | Eclisse | Java3D | ODE / interni | Interno | Linux, Windows |
RoboDK | RoboDK | Attivo | proprio | OpenGL | nessuna | Interno | Linux, macOS, Windows, Android |
SimSpark | O. Obst et al.(+26) | Attivo | GNU GPL (v2) | Interno | ODE | Nessuna | Linux, macOS, Windows |
V-Rep | Coppelia Robotica | Attivo | GPL proprietario / GNU | Interno | ODE / Bullet / Vortex / Newton | Interno | Linux, macOS, Windows |
Webots | Cyberbotics Ltd. | Attivo | proprio | proprio | proprio (basato su ODE) |
proprio | Linux, macOS, Windows |
4DV-Sim | 4D Virtualiz | Attivo | proprio | ORCO | PhysX | Interno | Linux |
OpenRAVE | Comunità OpenRAVE | Attivo | GNU LGPL | Coin3D / OpenSceneGraph | ODE / Proiettile | Interno | Linux, macOS, Windows |
Software | Sviluppatori | Stato di sviluppo | Licenza | Motore di rendering 3D | Motore di fisica | Modellatore 3D | Piattaforme supportate |
Informazioni tecniche
Software | Principale linguaggio di programmazione | Supporto per i formati | Estensibilità | API esterne | Supporto middleware di robotica | Interfaccia utente principale | Simulazione senza testa |
---|---|---|---|---|---|---|---|
actina | C ++ | SLDPRT, SLDASM, STEP, OBJ, STL, 3DS, Collada, VRML, URDF, XML, ECD, ECP, ECW, ECX, ECZ, | Plugin (C ++), API | Sconosciuto | ROS | GUI | Sì (ActinRT) |
ARS | Pitone | Sconosciuto | Pitone | Sconosciuto | Nessuna | Sconosciuto | Sconosciuto |
AUTOMAPPPS | C ++, Python | STEP, IGES, STL | Plugin (C), API | XML, C | presa di corrente | GUI | sì |
Gazebo | C ++ | SDF / URDF, OBJ, STL, Collada | Plugin (C ++) | C ++ | ROS, Player, Sockets (messaggi protobuf) | GUI | sì |
MORSE | Pitone | Sconosciuto | Pitone | Pitone | Prese, YARP, ROS, Pocolibs, MOOS | Riga di comando | sì |
OpenHRP | C ++ | VRML | Plugin (C ++), API | C / C ++, Python, Java | OpenRTM-AIST | GUI | Sconosciuto |
RoboDK | Pitone | STEP, IGES, STL, WRML | Plugin (C ++), API | C / C ++, Python, Matlab | presa di corrente | GUI | Sconosciuto |
SimSpark | C ++, Ruby | Grafici di scena rubino | Mods (C ++) | Rete (sexpr) | Prese (sexpr) | GUI, prese | Sconosciuto |
V-Rep | LUA | OBJ, STL, DXF, 3DS, Collada, URDF | API, componenti aggiuntivi, plugin | C / C ++, Python, Java, Urbi, Matlab / Octave | Prese, ROS | GUI | sì |
Webots | C ++ | WBT, VRML, X3D | API, PROTO, Plugin (C / C ++) | C, C ++, Python, Java, Matlab, ROS | Prese, ROS, NaoQI | GUI | sì |
4DV-Sim | C ++ | 3DS, OBJ, Mesh | Plugin (C ++), API | FMI / FMU, Matlab | Interfacce ROS, Sockets, Plug & Play | GUI | sì |
OpenRAVE | C ++, Python | XML, VRML, OBJ, Collada | Plugin (C ++), API | C / C ++, Python, Matlab | Prese, ROS, YARP | GUI, prese | sì |
Software | Principale linguaggio di programmazione | Supporto per i formati | Estensibilità | API esterne | Supporto middleware robotico | Interfaccia utente principale | Simulazione senza testa |
Infrastruttura
Supporto
Software | Mailing List | Documentazione API | Forum pubblico / Sistema di aiuto | Manuale utente | Issue Tracker | wiki |
---|---|---|---|---|---|---|
actina | No | sì | No | sì | Sì (interno) | No |
ARS | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto |
AUTOMAPPPS | sì | sì | No | sì | sì | No |
Gazebo | sì | sì | sì | sì | sì | sì |
MORSE | sì | sì | No | sì | sì | No |
OpenHRP | sì | sì | No | sì | sì | No |
RoboDK | sì | sì | No | sì | No | No |
SimSpark | sì | sì | No | sì | sì | sì |
V-Rep | No | sì | sì | sì | Sconosciuto | No |
Webots | No | sì | sì | sì | sì | sì |
4DV-Sim | sì | No | sì | sì | sì | No |
OpenRAVE | sì | sì | sì | sì | sì | sì |
Software | Mailing List | Documentazione API | Forum pubblico / Sistema di aiuto | Manuale utente | Issue Tracker | wiki |
Codice qualità
Software | Controllo codice statico | Checker di stile | Sistema / i di test | Test Funzione copertura | Test della copertura del ramo | Linee di codice | Linee di commenti | Integrazione continua |
---|---|---|---|---|---|---|---|---|
actina | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Jenkins |
ARS | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto |
AUTOMAPPPS | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto |
Gazebo | cppcheck | cpplint | gtest e qtest | 46,1% | 34,3% | 190.7k | 60.45k | Jenkins |
MORSE | N / A | pylint | Python si svita | Sconosciuto | Sconosciuto | 31.4k | 9.0k | Jenkins, Travis |
OpenHRP | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto |
RoboDK | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto |
SimSpark | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto |
V-Rep | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto |
Webots | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto |
4DV-Sim | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto |
OpenRAVE | Sconosciuto | Sconosciuto | Naso pitone | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Jenkins |
Software | Controllo codice statico | Checker di stile | Sistema / i di test | Test Funzione copertura | Test della copertura del ramo | Linee di codice | Linee di commenti | Integrazione continua |
Caratteristiche
Software | CAD al movimento | Evitare le collisioni dinamiche | Relative End Effectors | Programmazione offline | Controllo dello streaming in tempo reale dell’hardware |
---|---|---|---|---|---|
actina | Sì (percorsi utensile) | sì | sì | sì | sì |
ARS | Sconosciuto | No | Sconosciuto | No | No |
Gazebo | Sconosciuto | sì | sì | sì | sì |
MORSE | Sconosciuto | No | Sconosciuto | No | No |
OpenHRP | Sconosciuto | No | Sconosciuto | No | No |
RoboDK | Sconosciuto | No | Sconosciuto | sì | No |
SimSpark | Sconosciuto | No | Sconosciuto | No | No |
V-Rep | Sconosciuto | No | Sconosciuto | No | No |
Webots | Sconosciuto | sì | sì | sì | sì |
4DV-Sim | Sconosciuto | No | Sconosciuto | No | No |
OpenRAVE | Sconosciuto | No | Sconosciuto | No | No |
Software | CAD al movimento | Evitare le collisioni dinamiche | Relative End Effectors | Programmazione off-line | Controllo streaming in tempo reale |
Famiglie di robot
Software | UGV (robot mobile terrestre) | UAV (robot aerei) | AUV (robot sott’acqua) | Braccia robotiche | Mani robotiche (simulazione di presa) | Robot umanoidi | Avatar umani | Lista completa |
---|---|---|---|---|---|---|---|---|
actina | Sì (può includere manipolatori) | Sì (può includere manipolatori) | Sì (può includere manipolatori) | sì | sì | sì | sì | |
ARS | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | |
Gazebo | sì | sì | sì | sì | sì | sì | sì | |
MORSE | sì | sì | Parziale | Alcuni | No | No | sì | |
OpenHRP | sì | No | No | sì | sì | sì | sì | |
RoboDK | No | No | No | sì | No | No | No | |
SimSpark | sì | No | No | Può essere | Può essere | sì | No | |
V-Rep | sì | sì | No | sì | sì | sì | sì | |
Webots | sì | sì | sì | sì | sì | sì | sì | Modelli di robot Webots |
4DV-Sim | sì | sì | No | sì | Può essere | No | sì | |
OpenRAVE | sì | Sconosciuto | Sconosciuto | sì | sì | sì | sì | |
Software | UGV (robot mobile terrestre) | UAV (robot aerei) | AUV (robot sott’acqua) | Braccia robotiche | Mani robotiche (simulazione di presa) | Robot umanoidi | Avatar umani | Lista completa |
Attuatori supportati
Software | Catene cinematiche generiche | Moto controllato dalla forza | Lista completa | Catene cinematiche circolari | Catene ridondanti cinematicamente | Catene cinematiche biforcate |
---|---|---|---|---|---|---|
actina | sì | sì | Motion Constraints | sì | sì | sì |
ARS | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | |
Gazebo | sì | sì | sì | sì | sì | |
MORSE | sì | sì | Attuatori MORSE | Sconosciuto | Sconosciuto | Sconosciuto |
OpenHRP | sì | sì | Sconosciuto | Sconosciuto | Sconosciuto | |
RoboDK | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | |
SimSpark | sì | No | SimSpark effettori | Sconosciuto | Sconosciuto | Sconosciuto |
V-Rep | sì | sì | Sconosciuto | Sconosciuto | Sconosciuto | |
Webots | sì | sì | Attuatori Webots | sì | sì | sì |
4DV-Sim | sì | sì | Sconosciuto | Sconosciuto | Sconosciuto | |
OpenRAVE | sì | sì | Giunti, attuatori extra | sì | sì | sì |
Software | Catene cinematiche generiche | Moto controllato dalla forza | Lista completa | Catene cinematiche circolari | Catene ridondanti cinematicamente | Catene cinematiche biforcate |
Sensori supportati
Software | odometria | IMU | Collisione | GPS | Telecamere monoculari | Telecamere stereo | Videocamere di profondità | Telecamere omnidirezionali | Scanner laser 2D | Scanner laser 3D | Lista completa |
---|---|---|---|---|---|---|---|---|---|---|---|
actina | sì | sì | sì | Sconosciuto | sì | sì | sì | sì | sì | sì | |
ARS | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | |
AUTOMAPPPS | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | sì | sì | sì | Sconosciuto | sì | sì | |
Gazebo | sì | sì | sì | sì | sì | sì | sì | sì | sì | sì | |
MORSE | sì | sì | sì | sì | sì | Sconosciuto | sì | Sconosciuto | sì | sì | Sensori MORSE |
OpenHRP | Sconosciuto | sì | sì | Sconosciuto | sì | Sconosciuto | sì | Sconosciuto | sì | sì | Sensori OpenHRP |
RoboDK | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | Sconosciuto | |
SimSpark | sì | sì | sì | Parziale | sì | Parziale | Sconosciuto | Sconosciuto | No | No | Simpspark percettori |
V-Rep | Sconosciuto | sì | sì | sì | sì | sì | sì | Sconosciuto | sì | sì | |
Webots | sì | sì | sì | sì | sì | sì | sì | sì | sì | sì | Sensori Webots |
4DV-Sim | sì | sì | sì | sì | sì | sì | sì | sì | sì | sì | |
OpenRAVE | sì | sì | sì | sì | sì | sì | sì | Sconosciuto | sì | sì | |
Software | odometria | IMU | Collisione | GPS | Telecamere monoculari | Telecamere stereo | Videocamere di profondità | Telecamere omnidirezionali | Scanner laser 2D | Scanner laser 3D | Lista completa |
Altri simulatori
Simulatori open source
breve: un simulatore multi-agente del mondo 3D in Python.
EZPhysics: combinazione di fisica Ogre3D e ODE, GUI espone tutti i dati degli oggetti di ODE, controllo remoto a circuito chiuso in rete opzionalmente tramite Matlab / Simulink.
Khepera Simulator un simulatore di Windows open source per il robot Khepera che precede i Webots.
Klamp’t: un simulatore introdotto nel 2013 specializzato in contatto trimesh-trimesh stabile. Supporta la locomozione e la manipolazione delle gambe.
LpzRobots: un simulatore di robot 3D-fisica sviluppato presso l’Università di Lipsia.
miniBloq: questo software di programmazione per robot per schede Arduino ha un nuovo simulatore.
Moby: una libreria dinamica del corpo rigido scritta in C ++.
OpenSim Simulator per robot articolati e su ruote con una vasta gamma di caratteristiche. Ulteriori sviluppi si sono interrotti nel 2006.
Robotics Toolbox per MATLAB è Software Libero che fornisce funzionalità per rappresentare pose (trasformazioni omogenee, angoli Eulero e RPY, quaternioni), robot a braccio (cinematica in avanti / inversa, dinamica, simulazione, animazione) e robot mobili (controllo, localizzazione, pianificazione e animazione ).
ARTE A Robotics Toolbox for Education (ARTE) è uno strumento educativo basato sul software libero Matlab. Fornisce funzioni per rappresentare la posizione e l’orientamento. Inoltre, include funzioni per simulare i bracci robotici (cinematica diretta / inversa, dinamica, pianificazione del percorso e altro). La casella degli strumenti include un ampio set di modelli robotici 3D che possono essere visualizzati e simulati all’interno di una cella robotica.
Simulatore basato su Java di Simbad 3d Robot Simulator
SimRobot: un pacchetto software per simulatore di robot sviluppato presso l’Universität Bremen e il Centro di ricerca tedesco per l’intelligenza artificiale.
Stage: simulatore 2.5D usato spesso con Player per formare il sistema Player / Stage. Parte del progetto Player
Simulatore STDR Simulatore multi-robot 2D semplice, flessibile e scalabile da utilizzare all’interno del Sistema Operativo Robot.
UCHILSIM: simulatore basato sulla fisica per robot AIBO introdotto in RoboCup 2004.
UWSim: un simulatore UnderWater per la ricerca e lo sviluppo di robotica marina che incorpora la simulazione di sensori, dinamica e fisica.
Simulatori closed-source e proprietari
anyKode Marilou
ORCA-Sim: un simulatore di robot 3D (Windows) che utilizza il motore fisico di Newton Game Dynamics.