Robotics simulator

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

A robotics simulator is used to create embedded applications for a robot without depending physically on the actual machine, thus saving cost and time. In some case, these applications can be transferred on the real robot (or rebuilt) 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.

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 is capable of emulating the motion of an actual robot in a real work envelope. Some robotics simulators, such as Robologix 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. Of course, 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[edit]

Modern simulators tend to provide the following features:

Simulators[edit]

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, robots can be programmed off-line which does not create any down-time for an assembly line that may greatly depend on these robots. Robot actions and assembly parts can be visualised in a 3-dimensional virtual environment months before prototypes are even produced. Programmers also are not required to have much technical expertise in writing code. While the move toward virtual simulations for programming robot is a step forward in user interface design, many of the designs have a long way to go.

General informations[edit]

Software Developers Development status License 3D rendering engine Physics engine 3D modeller Platforms supported
ARS RAL Active BSD VTK ODE None Linux, MacOS X, Windows
Gazebo Open Source Robotics Foundation(OSRF)[1] Active Apache 2.0 OGRE ODE/Bullet/Simbody/DART Internal Linux, MacOS X, Windows
MORSE Academic community[2] Active BSD Blender game engine Bullet Blender Linux, BSD*, MacOS X
Webots Cyberbotics Active Proprietary OGRE custom version of ODE Internal Linux, MacOS X, Windows
V-Rep Coppelia Robotics Active Proprietary/GNU GPL Internal ODE/Bullet/Vortex Internal Linux, MacOS X, Windows
SimSpark O. Obst et al. (+26) Active GNU GPL (v2) Internal ODE None Linux, MacOS X, Windows
Software Developers Development status License 3D rendering engine Physics engine 3D modeller Platforms supported

Notes[edit]

  1. ^ The development is led by 13+ full-time developers with graduate-level backgrounds in physics, rendering, robot control, human-robot interaction, user-interface design, communication protocols, and multi-robot coordination.
  2. ^ The development is led by 10+ universities/research institutes including LAAS-CNRS, TUM, ONERA, DLR. See the AUTHORS list for the complete list.

Technical information[edit]

Software Main programming language Formats support Extensibility External APIs Robotics middleware support Primary user interface Headless simulation
ARS Python Unknown Python Unknown None Unknown Unknown
Gazebo C++ SDF[1]/URDF[2] Plugins (C++) C++ ROS, Player, Sockets (protobuf messages) GUI Yes
MORSE Python Unknown Python Python[3] Sockets, YARP, ROS, Pocolibs, MOOS Command-line Yes[4]
Webots C++ WBT, VRML'97 Plugins (C++), API C/C++, Python, Java, Matlab ROS, URBI, NaoQI GUI Yes[5]
V-Rep LUA URDF[2][6] API, Add-ons, Plugins C/C++, Python, Java, Urbi, Matlab/Octave Sockets, ROS GUI Yes[7]
SimSpark C++, Ruby Ruby Scene Graphs Mods (C++) Network (sexpr) Sockets (sexpr) GUI, Sockets Unknown
Software Main programming language Formats support Extensibility External APIs Robotic middleware support Primary user interface Headless simulation

Notes[edit]

  1. ^ Simulation Description Format
  2. ^ a b Universal Robot Description Format
  3. ^ pymorse
  4. ^ Only when running on a X server; relies on Xvfb.
  5. ^ However, requires a connection on an X server for 3D rendering
  6. ^ Can import URDF files through bundled plugin
  7. ^ Versions >= 3.1.0 V-rep Command line options

Infrastructure[edit]

Support[edit]

Software Mailing List API Documentation Public Forum/Help System User Manual Issue Tracker Wiki
ARS Unknown Unknown Unknown Unknown Unknown Unknown
Gazebo Yes[1] Yes[2] Yes[3] Yes[4] Yes[5] Yes[6]
MORSE Yes[7] N/A No Yes[8] Yes[9] No
Webots No Yes[10] Yes[11] Yes[12] Yes[13] Yes[14]
V-Rep No Yes[15] Yes[16] Yes[17] Unknown No
SimSpark Yes[18] Yes[19] No Yes[20] Yes[21] Yes[22]
Software Mailing List API Documentation Public Forum/Help System User Manual Issue Tracker Wiki
Notes[edit]

Code Quality[edit]

Software Static Code Checker Style Checker Test System(s) Test Function coverage Test Branch coverage Lines of Code Lines of Comments Continuous Integration
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[1] 9.0k Jenkins, Travis
Webots Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
V-Rep Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
SimSpark Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
Software Static Code Checker Style Checker Test System(s) Test Function coverage Test Branch coverage Lines of Code Lines of Comments Continuous Integration
Notes[edit]
  1. ^ Source: Ohloh

Simulation Features[edit]

Families of robots[edit]

Software UGV (ground mobile robot) UAV (aerial robots) AUV (underwater robots) Robotic arms Robotic hands (grasping simulation) Humanoid robots Human avatars
ARS Unknown Unknown Unknown Unknown Unknown Unknown Unknown
Gazebo Yes Yes No Yes Yes Yes Yes
MORSE Yes Yes Partial[1] Some[2] No No Yes
Webots Yes Yes Yes[3] Yes Yes Yes[4] Yes
V-Rep Yes Yes No Yes Yes Yes Yes
SimSpark Yes No No Maybe Maybe Yes No
Software UGV (ground mobile robot) UAV (aerial robots) AUV (underwater robots) Robotic arms Robotic hands (grasping simulation) Humanoid robots Human avatars
Notes[edit]
  1. ^ Submarine model available, but no dynamic model.
  2. ^ Kuka-LWR and Mitsubishi PA-10 included. Other non-concurrent arms can be simulated via the kinematic chains actuator.
  3. ^ including Salamander robot
  4. ^ including Nao, DARwIn-OP, Fujitsu HOAP2, Kondo KHR-2HV, KHR-3, etc.

Supported actuators[edit]

Software Generic kinematic chains Force-controlled motion Full list
ARS Unknown Unknown
Gazebo Yes Yes
MORSE Yes[1] Yes MORSE actuators
Webots Yes Yes
V-Rep Yes Yes
SimSpark Yes No SimSpark effectors
Software Generic kinematic chains Force-controlled motion Full list

Supported sensors[edit]

Software Odometry IMU Collision GPS Monocular cameras Stereo cameras Depth cameras 2D laser scanners 3D laser scanners Full list
ARS Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
Gazebo Yes Yes Yes Yes Yes Yes Yes Yes Yes
MORSE Yes Yes Yes Yes Yes Unknown Yes Yes Yes[2] MORSE sensors
Webots Yes Yes Yes Yes Yes Yes Yes Yes Yes
V-Rep Unknown Yes Yes Yes Yes Unknown Yes Yes Yes
SimSpark Yes Yes Yes[3] Partial[4] Yes Partial Unknown No No SimSpark perceptors
Software Odometry IMU Collision GPS Monocular cameras Stereo cameras Depth cameras 2D laser scanners 3D laser scanners Full list
Notes[edit]
  1. ^ Joint control (position/velocity only, no force control) and inverse kinematics
  2. ^ Velodyne 3D laser scanner
  3. ^ Collision detection uses a simplified model
  4. ^ Possible, no model for noise

Other simulators[edit]

Open source simulators[edit]

  • breve 3d simulator using Python
  • EZPhysics: Combination of Ogre3D and ODE physics, GUI exposes all of ODE's objects data, network closed loop remote control optionally via Matlab/Simulink.
  • Khepera Simulator Apparently before Webots became commercial it was open source and called Khepera Simulator
  • Klamp't: a simulator introduced in 2013 specializing in stable trimesh-trimesh contact. Supports legged locomotion and manipulation.
  • LpzRobots: Another rich simulator with good material support.
  • miniBloq: This robot programing software for Arduino boards has a new simulator.
  • Moby is a robust robotic dynamics simulator
  • OpenHRP3: (Open Architecture Human-centered Robotics Platform version 3) is an integrated software platform for robot simulations and software developments.
  • OpenSim Simulator for articulated and wheeled robots with a wide range of characteristics. Further development stopped in the year 2006.
  • ORCA-Sim: a simulator for robotics: is a (Windows) 3D robot simulator which incorporates the Newton Game Dynamics physics engine. A good alternative for Win32 platforms and the Gazebo project, with fast response and good performance. (Currently not open source. Last update in 2007)
  • Robotics Toolbox for MATLAB is Free Software that provides functionality for representing pose (homogeneous transformations, Euler and RPY angles, quaternions), arm robots (forward/inverse kinematics, dynamics, simulation, animation) and mobile robots (control, localisation, planning and animation).
  • Simbad 3d Robot Simulator Java based simulator
  • SimRobot: A robot simulator software package developed at the Universität Bremen and the German Research Center for Artificial Intelligence.
  • Stage: 2.5D simulator often used with Player to form the Player/Stage system. Part of the Player Project
  • STDR Simulator A simple, flexible and scalable 2D multi-robot simulator for use within Robot Operating System.
  • UCHILSIM: A physics based simulator for AIBO Robots introduced in RoboCup 2004.
  • UWSim : an UnderWater SIMulator for marine robotics research and development which incorporates sensor, dynamic and physics simulation.

Proprietary simulators[edit]

External links[edit]