jueves, 12 de abril de 2007

Los ficheros de configuración de PlayerStage

Para lanzar el servidor necesitamos un fichero .cfg que define los drivers que necesitaremos para la simulación.

Para cargar el simulador Stage y los dispositivos a simular del robot (el propio robot y dispositivo de ultrasonidos), el fichero sería el siguiente:

# load the Stage plugin simulation driver
driver
(
name "stage"
provides ["simulation:0" ]
plugin "libstageplugin"

# load the named file into the simulator
worldfile "simple.world"
)

driver
(
name "stage"
provides ["position2d:0" "sonar:0"]
model "robot1"
)

En primer lugar veamos el fichero de configuración del entorno en el que realizaremos la simulación. En el fichero .cfg teníamos:
worldfile "simple.world"

Esta línea, especifica en el driver de Stage que configuración de entorno (world) usaremos. En este caso el contenido del fichero simple.world es:

# Importamos el archivo en el que están definidos los datos del robot a utilizar
include "pioneer.inc"

# Importamos el archivo en el que están definidos los parametros del mapa
include "map.inc"

# Tamaño del entorno en metros
size [60 45]

# set the resolution of the underlying raytrace model in meters
resolution 0.02

# Configuraión de la ventana (tamaño, centro y escalado)
window ( size [ 800.000 600.000 ] center [0.000 0.000] scale 0.08 )

# Carga de la imagen con el mapa y definición del tamaño respecto al entorno
map
(
bitmap "bitmaps/robotux.png"
size [60 45]
)

# El robot
pioneer2dx
(
name "robot1"
color "red"
pose [-7.603 -4.391 -490.303]
)

El robot por defecto es el Pioneer2DX que si observamos en el fichero pioneer.inc da la posibilidad de configurarse con 8 ó 16 sónares en el anillo. En nuestro caso usaremos un anillo de 7 sonares por lo que debemos crear esa nueva configuración, lo único que hay que hacer es añadir a robot.inc la siguiente configuración:

# ---[ Configuración de anillo de 7 sonares ]---
define mi_sonar7 ranger (
scount 7
# transducer pose [Xpos Ypos Heading]
spose[0] [ 0.075 0.130 90 ]
spose[1] [ 0.115 0.115 60 ]
spose[2] [ 0.150 0.080 30 ]
spose[3] [ 0.170 0.025 0 ]
spose[4] [ 0.170 -0.025 -30 ]
spose[5] [ 0.150 -0.080 -60 ]
spose[6] [ 0.075 -0.130 -90 ]
# transducer size in meters [X Y] (affects the Stage window)
ssize[0] [ 0.01 0.05 ]
ssize[1] [ 0.01 0.05 ]
ssize[2] [ 0.01 0.05 ]
ssize[3] [ 0.01 0.05 ]
ssize[4] [ 0.01 0.05 ]
ssize[5] [ 0.01 0.05 ]
ssize[6] [ 0.01 0.05 ]
# transducer viewing parameters [Range_min Range_max FOV]
sview[0] [ 0 5.0 15 ]
sview[1] [ 0 5.0 15 ]
sview[2] [ 0 5.0 15 ]
sview[3] [ 0 5.0 15 ]
sview[4] [ 0 5.0 15 ]
sview[5] [ 0 5.0 15 ]
sview[6] [ 0 5.0 15 ]
)

Y al final de la definición estándar del robot (el bloque define pioneer2dx position) añadir el driver del anillo que hemos creado añadiendo la línea mi_sonar7() :

# use the sonar array defined above
mi_sonar7()
)

No hay comentarios: