Un simulador de robótica es un simulador que se utiliza para crear una aplicación para un robot físico sin depender de la máquina real, lo que ahorra costos y tiempo. En algunos casos, estas aplicaciones se pueden transferir al robot físico (o reconstruir) sin modificaciones.
El término simulador de robótica puede referirse a varias aplicaciones de simulación de robótica diferentes. Por ejemplo, en aplicaciones de robótica móvil , los simuladores de robótica basados en el comportamiento permiten a los usuarios crear mundos simples de objetos rígidos y fuentes de luz y programar robots para interactuar con estos mundos. La simulación basada en el comportamiento permite acciones que son de naturaleza más biológica en comparación con los simuladores que son más binarios o computacionales. Además, los simuladores basados en el comportamiento pueden "aprender" de los errores y son capaces de demostrar la calidad antropomórfica de la tenacidad.
Una de las aplicaciones más populares para los simuladores de robótica es para el modelado y renderizado 3D de un robot y su entorno. Este tipo de software de robótica tiene un simulador que es un robot virtual, que es capaz de emular el movimiento de un robot real en un entorno de trabajo real. Algunos simuladores de robótica utilizan un motor de física para generar movimientos más realistas del robot. Se recomienda encarecidamente el uso de un simulador de robótica para el desarrollo de un programa de control de robótica, independientemente de si un robot real está disponible o no. El simulador permite que los programas de robótica se escriban y depuren convenientemente fuera de línea con la versión final del programa probada en un robot real. Esto es válido principalmente para aplicaciones robóticas industriales , ya que el éxito de la programación fuera de línea depende de cuán similar sea el entorno real del robot al entorno simulado.
Las acciones del robot basadas en sensores son mucho más difíciles de simular y / o programar fuera de línea, ya que el movimiento del robot depende de las lecturas instantáneas del sensor en el mundo real.
Los simuladores modernos tienden a proporcionar las siguientes características:
- Creación rápida de prototipos de robots
- Utilizando el propio simulador como herramienta de creación.
- Utilizando herramientas externas.
- Motores físicos para movimientos realistas. La mayoría de los simuladores utilizan Bullet , ODE o PhysX .
- Representación 3d realista. Se pueden utilizar herramientas de modelado 3D estándar o herramientas de terceros para construir los entornos.
- Cuerpos de robot dinámicos con scripting. Lenguajes C , C ++ , Perl , Python , Java , URBI , MATLAB utilizados por Webots, Python utilizado por Gazebo.
Entre las tecnologías más nuevas disponibles en la actualidad para la programación se encuentran las que utilizan una simulación virtual. Las simulaciones con el uso de modelos virtuales del entorno de trabajo y los propios robots pueden ofrecer ventajas tanto a la empresa como al programador. Al usar una simulación, se reducen los costos y los robots se pueden programar fuera de línea, lo que elimina el tiempo de inactividad de una línea de ensamblaje. Las acciones de los robots y las piezas de ensamblaje se pueden visualizar en un entorno virtual tridimensional meses antes de que se produzcan los prototipos. Escribir código para una simulación también es más fácil que escribir código para un robot físico. Si bien el cambio hacia las simulaciones virtuales para la programación de robots es un paso adelante en el diseño de la interfaz de usuario, muchas de estas aplicaciones están en su infancia.
Información general
Software | Desarrolladores | Estado del desarrollo | Licencia | Motor de renderizado 3D | Motor de física | Modelador 3D | Plataformas compatibles |
---|
Kiosko | Fundación de Robótica de Código Abierto (OSRF) | Activo | Apache 2.0 | OGRO | ODE / Bullet / Simbody / DART | Interno | Linux, macOS, Windows |
---|
RoboDK | RoboDK | Activo | Propiedad | OpenGL | Complemento de gravedad | Interno | Linux, macOS, Windows, Android, iOS, Debian |
---|
SimSpark | O. Obst y col. (+26) | Activo | GNU GPL (v2) | Interno | ODA | Ninguno | Linux, macOS, Windows |
Webots | Cyberbotics Ltd. | Activo | Apache 2.0 | Interno (WREN) | Bifurcación de ODE | Interno | Linux, macOS, Windows |
---|
OpenRAVE | Comunidad OpenRAVE | Activo | GNU LGPL | Coin3D / OpenSceneGraph | ODE / Bullet | Interno | Linux, macOS, Windows |
Software | Desarrolladores | Estado del desarrollo | Licencia | Motor de renderizado 3D | Motor de física | Modelador 3D | Plataformas compatibles |
---|
Información técnica
Software | Lenguaje de programación principal | Soporte de formatos | Extensibilidad | API externas | Soporte de middleware de robótica | Interfaz de usuario principal | Simulación sin cabeza |
---|
Kiosko | C ++ | SDF [1] / URDF, [2] OBJ , STL , Collada | Complementos (C ++) | C ++ | ROS, Player, Sockets (mensajes protobuf) | GUI | sí |
---|
RoboDK | Pitón | SLDPRT , SLDASM , STEP , OBJ , STL , 3DS , Collada , VRML , URDF , Rhinoceros_3D , ... | API, [3] Interfaz de complemento [4] | Python, C / C ++, C #, Matlab, ... | Enchufe | GUI | Desconocido |
---|
SimSpark | C ++, Ruby | Gráficos de escena rubí | Modificaciones (C ++) | Red ( sexpr ) | Enchufes ( sexpr ) | GUI, enchufes | Desconocido |
---|
Webots | C ++ | WBT, VRML , X3D , 3DS , Blender , BVH , Collada , FBX , STL , OBJ , URDF | API, PROTOs, Complementos (C / C ++) | C, C ++, Python, Java, Matlab, ROS | Zócalos, ROS, NaoQI | GUI | Sí [5] |
---|
OpenRAVE | C ++, Python | XML , VRML , OBJ , Collada | Complementos (C ++), API | C / C ++, Python, Matlab | Zócalos, ROS, YARP | GUI, enchufes | sí |
---|
Software | Lenguaje de programación principal | Soporte de formatos | Extensibilidad | API externas | Soporte de middleware robótico | Interfaz de usuario principal | Simulación sin cabeza |
---|
Infraestructura
Apoyo
Software | Lista de correo | Documentación de API | Foro público / Sistema de ayuda | Manual de usuario | Seguimiento de problemas | Wiki | Chat |
---|
Kiosko | Sí [6] | Sí [7] | Sí [8] | Sí [9] | Sí [10] | No |
---|
RoboDK | Sí [11] | Sí [12] | Sí [13] | Sí [14] | Sí [15] | No | Desconocido |
---|
SimSpark | Sí [16] | Sí [17] | No | Sí [18] | Sí [19] | Sí [20] | Desconocido |
---|
Webots | No | Sí [21] | No | Sí [22] | Sí [23] | Sí [24] | Sí [25] |
---|
OpenRAVE | Sí [26] | Sí [27] | Sí [28] | Sí [29] | Sí [28] | Sí [30] | Desconocido |
---|
Software | Lista de correo | Documentación de API | Foro público / Sistema de ayuda | Manual de usuario | Seguimiento de problemas | Wiki |
---|
Calidad del código
Software | Comprobador de código estático | Comprobador de estilo | Sistema (s) de prueba | Cobertura de la función de prueba | Cobertura de la rama de prueba | Líneas de código | Líneas de comentarios | Integración continua |
---|
Kiosko | cppcheck [31] | cpplint [31] | gtest y qtest [31] | 77,0% [31] | 53,3% [31] | 320.000 [31] | 106k [31] | Jenkins [31] |
---|
RoboDK | Desconocido | Desconocido | Desconocido | Desconocido | Desconocido | Desconocido | Desconocido | Desconocido |
---|
SimSpark | Desconocido | Desconocido | Desconocido | Desconocido | Desconocido | Desconocido | Desconocido | Desconocido |
---|
Webots | cppcheck [32] | formato clang [33] | pruebas unitarias [34] | 100% de las funciones de API [35] | maestro, [36] desarrollar [37] | ~ 200k | ~ 50k | Travis, [38] AppVeyor, [39] GitGuardian, [40] Acciones de Github |
---|
OpenRAVE | Desconocido | Desconocido | Nariz de pitón | Desconocido | Desconocido | Desconocido | Desconocido | Jenkins [41] |
---|
Software | Comprobador de código estático | Comprobador de estilo | Sistema (s) de prueba | Cobertura de la función de prueba | Cobertura de la rama de prueba | Líneas de código | Líneas de comentarios | Integración continua |
---|
Características
Software | CAD a movimiento | Evitación dinámica de colisiones | Efectores finales relativos | Programación fuera de línea | Control de transmisión en tiempo real del hardware |
---|
Kiosko | Desconocido | sí | sí | sí | sí |
---|
RoboDK | sí | sí | sí | sí | sí |
---|
SimSpark | Desconocido | No | Desconocido | No | No |
---|
Webots | Desconocido | sí | sí | sí | sí |
---|
OpenRAVE | Desconocido | No | Desconocido | No | No |
---|
Software | CAD a movimiento | Evitación dinámica de colisiones | Efectores finales relativos | Programación fuera de línea | Control de transmisión en tiempo real |
---|
Familias de robots
Software | UGV (robot móvil terrestre) | UAV (robots aéreos) | AUV (robots submarinos) | Brazos robóticos | Manos robóticas (simulación de agarre) | Robots humanoides | Avatares humanos | Lista llena |
---|
Kiosko | Sí [42] | Sí [43] | Sí [44] | Sí [45] | Sí [46] | Sí [47] | Sí [48] | |
---|
RoboDK | No | No | No | Sí [49] | No | No | No | Sí [49] |
---|
SimSpark | sí | No | No | Quizás | Quizás | sí | No | |
---|
Webots | sí | sí | Sí [50] | sí | sí | Sí [51] | sí | Sí [52] |
---|
OpenRAVE | sí | Desconocido | Desconocido | sí | sí | sí | sí | |
---|
Software | UGV (robot móvil terrestre) | UAV (robots aéreos) | AUV (robots submarinos) | Brazos robóticos | Manos robóticas (simulación de agarre) | Robots humanoides | Avatares humanos | Lista llena |
---|
Actuadores compatibles
Software | Cadenas cinemáticas genéricas | Movimiento controlado por la fuerza | Lista llena | Cadenas cinemáticas circulares | Cadenas cinemáticamente redundantes | Cadenas cinemáticas bifurcadas |
---|
Kiosko | sí | sí | | sí | sí | sí |
---|
RoboDK | Desconocido | Desconocido | | Desconocido | Desconocido | Desconocido |
---|
SimSpark | sí | No | Efectores SimSpark | Desconocido | Desconocido | Desconocido |
---|
Webots | sí | sí | Actuadores webots | sí | sí | sí |
---|
OpenRAVE | sí | sí | Articulaciones , actuadores adicionales | Sí [53] | sí | Sí [54] |
---|
Software | Cadenas cinemáticas genéricas | Movimiento controlado por la fuerza | Lista llena | Cadenas cinemáticas circulares | Cadenas cinemáticamente redundantes | Cadenas cinemáticas bifurcadas |
---|
Sensores compatibles
Software | Odometría | IMU | Colisión | GPS | Cámaras monoculares | Cámaras estéreo | Cámaras de profundidad | Cámaras omnidireccionales | Escáneres láser 2D | Escáneres láser 3D | Lista llena |
---|
Kiosko | sí | sí | Sí [55] | sí | Sí [56] | sí | sí | sí | Sí [57] | Sí [57] | |
---|
RoboDK | Desconocido | Desconocido | Desconocido | Desconocido | Desconocido | sí | sí | sí | sí | sí | |
---|
SimSpark | sí | sí | Sí [58] | Parcial [59] | sí | Parcial | Desconocido | Desconocido | No | No | Perceptores de SimSpark |
---|
Webots | sí | sí | sí | sí | sí | sí | sí | sí | sí | sí | Sensores de webots |
---|
OpenRAVE | sí | sí | sí | sí | sí | sí | sí | Desconocido | sí | sí | |
---|
Software | Odometría | IMU | Colisión | GPS | Cámaras monoculares | Cámaras estéreo | Cámaras de profundidad | Cámaras omnidireccionales | Escáneres láser 2D | Escáneres láser 3D | Lista llena |
---|