Simulatore di robotica

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
Gazebo C ++ SDF / URDF, OBJ, STL, Collada Plugin (C ++) C ++ ROS, Player, Sockets (messaggi protobuf) GUI
MORSE Pitone Sconosciuto Pitone Pitone Prese, YARP, ROS, Pocolibs, MOOS Riga di comando
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
Webots C ++ WBT, VRML, X3D API, PROTO, Plugin (C / C ++) C, C ++, Python, Java, Matlab, ROS Prese, ROS, NaoQI GUI
4DV-Sim C ++ 3DS, OBJ, Mesh Plugin (C ++), API FMI / FMU, Matlab Interfacce ROS, Sockets, Plug & Play GUI
OpenRAVE C ++, Python XML, VRML, OBJ, Collada Plugin (C ++), API C / C ++, Python, Matlab Prese, ROS, YARP GUI, prese
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 No Sì (interno) No
ARS Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto
AUTOMAPPPS No No
Gazebo
MORSE No No
OpenHRP No No
RoboDK No No No
SimSpark No
V-Rep No Sconosciuto No
Webots No
4DV-Sim No No
OpenRAVE
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)
ARS Sconosciuto No Sconosciuto No No
Gazebo Sconosciuto
MORSE Sconosciuto No Sconosciuto No No
OpenHRP Sconosciuto No Sconosciuto No No
RoboDK Sconosciuto No Sconosciuto No
SimSpark Sconosciuto No Sconosciuto No No
V-Rep Sconosciuto No Sconosciuto No No
Webots Sconosciuto
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)
ARS Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto
Gazebo
MORSE Parziale Alcuni No No
OpenHRP No No
RoboDK No No No No No No
SimSpark No No Può essere Può essere No
V-Rep No
Webots Modelli di robot Webots
4DV-Sim No Può essere No
OpenRAVE Sconosciuto Sconosciuto
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 Motion Constraints
ARS Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto
Gazebo
MORSE Attuatori MORSE Sconosciuto Sconosciuto Sconosciuto
OpenHRP Sconosciuto Sconosciuto Sconosciuto
RoboDK Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto
SimSpark No SimSpark effettori Sconosciuto Sconosciuto Sconosciuto
V-Rep Sconosciuto Sconosciuto Sconosciuto
Webots Attuatori Webots
4DV-Sim Sconosciuto Sconosciuto Sconosciuto
OpenRAVE Giunti, attuatori extra
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 Sconosciuto
ARS Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto
AUTOMAPPPS Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto
Gazebo
MORSE Sconosciuto Sconosciuto Sensori MORSE
OpenHRP Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sensori OpenHRP
RoboDK Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto Sconosciuto
SimSpark Parziale Parziale Sconosciuto Sconosciuto No No Simpspark percettori
V-Rep Sconosciuto Sconosciuto
Webots Sensori Webots
4DV-Sim
OpenRAVE Sconosciuto
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.