Robotics simulator
This article may contain original research. (August 2014) |
A robotics simulator is a simulator used to create an application for a physical robot without depending on the physical machine, thus saving cost and time. In some case, such applications can be transferred onto a physical robot (or rebuilt) without modification.
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 biotic in nature when compared to simulators that are more binary, or computational. Also, behavior-based simulators may learn from mistakes and can demonstrate the anthropomorphic quality of tenacity.

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 can emulate the motion of a physical 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 to develop a robotics control program is highly recommended regardless of whether a physical 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 a physical robot. This applies mainly to industrial robotic applications, since the success of off-line programming depends on how similar the physical environment of a robot is to a simulated environment.
Sensor-based robot actions are much more difficult to simulate and/or to program off-line, since the robot motion depends on 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
- Using external tools
- Physics engines for realistic movements: Most simulators use Bullet, ODE or PhysX.
- 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, and MATLAB languages used by Webots; C++ 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 visualized in a three-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 |
|---|---|---|---|---|---|---|---|
| Gazebo | Open Source Robotics Foundation (OSRF) | Active | Apache 2.0 | OGRE | ODE, Bullet, Simbody, DART | Internal | Linux, macOS, Windows |
| RoboDK | RoboDK | Active | Proprietary | OpenGL | Gravity plug-in | Internal | Linux, macOS, Windows, Android, iOS, Debian |
| SimSpark | O. Obst et al. (+26) | Active | GNU GPL (v2) | Internal | ODE | None | Linux, macOS, Windows |
| Webots | Cyberbotics Ltd. | Active | Apache 2.0 | Internal (WREN) | Fork of ODE | Internal | Linux, macOS, Windows |
| OpenRAVE | OpenRAVE Community | Active | GNU LGPL | Coin3D, OpenSceneGraph | ODE, Bullet | Internal | Linux, macOS, Windows |
| CoppeliaSim | Coppelia Robotics | Active | Dual: commercial, GNU GPL | Internal | MuJoCo, Bullet, ODE, Vortex, Newton | Internal | Linux, macOS, Windows |
| ENCY Robot[1] | ENCY Software | Active | Proprietary | Internal (proprietary ENCY X platform)[2] | – | Internal (3D modeling)[3] | Windows[4] |
| 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 |
|---|---|---|---|---|---|---|---|
| Gazebo | C++ | SDF[5]/URDF,[6] OBJ, STL, COLLADA | Plug-ins (C++) | C++ | ROS, Player, sockets (protobuf messages) | GUI | Yes |
| RoboDK | Python | SLDPRT, SLDASM, STEP, OBJ, STL, 3DS, COLLADA, VRML, Robot Operating System URDF, Rhinoceros 3D, ... | API,[7] Plug-In Interface[8] | Python, C/C++, C#, Matlab, ... | Socket | GUI | Yes |
| SimSpark | C++, Ruby | Ruby Scene Graphs | Mods (C++) | Network (sexpr) | Sockets (sexpr) | GUI, sockets | Unknown |
| Webots | C++ | WBT, VRML, X3D, 3DS, Blender, BVH, COLLADA, FBX, STL, OBJ, URDF | API, PROTOs, plug-ins (C/C++) | C, C++, Python, Java, Matlab, ROS | Sockets, ROS, NaoQI | GUI | Yes[9] |
| OpenRAVE | C++, Python | XML, VRML, OBJ, COLLADA | Plug-ins (C++), API | C/C++, Python, Matlab | Sockets, ROS, YARP | GUI, sockets | Yes |
| CoppeliaSim | C++, Python, Lua | 3DS, Blender, COLLADA, STL, OBJ, URDF, SDF, GLTF, XML | Plug-ins (C/C++), embedded scripts (Python, Lua), remote API (C, C++, Python, Java, MATLAB, Octave), add-ons (Python, Lua) | C, C++, Python, Java, MATLAB, Octave, ROS, ROS 2.0 | Sockets, ROS, ROS 2.0, ZeroMQ | GUI | Yes |
| ENCY Robot | Delphi, C#, C++[10] | IGES, STEP, STL, DXF, VRML, Rhinoceros (3DM), Parasolid (x_t/x_b), SolidWorks (SLDPRT/SLDASM), Solid Edge (PAR/PSM/ASM/PWR), PLY, AMF, JT, PLMXML (and others)[11]
Add-ins: Alibre Design, Autodesk Inventor, IronCAD, CADbro, CAXA 3D, FreeCAD, KeyCreator, Siemens NX, Rhinoceros, SolidCAM, SolidEdge, SOLIDWORKS, SpaceClaim, ZW3D, Onshape[12] |
API; scripting[13] | C#, Delphi, C++ (CAMIPC / IPC)[14] | None | GUI | Yes[15] |
| 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 |
|---|---|---|---|---|---|---|---|
| Gazebo | Yes[16] | Yes[17] | Yes[18] | Yes[19] | Yes[20] | No | |
| RoboDK | Yes[21] | Yes[22] | Yes[23] | Yes[24] | Yes[25] | No | Unknown |
| SimSpark | Yes[26] | Yes[27] | No | Yes[28] | Yes[29] | Yes[30] | Unknown |
| Webots | No | Yes[31] | Yes[32] | Yes[33] | Yes[34] | Yes[35] | Yes[36] |
| OpenRAVE | Yes[37] | Yes[38] | Yes[39] | Yes[40] | Yes[39] | Yes[41] | Unknown |
| CoppeliaSim | No | Yes[42] | Yes[43] | Yes[44] | Yes[45] | Unknown | No |
| ENCY Robot | Yes[46] | Yes[47] | Yes | Yes[48] | Unknown | No | Yes[49] |
| 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 |
|---|---|---|---|---|---|---|---|---|
| Gazebo | cppcheck[50] | cpplint[50] | gtest and qtest[50] | 77.0%[50] | 53.3%[50] | 320k[50] | 106k[50] | Jenkins[50] |
| RoboDK | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| SimSpark | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| Webots | cppcheck[51] | clang-format[52] | unit tests[53] | 100% of API functions[54] | master,[55] develop[56] | ~200k | ~50k | GitHub Actions |
| OpenRAVE | Unknown | Unknown | Python nose | Unknown | Unknown | Unknown | Unknown | Jenkins[57] |
| CoppeliaSim | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| ENCY Robot | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| 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 |
|---|---|---|---|---|---|
| Gazebo | Unknown | Yes | Yes | Yes | Yes |
| RoboDK | Yes | Yes | Yes | Yes | Yes |
| SimSpark | Unknown | No | Unknown | No | No |
| Webots | Unknown | Yes | Yes | Yes | Yes |
| OpenRAVE | Unknown | No | Unknown | No | No |
| CoppeliaSim | Unknown | Yes | Yes | Yes | Yes |
| ENCY Robot | Yes[58] | Yes[59] | Yes (Tool-to-part / part-to-tool)[60] | Yes[1] | Yes (via ENCY Hyper real-time execution)[61] |
| Software | CAD to motion | Dynamic collision avoidance | Relative end effectors | Off-line programming | Real-time streaming control |
Robot families
| Software | UGV (ground mobile robot) | UAV (aerial robots) | AUV (underwater robots) | Robotic arms | Robotic hands (grasping simulation) | Humanoid robots | Human avatars | Full list |
|---|---|---|---|---|---|---|---|---|
| Gazebo | Yes[62] | Yes[63] | Yes[64] | Yes[65] | Yes[66] | Yes[67] | Yes[68] | |
| RoboDK | No | No | No | Yes[69] | No | No | No | Yes[69] |
| SimSpark | Yes | No | No | Maybe | Maybe | Yes | No | |
| Webots | Yes | Yes | Yes[70] | Yes | Yes | Yes[71] | Yes | Yes[72] |
| OpenRAVE | Yes | Unknown | Unknown | Yes | Yes | Yes | Yes | |
| CoppeliaSim | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[73] |
| ENCY Robot | No | No | No | Yes[74] | No | No | No | No |
| 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 |
|---|---|---|---|---|---|---|
| Gazebo | Yes | Yes | Yes | Yes | Yes | |
| RoboDK | Unknown | Unknown | Unknown | Unknown | Unknown | |
| SimSpark | Yes | No | SimSpark effectors | Unknown | Unknown | Unknown |
| Webots | Yes | Yes | Webots actuators | Yes | Yes | Yes |
| OpenRAVE | Yes | Yes | Joints, Extra Actuators | Yes[75] | Yes | Yes[76] |
| CoppeliaSim | Yes | Yes | Yes | Yes | Yes | |
| ENCY Robot | Yes[77] | No | Unknown | Yes (redundancy / external axes)[78] | Unknown | |
| 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Gazebo | Yes | Yes | Yes[79] | Yes | Yes[80] | Yes | Yes | Yes | Yes[81] | Yes[81] | |
| RoboDK | Unknown | Unknown | Unknown | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | |
| SimSpark | Yes | Yes | Yes[82] | Partial[83] | Yes | Partial | Unknown | Unknown | No | No | SimSpark perceptors |
| Webots | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Webots sensors |
| OpenRAVE | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Yes | Yes | |
| CoppeliaSim | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
| ENCY Robot | Unknown | Unknown | Yes[84] | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | |
| Software | Odometry | IMU | Collision | GPS | Monocular cameras | Stereo cameras | Depth cameras | Omnidirectional cameras | 2D laser scanners | 3D laser scanners | Full list |
See also
References
- ^ a b "ENCY Robot: Offline robot programming solution". encycam.com. Retrieved 2026-01-07.
- ^ "ENCY: CAD/CAM software for a new generation". encycam.com. Retrieved 2026-01-07.
- ^ "ENCY Robot configurations (2D sketching, 3D modeling)". docs.encycam.com. Retrieved 2026-01-07.
- ^ "Program installation and launch (Windows)". docs.encycam.com. Retrieved 2026-01-07.
- ^ OSRF. "SDF". sdformat.org. Retrieved 2019-04-27.
- ^ "urdf - ROS Wiki". wiki.ros.org. Retrieved 2017-10-06.
- ^ "RoboDK API". GitHub. 22 October 2021.
- ^ "RoboDK Plug-In Interface". GitHub. 16 October 2021.
- ^ However, requires a connection on an X server for 3D rendering
- ^ "Supported programming languages (CAMAPI)". docs.encycam.com. Retrieved 2026-01-07.
- ^ "ENCY Robot configurations (CAD imports list)". docs.encycam.com. Retrieved 2026-01-07.
- ^ "Addin's list (ENCY Robot User Manual)". docs.encycam.com. Retrieved 2026-01-07.
- ^ "CAMAPI (SDK/API documentation)". docs.encycam.com. Retrieved 2026-01-07.
- ^ "Interaction with external applications (CAMIPC)". docs.encycam.com. Retrieved 2026-01-07.
- ^ "CAMIPC can open ENCY without any windows". docs.encycam.com. Retrieved 2026-01-07.
- ^ "Gazebo Community". Retrieved 2019-04-27.
- ^ "Gazebo API". Gazebo Community. Retrieved 2019-04-27.
- ^ "Gazebo Answers". Gazebo Community. Retrieved 2019-04-27.
- ^ "Gazebo Tutorials". Gazebo Community. Archived from the original on 2019-04-29. Retrieved 2019-04-27.
- ^ "Gazebo Issue Tracker". Gazebo Community. Retrieved 2019-04-27.
- ^ RoboDK mailing list
- ^ RoboDK API Documentation
- ^ RoboDK Forum
- ^ RoboDK Documentation
- ^ RoboDK Bug tracker
- ^ SimSpark mailing lists
- ^ "SimSpark client protocols". Archived from the original on 2016-02-25. Retrieved 2015-04-08.
- ^ "SimSpark user manual (Wiki)". Archived from the original on 2015-02-25. Retrieved 2015-04-08.
- ^ SimSpark Tracker
- ^ SimSpark Wiki[permanent dead link]
- ^ "Webots Reference Manual". Archived from the original on 2016-08-12. Retrieved 2022-09-12.
- ^ "Discussions · cyberbotics/Webots". GitHub.
- ^ Webots User Guide[dead link]
- ^ Webots issues on GitHub
- ^ Webots technical wiki on GitHub
- ^ Webots Discord channel
- ^ OpenRAVE mailing list
- ^ OpenRAVE API
- ^ a b OpenRAVE Issue Tracker
- ^ OpenRAVE User Guide
- ^ "OpenRAVE Wiki". Archived from the original on 2017-03-28. Retrieved 2017-03-27.
- ^ CoppeliaSim API
- ^ Coppelia Robotics Forum
- ^ CoppeliaSim User Manual
- ^ Coppelia Robotics bug reports
- ^ "Technical support (registration for update notifications)". docs.encycam.com. Retrieved 2026-01-07.
- ^ "CAMAPI documentation". docs.encycam.com. Retrieved 2026-01-07.
- ^ "ENCY Robot User Manual". docs.encycam.com. Retrieved 2026-01-07.
- ^ "Online features: Collaboration / chat". docs.encycam.com. Retrieved 2026-01-07.
- ^ a b c d e f g h OSRF. "Gazebo". gazebosim.org. Retrieved 2019-04-27.
- ^ CppCheck
- ^ Clang Format
- ^ Unit tests
- ^ API tests
- ^ Webots master
- ^ Webots develop
- ^ Source
- ^ "ENCY Robot: toolpath calculation / kinematics / simulation". encycam.com. Retrieved 2026-01-07.
- ^ "ENCY Robot: collision avoidance / collision detection". encycam.com. Retrieved 2026-01-07.
- ^ "ENCY Robot: Tool-to-part and part-to-tool". encycam.com. Retrieved 2026-01-07.
- ^ "ENCY Hyper: execute on the real robot in Run Mode (real time)". encycam.com. Retrieved 2026-01-07.
- ^ OSRF. "Gazebo : Tutorial : Beginner: Model Editor". gazebosim.org. Archived from the original on 2019-01-18. Retrieved 2019-04-27.
- ^ OSRF. "Gazebo : Tutorial : Aerodynamics". gazebosim.org. Archived from the original on 2019-05-23. Retrieved 2019-04-27.
- ^ OSRF. "Gazebo : Tutorial : Hydrodynamics". gazebosim.org. Archived from the original on 2019-05-23. Retrieved 2019-04-27.
- ^ OSRF. "Gazebo : ARIAC". gazebosim.org. Archived from the original on 2019-04-27. Retrieved 2019-04-27.
- ^ OSRF. "Gazebo : HAPTIX". gazebosim.org. Archived from the original on 2019-04-27. Retrieved 2019-04-27.
- ^ "DARPA's legacy: Open source simulation for robotics development and testing". Robohub.org. Retrieved 2019-04-27.
- ^ OSRF. "Gazebo : Tutorial : Make an animated model (actor)". gazebosim.org. Archived from the original on 2019-04-28. Retrieved 2019-04-27.
- ^ a b RoboDK robot library
- ^ including Salamander robot
- ^ including Nao, DARwIn-OP, Fujitsu HOAP2, Kondo KHR-2HV, KHR-3, etc.
- ^ Webots robot models
- ^ CoppeliaSim main features
- ^ "ENCY Robot: complete robotic cell simulation". encycam.com. Retrieved 2026-01-07.
- ^ "OpenRAVE Closed chains". Archived from the original on 2017-03-28. Retrieved 2017-03-27.
- ^ "OpenRAVE Dual-arm example". Archived from the original on 2017-03-28. Retrieved 2017-03-27.
- ^ "ENCY Robot: robot kinematics management". encycam.com. Retrieved 2026-01-07.
- ^ "ENCY Robot: redundant axes / external axes". encycam.com. Retrieved 2026-01-07.
- ^ OSRF. "Gazebo : Tutorial : Contact Sensor". gazebosim.org. Archived from the original on 2019-07-06. Retrieved 2019-04-27.
- ^ OSRF. "Gazebo : Tutorial : Camera Distortion". gazebosim.org. Archived from the original on 2019-07-17. Retrieved 2019-04-27.
- ^ a b OSRF. "Gazebo : Tutorial : Intermediate: Velodyne". gazebosim.org. Retrieved 2019-04-27.
- ^ Collision detection uses a simplified model
- ^ Possible, no model for noise
- ^ "ENCY Robot: collision detection". encycam.com. Retrieved 2026-01-07.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.