Appendix A: Simulators

History

Many good mobile robot simulators already exist, so why create another? Unfortunately, most of them are designed around a client/server architecture where the host simulator communicates with a remote robot The alternative are several simulators built for the Khepera type of robots--thus it requires a extensive investment for the hobbyist as most of these robots are near $1000 or more for the robot alone. Surprisingly, when you look at a Khepera II it is actually running on a 68331 with 512K flash and 512K RAM--sounds a lot like an MRM doesn't it! Compared with some other simulators, the OOMRM simulator will seem primitive, but as a test bed for a non network enabled mobile robot, it proves quite adequate. Also, the uniqueness in the OOMRM simulator is the ability to model and simulate not only the robot, but also the error involved in the mobile robot.

Introduction

Therefore, with so many Mobile Robot simulators out there, I thought it helpful to document the differences with the OOMRM Simulator. Most simulators simply focus on the simulator and modeling the environment, but my most fundamental requirement was to be able to debug both the embedded code and high level mapping code together to shorten the development cycle which usually results from programming in an embedded environment. When you purchase a commercial robot, a lot of what you are paying for is not only the hardware, but also the software that facilitates the programming of the hardware. In fact, most commercially available robots actually have onboard PCs or networks that communicate peripherally with the robot. In addition, these come with a sophisticated protocols for communicating with and controlling the robot. Thus, a lot of packages are designed around this architecture. The low-level control of the robot is outside the scope of the simulator. These simulators simply provide the basic commands to the robot-there is no need to implement any of the low level behavior. In particular, the XDREV software environment provided by Nomadic Technologies on the XR4000 (Nrobot). This module accepts requests to control the robot basic motions (speed or position control of the three individual axes) and exports sensor data (odometry, sonars, infrared sensors). Thus, many of these simulators then becomes an add-on package that works in tandem with the already existing controller code for the robot to provide the host side support for navigation and mapping.

Thus, the primary difference is the OOMRM has both low and high level functionality combined into one library. As much as possible, the OOMRM design has still tried to separate the two layers to allow for bridging to a separate module later. Thus, the OOMRM is also in the class of simulators that has built in navigational capabilities like DROS and Saphira although perhaps not as advanced.

Furthermore, most applications have a particular slant or niche they are fulfilling; some like DROS have a well developed network protocol, and others, like Stage/Player concentrate on the ability to model multiple robots or the ability to provide for a soccer simulation. Some application included are not specifically graphical in nature, but provide kinematic class libraries from which to design a mobile robot simulator.

The OOMRM as previously mentioned was primarily desgined to provide a hardware API for the MRM (68332); in all truth, if I had had networking, I probably would have used one of the below existing simulators--particular Rossum's playhouse or Player/Stage. Whether to migrate in the future if and when I get networking remains to be seen...

MissionLab

URL: http://www.cc.gatech.edu/aimosaic/robot-lab/research/MissionLab/

RoboCup Soccer Simulator

URL: http://sserver.sourceforge.net/

Rossum's playhouse

URL: http://rossum.sourceforge.net/sim.html

Supported Robots: (clinet/server)

Rossum's Playhouse is an open source, two-dimensional robot simulation 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. The inspiration for this mobile-robot simulator was the Trinity College Fire-Fighting Home Robot Contest (see Trinity College). NOTE: Java, client/server architecture robot simulator. Disadvantages are that it requires a host PC controlling robot. Even though the inspiration for RP1 is the Trinity Firefighting, you'd have to be creative to get the test bed into a truly autonomous robot small enough for Trinity. [limits hardware to client/server].

Stage/Player

URL: http://playerstage.sourceforge.net/

Supported Robots: (clinet/server)

An open source project for simulating multiple robots. Stage is a scaleable multiple robot simulator; it simulates a population of mobile robots moving in and sensing a two-dimensional bitmapped environment, controlled through Player. Stage provides virtual Player robots which interact with simulated rather than physical devices. Various sensor models are provided, including sonar, scanning laser rangefinder, pan-tilt-zoom camera with color blob detection and odometry. It apparently supports no Hardware.

Carmen

URL: http://www-2.cs.cmu.edu/~carmen/

Supported Robots: XR4000 (clinet/server)

CARMEN, the Carnegie Mellon Robot Navigation Toolkit is an open-source collection of software for mobile robot control. CARMEN is modular software designed to provide basic navigation primitives including: base and sensor control, obstacle avoidance, localization, path planning, people-tracking, and mapping.

Communications between CARMEN programs is handled using a separate package called IPC, Copyright 1991 Christopher Fedor and Reid Simmons. IPC is distributed along with CARMEN, however it is a separate software development. In addition, the xr4000 module was based on GPLed code by David Austin for controlling the Nomadic Technologies XR4000. More details can be found in the xr4000 directory.

DROS

URL: http://dros.org/

Supported Robots: XR4000 (client/server)

DROS stands for Dave's (David Austin) Robotic Operating System and it is basic software modules needed for robotics. At the moment, the framework consists mainly of support functions for modular programming and modules for mobile robots.

Saphira

URL: http://robots.activmedia.com/Saphira/

Saphira is SRI International's library of gradient-based navigation and localization software plus the Saphira GUI and simulator familiar to users of earlier versions of Saphira. Written and maintained by Kurt Konolige, PhD, and his colleagues at SRI International, Saphira provides the most sophisticated commercial navigation software available for robots. Saphira sits atop ARIA, which now handles mid-level controls of ActivMedia robots.

MOBS

URL: http://robotics.ee.uwa.edu.au/mobs/

MOBS is a public domain simulator that is a fully 3-dimensional simulation system for mobile robot systems. The simulator understands the same ASCII sequences as the "Robuter II" robot The simulator can be connected to a robot application program even without re-compilation of the application program. Sensors modeled are: odometry, bumpers, sonar sensors, camera view (using the SGI's Inventor library)...The simulator emulate the behaviour of the mobile robot "RobuterII", which is a available product of the french company Robosoft."

SimRobot

URL: http://www.informatik.uni-bremen.de/simrobot/win32_e.htm

Supported Robots: Unknown

SimRobot is an open source 3-D kinematics' robot simulator software package that was developed in the Bremen Institute of Safe Systems (BISS). Disadvantage: unknown if hardware interface exists.

Autonomous Robotic Soccer

URL: http://robotsimulators.8m.com/

Looks like not much work recently; also, need to find out how much is really implemented.

WEBOTS

URL: http://www.cyberbotics.com/

Supported Robots: Khepera, Aibo, Mindstorm, Koala, and Hemisson (clinet/server)

A Commercial simulator developed by Cyberbotics, WEBOTS Simulates wheeled legged and flying robots. (~2400CHF)], and runs directly with the Aibo, Mindstorm, Koala, Khepera (http://www.k-team.com/), and Hemisson robots. WEBOTS relies on ODE (Open Dynamics Engine) to perform accurate physics simulation wherever it is necessary. It also Provides both a Sensor and Actuator library along with a world map editor (VRML). WEBOTS are available in:

Khepera Simulator

URL: http://diwww.epfl.ch/lami/team/michel/khep-sim/

Supported Robots: Khepera (clinet/server)

The Khepera Simulator is a freeware simulator for the Khepera robot. This is actually the old version of WEBOTS before it became commercial. I believe many software products start this way-are free until you have built sufficient customer base.

MOBOTSIM

URL: http://www.mobotsoft.com/mobotsim.htm

Supported Robots: Khepera, Hemisson (clinet/server)

Shareware simulator ($30) MOBOTSIM is a software (Win 9x/Me/NT/2000/XP) for 2D simulation of differential drive mobile robots. It provides a graphical interface that represents an environment in which you can easily create, set and edit robots and objects. In order to set these robots in motion MOBOTSIM has a BASIC Editor in which the user can write macros making use of specific functions to get information about robot coordinates and sensor data and to set speed and driving data for them, as well as making use of all the power and ease of BASIC language to program navigation techniques. Three separate packages are available:

SysQuake

URL: http://www.calerga.com/index.html

Not specifically designed as a robot simulator, but Sysquake is a mathematical tool for graphically viewing the effects of various functions and algorithms such as PID controllers. It also is attributed to be able to control the Khepera robot from Sysquake.

Open Automation Project

URL: http://oap.sourceforge.net/

Supported Robots: custom hardware design

The specific project goals are:

(i) Design a coherent set of modular components (hardware and software) that conform to standards (where possible), and implement the functionality of an intelligent mobile robot. Use pre-built components that are readily available where possible (and when such pre-built components are affordable).
(ii) Minimize cost. It should be possible to build a robot for around the price of a PC (target: US$1,500 to $2,000). Consumer grade hardware components are to be used in preference to professional grade products.
(iii) Focus on stereo vision as the primary spatial sensor to produce useful space occupancy data. Central to the success of this project is the implementation of a functioning low-cost real-time vision system. The prevalence of FireWire-enabled WebCams and mainboards makes this goal reachable from the standpoint of cost; the difficult part here is the software.

OROCOS

URL: http://www.orocos.org/

Supported Robots: Unknown

The Orocos project started as a Free Software project for robotics, but it has outgrown its robotics-dependent roots. Hence, “Orocos” now consists of two decoupled but integrated sub-projects:

  • Open Realtime Control Services.
    This is a hard realtime Kernel for all possible feedback control applications, fully independent of the project's original robotics focus. It can run several cascaded control loops, on both vanilla Linux 2.6 and hard realtime RTAI. Extensive graphical configuration support is available.
    Available features: hardware abstraction, operating system abstraction, event handling, state machines and advanced “PLC” scripting, command parsing, property bags, simple servo algorithms, multiple time-triggered threads, advanced data protection for synchronous/asynchronous data flow, strongly typed data flow, (on-line) configuration support, …
    Integration between RTAI and TAO and ACE is also part of the ongoing work towards a hard realtime distributed control infastructure based on CORBA.
  • Open Robot Control Software.
    A set of class libraries and an application framework offering generic functionality for machine tools and robots: motion generation and interpolation; kinematics and dynamics; robot-specific control algorithms; estimation and identification; etc.
    The following families of applications have working implementations available: force-controlled 6R manipulator arm and Cartesian XYZ machine tools. We would welcome developers to start mobile robot and humanoid robot application(s). In those efforts, much of the material of the above-mentioned applications can be reused. In addition, detailed support is available through the Developers' mailing list. So, each new application requires moderate programming effort. (Not taking into account system-dependent modules such as device drivers, or kinematic routines.)

OOMRM Simulator

URL: http://duotronics.home.att.net/

Supported Robots: 68332 based.

I thought it only fair to compare my own simulator to the above. OOMRM Simulator is a modest 2-D simulator for a differentially steered robot.

Other Simulator Links etc.

  • http://www-robotics.usc.edu/~maja/simulators.html - overview of simulators.
  • http://cswww.essex.ac.uk/Research/tuuv/simulators.html - Another overview of simulators
  • http://www.frc.ri.cmu.edu/robotics-faq/13.html#13.1 -Yet another overview of simulators
  • RoboJDE (http://www.ridgesoft.com/) Jave Virtual Machine Development Kit for the Handy Board. With the RoboJDE™ robotics software development environment you will quickly be developing Java-enabled object oriented programs to control your Handy Board or Sumo11 based robot. RoboJDE's easy to use Graphical User Interface allows you to edit, build, load and debug your robotics programs using one integrated software development tool. RoboJDE's class library provides building blocks that enable you to rapidly develop sophisticated software to control your robot (not simulator, but IDE).