Robotics simulator

Last updated

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.

Contents

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.

Robologix robotics simulator RoboLogix4.jpg
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 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:

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

SoftwareDevelopersDevelopment status License 3D rendering enginePhysics engine3D modellerPlatforms supported
Gazebo Open Source Robotics Foundation (OSRF)Active Apache 2.0 OGRE ODE, Bullet, Simbody, DART InternalLinux, macOS, Windows
RoboDK RoboDKActive Proprietary OpenGL Gravity plug-in InternalLinux, macOS, Windows, Android, iOS, Debian
SimSpark O. Obst et al. (+26)Active GNU GPL (v2)Internal ODE NoneLinux, macOS, Windows
Webots Cyberbotics Ltd.Active Apache 2.0 Internal (WREN)Fork of ODEInternalLinux, macOS, Windows
OpenRAVE OpenRAVE CommunityActive GNU LGPL Coin3D, OpenSceneGraph ODE, Bullet InternalLinux, macOS, Windows
CoppeliaSim Coppelia RoboticsActiveDual: commercial, GNU GPL InternalMuJoCo, Bullet, ODE, Vortex, Newton InternalLinux, macOS, Windows
ENCY Robot [1] ENCY SoftwareActiveProprietaryInternal (proprietary ENCY X platform) [2] Internal (3D modeling) [3] Windows [4]
SoftwareDevelopersDevelopment status License 3D rendering enginePhysics engine3D modellerPlatforms supported

Technical information

SoftwareMain programming languageFormats supportExtensibilityExternal APIs Robotics middleware supportPrimary user interfaceHeadless simulation
Gazebo C++ SDF [5] /URDF, [6] OBJ, STL, COLLADA Plug-ins (C++)C++ROS, Player, sockets (protobuf messages)GUIYes
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, ...SocketGUIYes
SimSpark C++, Ruby Ruby Scene GraphsMods (C++)Network (sexpr)Sockets (sexpr)GUI, socketsUnknown
Webots C++WBT, VRML, X3D, 3DS, Blender, BVH, COLLADA, FBX, STL, OBJ, URDFAPI, PROTOs, plug-ins (C/C++)C, C++, Python, Java, Matlab, ROSSockets, ROS, NaoQIGUIYes [9]
OpenRAVE C++, Python XML, VRML, OBJ, COLLADA Plug-ins (C++), APIC/C++, Python, MatlabSockets, ROS, YARPGUI, socketsYes
CoppeliaSim C++, Python, Lua 3DS, Blender, COLLADA, STL, OBJ, URDF, SDF, GLTF, XMLPlug-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.0Sockets, ROS, ROS 2.0, ZeroMQ GUIYes
ENCY RobotDelphi, 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] NoneGUIYes [15]
SoftwareMain programming languageFormats supportExtensibilityExternal APIsRobotic middleware supportPrimary user interfaceHeadless simulation

Infrastructure

Support

SoftwareMailing listAPI documentationPublic forum, help systemUser manualIssue trackerWikiChat
Gazebo Yes [16] Yes [17] Yes [18] Yes [19] Yes [20] No
RoboDK Yes [21] Yes [22] Yes [23] Yes [24] Yes [25] NoUnknown
SimSpark Yes [26] Yes [27] NoYes [28] Yes [29] Yes [30] Unknown
Webots NoYes [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 NoYes [42] Yes [43] Yes [44] Yes [45] UnknownNo
ENCY RobotYes [46] Yes [47] YesYes [48] UnknownNoYes [49]
SoftwareMailing listAPI documentationPublic forum, help systemUser manualIssue trackerWiki

Code quality

SoftwareStatic code checkerStyle checkerTest system(s)Test function coverageTest branch coverageLines of codeLines of commentsContinuous integration
Gazebo cppcheck [50] cpplint [50] gtest and qtest [50] 77.0% [50] 53.3% [50] 320k [50] 106k [50] Jenkins [50]
RoboDK UnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknown
SimSpark UnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknown
Webots cppcheck [51] clang-format [52] unit tests [53] 100% of API functions [54] master, [55] develop [56] ~200k~50kGitHub Actions
OpenRAVE UnknownUnknown Python nose UnknownUnknownUnknownUnknownJenkins [57]
CoppeliaSim UnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknown
ENCY RobotUnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknown
SoftwareStatic code checkerStyle checkerTest system(s)Test function coverageTest branch coverageLines of codeLines of commentsContinuous integration

Features

SoftwareCAD to motionDynamic collision avoidanceRelative end effectorsOff-line programmingReal-time streaming control of hardware
Gazebo UnknownYesYesYesYes
RoboDK YesYesYesYesYes
SimSpark UnknownNoUnknownNoNo
Webots UnknownYesYesYesYes
OpenRAVE UnknownNoUnknownNoNo
CoppeliaSim UnknownYesYesYesYes
ENCY RobotYes [58] Yes [59] Yes (Tool-to-part / part-to-tool) [60] Yes [61] Yes (via ENCY Hyper real-time execution) [62]
SoftwareCAD to motionDynamic collision avoidanceRelative end effectorsOff-line programmingReal-time streaming control

Robot families

SoftwareUGV (ground mobile robot)UAV (aerial robots)AUV (underwater robots)Robotic armsRobotic hands (grasping simulation)Humanoid robotsHuman avatarsFull list
Gazebo Yes [63] Yes [64] Yes [65] Yes [66] Yes [67] Yes [68] Yes [69]
RoboDK NoNoNoYes [70] NoNoNoYes [70]
SimSpark YesNoNoMaybeMaybeYesNo
Webots YesYesYes [71] YesYesYes [72] YesYes [73]
OpenRAVE YesUnknownUnknownYesYesYesYes
CoppeliaSim YesYesYesYesYesYesYesYes [74]
ENCY RobotNoNoNoYes [75] NoNoNoNo
SoftwareUGV (ground mobile robot)UAV (aerial robots)AUV (underwater robots)Robotic armsRobotic hands (grasping simulation)Humanoid robotsHuman avatarsFull list

Supported actuators

SoftwareGeneric kinematic chainsForce-controlled motionFull listCircular kinematic chainsKinematically redundant chainsBifurcated kinematic chains
Gazebo YesYesYesYesYes
RoboDK UnknownUnknownUnknownUnknownUnknown
SimSpark YesNo SimSpark effectors UnknownUnknownUnknown
Webots YesYes Webots actuators YesYesYes
OpenRAVE YesYes Joints,Extra Actuators Yes [76] YesYes [77]
CoppeliaSim YesYesYesYesYes
ENCY RobotYes [78] NoUnknownYes (redundancy / external axes) [79] Unknown
SoftwareGeneric kinematic chainsForce-controlled motionFull listCircular kinematic chainsKinematically redundant chainsBifurcated kinematic chains

Supported sensors

SoftwareOdometryIMUCollisionGPSMonocular camerasStereo camerasDepth camerasOmnidirectional cameras2D laser scanners3D laser scannersFull list
Gazebo YesYesYes [80] YesYes [81] YesYesYesYes [82] Yes [82]
RoboDK UnknownUnknownUnknownUnknownUnknownYesYesYesYesYes
SimSpark YesYesYes [83] Partial [84] YesPartialUnknownUnknownNoNo SimSpark perceptors
Webots YesYesYesYesYesYesYesYesYesYes Webots sensors
OpenRAVE YesYesYesYesYesYesYesUnknownYesYes
CoppeliaSim YesYesYesYesYesYesYesYesYesYes
ENCY RobotUnknownUnknownYes [85] UnknownUnknownUnknownUnknownUnknownUnknownUnknown
SoftwareOdometryIMUCollisionGPSMonocular camerasStereo camerasDepth camerasOmnidirectional cameras2D laser scanners3D laser scannersFull list

References

  1. "ENCY Robot: Offline robot programming solution". encycam.com. Retrieved 2026-01-07.
  2. "ENCY: CAD/CAM software for a new generation". encycam.com. Retrieved 2026-01-07.
  3. "ENCY Robot configurations (2D sketching, 3D modeling)". docs.encycam.com. Retrieved 2026-01-07.
  4. "Program installation and launch (Windows)". docs.encycam.com. Retrieved 2026-01-07.
  5. OSRF. "SDF". sdformat.org. Retrieved 2019-04-27.
  6. "urdf - ROS Wiki". wiki.ros.org. Retrieved 2017-10-06.
  7. "RoboDK API". GitHub . 22 October 2021.
  8. "RoboDK Plug-In Interface". GitHub . 16 October 2021.
  9. However, requires a connection on an X server for 3D rendering
  10. "Supported programming languages (CAMAPI)". docs.encycam.com. Retrieved 2026-01-07.
  11. "ENCY Robot configurations (CAD imports list)". docs.encycam.com. Retrieved 2026-01-07.
  12. "Addin's list (ENCY Robot User Manual)". docs.encycam.com. Retrieved 2026-01-07.
  13. "CAMAPI (SDK/API documentation)". docs.encycam.com. Retrieved 2026-01-07.
  14. "Interaction with external applications (CAMIPC)". docs.encycam.com. Retrieved 2026-01-07.
  15. "CAMIPC can open ENCY without any windows". docs.encycam.com. Retrieved 2026-01-07.
  16. "Gazebo Community" . Retrieved 2019-04-27.
  17. "Gazebo API". Gazebo Community. Retrieved 2019-04-27.
  18. "Gazebo Answers". Gazebo Community. Retrieved 2019-04-27.
  19. "Gazebo Tutorials". Gazebo Community. Retrieved 2019-04-27.
  20. "Gazebo Issue Tracker". Gazebo Community. Retrieved 2019-04-27.
  21. RoboDK mailing list
  22. RoboDK API Documentation
  23. RoboDK Forum
  24. RoboDK Documentation
  25. RoboDK Bug tracker
  26. SimSpark mailing lists
  27. "SimSpark client protocols". Archived from the original on 2016-02-25. Retrieved 2015-04-08.
  28. "SimSpark user manual (Wiki)". Archived from the original on 2015-02-25. Retrieved 2015-04-08.
  29. SimSpark Tracker
  30. SimSpark Wiki [ permanent dead link ]
  31. Webots Reference Manual
  32. "Discussions · cyberbotics/Webots". GitHub .
  33. Webots User Guide
  34. Webots issues on GitHub
  35. Webots technical wiki on GitHub
  36. Webots Discord channel
  37. OpenRAVE mailing list
  38. OpenRAVE API
  39. 1 2 OpenRAVE Issue Tracker
  40. OpenRAVE User Guide
  41. OpenRAVE Wiki
  42. CoppeliaSim API
  43. Coppelia Robotics Forum
  44. CoppeliaSim User Manual
  45. Coppelia Robotics bug reports
  46. "Technical support (registration for update notifications)". docs.encycam.com. Retrieved 2026-01-07.
  47. "CAMAPI documentation". docs.encycam.com. Retrieved 2026-01-07.
  48. "ENCY Robot User Manual". docs.encycam.com. Retrieved 2026-01-07.
  49. "Online features: Collaboration / chat". docs.encycam.com. Retrieved 2026-01-07.
  50. 1 2 3 4 5 6 7 8 OSRF. "Gazebo". gazebosim.org. Retrieved 2019-04-27.
  51. CppCheck
  52. Clang Format
  53. Unit tests
  54. API tests
  55. Webots master
  56. Webots develop
  57. Source
  58. "ENCY Robot: toolpath calculation / kinematics / simulation". encycam.com. Retrieved 2026-01-07.
  59. "ENCY Robot: collision avoidance / collision detection". encycam.com. Retrieved 2026-01-07.
  60. "ENCY Robot: Tool-to-part and part-to-tool". encycam.com. Retrieved 2026-01-07.
  61. "ENCY Robot: Offline robot programming solution". encycam.com. Retrieved 2026-01-07.
  62. "ENCY Hyper: execute on the real robot in Run Mode (real time)". encycam.com. Retrieved 2026-01-07.
  63. OSRF. "Gazebo : Tutorial : Beginner: Model Editor". gazebosim.org. Retrieved 2019-04-27.
  64. OSRF. "Gazebo : Tutorial : Aerodynamics". gazebosim.org. Retrieved 2019-04-27.
  65. OSRF. "Gazebo : Tutorial : Hydrodynamics". gazebosim.org. Retrieved 2019-04-27.
  66. OSRF. "Gazebo : ARIAC". gazebosim.org. Retrieved 2019-04-27.
  67. OSRF. "Gazebo : HAPTIX". gazebosim.org. Retrieved 2019-04-27.
  68. "DARPA's legacy: Open source simulation for robotics development and testing". Robohub.org. Retrieved 2019-04-27.
  69. OSRF. "Gazebo : Tutorial : Make an animated model (actor)". gazebosim.org. Retrieved 2019-04-27.
  70. 1 2 RoboDK robot library
  71. including Salamander robot
  72. including Nao, DARwIn-OP, Fujitsu HOAP2, Kondo KHR-2HV, KHR-3, etc.
  73. Webots robot models
  74. CoppeliaSim main features
  75. "ENCY Robot: complete robotic cell simulation". encycam.com. Retrieved 2026-01-07.
  76. OpenRAVE Closed chains
  77. OpenRAVE Dual-arm example
  78. "ENCY Robot: robot kinematics management". encycam.com. Retrieved 2026-01-07.
  79. "ENCY Robot: redundant axes / external axes". encycam.com. Retrieved 2026-01-07.
  80. OSRF. "Gazebo : Tutorial : Contact Sensor". gazebosim.org. Retrieved 2019-04-27.
  81. OSRF. "Gazebo : Tutorial : Camera Distortion". gazebosim.org. Retrieved 2019-04-27.
  82. 1 2 OSRF. "Gazebo : Tutorial : Intermediate: Velodyne". gazebosim.org. Retrieved 2019-04-27.
  83. Collision detection uses a simplified model
  84. Possible, no model for noise
  85. "ENCY Robot: collision detection". encycam.com. Retrieved 2026-01-07.