Monday 3 May 2010

PLAYER STAGE : HELLO WORLD

Every programming paradigm has a 'Hello World' program. I try out something similar in Player-Stage and in process acquaint myself with various newer aspects of Player-Stage. After trying out player simple.cfg to check out Player-Stage installation, here I try to understand the involved working principles.

'HELLO WORLD'

Files needed to create the hello world (copied from Stage-3.2.0-Source/worlds and modified) are;
These 6 files contains information and configuration of the simulation.

1. cave.png 

This file contains the 'picture' of the environment.


2. map.inc

This file contains a floor plan and is included (.inc file) in simple.world.

3. pioneer.inc

This file contains the information about the robot model, the geometry, wheels etc of the robot. This file is included in simple.world

4. sick.inc

This file contains SICK LMS 200 configurations, factory settings and geometry. This file is included in simple.world



5. simple.cfg

The configuration (.cfg) file tells the player that there is a driver called stage in stageplugin library. This file enables player to 'talk' to the driver.


For real robots the drivers are build into player, for a simulation the driver is always stage.

6. simple.world

It contains the environment details,


and also the robot coordinates and robot behaviour


The 'pose' is the robot coordinates (x,y,z) and the heading angle (also called yaw). 'wander' is the default behaviour (this is new plugin API to Stage, earlier versions did not have it).


Any robot (or autonomous vehicle) navigation can be defined completely by the 3 coordinates and the heading a angle.




ON RUNNING THE SIMULATION 

Before the screen with the little red robot pops up, loads of command flashes across the terminal window.




2 important aspects ;

(a) wander
the wander is the default behaviour, via the simple.world file. There are other Stage controllers which can be used to obtain other behaviours and informations.

(b) port 6665
port 6665 is the default port for Player and Stage.Player and Stage communicate through this port.

No comments: