CRUBOTS Utilities for Robot Simulation

(available at:

CRUBOTS is a set of Robotics Developer Studio (MRDS) services developed as part of a research program in Machine Consciousness. Although these services were developed originally to work with the CERA-CRANIUM cognitive architecture, they can be reused in any robotics project.


As we work primarily with a Pioneer 3DX robot, most of the simulation services have been designed to be a reproduction of the real robotic mobile base.

CRUBOTS is distributed as a ZIP file containing the source code for all MRDS services. Each service code in enclosed in its own folder under packages/crubots in MRDS home directory.

See below for specific instructions and a description of the services included in CRUBOTS.

The following is a set of services included in the present release of CRUBOTS:


The Cranium Dashboard service is based on the Simple Dashboard service included in the MRDS and has been extended (based on this older version) to display real-time information of other sensors: robot camera, sonar, bumpers, and GPS. Additionally, the simulation window with the Pursue Camera has been integrated in the same GUI:

Using the Cranium Dashboard you can inspect the readings of all sensors (including the camera image) and have the simulation window, all in the same integrated GUI.

Pioneer Sonar Representation

 For instance, sonar readings from the Pioneer robot can be monitored graphically as well as quantitatively.

Each Pioneer 3 DX SONAR ring is composed of eight transducers arranged at angles -90, -50, -30, -10, 10, 30, 50, and 90 degrees. They are polled sequentially at a configurable rate (usually 25 Hz – 50 ms per transducer per array).

The graphical representation you can see in the Dashboard depicts each of the Sonar transducers reading as a 2D cone (the red line represents the scaled range measured by each Sonar transducer, the rest of blue lines represent the apperture of each Sonar transducer, and therefore the area which is free of obstacles according to Sonar readings. Note the blue lines get darker as closer obstacles are detected).

You can also check the actual values of measurement (in milimiters) obtained by the Sonar. They are the S0 to S7 values that appear to the right of the graphical representation.

Pioneer Bumpers

A graphical representation of the state of Pioneer robot’s bumper panels is also available (the figure depicts the state when bump panels b1 and b2 are pressed).

Most of the code in the Cranium Dashboard also works with the real robot, hence it can be used for real robot monitoring and control as well.

Simulated GPS Service

The Simulated Pioneer GPS service provides a simple localization service to be used in the Microsoft Robotics Developer Studio simulator. It consists in a simple box shape entity (PioneerGPSEntity) that can be attached to a simulated robot, and a service (SimulatedPioneerGPS) that provides notifications indicating updated X, Y, Z coordinates of the robot in the simulated world.

More information about Simulated GPS Service.

Simulated Pioneer 3DX Bumpers

The Simulated Pioneer 3DX bumper service provides an accurate simulation of all the independent bump panels in both frontal and rear bumpers.

More information about Simulated Pioneer 3DX Bumpers.

Explorer Sim Sonar Service

This service is basically a modification of the Explorer service that comes with MRDS adapted to use sonar ranging for mapping.

More information about ExplorerSimSonar service.

Maze Simulator Service

Simulated MazeThe Maze Simulator Service creates a simulated 3D world made of walls from a 2D bitmap (bmp) image. This service also creates (programatically) a simulated Pionner 3DX robot equiped with a frontal camera, frontal sonar, frontal and rear bumpers, and a Laser range finder (LRF).

The pixels is the 2D color bitmap specify the position, color, and textures of the walls.

More information about the Maze Simulator Service.

Source Code Download

CRUBOTS and related services can be downloaded from CR download pages, category MRDS 2008 R2 Services.

Any question, feedback or comment can be posted and shared at the MRDS Forum.

Simulated GPS Service

Simulated Pioneer GPS Service

The Simulated Pioneer GPS service provides a simple localization service to be used in the Microsoft Robotics Developer Studio simulator. It consists in a simple box shape entity (PioneerGPSEntity) that can be attached to a simulated robot, and a service (SimulatedPioneerGPS) that provides notifications indicating updated X, Y, Z coordinates of the robot in the simulated world.

 This service is based on the Simulated GPS service that comes with MRDS 2008 R2.

Service Download

 Simulated Pioneer GPS source code for MRDS 2008 R2 is available here.

Installation Instructions

Download the ZIP file to your MRDS home directory, When you unzip the file, it creates one project in the
packages\crubots\simulation\sensors directory under your MSRS installation:

The folder SimulatedPioneerGPS will contain the source code.

If you want to compile the projects yourself, then open
the project and do a rebuild (see the note below first!):



In order to have the project references working for your particular settings,
you will need to run DssProjectMigration.exe. For instance (from the MRDS
command prompt):

 bin\DssProjectMigration.exe packages\crubots\simulation\sensors\SimulatedPioneerGPS

See Readme.txt file for more details. Use the MRDS forum if you have any question about this service.

Can a robot pass the mirror test?

awarerobot_zoomFirst of all, the mirror test is not exactly intended as a general test for consciousness, but a specific test for self-consciousness, and more exactly self-recognition. It is generally applied to some higher mammals and infants. The test consists on determining whether or not the subject can recognize its own reflection in a mirror. So far, only subjects belonging to the following species have passed the mirror test:

humans (over 2 years old),
great apes (bonobos, chimps, orangutans, and gorillas),
rhesus monkeys,
bottlenose dolphins,
and octopuses.

I think it is important to note that only a determined number of individuals of these species have passed the tests, while others generally fail to pass it. Obviously the test has to be adapted to each specie, although it typically consists on an odorless paint mark made in the forehead while the animal is anesthetized.

The mirror test has been considered by some researchers as one of the best available ways to test self-consciousness in organisms (see for instance how it is applied to Elephants in [1], and see [2] for an open discussion about the mirror test validity). Mirror test is famous thanks to its application to primates, as introduced by Gordon Gallup in the 70’s [3]. However, little work has been done in the application of the mirror test to robots.

Can we build a robot able to successfully pass the mirror test? And if so, does it really mean that the robot is self-aware?

Takeno et al. [4] at Meiji University in Japan claim that they have succeeded in achieving mirror image cognition for a robot. They define four steps for their experiments, where four robots are used: the self robot Rs, the other robot Ro, the controlled robot Rc, and the automatic robot Ra. The first two robots are endowed with the mirror image cognition system. The third robot is controlled by the self robot, while the last one moves automatically.

The four experiments are as follows:

1) The self robot Rs imitates the action of its own image reflected in a mirror.
2) The self robot Rs imitates an action taken intentionally by the other robot Ro as imitative behavior.
3) The controlled robot Rc is controlled completely from the self-robot to imitate his behavior.
4) The self robot Rs imitates the random actions of the automatic robot Ra.

The robot is able to recognize its own image reflected in a mirror without confusing it with the image of another robot with the same physical aspect. The mirror image cognition system is based on an artificial neural network. The aim of this system is to recognize and differentiate robot’s own behavior from other robot’s behavior. Takeno also suggests that imitation is a proof of consciousness as it requires the recognition of other subject’s behavior and then the application of that behavior to oneself.

The results described in the paper indicate that in some way the robots are passing the mirror test with an accuracy of 70%, but I am reluctant to claim that they are self-conscious. I would rather say that the present a-consciousness of their recognized image.

[3] Gallup, G.G., Jr. (1977). Self-recognition in primates: A comparative approach to the bidirectional properties of consciousness. American Psychologist, 32, 329-337.
[4] Junichi Takeno, Keita Inaba, Tohru Suzuki. Experiments and examination of mirror image cognition using a small robot. Proceedings. 2005 IEEE International Symposium on Computational Intelligence in Robotics and Automation, 2005. CIRA 2005. Full paper available at: