2019年3月26日星期二

Robotics simulator

A robotics simulator is 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 (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.

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 (Virtual Robot Experimentation Platform, Webots, R-Station, Marilou, 4DV-Sim).
Using external tools.
Physics engines for realistic movements. Most simulators use ODE (Gazebo, LpzRobots, Marilou, Webots) or PhysX (Microsoft Robotics Studio, 4DV-Sim).
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
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 visualised in a 3-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 statusLicense3D rendering enginePhysics engine3D modellerPlatforms supported
ActinEnergid TechnologiesActiveProprietaryOpenGLProprietaryProprietaryWindows, macOS, Linux, RTLinux, VxWorks, RTOS-32, and RTX. (QNX Planned)
ARSRALInactiveBSDVTKODENoneLinux, macOS, Windows
AUTOMAPPPSConvergent Information Technologies GmbHActiveProprietaryOpenGLunknownInternalLinux, Windows
GazeboOpen Source Robotics Foundation(OSRF)ActiveApache 2.0OGREODE/Bullet/Simbody/DARTInternalLinux
MORSEAcademic communityActiveBSDBlender game engineBulletBlenderLinux, BSD*, macOS
OpenHRPAISTActiveEclipseJava3DODE/InternalInternalLinux, Windows
RoboDKRoboDKActiveProprietaryOpenGLnoneInternalLinux, macOS, Windows, Android
SimSparkO. Obst et al. (+26)ActiveGNU GPL (v2)InternalODENoneLinux, macOS, Windows
V-RepCoppelia RoboticsActiveProprietary/GNU GPLInternalODE/Bullet/Vortex/NewtonInternalLinux, macOS, Windows
WebotsCyberbotics Ltd.ActiveProprietaryProprietaryProprietary
(based on ODE)
ProprietaryLinux, macOS, Windows
4DV-Sim4D VirtualizActiveProprietaryOGREPhysXInternalLinux
OpenRAVEOpenRAVE CommunityActiveGNU LGPLCoin3D/OpenSceneGraphODE/BulletInternalLinux, macOS, Windows
SoftwareDevelopersDevelopment statusLicense3D rendering enginePhysics engine3D modellerPlatforms supported

Technical information
SoftwareMain programming languageFormats supportExtensibilityExternal APIsRobotics middleware supportPrimary user interfaceHeadless simulation
ActinC++SLDPRT, SLDASM, STEP, OBJ, STL, 3DS, Collada, VRML, URDF, XML, ECD, ECP, ECW, ECX, ECZ,Plugins (C++), APIUnknownROSGUIYes (ActinRT)
ARSPythonUnknownPythonUnknownNoneUnknownUnknown
AUTOMAPPPSC++, PythonSTEP, IGES, STLPlugins (C), APIXML, CSocketGUIYes
GazeboC++SDF/URDF, OBJ, STL, ColladaPlugins (C++)C++ROS, Player, Sockets (protobuf messages)GUIYes
MORSEPythonUnknownPythonPythonSockets, YARP, ROS, Pocolibs, MOOSCommand-lineYes
OpenHRPC++VRMLPlugins (C++), APIC/C++, Python, JavaOpenRTM-aistGUIUnknown
RoboDKPythonSTEP, IGES, STL, WRMLPlugins (C++), APIC/C++, Python, MatlabSocketGUIUnknown
SimSparkC++, RubyRuby Scene GraphsMods (C++)Network (sexpr)Sockets (sexpr)GUI, SocketsUnknown
V-RepLUAOBJ, STL, DXF, 3DS, Collada, URDFAPI, Add-ons, PluginsC/C++, Python, Java, Urbi, Matlab/OctaveSockets, ROSGUIYes
WebotsC++WBT, VRML, X3DAPI, PROTOs, Plugins (C/C++)C, C++, Python, Java, Matlab, ROSSockets, ROS, NaoQIGUIYes
4DV-SimC++3DS, OBJ, MeshPlugins (C++), APIFMI/FMU, MatlabROS, Sockets, Plug & Play interfacesGUIYes
OpenRAVEC++, PythonXML, VRML, OBJ, ColladaPlugins (C++), APIC/C++, Python, MatlabSockets, ROS, YARPGUI, SocketsYes
SoftwareMain programming languageFormats supportExtensibilityExternal APIsRobotic middleware supportPrimary user interfaceHeadless simulation

Infrastructure

Support
SoftwareMailing ListAPI DocumentationPublic Forum/Help SystemUser ManualIssue TrackerWiki
ActinNoYesNoYesYes (Internal)No
ARSUnknownUnknownUnknownUnknownUnknownUnknown
AUTOMAPPPSYesYesNoYesYesNo
GazeboYesYesYesYesYesYes
MORSEYesYesNoYesYesNo
OpenHRPYesYesNoYesYesNo
RoboDKYesYesNoYesNoNo
SimSparkYesYesNoYesYesYes
V-RepNoYesYesYesUnknownNo
WebotsNoYesYesYesYesYes
4DV-SimYesNoYesYesYesNo
OpenRAVEYesYesYesYesYesYes
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
ActinUnknownUnknownUnknownUnknownUnknownUnknownUnknownJenkins
ARSUnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknown
AUTOMAPPPSUnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknown
Gazebocppcheckcpplintgtest and qtest46.1%34.3%190.7k60.45kJenkins
MORSEN/ApylintPython unittestsUnknownUnknown31.4k9.0kJenkins, Travis
OpenHRPUnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknown
RoboDKUnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknown
SimSparkUnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknown
V-RepUnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknown
WebotsUnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknown
4DV-SimUnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknown
OpenRAVEUnknownUnknownPython noseUnknownUnknownUnknownUnknownJenkins
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
ActinYes (Tool Paths)YesYesYesYes
ARSUnknownNoUnknownNoNo
GazeboUnknownYesYesYesYes
MORSEUnknownNoUnknownNoNo
OpenHRPUnknownNoUnknownNoNo
RoboDKUnknownNoUnknownYesNo
SimSparkUnknownNoUnknownNoNo
V-RepUnknownNoUnknownNoNo
WebotsUnknownYesYesYesYes
4DV-SimUnknownNoUnknownNoNo
OpenRAVEUnknownNoUnknownNoNo
SoftwareCAD to MotionDynamic Collision AvoidanceRelative End EffectorsOff-line ProgrammingReal-time Streaming Control

Families of robots
SoftwareUGV (ground mobile robot)UAV (aerial robots)AUV (underwater robots)Robotic armsRobotic hands (grasping simulation)Humanoid robotsHuman avatarsFull list
ActinYes (Can Include Manipulators)Yes (Can Include Manipulators)Yes (Can Include Manipulators)YesYesYesYes
ARSUnknownUnknownUnknownUnknownUnknownUnknownUnknown 
GazeboYesYesYesYesYesYesYes 
MORSEYesYesPartialSomeNoNoYes 
OpenHRPYesNoNoYesYesYesYes 
RoboDKNoNoNoYesNoNoNo 
SimSparkYesNoNoMaybeMaybeYesNo 
V-RepYesYesNoYesYesYesYes 
WebotsYesYesYesYesYesYesYesWebots robot models
4DV-SimYesYesNoYesMaybeNoYes 
OpenRAVEYesUnknownUnknownYesYesYesYes 
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
ActinYesYesMotion ConstraintsYesYesYes
ARSUnknownUnknown UnknownUnknownUnknown
GazeboYesYes YesYesYes
MORSEYesYesMORSE actuatorsUnknownUnknownUnknown
OpenHRPYesYes UnknownUnknownUnknown
RoboDKUnknownUnknown UnknownUnknownUnknown
SimSparkYesNoSimSpark effectorsUnknownUnknownUnknown
V-RepYesYes UnknownUnknownUnknown
WebotsYesYesWebots actuatorsYesYesYes
4DV-SimYesYes UnknownUnknownUnknown
OpenRAVEYesYesJoints,Extra ActuatorsYesYesYes
SoftwareGeneric kinematic chainsForce-controlled motionFull listCircular kinematic chainsKinematically redundant chainsBifurcated kinematic chains

Supported sensors
SoftwareOdometryIMUCollisionGPSMonocular camerasStereo camerasDepth camerasOmnidirectional cameras2D laser scanners3D laser scannersFull list
ActinYesYesYesUnknownYesYesYesYesYesYes 
ARSUnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknown 
AUTOMAPPPSUnknownUnknownUnknownUnknownYesYesYesUnknownYesYes 
GazeboYesYesYesYesYesYesYesYesYesYes 
MORSEYesYesYesYesYesUnknownYesUnknownYesYesMORSE sensors
OpenHRPUnknownYesYesUnknownYesUnknownYesUnknownYesYesOpenHRP sensors
RoboDKUnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknownUnknown 
SimSparkYesYesYesPartialYesPartialUnknownUnknownNoNoSimSpark perceptors
V-RepUnknownYesYesYesYesYesYesUnknownYesYes 
WebotsYesYesYesYesYesYesYesYesYesYesWebots sensors
4DV-SimYesYesYesYesYesYesYesYesYesYes 
OpenRAVEYesYesYesYesYesYesYesUnknownYesYes 
SoftwareOdometryIMUCollisionGPSMonocular camerasStereo camerasDepth camerasOmnidirectional cameras2D laser scanners3D laser scannersFull list

Other simulators

Open source simulators
breve: a 3D-world multi-agent simulator in 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 an open-source Windows simulator for the Khepera robot predating Webots.
Klamp't : a simulator introduced in 2013 specializing in stable trimesh-trimesh contact. Supports legged locomotion and manipulation.
LpzRobots: a 3D-physics robot simulator developed at the University of Leipzig.
miniBloq: This robot programing software for Arduino boards has a new simulator.
Moby: a rigid-body dynamics library written in C++.
OpenSim Simulator for articulated and wheeled robots with a wide range of characteristics. Further development stopped in the year 2006.
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).
ARTE A Robotics Toolbox for Education (ARTE) is a Free Software educational tool based on Matlab. It provides functions to represent position and orientation. As well, includes functions to simulate robotic arms (direct/inverse kinematics, dynamics, path planning and more). The toolbox includes a large set of 3D robotic models that can be viewed and simulated inside a robotic cell.
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.

Closed-source and proprietary simulators
anyKode Marilou
ORCA-Sim: a (Windows) 3D robot simulator using the Newton Game Dynamics physics engine.

Source from Wikipedia

没有评论:

发表评论

Aristotelian realist philosophy of mathematics In the philosophy of mathematics, Aristotelian realism holds that mathematics studies propert...