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
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 [1] /URDF, [2] OBJ, STL, COLLADA Plug-ins (C++)C++ROS, Player, sockets (protobuf messages)GUIYes
RoboDK Python SLDPRT, SLDASM, STEP, OBJ, STL, 3DS, COLLADA, VRML, URDF, Rhinoceros 3D, ...API, [3] Plug-In Interface [4] Python, C/C++, C#, Matlab, ...SocketGUIYes
SimSpark C++, Ruby Ruby Scene GraphsMods (C++)Network (sexpr)Sockets (sexpr)GUI, socketsUn­known
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 [5]
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
SoftwareMain programming languageFormats supportExtensibilityExternal APIsRobotic middleware supportPrimary user interfaceHeadless simulation

Infrastructure

Support

SoftwareMailing listAPI documentationPublic forum, help systemUser manualIssue trackerWikiChat
Gazebo Yes [6] Yes [7] Yes [8] Yes [9] Yes [10] No
RoboDK Yes [11] Yes [12] Yes [13] Yes [14] Yes [15] NoUn­known
SimSpark Yes [16] Yes [17] NoYes [18] Yes [19] Yes [20] Un­known
Webots NoYes [21] Yes [22] Yes [23] Yes [24] Yes [25] Yes [26]
OpenRAVE Yes [27] Yes [28] Yes [29] Yes [30] Yes [29] Yes [31] Un­known
CoppeliaSim NoYes [32] Yes [33] Yes [34] Yes [35] Un­knownNo
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 [36] cpplint [36] gtest and qtest [36] 77.0% [36] 53.3% [36] 320k [36] 106k [36] Jenkins [36]
RoboDK Un­knownUn­knownUn­knownUn­knownUn­knownUn­knownUn­knownUn­known
SimSpark Un­knownUn­knownUn­knownUn­knownUn­knownUn­knownUn­knownUn­known
Webots cppcheck [37] clang-format [38] unit tests [39] 100% of API functions [40] master, [41] develop [42] ~200k~50kGitHub Actions
OpenRAVE Un­knownUn­known Python nose Un­knownUn­knownUn­knownUn­knownJenkins [43]
CoppeliaSim Un­knownUn­knownUn­knownUn­knownUn­knownUn­knownUn­knownUn­known
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 Un­knownYesYesYesYes
RoboDK YesYesYesYesYes
SimSpark Un­knownNoUn­knownNoNo
Webots Un­knownYesYesYesYes
OpenRAVE Un­knownNoUn­knownNoNo
CoppeliaSim Un­knownYesYesYesYes
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 [44] Yes [45] Yes [46] Yes [47] Yes [48] Yes [49] Yes [50]
RoboDK NoNoNoYes [51] NoNoNoYes [51]
SimSpark YesNoNoMaybeMaybeYesNo
Webots YesYesYes [52] YesYesYes [53] YesYes [54]
OpenRAVE YesUn­knownUn­knownYesYesYesYes
CoppeliaSim YesYesYesYesYesYesYesYes [55]
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 Un­knownUn­knownUn­knownUn­knownUn­known
SimSpark YesNo SimSpark effectors Un­knownUn­knownUn­known
Webots YesYes Webots actuators YesYesYes
OpenRAVE YesYes Joints,Extra Actuators Yes [56] YesYes [57]
CoppeliaSim YesYesYesYesYes
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 [58] YesYes [59] YesYesYesYes [60] Yes [60]
RoboDK Un­knownUn­knownUn­knownUn­knownUn­knownYesYesYesYesYes
SimSpark YesYesYes [61] Partial [62] YesPartialUn­knownUn­knownNoNo SimSpark perceptors
Webots YesYesYesYesYesYesYesYesYesYes Webots sensors
OpenRAVE YesYesYesYesYesYesYesUn­knownYesYes
CoppeliaSim YesYesYesYesYesYesYesYesYesYes
SoftwareOdometryIMUCollisionGPSMonocular camerasStereo camerasDepth camerasOmnidirectional cameras2D laser scanners3D laser scannersFull list

Related Research Articles

<span class="mw-page-title-main">Simulation</span> Imitation of the operation of a real-world process or system over time

A simulation is the imitation of the operation of a real-world process or system over time. Simulations require the use of models; the model represents the key characteristics or behaviors of the selected system or process, whereas the simulation represents the evolution of the model over time. Often, computers are used to execute the simulation.

<span class="mw-page-title-main">GNUstep</span> Open source widget toolkit and application development tools

GNUstep is a free software implementation of the Cocoa Objective-C frameworks, widget toolkit, and application development tools for Unix-like operating systems and Microsoft Windows. It is part of the GNU Project.

<span class="mw-page-title-main">Eclipse (software)</span> Software development environment

Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, until 2016, was the most popular. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.

<span class="mw-page-title-main">NASA WorldWind</span> Open-source virtual globe

NASA WorldWind is an open-source virtual globe. According to the website, "WorldWind is an open source virtual globe API. WorldWind allows developers to quickly and easily create interactive visualizations of 3D globe, map and geographical information. Organizations around the world use WorldWind to monitor weather patterns, visualize cities and terrain, track vehicle movement, analyze geospatial data and educate humanity about the Earth." It was first developed by NASA in 2003 for use on personal computers and then further developed in concert with the open source community since 2004. As of 2017, a web-based version of WorldWind is available online. An Android version is also available.

<span class="mw-page-title-main">Open Dynamics Engine</span>

The Open Dynamics Engine (ODE) is a physics engine written in C/C++. Its two main components are a rigid body dynamics simulation engine and a collision detection engine. It is free software licensed both under the BSD license and the LGPL.

<span class="mw-page-title-main">Microsoft Robotics Developer Studio</span>

Microsoft Robotics Developer Studio is a discontinued Windows-based environment for robot control and simulation that was aimed at academic, hobbyist, and commercial developers and handled a wide variety of robot hardware. It requires a Microsoft Windows 7 operating system or later.

A robotics suite is a visual environment for robot control and simulation. They are typically an end-to-end platform for robotics development and include tools for visual programming and creating and debugging robot applications. Developers can often interact with robots through web-based or visual interfaces.

<span class="mw-page-title-main">Player Project</span> Robot interface specification and software system

The Player Project creates free and open-source software for research into robotics and sensor systems. Its components include the Player network server and the Stage platform robotics simulators. Although accurate statistics are hard to obtain, Player is one of the most popular open-source robot interfaces in research and post-secondary education. Most of the major intelligent robotics journals and conferences regularly publish papers featuring real and simulated robot experiments using Player and Stage.

<span class="mw-page-title-main">Webots</span> Open-source robot simulator

Webots is a free and open-source 3D robot simulator used in industry, education and research.

<span class="mw-page-title-main">Robot Operating System</span> Set of software frameworks for robot software development

Robot Operating System is an open-source robotics middleware suite. Although ROS is not an operating system (OS) but a set of software frameworks for robot software development, it provides services designed for a heterogeneous computer cluster such as hardware abstraction, low-level device control, implementation of commonly used functionality, message-passing between processes, and package management. Running sets of ROS-based processes are represented in a graph architecture where processing takes place in nodes that may receive, post, and multiplex sensor data, control, state, planning, actuator, and other messages. Despite the importance of reactivity and low latency in robot control, ROS is not a real-time operating system (RTOS). However, it is possible to integrate ROS with real-time computing code. The lack of support for real-time systems has been addressed in the creation of ROS 2, a major revision of the ROS API which will take advantage of modern libraries and technologies for core ROS functions and add support for real-time code and embedded system hardware.

<span class="mw-page-title-main">SimSpark</span>

SimSpark is a generic simulation system for various multiagent simulations. It supports developing physical simulations for AI and robotics research with an open-source application framework. It is commonly used in academic research and education.

<span class="mw-page-title-main">RoboLogix</span> Robotics simulator

RoboLogix is a robotics simulator which uses a physics engine to emulate robotics applications. The advantages of using robotics simulation tools such as RoboLogix are that they save time in the design of robotics applications and they can also increase the level of safety associated with robotic equipment since various "what if" scenarios can be tried and tested before the system is activated. RoboLogix provides a platform to teach, test, run, and debug programs that have been written using a five-axis industrial robot in a range of applications and functions. These applications include pick-and-place, palletizing, welding, and painting.

<span class="mw-page-title-main">Flight simulation video game</span> Video game genre

A flight simulation video game refers to the simulation of various aspects of flight or the flight environment for purposes other than flight training or aircraft development. A significant community of simulation enthusiasts is supported by several commercial software packages, as well as commercial and homebuilt hardware. Open-source software that is used by the aerospace industry like FlightGear, whose flight dynamics engine (JSBSim) is used in a 2015 NASA benchmark to judge new simulation code to space industry standards, is also available for private use. A popular type of flight simulators video games are combat flight simulators, which simulate combat air operations from the pilot and crew's point of view. Combat flight simulation titles are more numerous than civilian flight simulators due to variety of subject matter available and market demand.

<span class="mw-page-title-main">RoboCup 3D Soccer Simulation League</span>

The RoboCup 3D Simulated Soccer League allows software agents to control humanoid robots to compete against one another in a realistic simulation of the rules and physics of a game of soccer. The platform strives to reproduce the software programming challenges faced when building real physical robots for this purpose. In doing so, it helps research towards the RoboCup Federation's goal of developing a team of fully autonomous humanoid robots that can win against the human world soccer champion team in 2050.

<span class="mw-page-title-main">Advanced Simulation Library</span>

Advanced Simulation Library (ASL) is free and open-source hardware-accelerated multiphysics simulation platform. It enables users to write customized numerical solvers in C++ and deploy them on a variety of massively parallel architectures, ranging from inexpensive FPGAs, DSPs and GPUs up to heterogeneous clusters and supercomputers. Its internal computational engine is written in OpenCL and utilizes matrix-free solution techniques. ASL implements variety of modern numerical methods, i.a. level-set method, lattice Boltzmann, immersed Boundary. Mesh-free, immersed boundary approach allows users to move from CAD directly to simulation, reducing pre-processing efforts and number of potential errors. ASL can be used to model various coupled physical and chemical phenomena, especially in the field of computational fluid dynamics. It is distributed under the free GNU Affero General Public License with an optional commercial license.

Gazebo is an open-source 3D robotics simulator. It integrated the ODE physics engine, OpenGL rendering, and support code for sensor simulation and actuator control.

AirSim is an open-source, cross platform simulator for drones, ground vehicles such as cars and various other objects, built on Epic Games’ proprietary Unreal Engine 4 as a platform for AI research. It is developed by Microsoft and can be used to experiment with deep learning, computer vision and reinforcement learning algorithms for autonomous vehicles. This allows testing of autonomous solutions without worrying about real-world damage.

CoppeliaSim, formerly known as V-REP, is a robot simulator used in industry, education and research. It was originally developed within Toshiba R&D and is currently being actively developed and maintained by Coppelia Robotics AG, a small company located in Zurich, Switzerland.

References

  1. OSRF. "SDF". sdformat.org. Retrieved 2019-04-27.
  2. "urdf - ROS Wiki". wiki.ros.org. Retrieved 2017-10-06.
  3. "RoboDK API". GitHub . 22 October 2021.
  4. "RoboDK Plug-In Interface". GitHub . 16 October 2021.
  5. However, requires a connection on an X server for 3D rendering
  6. "Gazebo Community" . Retrieved 2019-04-27.
  7. "Gazebo API". Gazebo Community. Retrieved 2019-04-27.
  8. "Gazebo Answers". Gazebo Community. Retrieved 2019-04-27.
  9. "Gazebo Tutorials". Gazebo Community. Retrieved 2019-04-27.
  10. "Gazebo Issue Tracker". Gazebo Community. Retrieved 2019-04-27.
  11. RoboDK mailing list
  12. RoboDK API Documentation
  13. RoboDK Forum
  14. RoboDK Documentation
  15. RoboDK Bug tracker
  16. SimSpark mailing lists
  17. SimSpark client protocols
  18. SimSpark user manual (Wiki)
  19. SimSpark Tracker
  20. SimSpark Wiki
  21. Webots Reference Manual
  22. "Discussions · cyberbotics/Webots". GitHub .
  23. Webots User Guide
  24. Webots issues on GitHub
  25. Webots technical wiki on GitHub
  26. Webots Discord channel
  27. OpenRAVE mailing list
  28. OpenRAVE API
  29. 1 2 OpenRAVE Issue Tracker
  30. OpenRAVE User Guide
  31. OpenRAVE Wiki
  32. CoppeliaSim API
  33. Coppelia Robotics Forum
  34. CoppeliaSim User Manual
  35. Coppelia Robotics bug reports
  36. 1 2 3 4 5 6 7 8 OSRF. "Gazebo". gazebosim.org. Retrieved 2019-04-27.
  37. CppCheck
  38. Clang Format
  39. Unit tests
  40. API tests
  41. Webots master
  42. Webots develop
  43. Source
  44. OSRF. "Gazebo : Tutorial : Beginner: Model Editor". gazebosim.org. Retrieved 2019-04-27.
  45. OSRF. "Gazebo : Tutorial : Aerodynamics". gazebosim.org. Retrieved 2019-04-27.
  46. OSRF. "Gazebo : Tutorial : Hydrodynamics". gazebosim.org. Retrieved 2019-04-27.
  47. OSRF. "Gazebo : ARIAC". gazebosim.org. Retrieved 2019-04-27.
  48. OSRF. "Gazebo : HAPTIX". gazebosim.org. Retrieved 2019-04-27.
  49. "DARPA's legacy: Open source simulation for robotics development and testing". Robohub.org. Retrieved 2019-04-27.
  50. OSRF. "Gazebo : Tutorial : Make an animated model (actor)". gazebosim.org. Retrieved 2019-04-27.
  51. 1 2 RoboDK robot library
  52. including Salamander robot
  53. including Nao, DARwIn-OP, Fujitsu HOAP2, Kondo KHR-2HV, KHR-3, etc.
  54. Webots robot models
  55. CoppeliaSim main features
  56. OpenRAVE Closed chains
  57. OpenRAVE Dual-arm example
  58. OSRF. "Gazebo : Tutorial : Contact Sensor". gazebosim.org. Retrieved 2019-04-27.
  59. OSRF. "Gazebo : Tutorial : Camera Distortion". gazebosim.org. Retrieved 2019-04-27.
  60. 1 2 OSRF. "Gazebo : Tutorial : Intermediate: Velodyne". gazebosim.org. Retrieved 2019-04-27.
  61. Collision detection uses a simplified model
  62. Possible, no model for noise