General information
| Software | Developers | Development status | License | 3D rendering engine | Physics engine | 3D modeller | Platforms supported |
|---|---|---|---|---|---|---|---|
| Actin | Energid Technologies | Active | Proprietary | OpenGL | Proprietary | Proprietary | Windows, macOS, Linux, VxWorks, and RTOS-32. (RTX and QNX Planned) |
| ARS | RAL | Active | BSD | VTK | ODE | None | Linux, macOS, Windows |
| Gazebo | Open Source Robotics Foundation(OSRF)[1] | Active | Apache 2.0 | OGRE | ODE/Bullet/Simbody/DART | Internal | Linux, macOS, Windows |
| MORSE | Academic community[2] | Active | BSD | Blender game engine | Bullet | Blender | Linux, BSD*, macOS |
| OpenHRP | AIST | Active | Eclipse | Java3D | ODE/Internal | Internal[3] | Linux, Windows |
| RoboDK | RoboDK | Active | Proprietary | OpenGL | none | Internal | Linux, macOS, Windows, Android |
| SimSpark | O. Obst et al. (+26) | Active | GNU GPL (v2) | Internal | ODE | None | Linux, macOS, Windows |
| V-Rep | Coppelia Robotics | Active | Proprietary/GNU GPL | Internal | ODE/Bullet/Vortex | Internal | Linux, macOS, Windows |
| Webots | Cyberbotics | Active | Proprietary | OGRE | custom version of ODE | Internal | Linux, macOS, Windows |
| 4DV-Sim | 4D Virtualiz | Active | Proprietary | OGRE | PhysX | Internal | Linux |
| 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 |
|---|---|---|---|---|---|---|---|
| Actin | C++ | SLDPRT,SLDASM, STEP, OBJ, STL, 3DS, Collada, VRML, URDF, XML, ECD, ECP, ECW, ECX, ECZ, | Plugins (C++), API | Unknown | None | GUI | Yes (ActinRT) |
| ARS | Python | Unknown | Python | Unknown | None | Unknown | Unknown |
| Gazebo | C++ | SDF[4]/URDF[5] | Plugins (C++) | C++ | ROS, Player, Sockets (protobuf messages) | GUI | Yes |
| MORSE | Python | Unknown | Python | Python[6] | Sockets, YARP, ROS, Pocolibs, MOOS | Command-line | Yes[7] |
| OpenHRP | C++ | VRML | Plugins (C++), API | C/C++, Python, Java | OpenRTM-aist | GUI | Unknown |
| RoboDK | Python | STEP, IGES, STL, WRML | Plugins (C++), API | C/C++, Python, Matlab | Socket | GUI | Unknown |
| SimSpark | C++, Ruby | Ruby Scene Graphs | Mods (C++) | Network (sexpr) | Sockets (sexpr) | GUI, Sockets | Unknown |
| V-Rep | LUA | OBJ,STL, DXF, 3DS, Collada,[8] URDF[5][9] | API, Add-ons, Plugins | C/C++, Python, Java, Urbi, Matlab/Octave | Sockets, ROS | GUI | Yes[10] |
| Webots | C++ | WBT, VRML'97 | Plugins (C++), API | C/C++, Python, Java, Matlab | ROS, URBI, NaoQI | GUI | Yes[11] |
| 4DV-Sim | C++ | 3DS,OBJ, Mesh | Plugins (C++), API | FMI/FMU, Matlab | ROS, Sockets, Plug & Play interfaces[12] | GUI | Yes |
| OpenRAVE | C++, Python | XML,VRML,OBJ, Collada | Plugins (C++), API | C/C++, Python, Matlab | Sockets, ROS, YARP | GUI, Sockets | 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 |
|---|---|---|---|---|---|---|
| Actin | No | Yes | No | Yes[13] | Yes (Internal) | No |
| ARS | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| Gazebo | Yes[14] | Yes[15] | Yes[16] | Yes[17] | Yes[18] | Yes[19] |
| MORSE | Yes[20] | N/A | No | Yes[21] | Yes[22] | No |
| OpenHRP | Yes[23] | Yes[24] | No | Yes[25] | Yes[26] | No |
| RoboDK | Yes[27] | Yes[28] | No | Yes[29] | No | No |
| SimSpark | Yes[30] | Yes[31] | No | Yes[32] | Yes[33] | Yes[34] |
| V-Rep | No | Yes[35] | Yes[36] | Yes[37] | Unknown | No |
| Webots | No | Yes[38] | Yes[39] | Yes[40] | Yes[41] | Yes[42][better source needed] |
| 4DV-Sim | Yes[43] | No | Yes[44] | Yes | Yes[45] | No |
| OpenRAVE | Yes[46] | Yes[47] | Yes[48] | Yes[49] | Yes[50] | Yes[51] |
| 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 |
|---|---|---|---|---|---|---|---|---|
| Actin | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Jenkins |
| ARS | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| Gazebo | cppcheck | cpplint | gtest and qtest | 46.1% | 34.3% | 190.7k | 60.45k | Jenkins |
| MORSE | N/A | pylint | Python unittests | Unknown | Unknown | 31.4k[52] | 9.0k | Jenkins, Travis |
| OpenHRP | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| RoboDK | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| SimSpark | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| V-Rep | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| Webots | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| 4DV-Sim | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| OpenRAVE | Unknown | Unknown | Python nose | Unknown | Unknown | Unknown | Unknown | Jenkins [53] |
| 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 |
|---|---|---|---|---|---|
| Actin | Yes (Tool Paths) | Yes | Yes | Yes | Yes |
| ARS | Unknown | No | Unknown | No | No |
| Gazebo | Unknown | No | Unknown | No | No |
| MORSE | Unknown | No | Unknown | No | No |
| OpenHRP | Unknown | No | Unknown | No | No |
| RoboDK | Unknown | No | Unknown | Yes | No |
| SimSpark | Unknown | No | Unknown | No | No |
| V-Rep | Unknown | No | Unknown | No | No |
| Webots | Unknown | No | Unknown | No | No |
| 4DV-Sim | Unknown | No | Unknown | No | No |
| OpenRAVE | Unknown | No | Unknown | No | No |
| Software | CAD to Motion | Dynamic Collision Avoidance | Relative End Effectors | Off-line Programming | Real-time Streaming Control |
Families of robots
| Software | UGV (ground mobile robot) | UAV (aerial robots) | AUV (underwater robots) | Robotic arms | Robotic hands (grasping simulation) | Humanoid robots | Human avatars |
|---|---|---|---|---|---|---|---|
| Actin | Yes (Can Include Manipulators) | Yes (Can Include Manipulators) | Yes (Can Include Manipulators) | Yes | Yes | Yes | Yes |
| ARS | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| Gazebo | Yes | Yes | Yes[54] | Yes | Yes | Yes | Yes |
| MORSE | Yes | Yes | Partial[55] | Some[56] | No | No | Yes |
| OpenHRP | Yes | No | No | Yes | Yes | Yes | Yes |
| RoboDK | No | No | No | Yes[57] | No | No | No |
| SimSpark | Yes | No | No | Maybe | Maybe | Yes | No |
| V-Rep | Yes | Yes | No | Yes | Yes | Yes | Yes |
| Webots | Yes | Yes | Yes[58] | Yes | Yes | Yes[59] | Yes |
| 4DV-Sim | Yes | Yes | No | Yes | Maybe | No | Yes |
| OpenRAVE | Yes | Unknown | Unknown | Yes | Yes | Yes | Yes |
| Software | UGV (ground mobile robot) | UAV (aerial robots) | AUV (underwater robots) | Robotic arms | Robotic hands (grasping simulation) | Humanoid robots | Human avatars |
Supported actuators
| Software | Generic kinematic chains | Force-controlled motion | Full list | Circular kinematic chains | Kinematically redundant chains | Bifurcated kinematic chains |
|---|---|---|---|---|---|---|
| Actin | Yes | Yes | Motion Constraints | Yes | Yes | Yes |
| ARS | Unknown | Unknown | Unknown | Unknown | Unknown | |
| Gazebo | Yes | Yes | Unknown | Unknown | Unknown | |
| MORSE | Yes[60] | Yes | MORSE actuators | Unknown | Unknown | Unknown |
| OpenHRP | Yes | Yes | Unknown | Unknown | Unknown | |
| RoboDK | Unknown | Unknown | Unknown | Unknown | Unknown | |
| SimSpark | Yes | No | SimSpark effectors | Unknown | Unknown | Unknown |
| V-Rep | Yes | Yes | Unknown | Unknown | Unknown | |
| Webots | Yes | Yes | Unknown | Unknown | Unknown | |
| 4DV-Sim | Yes | Yes | Unknown | Unknown | Unknown | |
| OpenRAVE | Yes | Yes | Joints,Extra Actuators | Yes[61] | Yes | Yes[62] |
| 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Actin | Yes | Yes | Yes | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | |
| ARS | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | |
| Gazebo | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Yes | Yes | |
| MORSE | Yes | Yes | Yes | Yes | Yes | Unknown | Yes | Unknown | Yes | Yes[63] | MORSE sensors |
| OpenHRP | Unknown | Yes[64] | Yes | Unknown | Yes | Unknown | Yes | Unknown | Yes | Yes[65] | OpenHRP sensors |
| RoboDK | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | |
| SimSpark | Yes | Yes | Yes[66] | Partial[67] | Yes | Partial | Unknown | Unknown | No | No | SimSpark perceptors |
| V-Rep | Unknown | Yes | Yes | Yes | Yes | Unknown | Yes | Unknown | Yes | Yes | |
| Webots | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Yes | Yes | |
| 4DV-Sim | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
| OpenRAVE | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Yes | Yes | |
| Software | Odometry | IMU | Collision | GPS | Monocular cameras | Stereo cameras | Depth cameras | Omnidirectional cameras | 2D laser scanners | 3D laser scanners | Full list |
Benefits of simulation
- Reduce costs involved in robot production;
- Diagnose source code that controls a particular resource or a mix of resources;
- Simulate various alternatives without involving physical costs;
- Robot or components can be tested before implementation;
- Simulation can be done in stages, beneficial for complex projects;
- Demonstration of a system to determine if is viable or not;
- Compatibility with a wide range of programming languages;
- Shorter delivery times.
Disadvantages of simulation
- An application can simulate just what it is programmed to simulate – it will not simulate internal or external factors which are overlooked in the development phase;
- A robot can encounter many more scenarios in the real world than there can be simulated.
Abstract
— The number of tools for dynamics simulation has
grown substantially in the last few years. Humanoid robots,
in particular, make extensive use of such tools for a variety
of applications, from simulating contacts to planning complex
motions. It is necessary for the humanoid robotics community
to have a systematic evaluation to assist in choosing which
of the available tools is best for their research. This paper
surveys the state of the art in dynamics simulation and
reports on the analysis of an online survey about the use
of dynamics simulation in the robotics research community.
The major requirements for robotics researchers are better
physics engines and open-source software. Despite the numerous
tools, there is not a general-purpose simulator which dominates
the others in terms of performance or application. However,
for humanoid robotics, Gazebo emerges as the best choice
among the open-source projects, while V-Rep is the prefered
commercial simulator. The survey report has been instrumental
for choosing Gazebo as the base for the new simulator for the iCub humanoid robot
这篇博客介绍了机器人模拟软件的综合对比,包括通用信息、技术细节和基础设施支持。讨论了模拟软件如何帮助降低机器人生产的成本、诊断代码问题、在实施前测试机器人组件,以及其在复杂项目中的分阶段模拟优势。同时,也指出了模拟的局限性,如只能模拟预编程的因素,无法涵盖所有现实世界的场景。
2941

被折叠的 条评论
为什么被折叠?



