Creating a complete virtual model by simulating components and control programs can lead to simplifying the construction process of a robot and can reduce costs of a project. The good part is that most applications used in simulation can be transferred to physical robots without requiring changes, or at least major changes. In a virtual environment interactions and behavior of a robot or system can be simulated with high accuracy compared to the actual real life model. For example a mobile robot can be simulated as it moves around in an environment with lots of obstacles and rough terrain, in order to analyse the response from its sensors and the efficiency of its algorithms.
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.
New versions of simulation platforms offer increasingly more features that make simulation easier and also very close to reality. A significant contribution comes from 3D simulation which can be used to build the robot and the environment in detail. Most tools are compatible with programming languages like: C, C++, Perl, Python, Java, URBI, or MATLAB. Below you can find a list these of simulation tools.
1. Robot Virtual Worlds
Robot Virtual Worlds is an advanced simulation software built around the powerful ROBOTC IDE. Users can program virtual LEGO Mindstorms NXT, EV3, VEX or TETRIX robots, either by using ROBOTC or visually via the Graphical Natural Language library extension, and observe their behavior in the 3D simulation environment which accurately renders these robots and their interactions. RVW was primarily designed as an educational tool however it is well suited for all levels of expertise – beginners can learn how to program these robots, teachers and students can use it for home or lab work, while advanced users can refine code or detect errors in their programming.
Several software extensions complement the feature set even further. For instance the Virtual Brick Emulator offers users a similar experience to that of programming an actual LEGO Mindstorms brick with NXT-G or LabVIEW. There are also extensions for creating custom levels, importing 3D models or measuring distances and trajectory angles around virtual environments.
RVW runs on Windows and is available in platform specific releasese. Free trial versions are available for download and licensing starts at US $49. There are also several apps available for iPad in which users can program VEX robots or play games with simulated robot behavior based on user programming.
RoboDK is an offline programming tool for industrial robots which allows for scripting using Python or creating programs visually thanks to its integrated 3D simulation environment. All programs are automatically converted into robot specific languages before uploading them to physical robots. The software library offers 3D models for over 200 industrial robots and tools from ABB, KUKA, Yaskawa to mention just a few of them.
RoboDK provides numerous development features – it can generate alerts when robot singularities or possible collisions are detected, it represents graphically the robot work space, and also allows the user to have an overview of the whole technological and program accordingly. You can access our RoboDK review to find out more.
3. Microsoft Robotics Developer Studio
Microsoft offers robot developers a complete tool that can be used to program and create 3D simulations of your robot and environment. MRDS 4 supports major robotic platforms like LEGO Mindstorms, VEX or various hardware such as the HiTechnic sensors and many more. The software offers various methods and technologies for rapid prototyping and includes a great amount of functional libraries.
Unfortunately as of September 22nd, 2014 Microsoft has suspended its Robotics research division, leaving MRDS 4 as the last released version of the software. Naturally this means that support is fairly limited and found on online communities.
Webots has a friendly interface, and supports the following languages: C/C++, Java, Python, URBI, MATLAB or interface with third party software through TCP/IP. It is one of the most common simulation platforms with a long list of components which can be used in simulation and the possibility of adding other components.
Compatible with most Windows operating systems, Workspace 5 is a powerful set of tools that supports 3D simulation and is compatible with a long list of languages in the industrial area: AB G-Code, ABB Rapid, Adept V-Plus, Fanuc Karel 5, Fanuc TP, Mitsubishi PA10, Mitsubishi Melfa Basic, Motoman Inform II, Kawasaki AS, Kuka KRL, Nachi Slim, Panasonic Pres and Siemens G-Code.
Components and fixtures are included and can be used in building the simulation environment and robot. Another important feature is compatibility with CAD files that can be created in AutoCAD for example, then imported into the simulation program to be used.
V-REP is a 3D simulator compatible with Windows, Mac and Linux, which allows modeling of an entire system or only certain components like sensors, mechanisms, gearing and so on. The control program of a component can be attached to the object or the scene with objects to model in a way similar to reality. The platform can be used to control the hardware part, develop algorithms, create factory automation simulations, or for educational demonstrations.
Compatible with most operating systems, LabVIEW is used extensively in engineering and research. Is a complex system that can be used in simulation, testing or measurement. It offers the possibility of simulating a large number of hardware components.
Used for development and simulation, OpenHRP3 is a complex environment and offers a suite of components to develop some of the more complex robots. Allows dynamic simulation which requires inspection by the user of the robot model and the program that controls the robot.
Used less in complex simulations, Player is mainly used to simulate sensor applications. Compatible with most operating systems and programming languages, the platform can simulate a variety of sensors and their response to various stimuli. It also offers the possibility to create 3D simulations.
Simbad is a Java-compatible simulation tool that can be used for educational or scientific purposes. Simbad is mainly used for simulating 3D visualization and sensing, range or contact sensors.
Algodoo is a free simulation platform designed mainly for educational purposes. It is used similarly as a drawing tool and is available for Windows, Mac and iPad.
RoboWorks 3.0 is an excellent 3D modeler for use in educational purposes and in industrial simulation. Graphics in 3D can be added in an easy way and it is compatible with C, C++, C/C++ interpreter Ch, VB, VB.NET, LabView, etc. A free demo is available for download.
RobotStudio is a powerful development suite created by ABB and is specialized in industrial robot simulation. The program also offers a generous list of components which can be used to simulate a robot or its sensors, actuators, grippers, etc. A free version with limited functionality is available for download.
Gazebo can simulate complex systems and a variety of sensor components. It is used especially in developing robots used in interaction, to lift or grab objects, to push, or any other activity which requires recognition and localization in space. It is an open source software platform for which anyone can develop a plug-in with model components, also compatible with ROS and Player. Gazebo is available for Linux, Mac and Windows.
15. Actin Simulation
Compatible with CAD files, Actin Simulation can be used for various activities which including simulation of algorithms, join types, rendering, dynamics and control.
Blender is an open source software tool through which data can be obtained after simulation of actuators, sensors and controllers. It is compatible with Windows, Mac and Linux.
WorkcellSimulator used to simulate and program industrial robots. It’s mainly used for applications which involve handling, sorting or machinery for laser cutting and similar applications.
robotSim:Edu is part of the STEM suite created by Cogmation. As its name implies, it is designed to be used primarily for educational purposes, it is compatible with Cogmation C++ API or the LabVIEW software.
3DSimulate is part of the software suite created by Visual Components, designed for industrial applications modeling and programming. A trial version can be downloaded after subscribing.
Roboguide developed by FANUC consists of four components, each of them having a role in simulation. HandlingPRO allows 3D simulation, PaintPRO has the role to create links between robot components and programs, PalletPRO and PalletTool used for development and integration of robotic palletizing and depalletizing systems, WeldPRO allows environment simulation where the robot operates.
With a friendly interface, RoboLogix is an advanced 3D simulation environment for industrial robots, however it is designed primarily for educational purposes. Some of the features include testing and editing programs used to control robots, and the possibility to optimize the cycle times by comparing the control programs. A free 30-day trial software can be downloaded.
Ezphysics is an open source software for Windows which allows for 3D simulation and animation in a similar way to video games. A set of examples, complete with accessible source code is included. Remote network interactions with the software are possible, and integration with MatLab is also possible.
SimRobot is developed by Bremen University and used for research of autonomous robots. Current version is compatible with Windows, Linux and Mac OS X.