Robotics simulator
A robotics simulator is a simulator 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 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.
robotics simulator.|thumb|right
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.
- * Using external tools.
- Physics engines for realistic movements. Most simulators use 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, MATLAB languages used by Webots, Python used by Gazebo.
Simulators
General information
Software | Developers | Development status | License | 3D rendering engine | Physics engine | 3D modeller | Platforms supported |
Gazebo | Open Source Robotics Foundation | Active | OGRE | ODE/Bullet/Simbody/DART | Internal | Linux, macOS, Windows | |
RoboDK | RoboDK | Active | OpenGL | Gravity plugin | Internal | Linux, macOS, Windows, Android, iOS, Debian | |
SimSpark | O. Obst et al. | Active | GNU GPL | Internal | ODE | - | Linux, macOS, Windows |
Webots | Cyberbotics Ltd. | Active | Internal | Fork of ODE | Internal | Linux, macOS, Windows | |
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 |
Gazebo | C++ | SDF/URDF, OBJ, STL, Collada | Plugins | C++ | ROS, Player, Sockets | GUI | |
RoboDK | Python | SLDPRT, SLDASM, STEP, OBJ, STL, 3DS, Collada, VRML, URDF, Rhinoceros_3D,... | API, Plug-In Interface | Python, C/C++, C#, Matlab,... | Socket | GUI | |
SimSpark | C++, Ruby | Ruby Scene Graphs | Mods | Network | Sockets | GUI, Sockets | |
Webots | C++ | WBT, VRML, X3D, 3DS, Blender, BVH, Collada, FBX, STL, OBJ, URDF | API, PROTOs, Plugins | C, C++, Python, Java, Matlab, ROS | Sockets, ROS, NaoQI | GUI | |
OpenRAVE | C++, Python | XML, VRML, OBJ, Collada | Plugins, API | C/C++, Python, Matlab | Sockets, ROS, YARP | GUI, Sockets | |
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 | - | ||||||
RoboDK | |||||||
SimSpark | |||||||
Webots | |||||||
OpenRAVE | |||||||
Software | Mailing List | API Documentation | Public Forum/Help System | User Manual | Issue Tracker | Wiki | - |
Code Quality
Software | Static Code Checker | Style Checker | Test System | Test Function coverage | Test Branch coverage | Lines of Code | Lines of Comments | Continuous Integration |
Gazebo | cppcheck | cpplint | gtest and qtest | 77.0% | 53.3% | 320k | 106k | Jenkins |
RoboDK | ||||||||
SimSpark | ||||||||
Webots | cppcheck | clang-format | unit tests | 100% of API functions | master, develop | ~200k | ~50k | Travis, AppVeyor, GitGuardian, Github Actions |
OpenRAVE | Python nose | Jenkins | ||||||
Software | Static Code Checker | Style Checker | Test System | Test Function coverage | Test Branch coverage | Lines of Code | Lines of Comments | Continuous Integration |
Features
Families of robots
Software | UGV | UAV | AUV | Robotic arms | Robotic hands | Humanoid robots | Human avatars | Full list |
Gazebo | ||||||||
RoboDK | ||||||||
SimSpark | ||||||||
Webots | ||||||||
OpenRAVE | ||||||||
Software | UGV | UAV | AUV | Robotic arms | Robotic hands | 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 | ||||||
RoboDK | ||||||
SimSpark | ||||||
Webots | ||||||
OpenRAVE | , | |||||
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 | |||||||||||
RoboDK | |||||||||||
SimSpark | |||||||||||
Webots | |||||||||||
OpenRAVE | |||||||||||
Software | Odometry | IMU | Collision | GPS | Monocular cameras | Stereo cameras | Depth cameras | Omnidirectional cameras | 2D laser scanners | 3D laser scanners | Full list |