Robotics simulator

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

Template:Short description Script error: No such module "Unsubst".

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.

File: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:

  • 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
Template:Rh class="table-rh" |Gazebo Open Source Robotics Foundation (OSRF) Active Apache 2.0 OGRE ODE, Bullet, Simbody, DART Internal Linux, macOS, Windows
Template:Rh class="table-rh" |RoboDK RoboDK Active Proprietary OpenGL Gravity plug-in Internal Linux, macOS, Windows, Android, iOS, Debian
Template:Rh | SimSpark O. Obst et al. (+26) Active GNU GPL (v2) Internal ODE None Linux, macOS, Windows
Template:Rh class="table-rh" |Webots Cyberbotics Ltd. Active Apache 2.0 Internal (WREN) Fork of ODE Internal Linux, macOS, Windows
Template:Rh class="table-rh" |OpenRAVE OpenRAVE Community Active GNU LGPL Coin3D, OpenSceneGraph ODE, Bullet Internal Linux, macOS, Windows
Template:Rh class="table-rh" |CoppeliaSim Coppelia Robotics Active Dual: commercial, GNU GPL Internal MuJoCo, Bullet, ODE, Vortex, Newton 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
Template:Rh | Gazebo C++ SDF[1]/URDF,[2] OBJ, STL, COLLADA Plug-ins (C++) C++ ROS, Player, sockets (protobuf messages) GUI Yes
Template:Rh | RoboDK Python SLDPRT, SLDASM, STEP, OBJ, STL, 3DS, COLLADA, VRML, Robot Operating System URDF, Rhinoceros 3D, ... API,[3] Plug-In Interface[4] Python, C/C++, C#, Matlab, ... Socket GUI Yes
Template:Rh | SimSpark C++, Ruby Ruby Scene Graphs Mods (C++) Network (sexpr) Sockets (sexpr) GUI, sockets Template:Unk
Template:Rh class="table-rh" | 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[5]
Template:Rh | OpenRAVE C++, Python XML, VRML, OBJ, COLLADA Plug-ins (C++), API C/C++, Python, Matlab Sockets, ROS, YARP GUI, sockets Yes
Template:Rh class="table-rh" | 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
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
Template:Rh | Gazebo Yes[6] Yes[7] Yes[8] Yes[9] Yes[10] No
Template:Rh | RoboDK Yes[11] Yes[12] Yes[13] Yes[14] Yes[15] No Template:Unk
Template:Rh | SimSpark Yes[16] Yes[17] No Yes[18] Yes[19] Yes[20] Template:Unk
Template:Rh | Webots No Yes[21] Yes[22] Yes[23] Yes[24] Yes[25] Yes[26]
Template:Rh | OpenRAVE Yes[27] Yes[28] Yes[29] Yes[30] Yes[29] Yes[31] Template:Unk
Template:Rh | CoppeliaSim No Yes[32] Yes[33] Yes[34] Yes[35] Template:Unk No
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
Template:Rh | Gazebo cppcheck[36] cpplint[36] gtest and qtest[36] 77.0%[36] 53.3%[36] 320k[36] 106k[36] Jenkins[36]
Template:Rh | RoboDK Template:Unk Template:Unk Template:Unk Template:Unk Template:Unk Template:Unk Template:Unk Template:Unk
Template:Rh | SimSpark Template:Unk Template:Unk Template:Unk Template:Unk Template:Unk Template:Unk Template:Unk Template:Unk
Template:Rh | Webots cppcheck[37] clang-format[38] unit tests[39] 100% of API functions[40] master,[41] develop[42] ~200k ~50k GitHub Actions
Template:Rh | OpenRAVE Template:Unk Template:Unk Python nose Template:Unk Template:Unk Template:Unk Template:Unk Jenkins[43]
Template:Rh | CoppeliaSim Template:Unk Template:Unk Template:Unk Template:Unk Template:Unk Template:Unk Template:Unk Template:Unk
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
Template:Rh | Gazebo Template:Unk Yes Yes Yes Yes
Template:Rh class="table-rh" | RoboDK Yes Yes Yes Yes Yes
Template:Rh | SimSpark Template:Unk No Template:Unk No No
Template:Rh | Webots Template:Unk Yes Yes Yes Yes
Template:Rh | OpenRAVE Template:Unk No Template:Unk No No
Template:Rh | CoppeliaSim Template:Unk Yes Yes Yes Yes
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
Template:Rh | Gazebo Yes[44] Yes[45] Yes[46] Yes[47] Yes[48] Yes[49] Yes[50]
Template:Rh | RoboDK No No No Yes[51] No No No Yes[51]
Template:Rh | SimSpark Yes No No Template:Maybe Template:Maybe Yes No
Template:Rh | Webots Yes Yes Yes[52] Yes Yes Yes[53] Yes Yes[54]
Template:Rh | OpenRAVE Yes Template:Unk Template:Unk Yes Yes Yes Yes
Template:Rh | CoppeliaSim Yes Yes Yes Yes Yes Yes Yes Yes[55]
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
Template:Rh | Gazebo Yes Yes Yes Yes Yes
Template:Rh | RoboDK Template:Unk Template:Unk Template:Unk Template:Unk Template:Unk
Template:Rh | SimSpark Yes No SimSpark effectors Template:Unk Template:Unk Template:Unk
Template:Rh | Webots Yes Yes Webots actuators Yes Yes Yes
Template:Rh | OpenRAVE Yes Yes Joints,Extra Actuators Yes[56] Yes Yes[57]
Template:Rh | CoppeliaSim Yes Yes Yes Yes Yes
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
Template:Rh | Gazebo Yes Yes Yes[58] Yes Yes[59] Yes Yes Yes Yes[60] Yes[60]
Template:Rh | RoboDK Template:Unk Template:Unk Template:Unk Template:Unk Template:Unk Yes Yes Yes Yes Yes
Template:Rh | SimSpark Yes Yes Yes[61] Partial[62] Yes Partial Template:Unk Template:Unk No No SimSpark perceptors
Template:Rh | Webots Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Webots sensors
Template:Rh | OpenRAVE Yes Yes Yes Yes Yes Yes Yes Template:Unk Yes Yes
Template:Rh | CoppeliaSim Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Software Odometry IMU Collision GPS Monocular cameras Stereo cameras Depth cameras Omnidirectional cameras 2D laser scanners 3D laser scanners Full list

References

<templatestyles src="Reflist/styles.css" />

  1. Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. However, requires a connection on an X server for 3D rendering
  6. Script error: No such module "citation/CS1".
  7. Script error: No such module "citation/CS1".
  8. Script error: No such module "citation/CS1".
  9. Script error: No such module "citation/CS1".
  10. Script error: No such module "citation/CS1".
  11. RoboDK mailing list
  12. RoboDK API Documentation
  13. RoboDK Forum
  14. RoboDK Documentation
  15. RoboDK Bug tracker
  16. SimSpark mailing lists
  17. Script error: No such module "citation/CS1".
  18. Script error: No such module "citation/CS1".
  19. SimSpark Tracker
  20. SimSpark WikiScript error: No such module "Unsubst".
  21. Webots Reference Manual
  22. Script error: No such module "citation/CS1".
  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. a b 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. a b c d e f g h Script error: No such module "citation/CS1".
  37. CppCheck
  38. Clang Format
  39. Unit tests
  40. API tests
  41. Webots master
  42. Webots develop
  43. Source
  44. Script error: No such module "citation/CS1".
  45. Script error: No such module "citation/CS1".
  46. Script error: No such module "citation/CS1".
  47. Script error: No such module "citation/CS1".
  48. Script error: No such module "citation/CS1".
  49. Script error: No such module "citation/CS1".
  50. Script error: No such module "citation/CS1".
  51. a b 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. Script error: No such module "citation/CS1".
  59. Script error: No such module "citation/CS1".
  60. a b Script error: No such module "citation/CS1".
  61. Collision detection uses a simplified model
  62. Possible, no model for noise

Script error: No such module "Check for unknown parameters".

Template:Robotics