An average robot enthusiast can easily pick a few off-the-shelf, easy-to-assemble
and relatively inexpensive robot kits and start experimenting in a matter of hours.
However, robot simulators are still indispensable tool for robotics researchers,
designers and end users, as they can be used for a fraction of the cost and time
of real hardware systems. Various environments and novel robot architectures can
be easily constructed and manipulated through some kind of graphical user interface,
allowing a detailed study of geometries, kinematics, dynamics and motion planning.
Simulators are especially suitable for research in machine learning, multi-agent
systems, computer vision, artificial life, biological modeling and similar fields.
The following review will briefly present the most popular commercial and shareware/freeware
robot simulators, including links to the sites offering more detailed information
and code.
Cyberbotics, a spin off company
from the MicroComputing and Interface Lab (LAMI) of the Swiss Federal Institute
of Technology, Lausanne (EPFL), is developing Webots, a 3D mobile robot simulator
for research and education. Cyberbotics is also developing custom 3D mobile
robot simulators with a number of companies and universities. As one of the
most realistic products on the market, it includes models for the Khepera and Alice
robots as well as extension turrets for obstacle detection, vision, gripping
objects. The user can program virtual robots using a C / C++ library which is
compatible with the real robot. A 3D environment editor allows you to customize the
robotics scenarios, with efficient actuator and sensor modeling (including cameras),
and multi-agent capabilities.
Once your simulation system works, you can test it on remote controlled real
robots (serial link), or cross-compile and download it to autonomous robots.
Numerous resources for Webots, including world files, research work and teaching
materials are available on-line. It is available for various flavors of Unix
and MS Windows. However, the base price of around $2200 will make this
software off-limits for numerous end users, limiting the target audience to
professional researchers. However, a predecessor to Webots, Khepera
Simulator, is still freely available, allowing users to develop controllers
for the mobile robot Khepera using C or C++. It includes an environment editor
and a graphical user interface, allowing for easy transfer between the simulated
robot and the real one.
Another interesting commercial package, EASY-ROB 3D Robot Simulation Tool,
is a 32-bit Microsoft Windows application, programmed in C++ using the Microsoft
Foundation Classes. It is designed to fulfill requirements for several industrial
robot applications and for the small industry (NC machines with 5 axis can be
modeled using this tool). The Application Program Interface (API) allows it
to execute user defined algorithms for inverse kinematics solutions, motion
planning and position control considering inertia, viscose friction and gear
ratio in the joints. The base price is over $2000, with educational version
selling for $950. The EASY-ROB Test License gives everyone the ability to test
the program with all options for 10 weeks.
COSIMIR, the product of the Institute
of Robotics Research in Dortmund, Germany, supports robot types and robot programming
languages as well as the possibility to simulate non-robotic workcell components.
You can use COSIMIR to plan workcells, checking the reachability of all positions
and to optimize the workcell layout. All movements and handling operations can
be simulated to avoid collisions and to optimize cycle times. Simulated robot
programs can be downloaded into robot controllers in the physical workcell and
be run without modifications. It uses Virtual Reality technique to provide a
new and intuitively comprehensible way for man-machine communication in automation
applications.
VRML robot simulators seem to be the specialty of the German developers. This
world connects to the telerobotics server and allows you to control a robot.
An optional VRML or Java3d command interface allows you to "visually" specify tasks the
robot should execute. Examples for such operations
are "pick object", "place object" or "open door". Another interesting example,
the VRML
model of a Kuka robot can be easily manipulated using the mouse. Java
scripts continuously calculate direct and inverse kinematics.
Various other noncommercial simulators are available on the Web, including
the documentation and source code in some cases. I am including several older
packages for the sake of completeness: be aware that some of them need rather
exotic software/hardware support in order to function properly.
Rossum's Playhouse RP1
is a two-dimensional robot simulation and testbed intended to aid developers
implementing control and navigation logic. It allows applications to build a
data-configurable robot which can interact with a simulated landscape or solve
a virtual maze. Client-server architecture enables developers to work in any
major programming language and environment - however, the kernel of the current
system is written in Java . The inspiration for this mobile-robot simulator
was the Trinity College Fire-Fighting Home Robot Contest. It thus support either
maze-solving applications or implementations where the environment in known
a priori. The floor plan can be configured to provide real-world designs and
can support any realistic scale. Both binaries and source code are freely available.
This simulator follows a unique design philosophy, best described by its author,
G.W. Lucas: We're even more interested in the kind of software tools that
could go into robots: navigation logic, sensor analysis, anything that will
help people building real robots. In fact, we view the simulator as merely a
means to an end. The fundamental goal of the Rossum Project is not to build
a simulator. It's to help developers to create smart robots.
"A virtual world
for an Autonomous Underwater Vehicle" is a dissertation that describes the implementation
of a simulator for realistic AUV evaluation and testing in the laboratory. Unfortunately,
links to the working system and downloads are broken at this time.
TeamBots is a Java-based
collection of application programs and Java packages (with source code) for
multiagent mobile robotics research. Execution on mobile robot hardware sometimes
requires low-level libraries in C, but Java is used for all higher-level functions.
At present, TeamBots runs on the Nomadic Technologies' Nomad 150 robot and on
Personal Robotics' Cye robot.
TeamBots supports prototyping, simulation and execution of multirobot control
systems. Robot control systems developed in TeamBots can run in simulation using
the TBSim simulation application, and on mobile robots using the TBHard robot
execution environment.
Darwin2K is a free, open-source
toolkit for robot simulation and automated design. It features numerous simulation
capabilities and an evolutionary algorithm capable of automatically synthesizing
and optimizing robot designs to meet task-specific performance objectives. It
runs on Irix 6.x and Linux. MissionLab
is a multiagent robotics mission specification and simulation software for RedHat
Linux. It takes high-level military-style plans at the input and executes them
with teams of real or simulated robotic vehicles. MissionLab supports execution
of multiple robots in simulation and includes device drivers for controlling
ActivMedia Pioneer AT, RWI Urban Robot, and Nomadics Technologies Nomad 150
& 200. Each vehicle executes its portion of the mission using reactive control
techniques developed at Georgia Tech.
Soccer Server
is a public domain software for the official RoboCup robot soccer simulator.
The server part provides a virtual playing field, while a client contains a
"brain" of a player on the field, and control actions of the player. Communication
between the server and clients is done by UDP/IP. It can run on SunOS 4.1.x,
Solaris 2, DEC OSF/1, NEWS-OS, Linux and Irix 5.
GURS, the General
Unified Robot Simulator and the LEGO Simulator are the practical products of
Jesper Rasmussen's master thesis in evolvable robotics. GURS is a general purpose
robot simulator for evolving adaptive robots, featuring an OO C++ library for
evolving robust behaviors for moving robots in a 2D environment. LEGO Simulator,
on the other hand, is a very simple simulator for wheeled LEGO robots made with
the GURS. Together with the GALib it
can be used as a fully operational robot evolving platform where the user have
only to specify the robot, the environment and the fitness formula.
The
legged robot simulator gives you the chance to test your control algorithms
for legged robots with four or more legs walking on rough terrain. The simulated
robots can have different shapes and number of legs and are provided with different
sensors (touch sensors at feet, an active camera,....). It runs under Solaris,
SGI (Silicon Graphics) or Linux.
Simderella
is a robot simulator consisting of three programs: connel, the controller;
simmel, the simulator itself, and bemmel, the X-windows oriented
graphics front-end. Simmel is the part which actually simulates the robot. It
performs matrix multiplications, based on the Denavit Hartenberg method, calculates
velocities with the Newton-Euler scheme, and communicates with the other two
programs. Bemmel only displays the robot. It is a fast general-purpose display
method which places separate objects in space depending on the homogeneous matrices
it receives from simmel. Connel is the controller, which must be designed by
the user. In the distributed version, connel is a simple inverse kinematics
routine. The package runs under several flavors of Unix and Linux.
Botworld
is an older graphical simulator of a simple robot environment. The environment
consists of several robots, bars, obstacles, and location beacons. These bots
are equipped with motor effectors which allow them to translate forward and
backward and to rotate about their axes, as well as grab and relocate bars and
structures of bars. Bots can be set up to allow full sensing of the world, or
to sense the world through a simulated sonar system. They can be controlled
by LISP client programs which can be executed on different machines apart from
the server and linked via TCP/IP. The current version is known to run on DEC
workstations and should run on SUN SPARCstations with minimal modifications.