Robotics simulator

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

A robotics simulator is used to create application for a physical robot without depending on the actual machine, thus saving cost and time. In some case, these applications can be transferred onto the physical robot (or rebuilt) without modifications.

The term robotics simulator can refer to several different robotics simulation applications. For example, in mobile robotics applications, behavior-based robotics simulators allow users to create simple worlds of rigid objects and light sources and to program robots to interact with these worlds. Behavior-based simulation allows for actions that are more biological in nature when compared to simulators that are more binary, or computational. In addition, behavior-based simulators may "learn" from mistakes and are capable of demonstrating the anthropomorphic quality of tenacity.

Robologix robotics simulator.

One of the most popular applications for robotics simulators is for 3D modeling and rendering of a robot and its environment. This type of robotics software has a simulator that is a virtual robot, which is capable of emulating the motion of an actual robot in a real work envelope. Some robotics simulators use a physics engine for more realistic motion generation of the robot. The use of a robotics simulator for development of a robotics control program is highly recommended regardless of whether an actual robot is available or not. The simulator allows for robotics programs to be conveniently written and debugged off-line with the final version of the program tested on an actual robot. This primarily holds for industrial robotic applications only, since the success of off-line programming depends on how similar the real environment of the robot is to the simulated environment.

Sensor-based robot actions are much more difficult to simulate and/or to program off-line, since the robot motion depends on the instantaneous sensor readings in the real world.

Features

Modern simulators tend to provide the following features:

  • Fast robot prototyping
    • Using the own simulator as creation tool (Virtual Robot Experimentation Platform, Webots, R-Station, Marilou, 4DV-Sim).
    • Using external tools.
  • Physics engines for realistic movements. Most simulators use ODE (Gazebo, LpzRobots, Marilou, Webots) or PhysX (Microsoft Robotics Studio, 4DV-Sim).
  • Realistic 3d rendering. Standard 3d modeling tools or third party tools can be used to build the environments.
  • Dynamic robot bodies with scripting. C, C++, Perl, Python, Java, URBI, MATLAB languages used by Webots, Python used by Gazebo.

Simulators

Among the newest technologies available today for programming are those which use a virtual simulation. Simulations with the use of virtual models of the working environment and the robots themselves can offer advantages to both the company and programmer. By using a simulation, costs are reduced, and robots can be programmed off-line which eliminates any down-time for an assembly line. Robot actions and assembly parts can be visualised in a 3-dimensional virtual environment months before prototypes are even produced. Writing code for a simulation is also easier than writing code for a physical robot. While the move toward virtual simulations for programming robots is a step forward in user interface design, many such applications are only in their infancy.

General information

Software Developers Development status License 3D rendering engine Physics engine 3D modeller Platforms supported
Actin Energid Technologies Active Proprietary OpenGL Proprietary Proprietary Windows, macOS, Linux, RTLinux, VxWorks, RTOS-32, and RTX. (QNX Planned)
ARS RAL Inactive BSD VTK ODE None Linux, macOS, Windows
AUTOMAPPPS Convergent Information Technologies GmbH Active Proprietary OpenGL unknown Internal Linux, Windows
Gazebo Open Source Robotics Foundation(OSRF)[1] Active Apache 2.0 OGRE ODE/Bullet/Simbody/DART Internal Linux, macOS, Windows
MORSE Academic community[2] Active BSD Blender game engine Bullet Blender Linux, BSD*, macOS
OpenHRP AIST Active Eclipse Java3D ODE/Internal Internal[3] Linux, Windows
RoboDK RoboDK Active Proprietary OpenGL Gravity plugin[4] Internal Linux, macOS, Windows, Android, iOS, Debian
SimSpark O. Obst et al. (+26) Active GNU GPL (v2) Internal ODE None Linux, macOS, Windows
V-Rep Coppelia Robotics Active Proprietary/GNU GPL Internal ODE/Bullet/Vortex/Newton Internal Linux, macOS, Windows
Webots Cyberbotics Ltd.[5] Active Apache 2.0 Internal (WREN) Fork of ODE Internal Linux, macOS, Windows
4DV-Sim 4D Virtualiz Active Proprietary OGRE PhysX Internal Linux
OpenRAVE OpenRAVE Community Active GNU LGPL Coin3D/OpenSceneGraph ODE/Bullet Internal Linux, macOS, Windows
Software Developers Development status License 3D rendering engine Physics engine 3D modeller Platforms supported

Technical information

Software Main programming language Formats support Extensibility External APIs Robotics middleware support Primary user interface Headless simulation
Actin C++ SLDPRT, SLDASM, STEP, OBJ, STL, 3DS, Collada, VRML, URDF, XML, ECD, ECP, ECW, ECX, ECZ, Plugins (C++), API Unknown ROS GUI Yes (ActinRT)
ARS Python Unknown Python Unknown None Unknown Unknown
AUTOMAPPPS C++, Python STEP, IGES, STL Plugins (C), API XML, C Socket GUI Yes
Gazebo C++ SDF[6]/URDF[7], OBJ, STL, Collada Plugins (C++) C++ ROS, Player, Sockets (protobuf messages) GUI Yes
MORSE Python Unknown Python Python[8] Sockets, YARP, ROS, Pocolibs, MOOS Command-line Yes[9]
OpenHRP C++ VRML Plugins (C++), API C/C++, Python, Java OpenRTM-aist GUI Unknown
RoboDK Python SLDPRT, SLDASM, STEP, OBJ, STL, 3DS, Collada, VRML, URDF, Rhinoceros_3D, ... API[10], Plug-In Interface[11] Python, C/C++, C#, Matlab, ... Socket GUI Unknown
SimSpark C++, Ruby Ruby Scene Graphs Mods (C++) Network (sexpr) Sockets (sexpr) GUI, Sockets Unknown
V-Rep LUA OBJ, STL, DXF, 3DS, Collada,[12] URDF[7][13] API, Add-ons, Plugins C/C++, Python, Java, Urbi, Matlab/Octave Sockets, ROS GUI Yes[14]
Webots C++ WBT, VRML, X3D API, PROTOs, Plugins (C/C++) C, C++, Python, Java, Matlab, ROS Sockets, ROS, NaoQI GUI Yes[15]
4DV-Sim C++ 3DS, OBJ, Mesh Plugins (C++), API FMI/FMU, Matlab ROS, Sockets, Plug & Play interfaces[16] GUI Yes
OpenRAVE C++, Python XML, VRML, OBJ, Collada Plugins (C++), API C/C++, Python, Matlab Sockets, ROS, YARP GUI, Sockets Yes
Software Main programming language Formats support Extensibility External APIs Robotic middleware support Primary user interface Headless simulation

Infrastructure

Support

Software Mailing List API Documentation Public Forum/Help System User Manual Issue Tracker Wiki Chat
Actin No Yes No Yes[17] Yes (Internal) No Unknown
ARS Unknown Unknown Unknown Unknown Unknown Unknown Unknown
AUTOMAPPPS Yes Yes No Yes Yes No Unknown
Gazebo Yes[18] Yes[19] Yes[20] Yes[21] Yes[22] Yes[23]
MORSE Yes[24] Yes[25] No Yes[26] Yes[27] No Unknown
OpenHRP Yes[28] Yes[29] No Yes[30] Yes[31] No Unknown
RoboDK Yes[32] Yes[33] Yes[34] Yes[35] Yes[36] No Unknown
SimSpark Yes[37] Yes[38] No Yes[39] Yes[40] Yes[41] Unknown
V-Rep No Yes[42] Yes[43] Yes[44] Unknown No Unknown
Webots No Yes[45] Yes[46] Yes[47] Yes[48] Yes[49] Yes[50]
4DV-Sim Yes[51] No Yes[52] Yes Yes[53] No Unknown
OpenRAVE Yes[54] Yes[55] Yes[56] Yes[57] Yes[58] Yes[59] Unknown
Software Mailing List API Documentation Public Forum/Help System User Manual Issue Tracker Wiki

Code Quality

Software Static Code Checker Style Checker Test System(s) Test Function coverage Test Branch coverage Lines of Code Lines of Comments Continuous Integration
Actin Unknown Unknown Unknown Unknown Unknown Unknown Unknown Jenkins
ARS Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
AUTOMAPPPS Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
Gazebo cppcheck[60] cpplint[60] gtest and qtest[60] 77.0%[60] 53.3%[60] 320k[60] 106k[60] Jenkins[60]
MORSE N/A pylint Python unittests Unknown Unknown 31.4k[61] 9.0k Jenkins, Travis
OpenHRP Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
RoboDK Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
SimSpark Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
V-Rep Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
Webots cppcheck[62] clang-format[63] unit tests[64] 100% of API functions[65] master[66], revision[67], develop[68] ~200k ~50k Travis[69], AppVeyor[70], GitGuardian[71]
4DV-Sim Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
OpenRAVE Unknown Unknown Python nose Unknown Unknown Unknown Unknown Jenkins[72]
Software Static Code Checker Style Checker Test System(s) Test Function coverage Test Branch coverage Lines of Code Lines of Comments Continuous Integration

Features

Software CAD to Motion Dynamic Collision Avoidance Relative End Effectors Off-Line Programming Real-Time Streaming Control of Hardware
Actin Yes (Tool Paths) Yes Yes Yes Yes
ARS Unknown No Unknown No No
Gazebo Unknown Yes Yes Yes Yes
MORSE Unknown No Unknown No No
OpenHRP Unknown No Unknown No No
RoboDK Yes (Robot Machining) Yes Yes Yes Yes
SimSpark Unknown No Unknown No No
V-Rep Unknown No Unknown No No
Webots Unknown Yes Yes Yes Yes
4DV-Sim Unknown No Unknown No No
OpenRAVE Unknown No Unknown No No
Software CAD to Motion Dynamic Collision Avoidance Relative End Effectors Off-line Programming Real-time Streaming Control

Families of robots

Software UGV (ground mobile robot) UAV (aerial robots) AUV (underwater robots) Robotic arms Robotic hands (grasping simulation) Humanoid robots Human avatars Full list
Actin Yes (Can Include Manipulators) Yes (Can Include Manipulators) Yes (Can Include Manipulators) Yes Yes Yes Yes
ARS Unknown Unknown Unknown Unknown Unknown Unknown Unknown
Gazebo Yes[73] Yes[74] Yes[75] Yes[76] Yes[77] Yes[78] Yes[79]
MORSE Yes Yes Partial[80] Some[81] No No Yes
OpenHRP Yes No No Yes Yes Yes Yes
RoboDK No No No Yes[82] No No No Yes[83]
SimSpark Yes No No Maybe Maybe Yes No
V-Rep Yes Yes No Yes Yes Yes Yes
Webots Yes Yes Yes[84] Yes Yes Yes[85] Yes Yes[86]
4DV-Sim Yes Yes No Yes Maybe No Yes
OpenRAVE Yes Unknown Unknown Yes Yes Yes Yes
Software UGV (ground mobile robot) UAV (aerial robots) AUV (underwater robots) Robotic arms Robotic hands (grasping simulation) Humanoid robots Human avatars Full list

Supported actuators

Software Generic kinematic chains Force-controlled motion Full list Circular kinematic chains Kinematically redundant chains Bifurcated kinematic chains
Actin Yes Yes Motion Constraints Yes Yes Yes
ARS Unknown Unknown Unknown Unknown Unknown
Gazebo Yes Yes Yes Yes Yes
MORSE Yes[87] Yes MORSE actuators Unknown Unknown Unknown
OpenHRP Yes Yes Unknown Unknown Unknown
RoboDK Unknown Unknown Unknown Unknown Unknown
SimSpark Yes No SimSpark effectors Unknown Unknown Unknown
V-Rep Yes Yes Unknown Unknown Unknown
Webots Yes Yes Webots actuators Yes Yes Yes
4DV-Sim Yes Yes Unknown Unknown Unknown
OpenRAVE Yes Yes Joints,Extra Actuators Yes[88] Yes Yes[89]
Software Generic kinematic chains Force-controlled motion Full list Circular kinematic chains Kinematically redundant chains Bifurcated kinematic chains

Supported sensors

Software Odometry IMU Collision GPS Monocular cameras Stereo cameras Depth cameras Omnidirectional cameras 2D laser scanners 3D laser scanners Full list
Actin Yes Yes Yes Unknown Yes Yes Yes Yes Yes Yes
ARS Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
AUTOMAPPPS Unknown Unknown Unknown Unknown Yes Yes Yes Unknown Yes Yes
Gazebo Yes Yes Yes[90] Yes Yes[91] Yes Yes Yes Yes[92] Yes[92]
MORSE Yes Yes Yes Yes Yes Unknown Yes Unknown Yes Yes[93] MORSE sensors
OpenHRP Unknown Yes[94] Yes Unknown Yes Unknown Yes Unknown Yes Yes[95] OpenHRP sensors
RoboDK Unknown Unknown Unknown Unknown Unknown Yes Yes Yes Yes Yes
SimSpark Yes Yes Yes[96] Partial[97] Yes Partial Unknown Unknown No No SimSpark perceptors
V-Rep Unknown Yes Yes Yes Yes Yes Yes Unknown Yes Yes
Webots Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Webots sensors
4DV-Sim Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
OpenRAVE Yes Yes Yes Yes Yes Yes Yes Unknown Yes Yes
Software Odometry IMU Collision GPS Monocular cameras Stereo cameras Depth cameras Omnidirectional cameras 2D laser scanners 3D laser scanners Full list

Other simulators

Robotic Simulators

Open source simulators

  • breve: a 3D-world multi-agent simulator in Python.
  • EZPhysics: Combination of Ogre3D and ODE physics, GUI exposes all of ODE's objects data, network closed loop remote control optionally via Matlab/Simulink.
  • Gazebo Simulator: An open-source 3D robotics simulator used in a number of DARPA contests.
  • Khepera Simulator an open-source Windows simulator for the Khepera robot predating Webots.[citation needed]
  • Klamp't : a simulator introduced in 2013 specializing in stable trimesh-trimesh contact. Supports legged locomotion and manipulation.
  • LpzRobots: a 3D-physics robot simulator developed at the University of Leipzig.
  • miniBloq: This robot programing software for Arduino boards has a new simulator.
  • Moby: a rigid-body dynamics library written in C++.
  • OpenSim Simulator for articulated and wheeled robots with a wide range of characteristics. Further development stopped in the year 2006.
  • Robotics Toolbox for MATLAB is Free Software that provides functionality for representing pose (homogeneous transformations, Euler and RPY angles, quaternions), arm robots (forward/inverse kinematics, dynamics, simulation, animation) and mobile robots (control, localisation, planning and animation).
  • ARTE A Robotics Toolbox for Education (ARTE) is a Free Software educational tool based on Matlab. It provides functions to represent position and orientation. As well, includes functions to simulate robotic arms (direct/inverse kinematics, dynamics, path planning and more). The toolbox includes a large set of 3D robotic models that can be viewed and simulated inside a robotic cell.
  • Simbad 3d Robot Simulator Java based simulator
  • SimRobot: A robot simulator software package developed at the Universität Bremen and the German Research Center for Artificial Intelligence.
  • Stage: 2.5D simulator often used with Player to form the Player/Stage system. Part of the Player Project
  • STDR Simulator A simple, flexible and scalable 2D multi-robot simulator for use within Robot Operating System.
  • UCHILSIM: A physics based simulator for AIBO Robots introduced in RoboCup 2004.
  • UWSim : an UnderWater SIMulator for marine robotics research and development which incorporates sensor, dynamic and physics simulation.

Closed-source and proprietary simulators

  • anyKode Marilou
  • ORCA-Sim: a (Windows) 3D robot simulator using the Newton Game Dynamics physics engine.

Autonomous vehicle simulator

Open source simulators

  • Carla is an open-source simulator for autonomous driving research. CARLA provides open digital assets (urban layouts, buildings, vehicles) that were created for this purpose and can be used freely. The simulation platform supports flexible specification of sensor suites and environmental conditions.
  • AirSim AirSim is a simulator for drones, cars and more, built on Unreal Engine. It is open-source, cross platform, and supports hardware-in-loop with popular flight controllers such as PX4 for physically and visually realistic simulations.

Closed-source and proprietary simulators

  • LGSVL is a unity-based multi-robot simulator for autonomous vehicle developers.

References

  1. ^ The development is led by 13+ full-time developers with graduate-level backgrounds in physics, rendering, robot control, human-robot interaction, user-interface design, communication protocols, and multi-robot coordination.
  2. ^ The development is led by 10+ universities/research institutes including LAAS-CNRS, TUM, ONERA, DLR. See the AUTHORS list for the complete list.
  3. ^ [1]
  4. ^ https://github.com/RoboDK/Plug-In-Interface
  5. ^ The development is led by a team of 6 full-time developers.
  6. ^ OSRF. "SDF". sdformat.org. Retrieved 2019-04-27.
  7. ^ a b "urdf - ROS Wiki". wiki.ros.org. Retrieved 2017-10-06.
  8. ^ pymorse
  9. ^ Only when running on a X server; relies on Xvfb.
  10. ^ https://github.com/RoboDK/RoboDK-API
  11. ^ https://github.com/RoboDK/Plug-In-Interface
  12. ^ See the V-Rep documentation
  13. ^ Can import URDF files through bundled plugin
  14. ^ Versions >= 3.1.0 V-rep Command line options
  15. ^ However, requires a connection on an X server for 3D rendering
  16. ^ Emulate the real sensors protocols and media (Ethernet, Serial, CAN,etc.)
  17. ^ Actin User Guide
  18. ^ "Gazebo Community". Gazebo Community. Retrieved 2019-04-27.
  19. ^ "Gazebo API". Gazebo Community. Retrieved 2019-04-27.
  20. ^ "Gazebo Answers". Gazebo Community. Retrieved 2019-04-27.
  21. ^ "Gazebo Tutorials". Gazebo Community. Retrieved 2019-04-27.
  22. ^ "Gazebo Issue Tracker". Gazebo Community. Retrieved 2019-04-27.
  23. ^ "Gazebo Wiki". Gazebo Community. Retrieved 2019-04-27.
  24. ^ MORSE users mailing list, MORSE developers mailing list
  25. ^ MORSE documentation
  26. ^ MORSE documentation
  27. ^ MORSE issue tracker
  28. ^ [2]
  29. ^ [3]
  30. ^ [4]
  31. ^ [5]
  32. ^ RoboDK mailing list
  33. ^ RoboDK API Documentation
  34. ^ RoboDK Forum
  35. ^ RoboDK Documentation
  36. ^ RoboDK Bug tracker
  37. ^ SimSpark mailing lists
  38. ^ SimSpark client protocols
  39. ^ SimSpark user manual (Wiki)
  40. ^ SimSpark Tracker
  41. ^ SimSpark Wiki
  42. ^ v-rep API framework
  43. ^ v-rep forum
  44. ^ v-rep User Manual
  45. ^ Webots Reference Manual
  46. ^ Webots Forum
  47. ^ Webots User Guide
  48. ^ Webots issues on GitHub
  49. ^ Webots technical wiki on GitHub
  50. ^ Webots Discord channel
  51. ^ support{AT}4d-virtualiz.com
  52. ^ support{AT}4d-virtualiz.com
  53. ^ Bug report
  54. ^ OpenRAVE mailing list
  55. ^ OpenRAVE API
  56. ^ OpenRAVE Issue Tracker
  57. ^ OpenRAVE User Guide
  58. ^ OpenRAVE Issue Tracker
  59. ^ OpenRAVE Wiki
  60. ^ a b c d e f g h OSRF. "Gazebo". gazebosim.org. Retrieved 2019-04-27.
  61. ^ Source: Ohloh
  62. ^ CppCheck
  63. ^ Clang Format
  64. ^ Unit tests
  65. ^ API tests
  66. ^ Webots master
  67. ^ Webots revision
  68. ^ Webots develop
  69. ^ Source: [6]
  70. ^ Source: [7]
  71. ^ Source: [8]
  72. ^ Source: [9]
  73. ^ OSRF. "Gazebo : Tutorial : Beginner: Model Editor". gazebosim.org. Retrieved 2019-04-27.
  74. ^ OSRF. "Gazebo : Tutorial : Aerodynamics". gazebosim.org. Retrieved 2019-04-27.
  75. ^ OSRF. "Gazebo : Tutorial : Hydrodynamics". gazebosim.org. Retrieved 2019-04-27.
  76. ^ OSRF. "Gazebo : ARIAC". gazebosim.org. Retrieved 2019-04-27.
  77. ^ OSRF. "Gazebo : HAPTIX". gazebosim.org. Retrieved 2019-04-27.
  78. ^ "DARPA's legacy: Open source simulation for robotics development and testing | Robohub". robohub.org. Retrieved 2019-04-27.
  79. ^ OSRF. "Gazebo : Tutorial : Make an animated model (actor)". gazebosim.org. Retrieved 2019-04-27.
  80. ^ Submarine model available, but no dynamic model.
  81. ^ Kuka-LWR and Mitsubishi PA-10 included. Other non-concurrent arms can be simulated via the kinematic chains actuator.
  82. ^ RoboDK robot library
  83. ^ RoboDK robot library
  84. ^ including Salamander robot
  85. ^ including Nao, DARwIn-OP, Fujitsu HOAP2, Kondo KHR-2HV, KHR-3, etc.
  86. ^ Webots robot models
  87. ^ Joint control (position/velocity only, no force control) and inverse kinematics
  88. ^ OpenRAVE Closed chains [10]
  89. ^ OpenRAVE Dual-arm example [11]
  90. ^ OSRF. "Gazebo : Tutorial : Contact Sensor". gazebosim.org. Retrieved 2019-04-27.
  91. ^ OSRF. "Gazebo : Tutorial : Camera Distortion". gazebosim.org. Retrieved 2019-04-27.
  92. ^ a b OSRF. "Gazebo : Tutorial : Intermediate: Velodyne". gazebosim.org. Retrieved 2019-04-27.
  93. ^ Velodyne 3D laser scanner
  94. ^ Acceleration and Gyro sensors
  95. ^ OpenHRP sensors
  96. ^ Collision detection uses a simplified model
  97. ^ Possible, no model for noise

External links

Retrieved from "https://en.wikipedia.org/w/index.php?title=Robotics_simulator&oldid=905353731"
This content was retrieved from Wikipedia : http://en.wikipedia.org/wiki/Robotics_simulator
This page is based on the copyrighted Wikipedia article "Robotics simulator"; it is used under the Creative Commons Attribution-ShareAlike 3.0 Unported License (CC-BY-SA). You may redistribute it, verbatim or modified, providing that you comply with the terms of the CC-BY-SA